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",
675 SimpleAnimation menuCursorAnimation {
677 frametime: fourFramesTime,
681 SimpleAnimation menuActiveCursorAnimation {
682 sprite: menuActiveCursor,
683 frametime: fourFramesTime,
688 export MenuResources menuResources {
690 image: :"menubg.png",
693 normalFont: menuFont,
694 inactiveFont: menuInactiveFont,
695 statusFont: normalFont,
696 statusLabels: Sprite {
697 image: :"status-labels.png",
701 image: :"status-frame.png",
705 mainMenu: MenuProperties {
712 cursorAnimation: menuCursorAnimation,
714 disabledFont: menuInactiveFont,
718 mainMenuItemText: "ITEM",
719 mainMenuSpellText: "SPELL",
720 mainMenuCapsuleText: "CAPSULE",
721 mainMenuEquipmentText: "EQUIP",
722 mainMenuStatusText: "STATUS",
723 mainMenuChangeText: "CHANGE",
724 mainMenuConfigText: "CONFIG",
725 mainMenuScenarioText: "SCENARIO",
726 mainMenuTimeText: "TIME",
727 mainMenuGoldText: "GOLD",
729 image: :"hero-cursor.png",
732 heroCursorBlinkTime: 532,
733 noEquipmentText: "No equip",
734 shoulderNav: Sprite {
735 image: :"shoulder-nav.png",
748 experienceLabel: "NOW EXP",
749 nextLevelLabel: "NEXT LEVEL",
750 statusMenu: MenuProperties {
756 cursorAnimation: menuCursorAnimation,
761 returnLabel: "RETURN",
762 itemMenu: MenuProperties {
769 selectedCursor: menuActiveCursor,
770 cursorAnimation: menuCursorAnimation,
771 selectedCursorAnimation: menuActiveCursorAnimation,
776 itemMenuUseText: "USE",
777 itemMenuSortText: "SORT",
778 itemMenuDropText: "DROP",
779 itemMenuSelectText: "SELECT",
780 inventoryMenu: MenuProperties {
786 selectedCursor: menuActiveCursor,
787 cursorAnimation: menuCursorAnimation,
788 selectedCursorAnimation: menuActiveCursorAnimation,
790 disabledFont: menuInactiveFont,
796 spellMenu: MenuProperties {
803 selectedCursor: menuActiveCursor,
804 cursorAnimation: menuCursorAnimation,
805 selectedCursorAnimation: menuActiveCursorAnimation,
807 disabledFont: menuInactiveFont,
811 equipmentActionMenu: MenuProperties {
817 selectedCursor: menuActiveCursor,
818 cursorAnimation: menuCursorAnimation,
819 selectedCursorAnimation: menuActiveCursorAnimation,
822 equipmentMenu: MenuProperties {
828 selectedCursor: menuActiveCursor,
829 cursorAnimation: menuCursorAnimation,
830 selectedCursorAnimation: menuActiveCursorAnimation,
835 equipMenuEquipLabel: "EQUIP",
836 equipMenuStrongestLabel: "STRONGEST",
837 equipMenuRemoveLabel: "REMOVE",
838 equipMenuRemoveAllLabel: "REMOVE ALL",
839 equipMenuDropLabel: "DROP",
840 configMenu: MenuProperties {
846 cursorAnimation: menuCursorAnimation,
850 configMessageSpeedLabel: "MESSAGE\n SPEED",
851 configMessageSpeedFast: "FAST",
852 configMessageSpeedNormal: "NORMAL",
853 configMessageSpeedSlow: "SLOW",
854 configBattleCursorLabel: "BATTLE\n CURSOR",
855 configStatusCursorLabel: "STATUS\n CURSOR",
856 configCursorClear: "CLEAR",
857 configCursorMemory: "MEMORY",
858 configMusicLabel: "MUSIC",
859 configMusicStereo: "STEREO",
860 configMusicMono: "MONO",
861 scenarioMenu: MenuProperties {
867 cursorAnimation: menuCursorAnimation,
870 scenarioMenuHeadline: "SCENARIO ITEM",
872 image: :"capsulebg.png",
875 capsuleMenu: MenuProperties {
880 selectedCursor: menuActiveCursor,
881 cursorAnimation: menuCursorAnimation,
882 selectedCursorAnimation: menuActiveCursorAnimation,
886 capsuleFeedMenu: MenuProperties {
892 selectedCursor: menuActiveCursor,
893 cursorAnimation: menuCursorAnimation,
894 selectedCursorAnimation: menuActiveCursorAnimation,
897 capsuleFeedLabel: "FEED",
898 capsuleChangeLabel: "CHANGE",
899 capsuleNameLabel: "NAME",
900 capsuleClassLabel: "CLASS",
901 capsuleAlignmentLabel: "ALI.",
902 capsuleTribeLabel: "TRIBE",
903 capsuleAttack1Label: "SP.1",
904 capsuleAttack2Label: "SP.2",
905 capsuleAttack3Label: "SP.3",
906 capsuleNoAttackText: "Nothing",
907 capsuleNotHungryText: "I'm not hungry.",
908 capsuleNameSelect: CharSelect {
911 image: :"alpha-cursor.png",
914 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!? z!? ",
918 capsuleSelectTopLeft: Sprite {
919 image: :"capsule-sprites.png",
923 capsuleSelectTopRight: Sprite {
924 image: :"capsule-sprites.png",
928 capsuleSelectTopRepeat: Texture {
929 image: :"capsule-sprites.png",
933 capsuleSelectBottomLeft: Sprite {
934 image: :"capsule-sprites.png",
938 capsuleSelectBottomRight: Sprite {
939 image: :"capsule-sprites.png",
943 capsuleSelectBottomRepeat: Sprite {
944 image: :"capsule-sprites.png",
948 capsuleSelectLeftRepeat: Texture {
949 image: :"capsule-sprites.png",
952 capsuleSelectRightRepeat: Texture {
953 image: :"capsule-sprites.png",
957 capsuleSelectLadder: Sprite {
958 image: :"capsule-sprites.png",
962 capsuleSelectCursor: Sprite {
963 image: :"capsule-sprites.png",
967 capsuleAlignmentWheel: Sprite {
968 image: :"capsule-sprites.png",
972 capsuleAlignmentCursor: Sprite {
973 image: :"capsule-sprites.png",
977 capsuleGrowthLabel: Sprite {
978 image: :"capsule-feed.png",
981 capsuleGrowthBar: Sprite {
982 image: :"capsule-feed.png",
986 capsuleGrowthBarFilled: Sprite {
987 image: :"capsule-feed.png",