]> git.localhorst.tv Git - l2e.git/blob - test-data/test.l2s
put stat increments in level ladder
[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: [ LevelUp
95                 // insensible test data
96                 { exp: 10, maxHP: 5, maxMP: 3, atp: 2, str: 1 }
97         ],
98         useMask: maskMaxim,
99         attackAnimation: ComplexAnimation {
100                 sprite: maximSprite,
101                 frametime: frameTime,
102                 repeat: false,
103                 frames:
104                 [ ComplexAnimationFrame
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: < 0, 0> },
112                         { column: 1, row: 0, disposition: < 4,-1> },
113                         { column: 1, row: 0, disposition: < 4,-1> },
114                         { column: 2, row: 0, disposition: < 4,-2> },
115                         { column: 2, row: 0, disposition: < 4,-2> },
116                         { column: 2, row: 0, disposition: < 6,-2> },
117                         { column: 2, row: 0, disposition: < 6,-2> },
118                         { column: 2, row: 1, disposition: < 6,-1> },
119                         { column: 2, row: 1, disposition: < 3,-1> },
120                         { column: 2, row: 1, disposition: < 3,-1> },
121                         { column: 2, row: 1, disposition: < 0, 0> },
122                         { column: 2, row: 2, disposition: < 0, 0> },
123                         { column: 2, row: 2, disposition: < 0, 0> },
124                         { column: 2, row: 2, disposition: < 2, 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                         { column: 1, row: 0, disposition: < 0, 0> }
132                 ]
133         },
134         spellAnimation: ComplexAnimation {
135                 sprite: maximSprite,
136                 frametime: fiveFramesTime,
137                 repeat: false,
138                 frames:
139                 [ ComplexAnimationFrame
140                         { column: 3, row: 0, disposition: < 0, 0> },
141                         { column: 3, row: 0, disposition: < 0, 0> },
142                         { column: 3, row: 1, disposition: < 0, 0> }
143                 ]
144         },
145         meleeAnimation: SimpleAnimation {
146                 sprite: Sprite {
147                         image: :"melee-maxim.png",
148                         size: <96,96>
149                 },
150                 frametime: twoFramesTime,
151                 framecount: 4
152         },
153         mapEntity: Entity {
154                 animation: SimpleAnimation{
155                         sprite: Sprite {
156                                 image: :"maxim-map.png",
157                                 size: <32,64>
158                         },
159                         frametime: 120,
160                         framecount: 2
161                 },
162                 spriteOffset: <0,-32>
163         }
164 }
165
166 Sprite selanSprite {
167         image: :"selan.png",
168         size: <64,64>
169 }
170 export Hero selan {
171         name: "Selan",
172         level: 1,
173         battleSprite: selanSprite,
174         maxHealth: 28,
175         health: 28,
176         maxMana: 23,
177         mana: 23,
178         ip: 0,
179         stats: Stats {
180                 atp: 23,
181                 dfp: 21,
182                 str: 23,
183                 agl: 19,
184                 int: 22,
185                 gut: 80,
186                 mgr: 13
187         },
188         useMask: maskSelan,
189         attackAnimation: ComplexAnimation {
190                 sprite: selanSprite,
191                 frametime: frameTime,
192                 repeat: false,
193                 frames:
194                 [ ComplexAnimationFrame
195                         { column: 1, row: 0, disposition: < 4, 0> },
196                         { column: 1, row: 0, disposition: < 4, 0> },
197                         { column: 1, row: 0, disposition: < 8, 2> },
198                         { column: 2, row: 0, disposition: <10, 4> },
199                         { column: 2, row: 0, disposition: <14, 4> },
200                         { column: 2, row: 0, disposition: <12, 2> },
201                         { column: 2, row: 0, disposition: <12, 2> },
202                         { column: 2, row: 0, disposition: <12, 2> },
203                         { column: 2, row: 1, disposition: <14, 2> },
204                         { column: 2, row: 1, disposition: <14, 2> },
205                         { column: 2, row: 1, disposition: < 2, 0> },
206                         { column: 2, row: 2, disposition: <-2,-4> },
207                         { column: 2, row: 2, disposition: <-8,-8> },
208                         { column: 2, row: 2, disposition: < 0, 0> }
209                 ]
210         },
211         spellAnimation: ComplexAnimation {
212                 sprite: selanSprite,
213                 frametime: frameTime,
214                 repeat: false,
215                 frames:
216                 [ ComplexAnimationFrame
217                         { column: 3, row: 0, disposition: < 0, 0> },
218                         { column: 3, row: 0, disposition: < 0, 0> },
219                         { column: 3, row: 0, disposition: < 0, 0> },
220                         { column: 3, row: 1, disposition: < 0, 0> },
221                         { column: 3, row: 1, disposition: < 0, 0> },
222                         { column: 3, row: 2, disposition: < 0, 0> },
223                         { column: 3, row: 2, disposition: < 0, 0> },
224                         { column: 3, row: 2, disposition: < 0, 0> },
225                         { column: 3, row: 3, disposition: < 0, 0> },
226                         { column: 3, row: 3, disposition: < 0, 0> }
227                 ]
228         },
229         meleeAnimation: SimpleAnimation {
230                 sprite: Sprite {
231                         image: :"melee-selan.png",
232                         size: <96,96>
233                 },
234                 frametime: twoFramesTime,
235                 framecount: 4
236         },
237         mapEntity: Entity {
238                 animation: SimpleAnimation{
239                         sprite: Sprite {
240                                 image: :"selan-map.png",
241                                 size: <32,64>
242                         },
243                         frametime: 120,
244                         framecount: 2
245                 },
246                 spriteOffset: <0,-32>
247         }
248 }
249
250 Sprite guySprite {
251         image: :"guy.png",
252         size: <64,64>
253 }
254 export Hero guy {
255         name: "Guy",
256         level: 1,
257         battleSprite: guySprite,
258         maxHealth: 38,
259         health: 38,
260         maxMana: 0,
261         mana: 0,
262         ip: 0,
263         stats: Stats {
264                 atp: 38,
265                 dfp: 25,
266                 str: 38,
267                 agl: 13,
268                 int:  8,
269                 gut: 90,
270                 mgr:  8
271         },
272         useMask: maskGuy,
273         attackAnimation: ComplexAnimation {
274                 sprite: guySprite,
275                 frametime: frameTime,
276                 repeat: false,
277                 frames:
278                 [ ComplexAnimationFrame
279                         { column: 1, row: 0, disposition: <-4, 0> },
280                         { column: 1, row: 0, disposition: <-4, 0> },
281                         { column: 1, row: 0, disposition: <-8, 0> },
282                         { column: 1, row: 0, disposition: <-8, 0> },
283                         { column: 2, row: 0, disposition: <-8, 0> },
284                         { column: 2, row: 0, disposition: <-8, 0> },
285                         { column: 2, row: 0, disposition: <-4, 0> },
286                         { column: 2, row: 0, disposition: < 0, 0> },
287                         { column: 2, row: 0, disposition: < 0, 0> },
288                         { column: 2, row: 1, disposition: < 0, 0> },
289                         { column: 2, row: 1, disposition: < 4, 0> },
290                         { column: 2, row: 1, disposition: <10, 0> },
291                         { column: 2, row: 2, disposition: <10, 0> },
292                         { column: 2, row: 2, disposition: < 0, 0> }
293                 ]
294         },
295         meleeAnimation: SimpleAnimation {
296                 sprite: Sprite {
297                         image: :"melee-guy.png",
298                         size: <96,96>
299                 },
300                 frametime: fourFramesTime,
301                 framecount: 4
302         },
303         mapEntity: Entity {
304                 animation: SimpleAnimation{
305                         sprite: Sprite {
306                                 image: :"guy-map.png",
307                                 size: <32,64>
308                         },
309                         frametime: 120,
310                         framecount: 2
311                 },
312                 spriteOffset: <0,-32>
313         }
314 }
315
316 Sprite dekarSprite {
317         image: :"dekar.png",
318         size: <64,64>
319 }
320 export Hero dekar {
321         name: "Dekar",
322         level: 1,
323         battleSprite: dekarSprite,
324         maxHealth: 38,
325         health: 38,
326         maxMana: 0,
327         mana: 0,
328         ip: 0,
329         stats: Stats {
330                 atp:  46,
331                 dfp:  29,
332                 str:  46,
333                 agl:  13,
334                 int:   7,
335                 gut: 100,
336                 mgr:   5
337         },
338         useMask: maskDekar,
339         attackAnimation: ComplexAnimation {
340                 sprite: dekarSprite,
341                 frametime: frameTime,
342                 repeat: false,
343                 frames:
344                 [ ComplexAnimationFrame
345                         { column: 1, row: 0, disposition: < 4, 0> },
346                         { column: 1, row: 0, disposition: < 8, 2> },
347                         { column: 2, row: 0, disposition: <12, 4> },
348                         { column: 2, row: 0, disposition: <16, 4> },
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: 0, disposition: <10, 2> },
353                         { column: 2, row: 1, disposition: < 6, 2> },
354                         { column: 2, row: 1, disposition: < 0, 0> },
355                         { column: 2, row: 2, disposition: <-2, 0> },
356                         { column: 2, row: 2, disposition: < 0, 0> },
357                         { column: 2, row: 2, disposition: < 0, 0> },
358                         { column: 2, row: 2, disposition: < 0, 0> }
359                 ]
360         },
361         spellAnimation: ComplexAnimation {
362                 sprite: dekarSprite,
363                 frametime: twoFramesTime,
364                 repeat: false,
365                 frames:
366                 [ ComplexAnimationFrame
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: 0, disposition: < 0, 0> },
373                         { column: 3, row: 1, disposition: < 0, 0> },
374                         { column: 3, row: 1, disposition: < 0, 0> },
375                         { column: 3, row: 2, disposition: < 0, 0> },
376                         { column: 3, row: 2, disposition: < 0, 0> },
377                         { column: 3, row: 2, disposition: < 0, 0> }
378                 ]
379         },
380         meleeAnimation: SimpleAnimation {
381                 sprite: Sprite {
382                         image: :"melee-dekar.png",
383                         size: <96,96>
384                 },
385                 frametime: twoFramesTime,
386                 framecount: 4
387         },
388         mapEntity: Entity {
389                 animation: SimpleAnimation{
390                         sprite: Sprite {
391                                 image: :"dekar-map.png",
392                                 size: <32,64>
393                         },
394                         frametime: 120,
395                         framecount: 2
396                 },
397                 spriteOffset: <0,-32>
398         }
399 }
400
401 Sprite handCursor {
402         image: :"cursor-hand.png",
403         size: <32,32>
404 }
405
406 Font normalFont {
407         sprite: Sprite {
408                 image: :"normal-font.png",
409                 size: <16,16>
410         },
411         rowoffset: -2
412 }
413
414 Font disabledFont {
415         sprite: Sprite {
416                 image: :"disabled-font.png",
417                 size: <16,16>
418         },
419         rowoffset: -2
420 }
421
422 export BattleResources battleResources {
423         swapCursor: Sprite {
424                 image: :"swap-cursor.png",
425                 size: <32,32>
426         },
427         attackIcons: Sprite {
428                 image: :"attack-type-icons.png",
429                 size: <32,32>
430         },
431         attackChoiceIcons: Sprite {
432                 image: :"attack-choice-icons.png",
433                 size: <16,16>
434         },
435         moveIcons: Sprite {
436                 image: :"move-icons.png",
437                 size: <32,32>
438         },
439
440         titleFrame: Frame {
441                 image: :"title-frame.png",
442                 border: <16,16>
443         },
444         titleFont: Font {
445                 sprite: Sprite {
446                         image: :"large-font.png",
447                         size: <16,32>
448                 },
449                 rowoffset: -2
450         },
451
452         numberAnimationPrototype: ComplexAnimation {
453                 frametime: frameTime,
454                 repeat: false,
455                 frames:
456                 [ ComplexAnimationFrame
457                         { column: 0, row: 0, disposition: <  0,  0> },
458                         { column: 0, row: 0, disposition: <  0,-26> },
459                         { column: 0, row: 0, disposition: <  0,-42> },
460                         { column: 0, row: 0, disposition: <  0,-48> },
461                         { column: 0, row: 0, disposition: <  0,-42> },
462                         { column: 0, row: 0, disposition: <  0,-26> },
463                         { column: 0, row: 0, disposition: <  0,  0> },
464                         { column: 0, row: 0, disposition: <  0,-12> },
465                         { column: 0, row: 0, disposition: <  0,-20> },
466                         { column: 0, row: 0, disposition: <  0,-24> },
467                         { column: 0, row: 0, disposition: <  0,-20> },
468                         { column: 0, row: 0, disposition: <  0,-12> },
469                         { column: 0, row: 0, disposition: <  0,  0> },
470                         { column: 0, row: 0, disposition: <  0, -6> },
471                         { column: 0, row: 0, disposition: <  0,-10> },
472                         { column: 0, row: 0, disposition: <  0,-12> },
473                         { column: 0, row: 0, disposition: <  0,-10> },
474                         { column: 0, row: 0, disposition: <  0, -6> },
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,  0> },
489                         { column: 0, row: 0, disposition: <  0,-36> },
490                         { column: 0, row: 0, disposition: <  0,-32> },
491                         { column: 0, row: 0, disposition: <  0,-18> }
492                 ]
493         },
494         bigNumberSprite: Sprite {
495                 image: :"big-numbers.png",
496                 size: <16,32>
497         },
498         greenNumberSprite: Sprite {
499                 image: :"big-green-numbers.png",
500                 size: <16,32>
501         },
502
503         heroTagLabels: Sprite {
504                 image: :"hero-tag-sprites.png",
505                 size: <32,16>
506         },
507         levelLabelCol: 0,
508         levelLabelRow: 0,
509         healthLabelCol: 0,
510         healthLabelRow: 1,
511         manaLabelCol: 0,
512         manaLabelRow: 2,
513         moveLabelCol: 0,
514         moveLabelRow: 3,
515         ikariLabelCol: 0,
516         ikariLabelRow: 4,
517         heroTagFont: Font {
518                 sprite: Sprite {
519                         image: :"numbers.png",
520                         size: <16,16>
521                 },
522                 rowoffset: -3
523         },
524
525         activeHeroTagFrame: Frame {
526                 image: :"tag-frames.png",
527                 border: <16,16>
528         },
529         heroTagFrame: Frame {
530                 image: :"tag-frames.png",
531                 border: <16,16>,
532                 offset: < 0,33>
533         },
534
535         smallHeroTagFrame: Frame {
536                 image: :"small-tag-frame.png",
537                 border: <8,16>
538         },
539         lastSmallHeroTagFrame: Frame {
540                 image: :"small-tag-frame.png",
541                 border: <8,16>,
542                 offset: <0,33>
543         },
544         heroesBgColor: (24, 40, 49),
545
546         healthGauge: Gauge {
547                 image: :"gauges.png",
548                 full:  <0,16>,
549                 empty: <0, 0>,
550                 height: 16,
551                 start:   6,
552                 repeat:  1,
553                 end:     6
554         },
555         manaGauge: Gauge {
556                 image: :"gauges.png",
557                 full:  <0,32>,
558                 empty: <0, 0>,
559                 height: 16,
560                 start:   6,
561                 repeat:  1,
562                 end:     6
563         },
564         ikariGauge: Gauge {
565                 image: :"gauges.png",
566                 full:  <0,48>,
567                 empty: <0, 0>,
568                 height: 16,
569                 start:   6,
570                 repeat:  1,
571                 end:     6
572         },
573
574         selectFrame: Frame {
575                 image: :"select-frame.png",
576                 border: <16,16>
577         },
578         normalFont: normalFont,
579         disabledFont: disabledFont,
580         menuCursor: Sprite {
581                 image: :"cursor-hand.png",
582                 size: <32,32>
583         },
584
585         weaponTargetCursor: Sprite {
586                 image: :"targeting-icons.png",
587                 size: <32,32>
588         },
589         magicTargetCursor: Sprite {
590                 image: :"targeting-icons.png",
591                 size: <32,32>,
592                 offset: <0,32>
593         },
594         itemTargetCursor: Sprite {
595                 image: :"targeting-icons.png",
596                 size: <32,32>,
597                 offset: <0,64>
598         },
599
600         weaponMenuIcon: swordIcon,
601         armorMenuIcon: armorIcon,
602         shieldMenuIcon: shieldIcon,
603         helmetMenuIcon: helmetIcon,
604         ringMenuIcon: ringIcon,
605         jewelMenuIcon: jewelIcon,
606
607         spellMenuHeadline: "Please choose a spell.",
608         spellMenuProperties: MenuProperties {
609                 font: normalFont,
610                 disabledFont: disabledFont,
611                 cursor: handCursor,
612                 charsPerEntry: 9,
613                 rows: 6,
614                 rowGap: 8,
615                 iconSpace: 0,
616                 cols: 2,
617                 colGap: 32,
618                 charsPerNumber: 2,
619                 delimiter: ":"
620         },
621
622         itemMenuHeadline: "Please choose an item.",
623         itemMenuProperties: MenuProperties {
624                 font: normalFont,
625                 disabledFont: disabledFont,
626                 cursor: handCursor,
627                 charsPerEntry: 15,
628                 rows: 6,
629                 rowGap: 8,
630                 iconSpace: 16,
631                 cols: 1,
632                 colGap: 32,
633                 charsPerNumber: 2,
634                 delimiter: ":"
635         },
636
637         ikariMenuHeadline: "Please choose equipment.",
638         ikariMenuProperties: MenuProperties {
639                 font: normalFont,
640                 disabledFont: disabledFont,
641                 cursor: handCursor,
642                 charsPerEntry: 12,
643                 rows: 6,
644                 rowGap: 8,
645                 iconSpace: 16,
646                 cols: 1,
647                 colGap: 32,
648                 charsPerAdditionalText: 12,
649                 additionalTextGap: 16
650         },
651         noEquipmentText: "No equip",
652
653         escapeText: "Escapes."
654 }
655
656 Font menuFont {
657         sprite: Sprite {
658                 image: :"menu-font.png",
659                 size: <16, 16>
660         },
661         rowoffset: -2
662 }
663 Font menuInactiveFont {
664         sprite: Sprite {
665                 image: :"menu-font-inactive.png",
666                 size: <16, 16>
667         },
668         rowoffset: -2
669 }
670 Sprite menuCursor {
671         image: :"menu-cursor.png",
672         size: <32, 16>
673 }
674 Sprite menuActiveCursor {
675         image: :"menu-cursor-active.png",
676         size: <32, 18>
677 }
678 SimpleAnimation menuCursorAnimation {
679         sprite: menuCursor,
680         frametime: fourFramesTime,
681         framecount: 6,
682         repeat: true
683 }
684 ComplexAnimation menuActiveCursorAnimation {
685         sprite: menuActiveCursor,
686         frametime: fourFramesTime,
687         repeat: true,
688         frames:
689         [ ComplexAnimationFrame
690                 { row: 0 },
691                 { row: 0 },
692                 { row: 0 },
693                 { row: 0 },
694                 { row: 0 },
695                 { row: 0 },
696                 { row: 0 },
697                 { row: 0 },
698                 { row: 1 },
699                 { row: 2 },
700                 { row: 3 },
701                 { row: 4 }
702         ]
703 }
704
705 export MenuResources menuResources {
706         menubg: Texture {
707                 image: :"menubg.png",
708                 size: <64, 64>
709         },
710         normalFont: menuFont,
711         inactiveFont: menuInactiveFont,
712         statusFont: normalFont,
713         statusLabels: Sprite {
714                 image: :"status-labels.png",
715                 size: <32, 16>
716         },
717         statusFrame: Frame {
718                 image: :"status-frame.png",
719                 border: <32, 32>,
720                 repeat: <32, 32>
721         },
722         mainMenu: MenuProperties {
723                 cols: 2,
724                 rows: 4,
725                 charsPerEntry: 8,
726                 rowGap: 8,
727                 colGap: 32,
728                 cursor: menuCursor,
729                 cursorAnimation: menuCursorAnimation,
730                 font: menuFont,
731                 disabledFont: menuInactiveFont,
732                 wrapX: true,
733                 wrapY: true
734         },
735         mainMenuItemText: "ITEM",
736         mainMenuSpellText: "SPELL",
737         mainMenuCapsuleText: "CAPSULE",
738         mainMenuEquipmentText: "EQUIP",
739         mainMenuStatusText: "STATUS",
740         mainMenuChangeText: "CHANGE",
741         mainMenuConfigText: "CONFIG",
742         mainMenuScenarioText: "SCENARIO",
743         mainMenuTimeText: "TIME",
744         mainMenuGoldText: "GOLD",
745         heroCursor: Sprite {
746                 image: :"hero-cursor.png",
747                 size: <64, 16>
748         },
749         heroCursorBlinkTime: 532,
750         noEquipmentText: "No equip",
751         shoulderNav: Sprite {
752                 image: :"shoulder-nav.png",
753                 size: <160, 16>
754         },
755         atpLabel: "ATP",
756         dfpLabel: "DFP",
757         strLabel: "STR",
758         aglLabel: "AGL",
759         intLabel: "INT",
760         gutLabel: "GUT",
761         mgrLabel: "MGR",
762         hpLabel: "HP",
763         ipLabel: "IP",
764         levelLabel: "LEVEL",
765         experienceLabel: "NOW EXP",
766         nextLevelLabel: "NEXT LEVEL",
767         statusMenu: MenuProperties {
768                 cols: 2,
769                 rows: 1,
770                 charsPerEntry: 6,
771                 colGap: 16,
772                 cursor: menuCursor,
773                 cursorAnimation: menuCursorAnimation,
774                 font: menuFont,
775                 wrapX: true
776         },
777         nextLabel: "NEXT",
778         returnLabel: "RETURN",
779         itemMenu: MenuProperties {
780                 cols: 3,
781                 rows: 1,
782                 charsPerEntry: 5,
783                 rowGap: 8,
784                 colGap: 16,
785                 cursor: menuCursor,
786                 selectedCursor: menuActiveCursor,
787                 cursorAnimation: menuCursorAnimation,
788                 selectedCursorAnimation: menuActiveCursorAnimation,
789                 font: menuFont,
790                 wrapX: true,
791                 wrapY: true
792         },
793         itemMenuUseText: "USE",
794         itemMenuSortText: "SORT",
795         itemMenuDropText: "DROP",
796         itemMenuSelectText: "SELECT",
797         inventoryMenu: MenuProperties {
798                 cols: 1,
799                 rows: 6,
800                 charsPerEntry: 13,
801                 rowGap: 8,
802                 cursor: menuCursor,
803                 selectedCursor: menuActiveCursor,
804                 cursorAnimation: menuCursorAnimation,
805                 selectedCursorAnimation: menuActiveCursorAnimation,
806                 font: menuFont,
807                 disabledFont: menuInactiveFont,
808                 iconSpace: 16,
809                 charsPerNumber: 2,
810                 delimiter: ":",
811                 thirdColumnHack: 1
812         },
813         spellMenu: MenuProperties {
814                 cols: 2,
815                 rows: 6,
816                 charsPerEntry: 8,
817                 rowGap: 8,
818                 colGap: 48,
819                 cursor: menuCursor,
820                 selectedCursor: menuActiveCursor,
821                 cursorAnimation: menuCursorAnimation,
822                 selectedCursorAnimation: menuActiveCursorAnimation,
823                 font: menuFont,
824                 disabledFont: menuInactiveFont,
825                 charsPerNumber: 2,
826                 delimiter: ":"
827         },
828         equipmentActionMenu: MenuProperties {
829                 cols: 1,
830                 rows: 5,
831                 charsPerEntry: 10,
832                 rowGap: 8,
833                 cursor: menuCursor,
834                 selectedCursor: menuActiveCursor,
835                 cursorAnimation: menuCursorAnimation,
836                 selectedCursorAnimation: menuActiveCursorAnimation,
837                 font: menuFont
838         },
839         equipmentMenu: MenuProperties {
840                 cols: 1,
841                 rows: 6,
842                 charsPerEntry: 12,
843                 rowGap: 16,
844                 cursor: menuCursor,
845                 selectedCursor: menuActiveCursor,
846                 cursorAnimation: menuCursorAnimation,
847                 selectedCursorAnimation: menuActiveCursorAnimation,
848                 font: normalFont,
849                 iconSpace: 16,
850                 wrapY: true
851         },
852         equipMenuEquipLabel: "EQUIP",
853         equipMenuStrongestLabel: "STRONGEST",
854         equipMenuRemoveLabel: "REMOVE",
855         equipMenuRemoveAllLabel: "REMOVE ALL",
856         equipMenuDropLabel: "DROP",
857         configMenu: MenuProperties {
858                 cols: 1,
859                 rows: 4,
860                 charsPerEntry: 8,
861                 rowGap: 32,
862                 cursor: menuCursor,
863                 cursorAnimation: menuCursorAnimation,
864                 font: menuFont,
865                 wrapY: true
866         },
867         configMessageSpeedLabel: "MESSAGE\n   SPEED",
868         configMessageSpeedFast: "FAST",
869         configMessageSpeedNormal: "NORMAL",
870         configMessageSpeedSlow: "SLOW",
871         configBattleCursorLabel: "BATTLE\n  CURSOR",
872         configStatusCursorLabel: "STATUS\n  CURSOR",
873         configCursorClear: "CLEAR",
874         configCursorMemory: "MEMORY",
875         configMusicLabel: "MUSIC",
876         configMusicStereo: "STEREO",
877         configMusicMono: "MONO",
878         scenarioMenu: MenuProperties {
879                 cols: 1,
880                 rows: 6,
881                 charsPerEntry: 14,
882                 rowGap: 8,
883                 cursor: menuCursor,
884                 cursorAnimation: menuCursorAnimation,
885                 font: menuFont
886         },
887         scenarioMenuHeadline: "SCENARIO ITEM",
888         capsulebg: Texture {
889                 image: :"capsulebg.png",
890                 size: <64, 64>
891         },
892         capsuleMenu: MenuProperties {
893                 cols: 3,
894                 rows: 1,
895                 charsPerEntry: 7,
896                 cursor: menuCursor,
897                 selectedCursor: menuActiveCursor,
898                 cursorAnimation: menuCursorAnimation,
899                 selectedCursorAnimation: menuActiveCursorAnimation,
900                 font: menuFont,
901                 thirdColumnHack: 2
902         },
903         capsuleFeedMenu: MenuProperties {
904                 cols: 2,
905                 rows: 1,
906                 charsPerEntry: 7,
907                 colGap: 32,
908                 cursor: menuCursor,
909                 selectedCursor: menuActiveCursor,
910                 cursorAnimation: menuCursorAnimation,
911                 selectedCursorAnimation: menuActiveCursorAnimation,
912                 font: menuFont
913         },
914         capsuleFeedLabel: "FEED",
915         capsuleChangeLabel: "CHANGE",
916         capsuleNameLabel: "NAME",
917         capsuleClassLabel: "CLASS",
918         capsuleAlignmentLabel: "ALI.",
919         capsuleTribeLabel: "TRIBE",
920         capsuleAttack1Label: "SP.1",
921         capsuleAttack2Label: "SP.2",
922         capsuleAttack3Label: "SP.3",
923         capsuleNoAttackText: "Nothing",
924         capsuleNotHungryText: "I'm not hungry.",
925         capsuleNameSelect: CharSelect {
926                 font: menuFont,
927                 cursor: Sprite {
928                         image: :"alpha-cursor.png",
929                         size: <20, 28>
930                 },
931                 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!?  z!?  ",
932                 width: 10,
933                 groupX: 5
934         },
935         capsuleSelectTopLeft: Sprite {
936                 image: :"capsule-sprites.png",
937                 size: <32, 8>,
938                 offset: <64, 0>
939         },
940         capsuleSelectTopRight: Sprite {
941                 image: :"capsule-sprites.png",
942                 size: <32, 8>,
943                 offset: <128, 0>
944         },
945         capsuleSelectTopRepeat: Texture {
946                 image: :"capsule-sprites.png",
947                 size: <32, 8>,
948                 offset: <96, 0>
949         },
950         capsuleSelectBottomLeft: Sprite {
951                 image: :"capsule-sprites.png",
952                 size: <32, 32>,
953                 offset: <0, 32>
954         },
955         capsuleSelectBottomRight: Sprite {
956                 image: :"capsule-sprites.png",
957                 size: <32, 32>,
958                 offset: <128, 64>
959         },
960         capsuleSelectBottomRepeat: Sprite {
961                 image: :"capsule-sprites.png",
962                 size: <32, 32>,
963                 offset: <0, 64>
964         },
965         capsuleSelectLeftRepeat: Texture {
966                 image: :"capsule-sprites.png",
967                 size: <32, 32>
968         },
969         capsuleSelectRightRepeat: Texture {
970                 image: :"capsule-sprites.png",
971                 size: <32, 32>,
972                 offset: <128, 32>
973         },
974         capsuleSelectLadder: Sprite {
975                 image: :"capsule-sprites.png",
976                 size: <32, 24>,
977                 offset: <64, 8>
978         },
979         capsuleSelectCursor: Sprite {
980                 image: :"capsule-sprites.png",
981                 size: <32, 24>,
982                 offset: <128, 8>
983         },
984         capsuleAlignmentWheel: Sprite {
985                 image: :"capsule-sprites.png",
986                 size: <128, 128>,
987                 offset: <0, 128>
988         },
989         capsuleAlignmentCursor: Sprite {
990                 image: :"capsule-sprites.png",
991                 size: <32, 32>,
992                 offset: <128, 128>
993         },
994         capsuleGrowthLabel: Sprite {
995                 image: :"capsule-feed.png",
996                 size: <32, 10>
997         },
998         capsuleGrowthBar: Sprite {
999                 image: :"capsule-feed.png",
1000                 size: <8, 10>,
1001                 offset: <8, 10>
1002         },
1003         capsuleGrowthBarFilled: Sprite {
1004                 image: :"capsule-feed.png",
1005                 size: <8, 10>,
1006                 offset: <0, 10>
1007         }
1008 }