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 {
50 attackAnimation: ComplexAnimation {
52 frametime: fourFramesTime,
55 [ ComplexAnimationFrame
56 { column: 0, row: 1, disposition: < 0, 16> },
57 { column: 0, row: 0, disposition: < 0, 16> },
58 { column: 0, row: 1, disposition: < 0, 16> },
59 { column: 0, row: 0, disposition: < 0, 16> }
62 meleeAnimation: SimpleAnimation {
64 image: :"attack-monster.png",
79 battleSprite: maximSprite,
98 attackAnimation: ComplexAnimation {
100 frametime: frameTime,
103 [ ComplexAnimationFrame
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: < 0, 0> },
110 { column: 1, row: 0, disposition: < 0, 0> },
111 { column: 1, row: 0, disposition: < 4,-1> },
112 { column: 1, row: 0, disposition: < 4,-1> },
113 { column: 2, row: 0, disposition: < 4,-2> },
114 { column: 2, row: 0, disposition: < 4,-2> },
115 { column: 2, row: 0, disposition: < 6,-2> },
116 { column: 2, row: 0, disposition: < 6,-2> },
117 { column: 2, row: 1, disposition: < 6,-1> },
118 { column: 2, row: 1, disposition: < 3,-1> },
119 { column: 2, row: 1, disposition: < 3,-1> },
120 { column: 2, row: 1, disposition: < 0, 0> },
121 { column: 2, row: 2, disposition: < 0, 0> },
122 { column: 2, row: 2, disposition: < 0, 0> },
123 { column: 2, row: 2, disposition: < 2, 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> },
129 { column: 1, row: 0, disposition: < 0, 0> },
130 { column: 1, row: 0, disposition: < 0, 0> }
133 spellAnimation: ComplexAnimation {
135 frametime: fiveFramesTime,
138 [ ComplexAnimationFrame
139 { column: 3, row: 0, disposition: < 0, 0> },
140 { column: 3, row: 0, disposition: < 0, 0> },
141 { column: 3, row: 1, disposition: < 0, 0> }
144 meleeAnimation: SimpleAnimation {
146 image: :"melee-maxim.png",
149 frametime: twoFramesTime,
153 animation: SimpleAnimation{
155 image: :"maxim-map.png",
161 spriteOffset: <0,-32>
172 battleSprite: selanSprite,
188 attackAnimation: ComplexAnimation {
190 frametime: frameTime,
193 [ ComplexAnimationFrame
194 { column: 1, row: 0, disposition: < 4, 0> },
195 { column: 1, row: 0, disposition: < 4, 0> },
196 { column: 1, row: 0, disposition: < 8, 2> },
197 { column: 2, row: 0, disposition: <10, 4> },
198 { column: 2, row: 0, disposition: <14, 4> },
199 { column: 2, row: 0, disposition: <12, 2> },
200 { column: 2, row: 0, disposition: <12, 2> },
201 { column: 2, row: 0, disposition: <12, 2> },
202 { column: 2, row: 1, disposition: <14, 2> },
203 { column: 2, row: 1, disposition: <14, 2> },
204 { column: 2, row: 1, disposition: < 2, 0> },
205 { column: 2, row: 2, disposition: <-2,-4> },
206 { column: 2, row: 2, disposition: <-8,-8> },
207 { column: 2, row: 2, disposition: < 0, 0> }
210 spellAnimation: ComplexAnimation {
212 frametime: frameTime,
215 [ ComplexAnimationFrame
216 { column: 3, row: 0, disposition: < 0, 0> },
217 { column: 3, row: 0, disposition: < 0, 0> },
218 { column: 3, row: 0, disposition: < 0, 0> },
219 { column: 3, row: 1, disposition: < 0, 0> },
220 { column: 3, row: 1, disposition: < 0, 0> },
221 { column: 3, row: 2, disposition: < 0, 0> },
222 { column: 3, row: 2, disposition: < 0, 0> },
223 { column: 3, row: 2, disposition: < 0, 0> },
224 { column: 3, row: 3, disposition: < 0, 0> },
225 { column: 3, row: 3, disposition: < 0, 0> }
228 meleeAnimation: SimpleAnimation {
230 image: :"melee-selan.png",
233 frametime: twoFramesTime,
237 animation: SimpleAnimation{
239 image: :"selan-map.png",
245 spriteOffset: <0,-32>
256 battleSprite: guySprite,
272 attackAnimation: ComplexAnimation {
274 frametime: frameTime,
277 [ ComplexAnimationFrame
278 { column: 1, row: 0, disposition: <-4, 0> },
279 { column: 1, row: 0, disposition: <-4, 0> },
280 { column: 1, row: 0, disposition: <-8, 0> },
281 { column: 1, row: 0, disposition: <-8, 0> },
282 { column: 2, row: 0, disposition: <-8, 0> },
283 { column: 2, row: 0, disposition: <-8, 0> },
284 { column: 2, row: 0, disposition: <-4, 0> },
285 { column: 2, row: 0, disposition: < 0, 0> },
286 { column: 2, row: 0, disposition: < 0, 0> },
287 { column: 2, row: 1, disposition: < 0, 0> },
288 { column: 2, row: 1, disposition: < 4, 0> },
289 { column: 2, row: 1, disposition: <10, 0> },
290 { column: 2, row: 2, disposition: <10, 0> },
291 { column: 2, row: 2, disposition: < 0, 0> }
294 meleeAnimation: SimpleAnimation {
296 image: :"melee-guy.png",
299 frametime: fourFramesTime,
303 animation: SimpleAnimation{
305 image: :"guy-map.png",
311 spriteOffset: <0,-32>
322 battleSprite: dekarSprite,
338 attackAnimation: ComplexAnimation {
340 frametime: frameTime,
343 [ ComplexAnimationFrame
344 { column: 1, row: 0, disposition: < 4, 0> },
345 { column: 1, row: 0, disposition: < 8, 2> },
346 { column: 2, row: 0, disposition: <12, 4> },
347 { column: 2, row: 0, disposition: <16, 4> },
348 { column: 2, row: 0, disposition: <10, 2> },
349 { column: 2, row: 0, disposition: <10, 2> },
350 { column: 2, row: 0, disposition: <10, 2> },
351 { column: 2, row: 0, disposition: <10, 2> },
352 { column: 2, row: 1, disposition: < 6, 2> },
353 { column: 2, row: 1, disposition: < 0, 0> },
354 { column: 2, row: 2, disposition: <-2, 0> },
355 { column: 2, row: 2, disposition: < 0, 0> },
356 { column: 2, row: 2, disposition: < 0, 0> },
357 { column: 2, row: 2, disposition: < 0, 0> }
360 spellAnimation: ComplexAnimation {
362 frametime: twoFramesTime,
365 [ ComplexAnimationFrame
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: 0, disposition: < 0, 0> },
371 { column: 3, row: 0, disposition: < 0, 0> },
372 { column: 3, row: 1, disposition: < 0, 0> },
373 { column: 3, row: 1, disposition: < 0, 0> },
374 { column: 3, row: 2, disposition: < 0, 0> },
375 { column: 3, row: 2, disposition: < 0, 0> },
376 { column: 3, row: 2, disposition: < 0, 0> }
379 meleeAnimation: SimpleAnimation {
381 image: :"melee-dekar.png",
384 frametime: twoFramesTime,
388 animation: SimpleAnimation{
390 image: :"dekar-map.png",
396 spriteOffset: <0,-32>
401 image: :"cursor-hand.png",
407 image: :"normal-font.png",
415 image: :"disabled-font.png",
421 export BattleResources battleResources {
423 image: :"swap-cursor.png",
426 attackIcons: Sprite {
427 image: :"attack-type-icons.png",
430 attackChoiceIcons: Sprite {
431 image: :"attack-choice-icons.png",
435 image: :"move-icons.png",
440 image: :"title-frame.png",
445 image: :"large-font.png",
451 numberAnimationPrototype: ComplexAnimation {
452 frametime: frameTime,
455 [ ComplexAnimationFrame
456 { column: 0, row: 0, disposition: < 0, 0> },
457 { column: 0, row: 0, disposition: < 0,-26> },
458 { column: 0, row: 0, disposition: < 0,-42> },
459 { column: 0, row: 0, disposition: < 0,-48> },
460 { column: 0, row: 0, disposition: < 0,-42> },
461 { column: 0, row: 0, disposition: < 0,-26> },
462 { column: 0, row: 0, disposition: < 0, 0> },
463 { column: 0, row: 0, disposition: < 0,-12> },
464 { column: 0, row: 0, disposition: < 0,-20> },
465 { column: 0, row: 0, disposition: < 0,-24> },
466 { column: 0, row: 0, disposition: < 0,-20> },
467 { column: 0, row: 0, disposition: < 0,-12> },
468 { column: 0, row: 0, disposition: < 0, 0> },
469 { column: 0, row: 0, disposition: < 0, -6> },
470 { column: 0, row: 0, disposition: < 0,-10> },
471 { column: 0, row: 0, disposition: < 0,-12> },
472 { column: 0, row: 0, disposition: < 0,-10> },
473 { column: 0, row: 0, disposition: < 0, -6> },
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, 0> },
487 { column: 0, row: 0, disposition: < 0, 0> },
488 { column: 0, row: 0, disposition: < 0,-36> },
489 { column: 0, row: 0, disposition: < 0,-32> },
490 { column: 0, row: 0, disposition: < 0,-18> }
493 bigNumberSprite: Sprite {
494 image: :"big-numbers.png",
497 greenNumberSprite: Sprite {
498 image: :"big-green-numbers.png",
502 heroTagLabels: Sprite {
503 image: :"hero-tag-sprites.png",
518 image: :"numbers.png",
524 activeHeroTagFrame: Frame {
525 image: :"tag-frames.png",
528 heroTagFrame: Frame {
529 image: :"tag-frames.png",
534 smallHeroTagFrame: Frame {
535 image: :"small-tag-frame.png",
538 lastSmallHeroTagFrame: Frame {
539 image: :"small-tag-frame.png",
543 heroesBgColor: (24, 40, 49),
546 image: :"gauges.png",
555 image: :"gauges.png",
564 image: :"gauges.png",
574 image: :"select-frame.png",
577 normalFont: normalFont,
578 disabledFont: disabledFont,
580 image: :"cursor-hand.png",
584 weaponTargetCursor: Sprite {
585 image: :"targeting-icons.png",
588 magicTargetCursor: Sprite {
589 image: :"targeting-icons.png",
593 itemTargetCursor: Sprite {
594 image: :"targeting-icons.png",
599 weaponMenuIcon: swordIcon,
600 armorMenuIcon: armorIcon,
601 shieldMenuIcon: shieldIcon,
602 helmetMenuIcon: helmetIcon,
603 ringMenuIcon: ringIcon,
604 jewelMenuIcon: jewelIcon,
606 spellMenuHeadline: "Please choose a spell.",
607 spellMenuProperties: MenuProperties {
609 disabledFont: disabledFont,
621 itemMenuHeadline: "Please choose an item.",
622 itemMenuProperties: MenuProperties {
624 disabledFont: disabledFont,
636 ikariMenuHeadline: "Please choose equipment.",
637 ikariMenuProperties: MenuProperties {
639 disabledFont: disabledFont,
647 charsPerAdditionalText: 12,
648 additionalTextGap: 16
650 noEquipmentText: "No equip",
652 escapeText: "Escapes."
657 image: :"menu-font.png",
662 Font menuInactiveFont {
664 image: :"menu-font-inactive.png",
670 image: :"menu-cursor.png",
673 Sprite menuActiveCursor {
674 image: :"menu-cursor-active.png",
677 SimpleAnimation menuCursorAnimation {
679 frametime: fourFramesTime,
683 ComplexAnimation menuActiveCursorAnimation {
684 sprite: menuActiveCursor,
685 frametime: fourFramesTime,
688 [ ComplexAnimationFrame
704 export MenuResources menuResources {
706 image: :"menubg.png",
709 normalFont: menuFont,
710 inactiveFont: menuInactiveFont,
711 statusFont: normalFont,
712 statusLabels: Sprite {
713 image: :"status-labels.png",
717 image: :"status-frame.png",
721 mainMenu: MenuProperties {
728 cursorAnimation: menuCursorAnimation,
730 disabledFont: menuInactiveFont,
734 mainMenuItemText: "ITEM",
735 mainMenuSpellText: "SPELL",
736 mainMenuCapsuleText: "CAPSULE",
737 mainMenuEquipmentText: "EQUIP",
738 mainMenuStatusText: "STATUS",
739 mainMenuChangeText: "CHANGE",
740 mainMenuConfigText: "CONFIG",
741 mainMenuScenarioText: "SCENARIO",
742 mainMenuTimeText: "TIME",
743 mainMenuGoldText: "GOLD",
745 image: :"hero-cursor.png",
748 heroCursorBlinkTime: 532,
749 noEquipmentText: "No equip",
750 shoulderNav: Sprite {
751 image: :"shoulder-nav.png",
764 experienceLabel: "NOW EXP",
765 nextLevelLabel: "NEXT LEVEL",
766 statusMenu: MenuProperties {
772 cursorAnimation: menuCursorAnimation,
777 returnLabel: "RETURN",
778 itemMenu: MenuProperties {
785 selectedCursor: menuActiveCursor,
786 cursorAnimation: menuCursorAnimation,
787 selectedCursorAnimation: menuActiveCursorAnimation,
792 itemMenuUseText: "USE",
793 itemMenuSortText: "SORT",
794 itemMenuDropText: "DROP",
795 itemMenuSelectText: "SELECT",
796 inventoryMenu: MenuProperties {
802 selectedCursor: menuActiveCursor,
803 cursorAnimation: menuCursorAnimation,
804 selectedCursorAnimation: menuActiveCursorAnimation,
806 disabledFont: menuInactiveFont,
812 spellMenu: MenuProperties {
819 selectedCursor: menuActiveCursor,
820 cursorAnimation: menuCursorAnimation,
821 selectedCursorAnimation: menuActiveCursorAnimation,
823 disabledFont: menuInactiveFont,
827 equipmentActionMenu: MenuProperties {
833 selectedCursor: menuActiveCursor,
834 cursorAnimation: menuCursorAnimation,
835 selectedCursorAnimation: menuActiveCursorAnimation,
838 equipmentMenu: MenuProperties {
844 selectedCursor: menuActiveCursor,
845 cursorAnimation: menuCursorAnimation,
846 selectedCursorAnimation: menuActiveCursorAnimation,
851 equipMenuEquipLabel: "EQUIP",
852 equipMenuStrongestLabel: "STRONGEST",
853 equipMenuRemoveLabel: "REMOVE",
854 equipMenuRemoveAllLabel: "REMOVE ALL",
855 equipMenuDropLabel: "DROP",
856 configMenu: MenuProperties {
862 cursorAnimation: menuCursorAnimation,
866 configMessageSpeedLabel: "MESSAGE\n SPEED",
867 configMessageSpeedFast: "FAST",
868 configMessageSpeedNormal: "NORMAL",
869 configMessageSpeedSlow: "SLOW",
870 configBattleCursorLabel: "BATTLE\n CURSOR",
871 configStatusCursorLabel: "STATUS\n CURSOR",
872 configCursorClear: "CLEAR",
873 configCursorMemory: "MEMORY",
874 configMusicLabel: "MUSIC",
875 configMusicStereo: "STEREO",
876 configMusicMono: "MONO",
877 scenarioMenu: MenuProperties {
883 cursorAnimation: menuCursorAnimation,
886 scenarioMenuHeadline: "SCENARIO ITEM",
888 image: :"capsulebg.png",
891 capsuleMenu: MenuProperties {
896 selectedCursor: menuActiveCursor,
897 cursorAnimation: menuCursorAnimation,
898 selectedCursorAnimation: menuActiveCursorAnimation,
902 capsuleFeedMenu: MenuProperties {
908 selectedCursor: menuActiveCursor,
909 cursorAnimation: menuCursorAnimation,
910 selectedCursorAnimation: menuActiveCursorAnimation,
913 capsuleFeedLabel: "FEED",
914 capsuleChangeLabel: "CHANGE",
915 capsuleNameLabel: "NAME",
916 capsuleClassLabel: "CLASS",
917 capsuleAlignmentLabel: "ALI.",
918 capsuleTribeLabel: "TRIBE",
919 capsuleAttack1Label: "SP.1",
920 capsuleAttack2Label: "SP.2",
921 capsuleAttack3Label: "SP.3",
922 capsuleNoAttackText: "Nothing",
923 capsuleNotHungryText: "I'm not hungry.",
924 capsuleNameSelect: CharSelect {
927 image: :"alpha-cursor.png",
930 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!? z!? ",
934 capsuleSelectTopLeft: Sprite {
935 image: :"capsule-sprites.png",
939 capsuleSelectTopRight: Sprite {
940 image: :"capsule-sprites.png",
944 capsuleSelectTopRepeat: Texture {
945 image: :"capsule-sprites.png",
949 capsuleSelectBottomLeft: Sprite {
950 image: :"capsule-sprites.png",
954 capsuleSelectBottomRight: Sprite {
955 image: :"capsule-sprites.png",
959 capsuleSelectBottomRepeat: Sprite {
960 image: :"capsule-sprites.png",
964 capsuleSelectLeftRepeat: Texture {
965 image: :"capsule-sprites.png",
968 capsuleSelectRightRepeat: Texture {
969 image: :"capsule-sprites.png",
973 capsuleSelectLadder: Sprite {
974 image: :"capsule-sprites.png",
978 capsuleSelectCursor: Sprite {
979 image: :"capsule-sprites.png",
983 capsuleAlignmentWheel: Sprite {
984 image: :"capsule-sprites.png",
988 capsuleAlignmentCursor: Sprite {
989 image: :"capsule-sprites.png",
993 capsuleGrowthLabel: Sprite {
994 image: :"capsule-feed.png",
997 capsuleGrowthBar: Sprite {
998 image: :"capsule-feed.png",
1002 capsuleGrowthBarFilled: Sprite {
1003 image: :"capsule-feed.png",