-include "ikaris.l2s"
-include "items.l2s"
-include "spells.l2s"
+include "ikaris.l2h"
+include "items.l2h"
+include "spells.l2h"
Number frameTime 33
Number twoFramesTime 66
< 48,136>,
<128,136>,
< 80,152>,
- <160,152>
+ <160,152>,
+ <216,144>
]
}
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> },
export Hero maxim {
name: "Maxim",
level: 1,
- sprite: maximSprite,
+ battleSprite: maximSprite,
maxHealth: 33,
health: 33,
maxMana: 20,
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> },
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> }
},
frametime: twoFramesTime,
framecount: 4
+ },
+ mapEntity: Entity {
+ animation: SimpleAnimation{
+ sprite: Sprite {
+ image: :"maxim-map.png",
+ size: <32,64>
+ },
+ frametime: 120,
+ framecount: 2
+ },
+ spriteOffset: <0,-32>
}
}
export Hero selan {
name: "Selan",
level: 1,
- sprite: selanSprite,
+ battleSprite: selanSprite,
maxHealth: 28,
health: 28,
maxMana: 23,
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> },
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> },
},
frametime: twoFramesTime,
framecount: 4
+ },
+ mapEntity: Entity {
+ animation: SimpleAnimation{
+ sprite: Sprite {
+ image: :"selan-map.png",
+ size: <32,64>
+ },
+ frametime: 120,
+ framecount: 2
+ },
+ spriteOffset: <0,-32>
}
}
export Hero guy {
name: "Guy",
level: 1,
- sprite: guySprite,
+ battleSprite: guySprite,
maxHealth: 38,
health: 38,
maxMana: 0,
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> },
},
frametime: fourFramesTime,
framecount: 4
+ },
+ mapEntity: Entity {
+ animation: SimpleAnimation{
+ sprite: Sprite {
+ image: :"guy-map.png",
+ size: <32,64>
+ },
+ frametime: 120,
+ framecount: 2
+ },
+ spriteOffset: <0,-32>
}
}
export Hero dekar {
name: "Dekar",
level: 1,
- sprite: dekarSprite,
+ battleSprite: dekarSprite,
maxHealth: 38,
health: 38,
maxMana: 0,
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> },
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> },
},
frametime: twoFramesTime,
framecount: 4
+ },
+ mapEntity: Entity {
+ animation: SimpleAnimation{
+ sprite: Sprite {
+ image: :"dekar-map.png",
+ size: <32,64>
+ },
+ frametime: 120,
+ framecount: 2
+ },
+ spriteOffset: <0,-32>
}
}
-export Sprite swapCursor {
- image: :"swap-cursor.png",
- size: <32,32>
-}
-export Sprite attackIcons {
- image: :"attack-type-icons.png",
- size: <32,32>
-}
-export Sprite attackChoiceIcons {
- image: :"attack-choice-icons.png",
- size: <16,16>
-}
-export Sprite moveIcons {
- image: :"move-icons.png",
+Sprite handCursor {
+ image: :"cursor-hand.png",
size: <32,32>
}
-export Frame titleFrame {
- image: :"title-frame.png",
- border: <16,16>
-}
-
-export Font largeFont {
+Font normalFont {
sprite: Sprite {
- image: :"large-font.png",
- size: <16,32>
+ image: :"normal-font.png",
+ size: <16,16>
},
rowoffset: -2
}
-export ComplexAnimation numberAnimationPrototype {
- frametime: frameTime,
- repeat: false,
- frames: [
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0,-26> },
- { column: 0, row: 0, disposition: < 0,-42> },
- { column: 0, row: 0, disposition: < 0,-48> },
- { column: 0, row: 0, disposition: < 0,-42> },
- { column: 0, row: 0, disposition: < 0,-26> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0,-12> },
- { column: 0, row: 0, disposition: < 0,-20> },
- { column: 0, row: 0, disposition: < 0,-24> },
- { column: 0, row: 0, disposition: < 0,-20> },
- { column: 0, row: 0, disposition: < 0,-12> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, -6> },
- { column: 0, row: 0, disposition: < 0,-10> },
- { column: 0, row: 0, disposition: < 0,-12> },
- { column: 0, row: 0, disposition: < 0,-10> },
- { column: 0, row: 0, disposition: < 0, -6> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0, 0> },
- { column: 0, row: 0, disposition: < 0,-36> },
- { column: 0, row: 0, disposition: < 0,-32> },
- { column: 0, row: 0, disposition: < 0,-18> }
- ]
-}
-export Sprite bigNumbers {
- image: :"big-numbers.png",
- size: <16,32>
-}
-export Sprite bigGreenNumbers {
- image: :"big-green-numbers.png",
- size: <16,32>
-}
-
-export Sprite heroTagLabels {
- image: :"hero-tag-sprites.png",
- size: <32,16>
-}
-export Font heroTagFont {
+Font disabledFont {
sprite: Sprite {
- image: :"numbers.png",
+ image: :"disabled-font.png",
size: <16,16>
},
- rowoffset: -3
-}
-
-export Frame activeHeroTagFrame {
- image: :"tag-frames.png",
- border: <16,16>
-}
-export Frame heroTagFrame {
- image: :"tag-frames.png",
- border: <16,16>,
- offset: < 0,33>
-}
-
-export Frame smallHeroTagFrame {
- image: :"small-tag-frame.png",
- border: <8,16>
-}
-export Frame lastSmallHeroTagFrame {
- image: :"small-tag-frame.png",
- border: <8,16>,
- offset: <0,33>
+ rowoffset: -2
}
-export Color heroesBgColor (24, 40, 49)
-export Gauge healthGauge {
- image: :"gauges.png",
- full: <0,16>,
- empty: <0, 0>,
- height: 16,
- start: 6,
- repeat: 1,
- end: 6
-}
-export Gauge manaGauge {
- image: :"gauges.png",
- full: <0,32>,
- empty: <0, 0>,
- height: 16,
- start: 6,
- repeat: 1,
- end: 6
-}
-export Gauge ikariGauge {
- image: :"gauges.png",
- full: <0,48>,
- empty: <0, 0>,
- height: 16,
- start: 6,
- repeat: 1,
- end: 6
+export BattleResources battleResources {
+ swapCursor: Sprite {
+ image: :"swap-cursor.png",
+ size: <32,32>
+ },
+ attackIcons: Sprite {
+ image: :"attack-type-icons.png",
+ size: <32,32>
+ },
+ attackChoiceIcons: Sprite {
+ image: :"attack-choice-icons.png",
+ size: <16,16>
+ },
+ moveIcons: Sprite {
+ image: :"move-icons.png",
+ size: <32,32>
+ },
+
+ titleFrame: Frame {
+ image: :"title-frame.png",
+ border: <16,16>
+ },
+ titleFont: Font {
+ sprite: Sprite {
+ image: :"large-font.png",
+ size: <16,32>
+ },
+ rowoffset: -2
+ },
+
+ numberAnimationPrototype: ComplexAnimation {
+ frametime: frameTime,
+ repeat: false,
+ frames:
+ [ ComplexAnimationFrame
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0,-26> },
+ { column: 0, row: 0, disposition: < 0,-42> },
+ { column: 0, row: 0, disposition: < 0,-48> },
+ { column: 0, row: 0, disposition: < 0,-42> },
+ { column: 0, row: 0, disposition: < 0,-26> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0,-12> },
+ { column: 0, row: 0, disposition: < 0,-20> },
+ { column: 0, row: 0, disposition: < 0,-24> },
+ { column: 0, row: 0, disposition: < 0,-20> },
+ { column: 0, row: 0, disposition: < 0,-12> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, -6> },
+ { column: 0, row: 0, disposition: < 0,-10> },
+ { column: 0, row: 0, disposition: < 0,-12> },
+ { column: 0, row: 0, disposition: < 0,-10> },
+ { column: 0, row: 0, disposition: < 0, -6> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0, 0> },
+ { column: 0, row: 0, disposition: < 0,-36> },
+ { column: 0, row: 0, disposition: < 0,-32> },
+ { column: 0, row: 0, disposition: < 0,-18> }
+ ]
+ },
+ bigNumberSprite: Sprite {
+ image: :"big-numbers.png",
+ size: <16,32>
+ },
+ greenNumberSprite: Sprite {
+ image: :"big-green-numbers.png",
+ size: <16,32>
+ },
+
+ heroTagLabels: Sprite {
+ image: :"hero-tag-sprites.png",
+ size: <32,16>
+ },
+ levelLabelCol: 0,
+ levelLabelRow: 0,
+ healthLabelCol: 0,
+ healthLabelRow: 1,
+ manaLabelCol: 0,
+ manaLabelRow: 2,
+ moveLabelCol: 0,
+ moveLabelRow: 3,
+ ikariLabelCol: 0,
+ ikariLabelRow: 4,
+ heroTagFont: Font {
+ sprite: Sprite {
+ image: :"numbers.png",
+ size: <16,16>
+ },
+ rowoffset: -3
+ },
+
+ activeHeroTagFrame: Frame {
+ image: :"tag-frames.png",
+ border: <16,16>
+ },
+ heroTagFrame: Frame {
+ image: :"tag-frames.png",
+ border: <16,16>,
+ offset: < 0,33>
+ },
+
+ smallHeroTagFrame: Frame {
+ image: :"small-tag-frame.png",
+ border: <8,16>
+ },
+ lastSmallHeroTagFrame: Frame {
+ image: :"small-tag-frame.png",
+ border: <8,16>,
+ offset: <0,33>
+ },
+ heroesBgColor: (24, 40, 49),
+
+ healthGauge: Gauge {
+ image: :"gauges.png",
+ full: <0,16>,
+ empty: <0, 0>,
+ height: 16,
+ start: 6,
+ repeat: 1,
+ end: 6
+ },
+ manaGauge: Gauge {
+ image: :"gauges.png",
+ full: <0,32>,
+ empty: <0, 0>,
+ height: 16,
+ start: 6,
+ repeat: 1,
+ end: 6
+ },
+ ikariGauge: Gauge {
+ image: :"gauges.png",
+ full: <0,48>,
+ empty: <0, 0>,
+ height: 16,
+ start: 6,
+ repeat: 1,
+ end: 6
+ },
+
+ selectFrame: Frame {
+ image: :"select-frame.png",
+ border: <16,16>
+ },
+ normalFont: normalFont,
+ disabledFont: disabledFont,
+ menuCursor: Sprite {
+ image: :"cursor-hand.png",
+ size: <32,32>
+ },
+
+ weaponTargetCursor: Sprite {
+ image: :"targeting-icons.png",
+ size: <32,32>
+ },
+ magicTargetCursor: Sprite {
+ image: :"targeting-icons.png",
+ size: <32,32>,
+ offset: <0,32>
+ },
+ itemTargetCursor: Sprite {
+ image: :"targeting-icons.png",
+ size: <32,32>,
+ offset: <0,64>
+ },
+
+ weaponMenuIcon: swordIcon,
+ armorMenuIcon: armorIcon,
+ shieldMenuIcon: shieldIcon,
+ helmetMenuIcon: helmetIcon,
+ ringMenuIcon: ringIcon,
+ jewelMenuIcon: jewelIcon,
+
+ spellMenuHeadline: "Please choose a spell.",
+ spellMenuProperties: MenuProperties {
+ font: normalFont,
+ disabledFont: disabledFont,
+ cursor: handCursor,
+ charsPerEntry: 9,
+ rows: 6,
+ rowGap: 8,
+ iconSpace: 0,
+ cols: 2,
+ colGap: 32,
+ charsPerNumber: 2,
+ delimiter: ":"
+ },
+
+ itemMenuHeadline: "Please choose an item.",
+ itemMenuProperties: MenuProperties {
+ font: normalFont,
+ disabledFont: disabledFont,
+ cursor: handCursor,
+ charsPerEntry: 15,
+ rows: 6,
+ rowGap: 8,
+ iconSpace: 16,
+ cols: 1,
+ colGap: 32,
+ charsPerNumber: 2,
+ delimiter: ":"
+ },
+
+ ikariMenuHeadline: "Please choose equipment.",
+ ikariMenuProperties: MenuProperties {
+ font: normalFont,
+ disabledFont: disabledFont,
+ cursor: handCursor,
+ charsPerEntry: 12,
+ rows: 6,
+ rowGap: 8,
+ iconSpace: 16,
+ cols: 1,
+ colGap: 32,
+ charsPerAdditionalText: 12,
+ additionalTextGap: 16
+ },
+ noEquipmentText: "No equip",
+
+ escapeText: "Escapes."
}
-export Frame selectFrame {
- image: :"select-frame.png",
- border: <16,16>
-}
-export Font normalFont {
+Font menuFont {
sprite: Sprite {
- image: :"normal-font.png",
- size: <16,16>
+ image: :"menu-font.png",
+ size: <16, 16>
},
rowoffset: -2
}
-export Font disabledFont {
+Font menuInactiveFont {
sprite: Sprite {
- image: :"disabled-font.png",
- size: <16,16>
+ image: :"menu-font-inactive.png",
+ size: <16, 16>
},
rowoffset: -2
}
-export Sprite handCursor {
- image: :"cursor-hand.png",
- size: <32,32>
-}
-
-export Sprite weaponTargetCursor {
- image: :"targeting-icons.png",
- size: <32,32>
+Sprite menuCursor {
+ image: :"menu-cursor.png",
+ size: <32, 16>
}
-export Sprite magicTargetCursor {
- image: :"targeting-icons.png",
- size: <32,32>,
- offset: <0,32>
-}
-export Sprite itemTargetCursor {
- image: :"targeting-icons.png",
- size: <32,32>,
- offset: <0,64>
+Sprite menuActiveCursor {
+ image: :"menu-cursor-active.png",
+ size: <32, 18>
}
-export String spellMenuHeadline "Please choose a spell."
-export String itemMenuHeadline "Please choose an item."
-export String ikariMenuHeadline "Please choose equipment."
-export String noEquipmentText "No equip"
-export String escapeText "Escapes."
+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>
+ }
+}