]> git.localhorst.tv Git - l2e.git/blobdiff - test-data/test.l2s
rough implementation of capsule feeding
[l2e.git] / test-data / test.l2s
index 098e0b20c1cbd89e1aecd0d3cf4f288d6ef7b87e..ed457cacfec0c3de823967d90093f8caf9351d51 100644 (file)
@@ -1,6 +1,6 @@
-include "ikaris.l2s"
-include "items.l2s"
-include "spells.l2s"
+include "ikaris.l2h"
+include "items.l2h"
+include "spells.l2h"
 
 Number frameTime 33
 Number twoFramesTime 66
@@ -20,7 +20,8 @@ export PartyLayout heroesLayout {
                < 48,136>,
                <128,136>,
                < 80,152>,
-               <160,152>
+               <160,152>,
+               <216,144>
        ]
 }
 
@@ -48,7 +49,8 @@ export Monster lizard {
                sprite: lizardSprite,
                frametime: fourFramesTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 0, row: 1, disposition: < 0, 16> },
                        { column: 0, row: 0, disposition: < 0, 16> },
                        { column: 0, row: 1, disposition: < 0, 16> },
@@ -72,7 +74,7 @@ Sprite maximSprite {
 export Hero maxim {
        name: "Maxim",
        level: 1,
-       sprite: maximSprite,
+       battleSprite: maximSprite,
        maxHealth: 33,
        health: 33,
        maxMana: 20,
@@ -87,11 +89,16 @@ export Hero maxim {
                gut: 100,
                mgr:  10
        },
+       ladder: [
+               10
+       ],
+       useMask: maskMaxim,
        attackAnimation: ComplexAnimation {
                sprite: maximSprite,
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 1, row: 0, disposition: < 0, 0> },
                        { column: 1, row: 0, disposition: < 0, 0> },
                        { column: 1, row: 0, disposition: < 0, 0> },
@@ -125,7 +132,8 @@ export Hero maxim {
                sprite: maximSprite,
                frametime: fiveFramesTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 1, disposition: < 0, 0> }
@@ -138,6 +146,17 @@ export Hero maxim {
                },
                frametime: twoFramesTime,
                framecount: 4
+       },
+       mapEntity: Entity {
+               animation: SimpleAnimation{
+                       sprite: Sprite {
+                               image: :"maxim-map.png",
+                               size: <32,64>
+                       },
+                       frametime: 120,
+                       framecount: 2
+               },
+               spriteOffset: <0,-32>
        }
 }
 
@@ -148,7 +167,7 @@ Sprite selanSprite {
 export Hero selan {
        name: "Selan",
        level: 1,
-       sprite: selanSprite,
+       battleSprite: selanSprite,
        maxHealth: 28,
        health: 28,
        maxMana: 23,
@@ -163,11 +182,13 @@ export Hero selan {
                gut: 80,
                mgr: 13
        },
+       useMask: maskSelan,
        attackAnimation: ComplexAnimation {
                sprite: selanSprite,
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 1, row: 0, disposition: < 4, 0> },
                        { column: 1, row: 0, disposition: < 4, 0> },
                        { column: 1, row: 0, disposition: < 8, 2> },
@@ -188,7 +209,8 @@ export Hero selan {
                sprite: selanSprite,
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 0, disposition: < 0, 0> },
@@ -208,6 +230,17 @@ export Hero selan {
                },
                frametime: twoFramesTime,
                framecount: 4
+       },
+       mapEntity: Entity {
+               animation: SimpleAnimation{
+                       sprite: Sprite {
+                               image: :"selan-map.png",
+                               size: <32,64>
+                       },
+                       frametime: 120,
+                       framecount: 2
+               },
+               spriteOffset: <0,-32>
        }
 }
 
@@ -218,7 +251,7 @@ Sprite guySprite {
 export Hero guy {
        name: "Guy",
        level: 1,
-       sprite: guySprite,
+       battleSprite: guySprite,
        maxHealth: 38,
        health: 38,
        maxMana: 0,
@@ -233,11 +266,13 @@ export Hero guy {
                gut: 90,
                mgr:  8
        },
+       useMask: maskGuy,
        attackAnimation: ComplexAnimation {
                sprite: guySprite,
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 1, row: 0, disposition: <-4, 0> },
                        { column: 1, row: 0, disposition: <-4, 0> },
                        { column: 1, row: 0, disposition: <-8, 0> },
@@ -261,6 +296,17 @@ export Hero guy {
                },
                frametime: fourFramesTime,
                framecount: 4
+       },
+       mapEntity: Entity {
+               animation: SimpleAnimation{
+                       sprite: Sprite {
+                               image: :"guy-map.png",
+                               size: <32,64>
+                       },
+                       frametime: 120,
+                       framecount: 2
+               },
+               spriteOffset: <0,-32>
        }
 }
 
@@ -271,7 +317,7 @@ Sprite dekarSprite {
 export Hero dekar {
        name: "Dekar",
        level: 1,
-       sprite: dekarSprite,
+       battleSprite: dekarSprite,
        maxHealth: 38,
        health: 38,
        maxMana: 0,
@@ -286,11 +332,13 @@ export Hero dekar {
                gut: 100,
                mgr:   5
        },
+       useMask: maskDekar,
        attackAnimation: ComplexAnimation {
                sprite: dekarSprite,
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 1, row: 0, disposition: < 4, 0> },
                        { column: 1, row: 0, disposition: < 8, 2> },
                        { column: 2, row: 0, disposition: <12, 4> },
@@ -311,7 +359,8 @@ export Hero dekar {
                sprite: dekarSprite,
                frametime: twoFramesTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 0, disposition: < 0, 0> },
                        { column: 3, row: 0, disposition: < 0, 0> },
@@ -332,6 +381,17 @@ export Hero dekar {
                },
                frametime: twoFramesTime,
                framecount: 4
+       },
+       mapEntity: Entity {
+               animation: SimpleAnimation{
+                       sprite: Sprite {
+                               image: :"dekar-map.png",
+                               size: <32,64>
+                       },
+                       frametime: 120,
+                       framecount: 2
+               },
+               spriteOffset: <0,-32>
        }
 }
 
@@ -389,7 +449,8 @@ export BattleResources battleResources {
        numberAnimationPrototype: ComplexAnimation {
                frametime: frameTime,
                repeat: false,
-               frames: [
+               frames:
+               [ ComplexAnimationFrame
                        { column: 0, row: 0, disposition: <  0,  0> },
                        { column: 0, row: 0, disposition: <  0,-26> },
                        { column: 0, row: 0, disposition: <  0,-42> },
@@ -587,4 +648,314 @@ export BattleResources battleResources {
        noEquipmentText: "No equip",
        
        escapeText: "Escapes."
-}
\ No newline at end of file
+}
+
+Font menuFont {
+       sprite: Sprite {
+               image: :"menu-font.png",
+               size: <16, 16>
+       },
+       rowoffset: -2
+}
+Font menuInactiveFont {
+       sprite: Sprite {
+               image: :"menu-font-inactive.png",
+               size: <16, 16>
+       },
+       rowoffset: -2
+}
+Sprite menuCursor {
+       image: :"menu-cursor.png",
+       size: <32, 16>
+}
+Sprite menuActiveCursor {
+       image: :"menu-cursor-active.png",
+       size: <32, 18>
+}
+
+export MenuResources menuResources {
+       menubg: Texture {
+               image: :"menubg.png",
+               size: <64, 64>
+       },
+       normalFont: menuFont,
+       inactiveFont: menuInactiveFont,
+       statusFont: normalFont,
+       statusLabels: Sprite {
+               image: :"status-labels.png",
+               size: <32, 16>
+       },
+       statusFrame: Frame {
+               image: :"status-frame.png",
+               border: <32, 32>,
+               repeat: <32, 32>
+       },
+       mainMenu: MenuProperties {
+               cols: 2,
+               rows: 4,
+               charsPerEntry: 8,
+               rowGap: 8,
+               colGap: 32,
+               cursor: menuCursor,
+               font: menuFont,
+               disabledFont: menuInactiveFont,
+               wrapX: true,
+               wrapY: true
+       },
+       mainMenuItemText: "ITEM",
+       mainMenuSpellText: "SPELL",
+       mainMenuCapsuleText: "CAPSULE",
+       mainMenuEquipmentText: "EQUIP",
+       mainMenuStatusText: "STATUS",
+       mainMenuChangeText: "CHANGE",
+       mainMenuConfigText: "CONFIG",
+       mainMenuScenarioText: "SCENARIO",
+       mainMenuTimeText: "TIME",
+       mainMenuGoldText: "GOLD",
+       heroCursor: Sprite {
+               image: :"hero-cursor.png",
+               size: <64, 16>
+       },
+       heroCursorBlinkTime: 532,
+       noEquipmentText: "No equip",
+       shoulderNav: Sprite {
+               image: :"shoulder-nav.png",
+               size: <160, 16>
+       },
+       atpLabel: "ATP",
+       dfpLabel: "DFP",
+       strLabel: "STR",
+       aglLabel: "AGL",
+       intLabel: "INT",
+       gutLabel: "GUT",
+       mgrLabel: "MGR",
+       hpLabel: "HP",
+       ipLabel: "IP",
+       levelLabel: "LEVEL",
+       experienceLabel: "NOW EXP",
+       nextLevelLabel: "NEXT LEVEL",
+       statusMenu: MenuProperties {
+               cols: 2,
+               rows: 1,
+               charsPerEntry: 6,
+               colGap: 16,
+               cursor: menuCursor,
+               font: menuFont,
+               wrapX: true
+       },
+       nextLabel: "NEXT",
+       returnLabel: "RETURN",
+       itemMenu: MenuProperties {
+               cols: 3,
+               rows: 1,
+               charsPerEntry: 5,
+               rowGap: 8,
+               colGap: 16,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont,
+               wrapX: true,
+               wrapY: true
+       },
+       itemMenuUseText: "USE",
+       itemMenuSortText: "SORT",
+       itemMenuDropText: "DROP",
+       itemMenuSelectText: "SELECT",
+       inventoryMenu: MenuProperties {
+               cols: 1,
+               rows: 6,
+               charsPerEntry: 13,
+               rowGap: 8,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont,
+               disabledFont: menuInactiveFont,
+               iconSpace: 16,
+               charsPerNumber: 2,
+               delimiter: ":",
+               thirdColumnHack: 1
+       },
+       spellMenu: MenuProperties {
+               cols: 2,
+               rows: 6,
+               charsPerEntry: 8,
+               rowGap: 8,
+               colGap: 48,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont,
+               disabledFont: menuInactiveFont,
+               charsPerNumber: 2,
+               delimiter: ":"
+       },
+       equipmentActionMenu: MenuProperties {
+               cols: 1,
+               rows: 5,
+               charsPerEntry: 10,
+               rowGap: 8,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont
+       },
+       equipmentMenu: MenuProperties {
+               cols: 1,
+               rows: 6,
+               charsPerEntry: 12,
+               rowGap: 16,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: normalFont,
+               iconSpace: 16,
+               wrapY: true
+       },
+       equipMenuEquipLabel: "EQUIP",
+       equipMenuStrongestLabel: "STRONGEST",
+       equipMenuRemoveLabel: "REMOVE",
+       equipMenuRemoveAllLabel: "REMOVE ALL",
+       equipMenuDropLabel: "DROP",
+       configMenu: MenuProperties {
+               cols: 1,
+               rows: 4,
+               charsPerEntry: 8,
+               rowGap: 32,
+               cursor: menuCursor,
+               font: menuFont,
+               wrapY: true
+       },
+       configMessageSpeedLabel: "MESSAGE\n   SPEED",
+       configMessageSpeedFast: "FAST",
+       configMessageSpeedNormal: "NORMAL",
+       configMessageSpeedSlow: "SLOW",
+       configBattleCursorLabel: "BATTLE\n  CURSOR",
+       configStatusCursorLabel: "STATUS\n  CURSOR",
+       configCursorClear: "CLEAR",
+       configCursorMemory: "MEMORY",
+       configMusicLabel: "MUSIC",
+       configMusicStereo: "STEREO",
+       configMusicMono: "MONO",
+       scenarioMenu: MenuProperties {
+               cols: 1,
+               rows: 6,
+               charsPerEntry: 14,
+               rowGap: 8,
+               cursor: menuCursor,
+               font: menuFont
+       },
+       scenarioMenuHeadline: "SCENARIO ITEM",
+       capsulebg: Texture {
+               image: :"capsulebg.png",
+               size: <64, 64>
+       },
+       capsuleMenu: MenuProperties {
+               cols: 3,
+               rows: 1,
+               charsPerEntry: 7,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont,
+               thirdColumnHack: 2
+       },
+       capsuleFeedMenu: MenuProperties {
+               cols: 2,
+               rows: 1,
+               charsPerEntry: 7,
+               colGap: 32,
+               cursor: menuCursor,
+               selectedCursor: menuActiveCursor,
+               font: menuFont
+       },
+       capsuleFeedLabel: "FEED",
+       capsuleChangeLabel: "CHANGE",
+       capsuleNameLabel: "NAME",
+       capsuleClassLabel: "CLASS",
+       capsuleAlignmentLabel: "ALI.",
+       capsuleTribeLabel: "TRIBE",
+       capsuleAttack1Label: "SP.1",
+       capsuleAttack2Label: "SP.2",
+       capsuleAttack3Label: "SP.3",
+       capsuleNoAttackText: "Nothing",
+       capsuleNotHungryText: "I'm not hungry.",
+       capsuleNameSelect: CharSelect {
+               font: menuFont,
+               cursor: Sprite {
+                       image: :"alpha-cursor.png",
+                       size: <20, 28>
+               },
+               chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!?  z!?  ",
+               width: 10,
+               groupX: 5
+       },
+       capsuleSelectTopLeft: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 8>,
+               offset: <64, 0>
+       },
+       capsuleSelectTopRight: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 8>,
+               offset: <128, 0>
+       },
+       capsuleSelectTopRepeat: Texture {
+               image: :"capsule-sprites.png",
+               size: <32, 8>,
+               offset: <96, 0>
+       },
+       capsuleSelectBottomLeft: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 32>,
+               offset: <0, 32>
+       },
+       capsuleSelectBottomRight: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 32>,
+               offset: <128, 64>
+       },
+       capsuleSelectBottomRepeat: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 32>,
+               offset: <0, 64>
+       },
+       capsuleSelectLeftRepeat: Texture {
+               image: :"capsule-sprites.png",
+               size: <32, 32>
+       },
+       capsuleSelectRightRepeat: Texture {
+               image: :"capsule-sprites.png",
+               size: <32, 32>,
+               offset: <128, 32>
+       },
+       capsuleSelectLadder: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 24>,
+               offset: <64, 8>
+       },
+       capsuleSelectCursor: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 24>,
+               offset: <128, 8>
+       },
+       capsuleAlignmentWheel: Sprite {
+               image: :"capsule-sprites.png",
+               size: <128, 128>,
+               offset: <0, 128>
+       },
+       capsuleAlignmentCursor: Sprite {
+               image: :"capsule-sprites.png",
+               size: <32, 32>,
+               offset: <128, 128>
+       },
+       capsuleGrowthLabel: Sprite {
+               image: :"capsule-feed.png",
+               size: <32, 10>
+       },
+       capsuleGrowthBar: Sprite {
+               image: :"capsule-feed.png",
+               size: <8, 10>,
+               offset: <8, 10>
+       },
+       capsuleGrowthBarFilled: Sprite {
+               image: :"capsule-feed.png",
+               size: <8, 10>,
+               offset: <0, 10>
+       }
+}