]> git.localhorst.tv Git - l2e.git/blob - test-data/test.l2s
83baa7734895b28370c2cf9a8b4beab59403bce6
[l2e.git] / test-data / test.l2s
1 include "ikaris.l2h"
2 include "items.l2h"
3 include "spells.l2h"
4
5 Number frameTime 33
6 Number twoFramesTime 66
7 Number fourFramesTime 132
8 Number fiveFramesTime 165 // darn, i really need to implement expressions
9
10 export PartyLayout monstersLayout {
11         positions: [
12                 < 88, 88>,
13                 <128, 88>,
14                 <168, 88>,
15                 <208, 88>
16         ]
17 }
18 export PartyLayout heroesLayout {
19         positions: [
20                 < 48,136>,
21                 <128,136>,
22                 < 80,152>,
23                 <160,152>,
24                 <216,144>
25         ]
26 }
27
28 Sprite lizardSprite {
29         image: :"monster.png",
30         size: <64,64>
31 }
32
33 export Monster lizard {
34         name: "Lizard",
35         sprite: lizardSprite,
36         level: 1,
37         maxHealth: 8,
38         health: 8,
39         stats: Stats {
40                 atp: 14,
41                 dfp:  6,
42                 str:  6,
43                 agl:  6,
44                 int:  6,
45                 gut:  6,
46                 mgr:  6
47         },
48         expReward: 8,
49         goldReward: 5,
50         attackAnimation: ComplexAnimation {
51                 sprite: lizardSprite,
52                 frametime: fourFramesTime,
53                 repeat: false,
54                 frames:
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> }
60                 ]
61         },
62         meleeAnimation: SimpleAnimation {
63                 sprite: Sprite {
64                         image: :"attack-monster.png",
65                         size: <96,64>
66                 },
67                 frametime: frameTime,
68                 framecount: 14
69         }
70 }
71
72 Sprite maximSprite {
73         image: :"maxim.png",
74         size: <64,64>
75 }
76 export Hero maxim {
77         name: "Maxim",
78         level: 1,
79         battleSprite: maximSprite,
80         maxHealth: 33,
81         health: 33,
82         maxMana: 20,
83         mana: 20,
84         ip: 0,
85         stats: Stats {
86                 atp:  28,
87                 dfp:  22,
88                 str:  28,
89                 agl:  17,
90                 int:  14,
91                 gut: 100,
92                 mgr:  10
93         },
94         ladder: [
95                 10
96         ],
97         useMask: maskMaxim,
98         attackAnimation: ComplexAnimation {
99                 sprite: maximSprite,
100                 frametime: frameTime,
101                 repeat: false,
102                 frames:
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> }
131                 ]
132         },
133         spellAnimation: ComplexAnimation {
134                 sprite: maximSprite,
135                 frametime: fiveFramesTime,
136                 repeat: false,
137                 frames:
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> }
142                 ]
143         },
144         meleeAnimation: SimpleAnimation {
145                 sprite: Sprite {
146                         image: :"melee-maxim.png",
147                         size: <96,96>
148                 },
149                 frametime: twoFramesTime,
150                 framecount: 4
151         },
152         mapEntity: Entity {
153                 animation: SimpleAnimation{
154                         sprite: Sprite {
155                                 image: :"maxim-map.png",
156                                 size: <32,64>
157                         },
158                         frametime: 120,
159                         framecount: 2
160                 },
161                 spriteOffset: <0,-32>
162         }
163 }
164
165 Sprite selanSprite {
166         image: :"selan.png",
167         size: <64,64>
168 }
169 export Hero selan {
170         name: "Selan",
171         level: 1,
172         battleSprite: selanSprite,
173         maxHealth: 28,
174         health: 28,
175         maxMana: 23,
176         mana: 23,
177         ip: 0,
178         stats: Stats {
179                 atp: 23,
180                 dfp: 21,
181                 str: 23,
182                 agl: 19,
183                 int: 22,
184                 gut: 80,
185                 mgr: 13
186         },
187         useMask: maskSelan,
188         attackAnimation: ComplexAnimation {
189                 sprite: selanSprite,
190                 frametime: frameTime,
191                 repeat: false,
192                 frames:
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> }
208                 ]
209         },
210         spellAnimation: ComplexAnimation {
211                 sprite: selanSprite,
212                 frametime: frameTime,
213                 repeat: false,
214                 frames:
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> }
226                 ]
227         },
228         meleeAnimation: SimpleAnimation {
229                 sprite: Sprite {
230                         image: :"melee-selan.png",
231                         size: <96,96>
232                 },
233                 frametime: twoFramesTime,
234                 framecount: 4
235         },
236         mapEntity: Entity {
237                 animation: SimpleAnimation{
238                         sprite: Sprite {
239                                 image: :"selan-map.png",
240                                 size: <32,64>
241                         },
242                         frametime: 120,
243                         framecount: 2
244                 },
245                 spriteOffset: <0,-32>
246         }
247 }
248
249 Sprite guySprite {
250         image: :"guy.png",
251         size: <64,64>
252 }
253 export Hero guy {
254         name: "Guy",
255         level: 1,
256         battleSprite: guySprite,
257         maxHealth: 38,
258         health: 38,
259         maxMana: 0,
260         mana: 0,
261         ip: 0,
262         stats: Stats {
263                 atp: 38,
264                 dfp: 25,
265                 str: 38,
266                 agl: 13,
267                 int:  8,
268                 gut: 90,
269                 mgr:  8
270         },
271         useMask: maskGuy,
272         attackAnimation: ComplexAnimation {
273                 sprite: guySprite,
274                 frametime: frameTime,
275                 repeat: false,
276                 frames:
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> }
292                 ]
293         },
294         meleeAnimation: SimpleAnimation {
295                 sprite: Sprite {
296                         image: :"melee-guy.png",
297                         size: <96,96>
298                 },
299                 frametime: fourFramesTime,
300                 framecount: 4
301         },
302         mapEntity: Entity {
303                 animation: SimpleAnimation{
304                         sprite: Sprite {
305                                 image: :"guy-map.png",
306                                 size: <32,64>
307                         },
308                         frametime: 120,
309                         framecount: 2
310                 },
311                 spriteOffset: <0,-32>
312         }
313 }
314
315 Sprite dekarSprite {
316         image: :"dekar.png",
317         size: <64,64>
318 }
319 export Hero dekar {
320         name: "Dekar",
321         level: 1,
322         battleSprite: dekarSprite,
323         maxHealth: 38,
324         health: 38,
325         maxMana: 0,
326         mana: 0,
327         ip: 0,
328         stats: Stats {
329                 atp:  46,
330                 dfp:  29,
331                 str:  46,
332                 agl:  13,
333                 int:   7,
334                 gut: 100,
335                 mgr:   5
336         },
337         useMask: maskDekar,
338         attackAnimation: ComplexAnimation {
339                 sprite: dekarSprite,
340                 frametime: frameTime,
341                 repeat: false,
342                 frames:
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> }
358                 ]
359         },
360         spellAnimation: ComplexAnimation {
361                 sprite: dekarSprite,
362                 frametime: twoFramesTime,
363                 repeat: false,
364                 frames:
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> }
377                 ]
378         },
379         meleeAnimation: SimpleAnimation {
380                 sprite: Sprite {
381                         image: :"melee-dekar.png",
382                         size: <96,96>
383                 },
384                 frametime: twoFramesTime,
385                 framecount: 4
386         },
387         mapEntity: Entity {
388                 animation: SimpleAnimation{
389                         sprite: Sprite {
390                                 image: :"dekar-map.png",
391                                 size: <32,64>
392                         },
393                         frametime: 120,
394                         framecount: 2
395                 },
396                 spriteOffset: <0,-32>
397         }
398 }
399
400 Sprite handCursor {
401         image: :"cursor-hand.png",
402         size: <32,32>
403 }
404
405 Font normalFont {
406         sprite: Sprite {
407                 image: :"normal-font.png",
408                 size: <16,16>
409         },
410         rowoffset: -2
411 }
412
413 Font disabledFont {
414         sprite: Sprite {
415                 image: :"disabled-font.png",
416                 size: <16,16>
417         },
418         rowoffset: -2
419 }
420
421 export BattleResources battleResources {
422         swapCursor: Sprite {
423                 image: :"swap-cursor.png",
424                 size: <32,32>
425         },
426         attackIcons: Sprite {
427                 image: :"attack-type-icons.png",
428                 size: <32,32>
429         },
430         attackChoiceIcons: Sprite {
431                 image: :"attack-choice-icons.png",
432                 size: <16,16>
433         },
434         moveIcons: Sprite {
435                 image: :"move-icons.png",
436                 size: <32,32>
437         },
438
439         titleFrame: Frame {
440                 image: :"title-frame.png",
441                 border: <16,16>
442         },
443         titleFont: Font {
444                 sprite: Sprite {
445                         image: :"large-font.png",
446                         size: <16,32>
447                 },
448                 rowoffset: -2
449         },
450
451         numberAnimationPrototype: ComplexAnimation {
452                 frametime: frameTime,
453                 repeat: false,
454                 frames:
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> }
491                 ]
492         },
493         bigNumberSprite: Sprite {
494                 image: :"big-numbers.png",
495                 size: <16,32>
496         },
497         greenNumberSprite: Sprite {
498                 image: :"big-green-numbers.png",
499                 size: <16,32>
500         },
501
502         heroTagLabels: Sprite {
503                 image: :"hero-tag-sprites.png",
504                 size: <32,16>
505         },
506         levelLabelCol: 0,
507         levelLabelRow: 0,
508         healthLabelCol: 0,
509         healthLabelRow: 1,
510         manaLabelCol: 0,
511         manaLabelRow: 2,
512         moveLabelCol: 0,
513         moveLabelRow: 3,
514         ikariLabelCol: 0,
515         ikariLabelRow: 4,
516         heroTagFont: Font {
517                 sprite: Sprite {
518                         image: :"numbers.png",
519                         size: <16,16>
520                 },
521                 rowoffset: -3
522         },
523
524         activeHeroTagFrame: Frame {
525                 image: :"tag-frames.png",
526                 border: <16,16>
527         },
528         heroTagFrame: Frame {
529                 image: :"tag-frames.png",
530                 border: <16,16>,
531                 offset: < 0,33>
532         },
533
534         smallHeroTagFrame: Frame {
535                 image: :"small-tag-frame.png",
536                 border: <8,16>
537         },
538         lastSmallHeroTagFrame: Frame {
539                 image: :"small-tag-frame.png",
540                 border: <8,16>,
541                 offset: <0,33>
542         },
543         heroesBgColor: (24, 40, 49),
544
545         healthGauge: Gauge {
546                 image: :"gauges.png",
547                 full:  <0,16>,
548                 empty: <0, 0>,
549                 height: 16,
550                 start:   6,
551                 repeat:  1,
552                 end:     6
553         },
554         manaGauge: Gauge {
555                 image: :"gauges.png",
556                 full:  <0,32>,
557                 empty: <0, 0>,
558                 height: 16,
559                 start:   6,
560                 repeat:  1,
561                 end:     6
562         },
563         ikariGauge: Gauge {
564                 image: :"gauges.png",
565                 full:  <0,48>,
566                 empty: <0, 0>,
567                 height: 16,
568                 start:   6,
569                 repeat:  1,
570                 end:     6
571         },
572
573         selectFrame: Frame {
574                 image: :"select-frame.png",
575                 border: <16,16>
576         },
577         normalFont: normalFont,
578         disabledFont: disabledFont,
579         menuCursor: Sprite {
580                 image: :"cursor-hand.png",
581                 size: <32,32>
582         },
583
584         weaponTargetCursor: Sprite {
585                 image: :"targeting-icons.png",
586                 size: <32,32>
587         },
588         magicTargetCursor: Sprite {
589                 image: :"targeting-icons.png",
590                 size: <32,32>,
591                 offset: <0,32>
592         },
593         itemTargetCursor: Sprite {
594                 image: :"targeting-icons.png",
595                 size: <32,32>,
596                 offset: <0,64>
597         },
598
599         weaponMenuIcon: swordIcon,
600         armorMenuIcon: armorIcon,
601         shieldMenuIcon: shieldIcon,
602         helmetMenuIcon: helmetIcon,
603         ringMenuIcon: ringIcon,
604         jewelMenuIcon: jewelIcon,
605
606         spellMenuHeadline: "Please choose a spell.",
607         spellMenuProperties: MenuProperties {
608                 font: normalFont,
609                 disabledFont: disabledFont,
610                 cursor: handCursor,
611                 charsPerEntry: 9,
612                 rows: 6,
613                 rowGap: 8,
614                 iconSpace: 0,
615                 cols: 2,
616                 colGap: 32,
617                 charsPerNumber: 2,
618                 delimiter: ":"
619         },
620
621         itemMenuHeadline: "Please choose an item.",
622         itemMenuProperties: MenuProperties {
623                 font: normalFont,
624                 disabledFont: disabledFont,
625                 cursor: handCursor,
626                 charsPerEntry: 15,
627                 rows: 6,
628                 rowGap: 8,
629                 iconSpace: 16,
630                 cols: 1,
631                 colGap: 32,
632                 charsPerNumber: 2,
633                 delimiter: ":"
634         },
635
636         ikariMenuHeadline: "Please choose equipment.",
637         ikariMenuProperties: MenuProperties {
638                 font: normalFont,
639                 disabledFont: disabledFont,
640                 cursor: handCursor,
641                 charsPerEntry: 12,
642                 rows: 6,
643                 rowGap: 8,
644                 iconSpace: 16,
645                 cols: 1,
646                 colGap: 32,
647                 charsPerAdditionalText: 12,
648                 additionalTextGap: 16
649         },
650         noEquipmentText: "No equip",
651
652         escapeText: "Escapes."
653 }
654
655 Font menuFont {
656         sprite: Sprite {
657                 image: :"menu-font.png",
658                 size: <16, 16>
659         },
660         rowoffset: -2
661 }
662 Font menuInactiveFont {
663         sprite: Sprite {
664                 image: :"menu-font-inactive.png",
665                 size: <16, 16>
666         },
667         rowoffset: -2
668 }
669 Sprite menuCursor {
670         image: :"menu-cursor.png",
671         size: <32, 16>
672 }
673 Sprite menuActiveCursor {
674         image: :"menu-cursor-active.png",
675         size: <32, 18>
676 }
677 SimpleAnimation menuCursorAnimation {
678         sprite: menuCursor,
679         frametime: fourFramesTime,
680         framecount: 6,
681         repeat: true
682 }
683 ComplexAnimation menuActiveCursorAnimation {
684         sprite: menuActiveCursor,
685         frametime: fourFramesTime,
686         repeat: true,
687         frames:
688         [ ComplexAnimationFrame
689                 { row: 0 },
690                 { row: 0 },
691                 { row: 0 },
692                 { row: 0 },
693                 { row: 0 },
694                 { row: 0 },
695                 { row: 0 },
696                 { row: 0 },
697                 { row: 1 },
698                 { row: 2 },
699                 { row: 3 },
700                 { row: 4 }
701         ]
702 }
703
704 export MenuResources menuResources {
705         menubg: Texture {
706                 image: :"menubg.png",
707                 size: <64, 64>
708         },
709         normalFont: menuFont,
710         inactiveFont: menuInactiveFont,
711         statusFont: normalFont,
712         statusLabels: Sprite {
713                 image: :"status-labels.png",
714                 size: <32, 16>
715         },
716         statusFrame: Frame {
717                 image: :"status-frame.png",
718                 border: <32, 32>,
719                 repeat: <32, 32>
720         },
721         mainMenu: MenuProperties {
722                 cols: 2,
723                 rows: 4,
724                 charsPerEntry: 8,
725                 rowGap: 8,
726                 colGap: 32,
727                 cursor: menuCursor,
728                 cursorAnimation: menuCursorAnimation,
729                 font: menuFont,
730                 disabledFont: menuInactiveFont,
731                 wrapX: true,
732                 wrapY: true
733         },
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",
744         heroCursor: Sprite {
745                 image: :"hero-cursor.png",
746                 size: <64, 16>
747         },
748         heroCursorBlinkTime: 532,
749         noEquipmentText: "No equip",
750         shoulderNav: Sprite {
751                 image: :"shoulder-nav.png",
752                 size: <160, 16>
753         },
754         atpLabel: "ATP",
755         dfpLabel: "DFP",
756         strLabel: "STR",
757         aglLabel: "AGL",
758         intLabel: "INT",
759         gutLabel: "GUT",
760         mgrLabel: "MGR",
761         hpLabel: "HP",
762         ipLabel: "IP",
763         levelLabel: "LEVEL",
764         experienceLabel: "NOW EXP",
765         nextLevelLabel: "NEXT LEVEL",
766         statusMenu: MenuProperties {
767                 cols: 2,
768                 rows: 1,
769                 charsPerEntry: 6,
770                 colGap: 16,
771                 cursor: menuCursor,
772                 cursorAnimation: menuCursorAnimation,
773                 font: menuFont,
774                 wrapX: true
775         },
776         nextLabel: "NEXT",
777         returnLabel: "RETURN",
778         itemMenu: MenuProperties {
779                 cols: 3,
780                 rows: 1,
781                 charsPerEntry: 5,
782                 rowGap: 8,
783                 colGap: 16,
784                 cursor: menuCursor,
785                 selectedCursor: menuActiveCursor,
786                 cursorAnimation: menuCursorAnimation,
787                 selectedCursorAnimation: menuActiveCursorAnimation,
788                 font: menuFont,
789                 wrapX: true,
790                 wrapY: true
791         },
792         itemMenuUseText: "USE",
793         itemMenuSortText: "SORT",
794         itemMenuDropText: "DROP",
795         itemMenuSelectText: "SELECT",
796         inventoryMenu: MenuProperties {
797                 cols: 1,
798                 rows: 6,
799                 charsPerEntry: 13,
800                 rowGap: 8,
801                 cursor: menuCursor,
802                 selectedCursor: menuActiveCursor,
803                 cursorAnimation: menuCursorAnimation,
804                 selectedCursorAnimation: menuActiveCursorAnimation,
805                 font: menuFont,
806                 disabledFont: menuInactiveFont,
807                 iconSpace: 16,
808                 charsPerNumber: 2,
809                 delimiter: ":",
810                 thirdColumnHack: 1
811         },
812         spellMenu: MenuProperties {
813                 cols: 2,
814                 rows: 6,
815                 charsPerEntry: 8,
816                 rowGap: 8,
817                 colGap: 48,
818                 cursor: menuCursor,
819                 selectedCursor: menuActiveCursor,
820                 cursorAnimation: menuCursorAnimation,
821                 selectedCursorAnimation: menuActiveCursorAnimation,
822                 font: menuFont,
823                 disabledFont: menuInactiveFont,
824                 charsPerNumber: 2,
825                 delimiter: ":"
826         },
827         equipmentActionMenu: MenuProperties {
828                 cols: 1,
829                 rows: 5,
830                 charsPerEntry: 10,
831                 rowGap: 8,
832                 cursor: menuCursor,
833                 selectedCursor: menuActiveCursor,
834                 cursorAnimation: menuCursorAnimation,
835                 selectedCursorAnimation: menuActiveCursorAnimation,
836                 font: menuFont
837         },
838         equipmentMenu: MenuProperties {
839                 cols: 1,
840                 rows: 6,
841                 charsPerEntry: 12,
842                 rowGap: 16,
843                 cursor: menuCursor,
844                 selectedCursor: menuActiveCursor,
845                 cursorAnimation: menuCursorAnimation,
846                 selectedCursorAnimation: menuActiveCursorAnimation,
847                 font: normalFont,
848                 iconSpace: 16,
849                 wrapY: true
850         },
851         equipMenuEquipLabel: "EQUIP",
852         equipMenuStrongestLabel: "STRONGEST",
853         equipMenuRemoveLabel: "REMOVE",
854         equipMenuRemoveAllLabel: "REMOVE ALL",
855         equipMenuDropLabel: "DROP",
856         configMenu: MenuProperties {
857                 cols: 1,
858                 rows: 4,
859                 charsPerEntry: 8,
860                 rowGap: 32,
861                 cursor: menuCursor,
862                 cursorAnimation: menuCursorAnimation,
863                 font: menuFont,
864                 wrapY: true
865         },
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 {
878                 cols: 1,
879                 rows: 6,
880                 charsPerEntry: 14,
881                 rowGap: 8,
882                 cursor: menuCursor,
883                 cursorAnimation: menuCursorAnimation,
884                 font: menuFont
885         },
886         scenarioMenuHeadline: "SCENARIO ITEM",
887         capsulebg: Texture {
888                 image: :"capsulebg.png",
889                 size: <64, 64>
890         },
891         capsuleMenu: MenuProperties {
892                 cols: 3,
893                 rows: 1,
894                 charsPerEntry: 7,
895                 cursor: menuCursor,
896                 selectedCursor: menuActiveCursor,
897                 cursorAnimation: menuCursorAnimation,
898                 selectedCursorAnimation: menuActiveCursorAnimation,
899                 font: menuFont,
900                 thirdColumnHack: 2
901         },
902         capsuleFeedMenu: MenuProperties {
903                 cols: 2,
904                 rows: 1,
905                 charsPerEntry: 7,
906                 colGap: 32,
907                 cursor: menuCursor,
908                 selectedCursor: menuActiveCursor,
909                 cursorAnimation: menuCursorAnimation,
910                 selectedCursorAnimation: menuActiveCursorAnimation,
911                 font: menuFont
912         },
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 {
925                 font: menuFont,
926                 cursor: Sprite {
927                         image: :"alpha-cursor.png",
928                         size: <20, 28>
929                 },
930                 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!?  z!?  ",
931                 width: 10,
932                 groupX: 5
933         },
934         capsuleSelectTopLeft: Sprite {
935                 image: :"capsule-sprites.png",
936                 size: <32, 8>,
937                 offset: <64, 0>
938         },
939         capsuleSelectTopRight: Sprite {
940                 image: :"capsule-sprites.png",
941                 size: <32, 8>,
942                 offset: <128, 0>
943         },
944         capsuleSelectTopRepeat: Texture {
945                 image: :"capsule-sprites.png",
946                 size: <32, 8>,
947                 offset: <96, 0>
948         },
949         capsuleSelectBottomLeft: Sprite {
950                 image: :"capsule-sprites.png",
951                 size: <32, 32>,
952                 offset: <0, 32>
953         },
954         capsuleSelectBottomRight: Sprite {
955                 image: :"capsule-sprites.png",
956                 size: <32, 32>,
957                 offset: <128, 64>
958         },
959         capsuleSelectBottomRepeat: Sprite {
960                 image: :"capsule-sprites.png",
961                 size: <32, 32>,
962                 offset: <0, 64>
963         },
964         capsuleSelectLeftRepeat: Texture {
965                 image: :"capsule-sprites.png",
966                 size: <32, 32>
967         },
968         capsuleSelectRightRepeat: Texture {
969                 image: :"capsule-sprites.png",
970                 size: <32, 32>,
971                 offset: <128, 32>
972         },
973         capsuleSelectLadder: Sprite {
974                 image: :"capsule-sprites.png",
975                 size: <32, 24>,
976                 offset: <64, 8>
977         },
978         capsuleSelectCursor: Sprite {
979                 image: :"capsule-sprites.png",
980                 size: <32, 24>,
981                 offset: <128, 8>
982         },
983         capsuleAlignmentWheel: Sprite {
984                 image: :"capsule-sprites.png",
985                 size: <128, 128>,
986                 offset: <0, 128>
987         },
988         capsuleAlignmentCursor: Sprite {
989                 image: :"capsule-sprites.png",
990                 size: <32, 32>,
991                 offset: <128, 128>
992         },
993         capsuleGrowthLabel: Sprite {
994                 image: :"capsule-feed.png",
995                 size: <32, 10>
996         },
997         capsuleGrowthBar: Sprite {
998                 image: :"capsule-feed.png",
999                 size: <8, 10>,
1000                 offset: <8, 10>
1001         },
1002         capsuleGrowthBarFilled: Sprite {
1003                 image: :"capsule-feed.png",
1004                 size: <8, 10>,
1005                 offset: <0, 10>
1006         }
1007 }