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 {
28 image: :"monster.png",
32 export Monster lizard {
47 attackAnimation: ComplexAnimation {
49 frametime: fourFramesTime,
52 [ ComplexAnimationFrame
53 { column: 0, row: 1, disposition: < 0, 16> },
54 { column: 0, row: 0, disposition: < 0, 16> },
55 { column: 0, row: 1, disposition: < 0, 16> },
56 { column: 0, row: 0, disposition: < 0, 16> }
59 meleeAnimation: SimpleAnimation {
61 image: :"attack-monster.png",
76 battleSprite: maximSprite,
94 attackAnimation: ComplexAnimation {
99 [ ComplexAnimationFrame
100 { column: 1, row: 0, disposition: < 0, 0> },
101 { column: 1, row: 0, disposition: < 0, 0> },
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: < 4,-1> },
108 { column: 1, row: 0, disposition: < 4,-1> },
109 { column: 2, row: 0, disposition: < 4,-2> },
110 { column: 2, row: 0, disposition: < 4,-2> },
111 { column: 2, row: 0, disposition: < 6,-2> },
112 { column: 2, row: 0, disposition: < 6,-2> },
113 { column: 2, row: 1, disposition: < 6,-1> },
114 { column: 2, row: 1, disposition: < 3,-1> },
115 { column: 2, row: 1, disposition: < 3,-1> },
116 { column: 2, row: 1, disposition: < 0, 0> },
117 { column: 2, row: 2, disposition: < 0, 0> },
118 { column: 2, row: 2, disposition: < 0, 0> },
119 { column: 2, row: 2, disposition: < 2, 0> },
120 { column: 1, row: 0, disposition: < 0, 0> },
121 { column: 1, row: 0, disposition: < 0, 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> }
129 spellAnimation: ComplexAnimation {
131 frametime: fiveFramesTime,
134 [ ComplexAnimationFrame
135 { column: 3, row: 0, disposition: < 0, 0> },
136 { column: 3, row: 0, disposition: < 0, 0> },
137 { column: 3, row: 1, disposition: < 0, 0> }
140 meleeAnimation: SimpleAnimation {
142 image: :"melee-maxim.png",
145 frametime: twoFramesTime,
149 animation: SimpleAnimation{
151 image: :"maxim-map.png",
157 spriteOffset: <0,-32>
168 battleSprite: selanSprite,
183 attackAnimation: ComplexAnimation {
185 frametime: frameTime,
188 [ ComplexAnimationFrame
189 { column: 1, row: 0, disposition: < 4, 0> },
190 { column: 1, row: 0, disposition: < 4, 0> },
191 { column: 1, row: 0, disposition: < 8, 2> },
192 { column: 2, row: 0, disposition: <10, 4> },
193 { column: 2, row: 0, disposition: <14, 4> },
194 { column: 2, row: 0, disposition: <12, 2> },
195 { column: 2, row: 0, disposition: <12, 2> },
196 { column: 2, row: 0, disposition: <12, 2> },
197 { column: 2, row: 1, disposition: <14, 2> },
198 { column: 2, row: 1, disposition: <14, 2> },
199 { column: 2, row: 1, disposition: < 2, 0> },
200 { column: 2, row: 2, disposition: <-2,-4> },
201 { column: 2, row: 2, disposition: <-8,-8> },
202 { column: 2, row: 2, disposition: < 0, 0> }
205 spellAnimation: ComplexAnimation {
207 frametime: frameTime,
210 [ ComplexAnimationFrame
211 { column: 3, row: 0, disposition: < 0, 0> },
212 { column: 3, row: 0, disposition: < 0, 0> },
213 { column: 3, row: 0, disposition: < 0, 0> },
214 { column: 3, row: 1, disposition: < 0, 0> },
215 { column: 3, row: 1, disposition: < 0, 0> },
216 { column: 3, row: 2, disposition: < 0, 0> },
217 { column: 3, row: 2, disposition: < 0, 0> },
218 { column: 3, row: 2, disposition: < 0, 0> },
219 { column: 3, row: 3, disposition: < 0, 0> },
220 { column: 3, row: 3, disposition: < 0, 0> }
223 meleeAnimation: SimpleAnimation {
225 image: :"melee-selan.png",
228 frametime: twoFramesTime,
232 animation: SimpleAnimation{
234 image: :"selan-map.png",
240 spriteOffset: <0,-32>
251 battleSprite: guySprite,
266 attackAnimation: ComplexAnimation {
268 frametime: frameTime,
271 [ ComplexAnimationFrame
272 { column: 1, row: 0, disposition: <-4, 0> },
273 { column: 1, row: 0, disposition: <-4, 0> },
274 { column: 1, row: 0, disposition: <-8, 0> },
275 { column: 1, row: 0, disposition: <-8, 0> },
276 { column: 2, row: 0, disposition: <-8, 0> },
277 { column: 2, row: 0, disposition: <-8, 0> },
278 { column: 2, row: 0, disposition: <-4, 0> },
279 { column: 2, row: 0, disposition: < 0, 0> },
280 { column: 2, row: 0, disposition: < 0, 0> },
281 { column: 2, row: 1, disposition: < 0, 0> },
282 { column: 2, row: 1, disposition: < 4, 0> },
283 { column: 2, row: 1, disposition: <10, 0> },
284 { column: 2, row: 2, disposition: <10, 0> },
285 { column: 2, row: 2, disposition: < 0, 0> }
288 meleeAnimation: SimpleAnimation {
290 image: :"melee-guy.png",
293 frametime: fourFramesTime,
297 animation: SimpleAnimation{
299 image: :"guy-map.png",
305 spriteOffset: <0,-32>
316 battleSprite: dekarSprite,
331 attackAnimation: ComplexAnimation {
333 frametime: frameTime,
336 [ ComplexAnimationFrame
337 { column: 1, row: 0, disposition: < 4, 0> },
338 { column: 1, row: 0, disposition: < 8, 2> },
339 { column: 2, row: 0, disposition: <12, 4> },
340 { column: 2, row: 0, disposition: <16, 4> },
341 { column: 2, row: 0, disposition: <10, 2> },
342 { column: 2, row: 0, disposition: <10, 2> },
343 { column: 2, row: 0, disposition: <10, 2> },
344 { column: 2, row: 0, disposition: <10, 2> },
345 { column: 2, row: 1, disposition: < 6, 2> },
346 { column: 2, row: 1, disposition: < 0, 0> },
347 { column: 2, row: 2, disposition: <-2, 0> },
348 { column: 2, row: 2, disposition: < 0, 0> },
349 { column: 2, row: 2, disposition: < 0, 0> },
350 { column: 2, row: 2, disposition: < 0, 0> }
353 spellAnimation: ComplexAnimation {
355 frametime: twoFramesTime,
358 [ ComplexAnimationFrame
359 { column: 3, row: 0, disposition: < 0, 0> },
360 { column: 3, row: 0, disposition: < 0, 0> },
361 { column: 3, row: 0, disposition: < 0, 0> },
362 { column: 3, row: 0, disposition: < 0, 0> },
363 { column: 3, row: 0, disposition: < 0, 0> },
364 { column: 3, row: 0, disposition: < 0, 0> },
365 { column: 3, row: 1, disposition: < 0, 0> },
366 { column: 3, row: 1, disposition: < 0, 0> },
367 { column: 3, row: 2, disposition: < 0, 0> },
368 { column: 3, row: 2, disposition: < 0, 0> },
369 { column: 3, row: 2, disposition: < 0, 0> }
372 meleeAnimation: SimpleAnimation {
374 image: :"melee-dekar.png",
377 frametime: twoFramesTime,
381 animation: SimpleAnimation{
383 image: :"dekar-map.png",
389 spriteOffset: <0,-32>
394 image: :"cursor-hand.png",
400 image: :"normal-font.png",
408 image: :"disabled-font.png",
414 export BattleResources battleResources {
416 image: :"swap-cursor.png",
419 attackIcons: Sprite {
420 image: :"attack-type-icons.png",
423 attackChoiceIcons: Sprite {
424 image: :"attack-choice-icons.png",
428 image: :"move-icons.png",
433 image: :"title-frame.png",
438 image: :"large-font.png",
444 numberAnimationPrototype: ComplexAnimation {
445 frametime: frameTime,
448 [ ComplexAnimationFrame
449 { column: 0, row: 0, disposition: < 0, 0> },
450 { column: 0, row: 0, disposition: < 0,-26> },
451 { column: 0, row: 0, disposition: < 0,-42> },
452 { column: 0, row: 0, disposition: < 0,-48> },
453 { column: 0, row: 0, disposition: < 0,-42> },
454 { column: 0, row: 0, disposition: < 0,-26> },
455 { column: 0, row: 0, disposition: < 0, 0> },
456 { column: 0, row: 0, disposition: < 0,-12> },
457 { column: 0, row: 0, disposition: < 0,-20> },
458 { column: 0, row: 0, disposition: < 0,-24> },
459 { column: 0, row: 0, disposition: < 0,-20> },
460 { column: 0, row: 0, disposition: < 0,-12> },
461 { column: 0, row: 0, disposition: < 0, 0> },
462 { column: 0, row: 0, disposition: < 0, -6> },
463 { column: 0, row: 0, disposition: < 0,-10> },
464 { column: 0, row: 0, disposition: < 0,-12> },
465 { column: 0, row: 0, disposition: < 0,-10> },
466 { column: 0, row: 0, disposition: < 0, -6> },
467 { column: 0, row: 0, disposition: < 0, 0> },
468 { column: 0, row: 0, disposition: < 0, 0> },
469 { column: 0, row: 0, disposition: < 0, 0> },
470 { column: 0, row: 0, disposition: < 0, 0> },
471 { column: 0, row: 0, disposition: < 0, 0> },
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,-36> },
482 { column: 0, row: 0, disposition: < 0,-32> },
483 { column: 0, row: 0, disposition: < 0,-18> }
486 bigNumberSprite: Sprite {
487 image: :"big-numbers.png",
490 greenNumberSprite: Sprite {
491 image: :"big-green-numbers.png",
495 heroTagLabels: Sprite {
496 image: :"hero-tag-sprites.png",
511 image: :"numbers.png",
517 activeHeroTagFrame: Frame {
518 image: :"tag-frames.png",
521 heroTagFrame: Frame {
522 image: :"tag-frames.png",
527 smallHeroTagFrame: Frame {
528 image: :"small-tag-frame.png",
531 lastSmallHeroTagFrame: Frame {
532 image: :"small-tag-frame.png",
536 heroesBgColor: (24, 40, 49),
539 image: :"gauges.png",
548 image: :"gauges.png",
557 image: :"gauges.png",
567 image: :"select-frame.png",
570 normalFont: normalFont,
571 disabledFont: disabledFont,
573 image: :"cursor-hand.png",
577 weaponTargetCursor: Sprite {
578 image: :"targeting-icons.png",
581 magicTargetCursor: Sprite {
582 image: :"targeting-icons.png",
586 itemTargetCursor: Sprite {
587 image: :"targeting-icons.png",
592 weaponMenuIcon: swordIcon,
593 armorMenuIcon: armorIcon,
594 shieldMenuIcon: shieldIcon,
595 helmetMenuIcon: helmetIcon,
596 ringMenuIcon: ringIcon,
597 jewelMenuIcon: jewelIcon,
599 spellMenuHeadline: "Please choose a spell.",
600 spellMenuProperties: MenuProperties {
602 disabledFont: disabledFont,
614 itemMenuHeadline: "Please choose an item.",
615 itemMenuProperties: MenuProperties {
617 disabledFont: disabledFont,
629 ikariMenuHeadline: "Please choose equipment.",
630 ikariMenuProperties: MenuProperties {
632 disabledFont: disabledFont,
640 charsPerAdditionalText: 12,
641 additionalTextGap: 16
643 noEquipmentText: "No equip",
645 escapeText: "Escapes."