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 ComplexAnimation menuActiveCursorAnimation {
682 sprite: menuActiveCursor,
683 frametime: fourFramesTime,
686 [ ComplexAnimationFrame
702 export MenuResources menuResources {
704 image: :"menubg.png",
707 normalFont: menuFont,
708 inactiveFont: menuInactiveFont,
709 statusFont: normalFont,
710 statusLabels: Sprite {
711 image: :"status-labels.png",
715 image: :"status-frame.png",
719 mainMenu: MenuProperties {
726 cursorAnimation: menuCursorAnimation,
728 disabledFont: menuInactiveFont,
732 mainMenuItemText: "ITEM",
733 mainMenuSpellText: "SPELL",
734 mainMenuCapsuleText: "CAPSULE",
735 mainMenuEquipmentText: "EQUIP",
736 mainMenuStatusText: "STATUS",
737 mainMenuChangeText: "CHANGE",
738 mainMenuConfigText: "CONFIG",
739 mainMenuScenarioText: "SCENARIO",
740 mainMenuTimeText: "TIME",
741 mainMenuGoldText: "GOLD",
743 image: :"hero-cursor.png",
746 heroCursorBlinkTime: 532,
747 noEquipmentText: "No equip",
748 shoulderNav: Sprite {
749 image: :"shoulder-nav.png",
762 experienceLabel: "NOW EXP",
763 nextLevelLabel: "NEXT LEVEL",
764 statusMenu: MenuProperties {
770 cursorAnimation: menuCursorAnimation,
775 returnLabel: "RETURN",
776 itemMenu: MenuProperties {
783 selectedCursor: menuActiveCursor,
784 cursorAnimation: menuCursorAnimation,
785 selectedCursorAnimation: menuActiveCursorAnimation,
790 itemMenuUseText: "USE",
791 itemMenuSortText: "SORT",
792 itemMenuDropText: "DROP",
793 itemMenuSelectText: "SELECT",
794 inventoryMenu: MenuProperties {
800 selectedCursor: menuActiveCursor,
801 cursorAnimation: menuCursorAnimation,
802 selectedCursorAnimation: menuActiveCursorAnimation,
804 disabledFont: menuInactiveFont,
810 spellMenu: MenuProperties {
817 selectedCursor: menuActiveCursor,
818 cursorAnimation: menuCursorAnimation,
819 selectedCursorAnimation: menuActiveCursorAnimation,
821 disabledFont: menuInactiveFont,
825 equipmentActionMenu: MenuProperties {
831 selectedCursor: menuActiveCursor,
832 cursorAnimation: menuCursorAnimation,
833 selectedCursorAnimation: menuActiveCursorAnimation,
836 equipmentMenu: MenuProperties {
842 selectedCursor: menuActiveCursor,
843 cursorAnimation: menuCursorAnimation,
844 selectedCursorAnimation: menuActiveCursorAnimation,
849 equipMenuEquipLabel: "EQUIP",
850 equipMenuStrongestLabel: "STRONGEST",
851 equipMenuRemoveLabel: "REMOVE",
852 equipMenuRemoveAllLabel: "REMOVE ALL",
853 equipMenuDropLabel: "DROP",
854 configMenu: MenuProperties {
860 cursorAnimation: menuCursorAnimation,
864 configMessageSpeedLabel: "MESSAGE\n SPEED",
865 configMessageSpeedFast: "FAST",
866 configMessageSpeedNormal: "NORMAL",
867 configMessageSpeedSlow: "SLOW",
868 configBattleCursorLabel: "BATTLE\n CURSOR",
869 configStatusCursorLabel: "STATUS\n CURSOR",
870 configCursorClear: "CLEAR",
871 configCursorMemory: "MEMORY",
872 configMusicLabel: "MUSIC",
873 configMusicStereo: "STEREO",
874 configMusicMono: "MONO",
875 scenarioMenu: MenuProperties {
881 cursorAnimation: menuCursorAnimation,
884 scenarioMenuHeadline: "SCENARIO ITEM",
886 image: :"capsulebg.png",
889 capsuleMenu: MenuProperties {
894 selectedCursor: menuActiveCursor,
895 cursorAnimation: menuCursorAnimation,
896 selectedCursorAnimation: menuActiveCursorAnimation,
900 capsuleFeedMenu: MenuProperties {
906 selectedCursor: menuActiveCursor,
907 cursorAnimation: menuCursorAnimation,
908 selectedCursorAnimation: menuActiveCursorAnimation,
911 capsuleFeedLabel: "FEED",
912 capsuleChangeLabel: "CHANGE",
913 capsuleNameLabel: "NAME",
914 capsuleClassLabel: "CLASS",
915 capsuleAlignmentLabel: "ALI.",
916 capsuleTribeLabel: "TRIBE",
917 capsuleAttack1Label: "SP.1",
918 capsuleAttack2Label: "SP.2",
919 capsuleAttack3Label: "SP.3",
920 capsuleNoAttackText: "Nothing",
921 capsuleNotHungryText: "I'm not hungry.",
922 capsuleNameSelect: CharSelect {
925 image: :"alpha-cursor.png",
928 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!? z!? ",
932 capsuleSelectTopLeft: Sprite {
933 image: :"capsule-sprites.png",
937 capsuleSelectTopRight: Sprite {
938 image: :"capsule-sprites.png",
942 capsuleSelectTopRepeat: Texture {
943 image: :"capsule-sprites.png",
947 capsuleSelectBottomLeft: Sprite {
948 image: :"capsule-sprites.png",
952 capsuleSelectBottomRight: Sprite {
953 image: :"capsule-sprites.png",
957 capsuleSelectBottomRepeat: Sprite {
958 image: :"capsule-sprites.png",
962 capsuleSelectLeftRepeat: Texture {
963 image: :"capsule-sprites.png",
966 capsuleSelectRightRepeat: Texture {
967 image: :"capsule-sprites.png",
971 capsuleSelectLadder: Sprite {
972 image: :"capsule-sprites.png",
976 capsuleSelectCursor: Sprite {
977 image: :"capsule-sprites.png",
981 capsuleAlignmentWheel: Sprite {
982 image: :"capsule-sprites.png",
986 capsuleAlignmentCursor: Sprite {
987 image: :"capsule-sprites.png",
991 capsuleGrowthLabel: Sprite {
992 image: :"capsule-feed.png",
995 capsuleGrowthBar: Sprite {
996 image: :"capsule-feed.png",
1000 capsuleGrowthBarFilled: Sprite {
1001 image: :"capsule-feed.png",