6 Number twoFramesTime 66
7 Number fourFramesTime 132
8 Number fiveFramesTime 165 // darn, i really need to implement expressions
10 export PartyLayout monstersLayout {
18 export PartyLayout heroesLayout {
29 image: :"monster.png",
33 export Monster lizard {
48 attackAnimation: ComplexAnimation {
50 frametime: fourFramesTime,
53 [ ComplexAnimationFrame
54 { column: 0, row: 1, disposition: < 0, 16> },
55 { column: 0, row: 0, disposition: < 0, 16> },
56 { column: 0, row: 1, disposition: < 0, 16> },
57 { column: 0, row: 0, disposition: < 0, 16> }
60 meleeAnimation: SimpleAnimation {
62 image: :"attack-monster.png",
77 battleSprite: maximSprite,
96 attackAnimation: ComplexAnimation {
101 [ ComplexAnimationFrame
102 { column: 1, row: 0, disposition: < 0, 0> },
103 { column: 1, row: 0, disposition: < 0, 0> },
104 { column: 1, row: 0, disposition: < 0, 0> },
105 { column: 1, row: 0, disposition: < 0, 0> },
106 { column: 1, row: 0, disposition: < 0, 0> },
107 { column: 1, row: 0, disposition: < 0, 0> },
108 { column: 1, row: 0, disposition: < 0, 0> },
109 { column: 1, row: 0, disposition: < 4,-1> },
110 { column: 1, row: 0, disposition: < 4,-1> },
111 { column: 2, row: 0, disposition: < 4,-2> },
112 { column: 2, row: 0, disposition: < 4,-2> },
113 { column: 2, row: 0, disposition: < 6,-2> },
114 { column: 2, row: 0, disposition: < 6,-2> },
115 { column: 2, row: 1, disposition: < 6,-1> },
116 { column: 2, row: 1, disposition: < 3,-1> },
117 { column: 2, row: 1, disposition: < 3,-1> },
118 { column: 2, row: 1, disposition: < 0, 0> },
119 { column: 2, row: 2, disposition: < 0, 0> },
120 { column: 2, row: 2, disposition: < 0, 0> },
121 { column: 2, row: 2, disposition: < 2, 0> },
122 { column: 1, row: 0, disposition: < 0, 0> },
123 { column: 1, row: 0, disposition: < 0, 0> },
124 { column: 1, row: 0, disposition: < 0, 0> },
125 { column: 1, row: 0, disposition: < 0, 0> },
126 { column: 1, row: 0, disposition: < 0, 0> },
127 { column: 1, row: 0, disposition: < 0, 0> },
128 { column: 1, row: 0, disposition: < 0, 0> }
131 spellAnimation: ComplexAnimation {
133 frametime: fiveFramesTime,
136 [ ComplexAnimationFrame
137 { column: 3, row: 0, disposition: < 0, 0> },
138 { column: 3, row: 0, disposition: < 0, 0> },
139 { column: 3, row: 1, disposition: < 0, 0> }
142 meleeAnimation: SimpleAnimation {
144 image: :"melee-maxim.png",
147 frametime: twoFramesTime,
151 animation: SimpleAnimation{
153 image: :"maxim-map.png",
159 spriteOffset: <0,-32>
170 battleSprite: selanSprite,
186 attackAnimation: ComplexAnimation {
188 frametime: frameTime,
191 [ ComplexAnimationFrame
192 { column: 1, row: 0, disposition: < 4, 0> },
193 { column: 1, row: 0, disposition: < 4, 0> },
194 { column: 1, row: 0, disposition: < 8, 2> },
195 { column: 2, row: 0, disposition: <10, 4> },
196 { column: 2, row: 0, disposition: <14, 4> },
197 { column: 2, row: 0, disposition: <12, 2> },
198 { column: 2, row: 0, disposition: <12, 2> },
199 { column: 2, row: 0, disposition: <12, 2> },
200 { column: 2, row: 1, disposition: <14, 2> },
201 { column: 2, row: 1, disposition: <14, 2> },
202 { column: 2, row: 1, disposition: < 2, 0> },
203 { column: 2, row: 2, disposition: <-2,-4> },
204 { column: 2, row: 2, disposition: <-8,-8> },
205 { column: 2, row: 2, disposition: < 0, 0> }
208 spellAnimation: ComplexAnimation {
210 frametime: frameTime,
213 [ ComplexAnimationFrame
214 { column: 3, row: 0, disposition: < 0, 0> },
215 { column: 3, row: 0, disposition: < 0, 0> },
216 { column: 3, row: 0, disposition: < 0, 0> },
217 { column: 3, row: 1, disposition: < 0, 0> },
218 { column: 3, row: 1, disposition: < 0, 0> },
219 { column: 3, row: 2, disposition: < 0, 0> },
220 { column: 3, row: 2, disposition: < 0, 0> },
221 { column: 3, row: 2, disposition: < 0, 0> },
222 { column: 3, row: 3, disposition: < 0, 0> },
223 { column: 3, row: 3, disposition: < 0, 0> }
226 meleeAnimation: SimpleAnimation {
228 image: :"melee-selan.png",
231 frametime: twoFramesTime,
235 animation: SimpleAnimation{
237 image: :"selan-map.png",
243 spriteOffset: <0,-32>
254 battleSprite: guySprite,
270 attackAnimation: ComplexAnimation {
272 frametime: frameTime,
275 [ ComplexAnimationFrame
276 { column: 1, row: 0, disposition: <-4, 0> },
277 { column: 1, row: 0, disposition: <-4, 0> },
278 { column: 1, row: 0, disposition: <-8, 0> },
279 { column: 1, row: 0, disposition: <-8, 0> },
280 { column: 2, row: 0, disposition: <-8, 0> },
281 { column: 2, row: 0, disposition: <-8, 0> },
282 { column: 2, row: 0, disposition: <-4, 0> },
283 { column: 2, row: 0, disposition: < 0, 0> },
284 { column: 2, row: 0, disposition: < 0, 0> },
285 { column: 2, row: 1, disposition: < 0, 0> },
286 { column: 2, row: 1, disposition: < 4, 0> },
287 { column: 2, row: 1, disposition: <10, 0> },
288 { column: 2, row: 2, disposition: <10, 0> },
289 { column: 2, row: 2, disposition: < 0, 0> }
292 meleeAnimation: SimpleAnimation {
294 image: :"melee-guy.png",
297 frametime: fourFramesTime,
301 animation: SimpleAnimation{
303 image: :"guy-map.png",
309 spriteOffset: <0,-32>
320 battleSprite: dekarSprite,
336 attackAnimation: ComplexAnimation {
338 frametime: frameTime,
341 [ ComplexAnimationFrame
342 { column: 1, row: 0, disposition: < 4, 0> },
343 { column: 1, row: 0, disposition: < 8, 2> },
344 { column: 2, row: 0, disposition: <12, 4> },
345 { column: 2, row: 0, disposition: <16, 4> },
346 { column: 2, row: 0, disposition: <10, 2> },
347 { column: 2, row: 0, disposition: <10, 2> },
348 { column: 2, row: 0, disposition: <10, 2> },
349 { column: 2, row: 0, disposition: <10, 2> },
350 { column: 2, row: 1, disposition: < 6, 2> },
351 { column: 2, row: 1, disposition: < 0, 0> },
352 { column: 2, row: 2, disposition: <-2, 0> },
353 { column: 2, row: 2, disposition: < 0, 0> },
354 { column: 2, row: 2, disposition: < 0, 0> },
355 { column: 2, row: 2, disposition: < 0, 0> }
358 spellAnimation: ComplexAnimation {
360 frametime: twoFramesTime,
363 [ ComplexAnimationFrame
364 { column: 3, row: 0, disposition: < 0, 0> },
365 { column: 3, row: 0, disposition: < 0, 0> },
366 { column: 3, row: 0, disposition: < 0, 0> },
367 { column: 3, row: 0, disposition: < 0, 0> },
368 { column: 3, row: 0, disposition: < 0, 0> },
369 { column: 3, row: 0, disposition: < 0, 0> },
370 { column: 3, row: 1, disposition: < 0, 0> },
371 { column: 3, row: 1, disposition: < 0, 0> },
372 { column: 3, row: 2, disposition: < 0, 0> },
373 { column: 3, row: 2, disposition: < 0, 0> },
374 { column: 3, row: 2, disposition: < 0, 0> }
377 meleeAnimation: SimpleAnimation {
379 image: :"melee-dekar.png",
382 frametime: twoFramesTime,
386 animation: SimpleAnimation{
388 image: :"dekar-map.png",
394 spriteOffset: <0,-32>
399 image: :"cursor-hand.png",
405 image: :"normal-font.png",
413 image: :"disabled-font.png",
419 export BattleResources battleResources {
421 image: :"swap-cursor.png",
424 attackIcons: Sprite {
425 image: :"attack-type-icons.png",
428 attackChoiceIcons: Sprite {
429 image: :"attack-choice-icons.png",
433 image: :"move-icons.png",
438 image: :"title-frame.png",
443 image: :"large-font.png",
449 numberAnimationPrototype: ComplexAnimation {
450 frametime: frameTime,
453 [ ComplexAnimationFrame
454 { column: 0, row: 0, disposition: < 0, 0> },
455 { column: 0, row: 0, disposition: < 0,-26> },
456 { column: 0, row: 0, disposition: < 0,-42> },
457 { column: 0, row: 0, disposition: < 0,-48> },
458 { column: 0, row: 0, disposition: < 0,-42> },
459 { column: 0, row: 0, disposition: < 0,-26> },
460 { column: 0, row: 0, disposition: < 0, 0> },
461 { column: 0, row: 0, disposition: < 0,-12> },
462 { column: 0, row: 0, disposition: < 0,-20> },
463 { column: 0, row: 0, disposition: < 0,-24> },
464 { column: 0, row: 0, disposition: < 0,-20> },
465 { column: 0, row: 0, disposition: < 0,-12> },
466 { column: 0, row: 0, disposition: < 0, 0> },
467 { column: 0, row: 0, disposition: < 0, -6> },
468 { column: 0, row: 0, disposition: < 0,-10> },
469 { column: 0, row: 0, disposition: < 0,-12> },
470 { column: 0, row: 0, disposition: < 0,-10> },
471 { column: 0, row: 0, disposition: < 0, -6> },
472 { column: 0, row: 0, disposition: < 0, 0> },
473 { column: 0, row: 0, disposition: < 0, 0> },
474 { column: 0, row: 0, disposition: < 0, 0> },
475 { column: 0, row: 0, disposition: < 0, 0> },
476 { column: 0, row: 0, disposition: < 0, 0> },
477 { column: 0, row: 0, disposition: < 0, 0> },
478 { column: 0, row: 0, disposition: < 0, 0> },
479 { column: 0, row: 0, disposition: < 0, 0> },
480 { column: 0, row: 0, disposition: < 0, 0> },
481 { column: 0, row: 0, disposition: < 0, 0> },
482 { column: 0, row: 0, disposition: < 0, 0> },
483 { column: 0, row: 0, disposition: < 0, 0> },
484 { column: 0, row: 0, disposition: < 0, 0> },
485 { column: 0, row: 0, disposition: < 0, 0> },
486 { column: 0, row: 0, disposition: < 0,-36> },
487 { column: 0, row: 0, disposition: < 0,-32> },
488 { column: 0, row: 0, disposition: < 0,-18> }
491 bigNumberSprite: Sprite {
492 image: :"big-numbers.png",
495 greenNumberSprite: Sprite {
496 image: :"big-green-numbers.png",
500 heroTagLabels: Sprite {
501 image: :"hero-tag-sprites.png",
516 image: :"numbers.png",
522 activeHeroTagFrame: Frame {
523 image: :"tag-frames.png",
526 heroTagFrame: Frame {
527 image: :"tag-frames.png",
532 smallHeroTagFrame: Frame {
533 image: :"small-tag-frame.png",
536 lastSmallHeroTagFrame: Frame {
537 image: :"small-tag-frame.png",
541 heroesBgColor: (24, 40, 49),
544 image: :"gauges.png",
553 image: :"gauges.png",
562 image: :"gauges.png",
572 image: :"select-frame.png",
575 normalFont: normalFont,
576 disabledFont: disabledFont,
578 image: :"cursor-hand.png",
582 weaponTargetCursor: Sprite {
583 image: :"targeting-icons.png",
586 magicTargetCursor: Sprite {
587 image: :"targeting-icons.png",
591 itemTargetCursor: Sprite {
592 image: :"targeting-icons.png",
597 weaponMenuIcon: swordIcon,
598 armorMenuIcon: armorIcon,
599 shieldMenuIcon: shieldIcon,
600 helmetMenuIcon: helmetIcon,
601 ringMenuIcon: ringIcon,
602 jewelMenuIcon: jewelIcon,
604 spellMenuHeadline: "Please choose a spell.",
605 spellMenuProperties: MenuProperties {
607 disabledFont: disabledFont,
619 itemMenuHeadline: "Please choose an item.",
620 itemMenuProperties: MenuProperties {
622 disabledFont: disabledFont,
634 ikariMenuHeadline: "Please choose equipment.",
635 ikariMenuProperties: MenuProperties {
637 disabledFont: disabledFont,
645 charsPerAdditionalText: 12,
646 additionalTextGap: 16
648 noEquipmentText: "No equip",
650 escapeText: "Escapes."
655 image: :"menu-font.png",
660 Font menuInactiveFont {
662 image: :"menu-font-inactive.png",
668 image: :"menu-cursor.png",
671 Sprite menuActiveCursor {
672 image: :"menu-cursor-active.png",
676 export MenuResources menuResources {
678 image: :"menubg.png",
681 normalFont: menuFont,
682 inactiveFont: menuInactiveFont,
683 statusFont: normalFont,
684 statusLabels: Sprite {
685 image: :"status-labels.png",
689 image: :"status-frame.png",
693 mainMenu: MenuProperties {
701 disabledFont: menuInactiveFont,
705 mainMenuItemText: "ITEM",
706 mainMenuSpellText: "SPELL",
707 mainMenuCapsuleText: "CAPSULE",
708 mainMenuEquipmentText: "EQUIP",
709 mainMenuStatusText: "STATUS",
710 mainMenuChangeText: "CHANGE",
711 mainMenuConfigText: "CONFIG",
712 mainMenuScenarioText: "SCENARIO",
713 mainMenuTimeText: "TIME",
714 mainMenuGoldText: "GOLD",
716 image: :"hero-cursor.png",
719 heroCursorBlinkTime: 532,
720 noEquipmentText: "No equip",
721 shoulderNav: Sprite {
722 image: :"shoulder-nav.png",
735 experienceLabel: "NOW EXP",
736 nextLevelLabel: "NEXT LEVEL",
737 statusMenu: MenuProperties {
747 returnLabel: "RETURN",
748 itemMenu: MenuProperties {
755 selectedCursor: menuActiveCursor,
760 itemMenuUseText: "USE",
761 itemMenuSortText: "SORT",
762 itemMenuDropText: "DROP",
763 itemMenuSelectText: "SELECT",
764 inventoryMenu: MenuProperties {
770 selectedCursor: menuActiveCursor,
772 disabledFont: menuInactiveFont,
778 spellMenu: MenuProperties {
785 selectedCursor: menuActiveCursor,
787 disabledFont: menuInactiveFont,
791 equipmentActionMenu: MenuProperties {
797 selectedCursor: menuActiveCursor,
800 equipmentMenu: MenuProperties {
806 selectedCursor: menuActiveCursor,
811 equipMenuEquipLabel: "EQUIP",
812 equipMenuStrongestLabel: "STRONGEST",
813 equipMenuRemoveLabel: "REMOVE",
814 equipMenuRemoveAllLabel: "REMOVE ALL",
815 equipMenuDropLabel: "DROP",
816 configMenu: MenuProperties {
825 configMessageSpeedLabel: "MESSAGE\n SPEED",
826 configMessageSpeedFast: "FAST",
827 configMessageSpeedNormal: "NORMAL",
828 configMessageSpeedSlow: "SLOW",
829 configBattleCursorLabel: "BATTLE\n CURSOR",
830 configStatusCursorLabel: "STATUS\n CURSOR",
831 configCursorClear: "CLEAR",
832 configCursorMemory: "MEMORY",
833 configMusicLabel: "MUSIC",
834 configMusicStereo: "STEREO",
835 configMusicMono: "MONO",
836 scenarioMenu: MenuProperties {
844 scenarioMenuHeadline: "SCENARIO ITEM",
846 image: :"capsulebg.png",
849 capsuleMenu: MenuProperties {
854 selectedCursor: menuActiveCursor,
858 capsuleFeedMenu: MenuProperties {
864 selectedCursor: menuActiveCursor,
867 capsuleFeedLabel: "FEED",
868 capsuleChangeLabel: "CHANGE",
869 capsuleNameLabel: "NAME",
870 capsuleClassLabel: "CLASS",
871 capsuleAlignmentLabel: "ALI.",
872 capsuleTribeLabel: "TRIBE",
873 capsuleAttack1Label: "SP.1",
874 capsuleAttack2Label: "SP.2",
875 capsuleAttack3Label: "SP.3",
876 capsuleNoAttackText: "Nothing",
877 capsuleNotHungryText: "I'm not hungry."