]> git.localhorst.tv Git - l2e.git/blob - test-data/test.l2s
added hard support for path names in source files
[l2e.git] / test-data / test.l2s
1 Number frameTime 33
2 Number twoFramesTime 66
3 Number fourFramesTime 132
4 Number fiveFramesTime 165 // darn, i really need to implement expressions
5
6 export PartyLayout monstersLayout {
7         positions: [
8                 < 88, 88>,
9                 <128, 88>,
10                 <168, 88>,
11                 <208, 88>
12         ]
13 }
14 export PartyLayout heroesLayout {
15         positions: [
16                 < 48,136>,
17                 <128,136>,
18                 < 80,152>,
19                 <160,152>
20         ]
21 }
22
23 Sprite lizardSprite {
24         image: :"monster.png",
25         size: <64,64>
26 }
27
28 export Monster lizard {
29         name: "Lizard",
30         sprite: lizardSprite,
31         level: 1,
32         maxHealth: 8,
33         health: 8,
34         stats: Stats {
35                 atp: 14,
36                 dfp:  6,
37                 str:  6,
38                 agl:  6,
39                 int:  6,
40                 gut:  6,
41                 mgr:  6
42         },
43         attackAnimation: ComplexAnimation {
44                 sprite: lizardSprite,
45                 frametime: fourFramesTime,
46                 repeat: false,
47                 frames: [
48                         { column: 0, row: 1, disposition: < 0, 16> },
49                         { column: 0, row: 0, disposition: < 0, 16> },
50                         { column: 0, row: 1, disposition: < 0, 16> },
51                         { column: 0, row: 0, disposition: < 0, 16> }
52                 ]
53         },
54         meleeAnimation: SimpleAnimation {
55                 sprite: Sprite {
56                         image: :"attack-monster.png",
57                         size: <96,64>
58                 },
59                 frametime: frameTime,
60                 framecount: 14
61         }
62 }
63
64 Sprite maximSprite {
65         image: :"maxim.png",
66         size: <64,64>
67 }
68 export Hero maxim {
69         name: "Maxim",
70         level: 1,
71         sprite: maximSprite,
72         maxHealth: 33,
73         health: 33,
74         maxMana: 20,
75         mana: 20,
76         ip: 0,
77         stats: Stats {
78                 atp:  28,
79                 dfp:  22,
80                 str:  28,
81                 agl:  17,
82                 int:  14,
83                 gut: 100,
84                 mgr:  10
85         },
86         attackAnimation: ComplexAnimation {
87                 sprite: maximSprite,
88                 frametime: frameTime,
89                 repeat: false,
90                 frames: [
91                         { column: 1, row: 0, disposition: < 0, 0> },
92                         { column: 1, row: 0, disposition: < 0, 0> },
93                         { column: 1, row: 0, disposition: < 0, 0> },
94                         { column: 1, row: 0, disposition: < 0, 0> },
95                         { column: 1, row: 0, disposition: < 0, 0> },
96                         { column: 1, row: 0, disposition: < 0, 0> },
97                         { column: 1, row: 0, disposition: < 0, 0> },
98                         { column: 1, row: 0, disposition: < 4,-1> },
99                         { column: 1, row: 0, disposition: < 4,-1> },
100                         { column: 2, row: 0, disposition: < 4,-2> },
101                         { column: 2, row: 0, disposition: < 4,-2> },
102                         { column: 2, row: 0, disposition: < 6,-2> },
103                         { column: 2, row: 0, disposition: < 6,-2> },
104                         { column: 2, row: 1, disposition: < 6,-1> },
105                         { column: 2, row: 1, disposition: < 3,-1> },
106                         { column: 2, row: 1, disposition: < 3,-1> },
107                         { column: 2, row: 1, disposition: < 0, 0> },
108                         { column: 2, row: 2, disposition: < 0, 0> },
109                         { column: 2, row: 2, disposition: < 0, 0> },
110                         { column: 2, row: 2, disposition: < 2, 0> },
111                         { column: 1, row: 0, disposition: < 0, 0> },
112                         { column: 1, row: 0, disposition: < 0, 0> },
113                         { column: 1, row: 0, disposition: < 0, 0> },
114                         { column: 1, row: 0, disposition: < 0, 0> },
115                         { column: 1, row: 0, disposition: < 0, 0> },
116                         { column: 1, row: 0, disposition: < 0, 0> },
117                         { column: 1, row: 0, disposition: < 0, 0> }
118                 ]
119         },
120         spellAnimation: ComplexAnimation {
121                 sprite: maximSprite,
122                 frametime: fiveFramesTime,
123                 repeat: false,
124                 frames: [
125                         { column: 3, row: 0, disposition: < 0, 0> },
126                         { column: 3, row: 0, disposition: < 0, 0> },
127                         { column: 3, row: 1, disposition: < 0, 0> }
128                 ]
129         },
130         meleeAnimation: SimpleAnimation {
131                 sprite: Sprite {
132                         image: :"melee-maxim.png",
133                         size: <96,96>
134                 },
135                 frametime: twoFramesTime,
136                 framecount: 4
137         }
138 }
139
140 Sprite selanSprite {
141         image: :"selan.png",
142         size: <64,64>
143 }
144 export Hero selan {
145         name: "Selan",
146         level: 1,
147         sprite: selanSprite,
148         maxHealth: 28,
149         health: 28,
150         maxMana: 23,
151         mana: 23,
152         ip: 0,
153         stats: Stats {
154                 atp: 23,
155                 dfp: 21,
156                 str: 23,
157                 agl: 19,
158                 int: 22,
159                 gut: 80,
160                 mgr: 13
161         },
162         attackAnimation: ComplexAnimation {
163                 sprite: selanSprite,
164                 frametime: frameTime,
165                 repeat: false,
166                 frames: [
167                         { column: 1, row: 0, disposition: < 4, 0> },
168                         { column: 1, row: 0, disposition: < 4, 0> },
169                         { column: 1, row: 0, disposition: < 8, 2> },
170                         { column: 2, row: 0, disposition: <10, 4> },
171                         { column: 2, row: 0, disposition: <14, 4> },
172                         { column: 2, row: 0, disposition: <12, 2> },
173                         { column: 2, row: 0, disposition: <12, 2> },
174                         { column: 2, row: 0, disposition: <12, 2> },
175                         { column: 2, row: 1, disposition: <14, 2> },
176                         { column: 2, row: 1, disposition: <14, 2> },
177                         { column: 2, row: 1, disposition: < 2, 0> },
178                         { column: 2, row: 2, disposition: <-2,-4> },
179                         { column: 2, row: 2, disposition: <-8,-8> },
180                         { column: 2, row: 2, disposition: < 0, 0> }
181                 ]
182         },
183         spellAnimation: ComplexAnimation {
184                 sprite: selanSprite,
185                 frametime: frameTime,
186                 repeat: false,
187                 frames: [
188                         { column: 3, row: 0, disposition: < 0, 0> },
189                         { column: 3, row: 0, disposition: < 0, 0> },
190                         { column: 3, row: 0, disposition: < 0, 0> },
191                         { column: 3, row: 1, disposition: < 0, 0> },
192                         { column: 3, row: 1, disposition: < 0, 0> },
193                         { column: 3, row: 2, disposition: < 0, 0> },
194                         { column: 3, row: 2, disposition: < 0, 0> },
195                         { column: 3, row: 2, disposition: < 0, 0> },
196                         { column: 3, row: 3, disposition: < 0, 0> },
197                         { column: 3, row: 3, disposition: < 0, 0> }
198                 ]
199         },
200         meleeAnimation: SimpleAnimation {
201                 sprite: Sprite {
202                         image: :"melee-selan.png",
203                         size: <96,96>
204                 },
205                 frametime: twoFramesTime,
206                 framecount: 4
207         }
208 }
209
210 Sprite guySprite {
211         image: :"guy.png",
212         size: <64,64>
213 }
214 export Hero guy {
215         name: "Guy",
216         level: 1,
217         sprite: guySprite,
218         maxHealth: 38,
219         health: 38,
220         maxMana: 0,
221         mana: 0,
222         ip: 0,
223         stats: Stats {
224                 atp: 38,
225                 dfp: 25,
226                 str: 38,
227                 agl: 13,
228                 int:  8,
229                 gut: 90,
230                 mgr:  8
231         },
232         attackAnimation: ComplexAnimation {
233                 sprite: guySprite,
234                 frametime: frameTime,
235                 repeat: false,
236                 frames: [
237                         { column: 1, row: 0, disposition: <-4, 0> },
238                         { column: 1, row: 0, disposition: <-4, 0> },
239                         { column: 1, row: 0, disposition: <-8, 0> },
240                         { column: 1, row: 0, disposition: <-8, 0> },
241                         { column: 2, row: 0, disposition: <-8, 0> },
242                         { column: 2, row: 0, disposition: <-8, 0> },
243                         { column: 2, row: 0, disposition: <-4, 0> },
244                         { column: 2, row: 0, disposition: < 0, 0> },
245                         { column: 2, row: 0, disposition: < 0, 0> },
246                         { column: 2, row: 1, disposition: < 0, 0> },
247                         { column: 2, row: 1, disposition: < 4, 0> },
248                         { column: 2, row: 1, disposition: <10, 0> },
249                         { column: 2, row: 2, disposition: <10, 0> },
250                         { column: 2, row: 2, disposition: < 0, 0> }
251                 ]
252         },
253         meleeAnimation: SimpleAnimation {
254                 sprite: Sprite {
255                         image: :"melee-guy.png",
256                         size: <96,96>
257                 },
258                 frametime: fourFramesTime,
259                 framecount: 4
260         }
261 }
262
263 Sprite dekarSprite {
264         image: :"dekar.png",
265         size: <64,64>
266 }
267 export Hero dekar {
268         name: "Dekar",
269         level: 1,
270         sprite: dekarSprite,
271         maxHealth: 38,
272         health: 38,
273         maxMana: 0,
274         mana: 0,
275         ip: 0,
276         stats: Stats {
277                 atp:  46,
278                 dfp:  29,
279                 str:  46,
280                 agl:  13,
281                 int:   7,
282                 gut: 100,
283                 mgr:   5
284         },
285         attackAnimation: ComplexAnimation {
286                 sprite: dekarSprite,
287                 frametime: frameTime,
288                 repeat: false,
289                 frames: [
290                         { column: 1, row: 0, disposition: < 4, 0> },
291                         { column: 1, row: 0, disposition: < 8, 2> },
292                         { column: 2, row: 0, disposition: <12, 4> },
293                         { column: 2, row: 0, disposition: <16, 4> },
294                         { column: 2, row: 0, disposition: <10, 2> },
295                         { column: 2, row: 0, disposition: <10, 2> },
296                         { column: 2, row: 0, disposition: <10, 2> },
297                         { column: 2, row: 0, disposition: <10, 2> },
298                         { column: 2, row: 1, disposition: < 6, 2> },
299                         { column: 2, row: 1, disposition: < 0, 0> },
300                         { column: 2, row: 2, disposition: <-2, 0> },
301                         { column: 2, row: 2, disposition: < 0, 0> },
302                         { column: 2, row: 2, disposition: < 0, 0> },
303                         { column: 2, row: 2, disposition: < 0, 0> }
304                 ]
305         },
306         spellAnimation: ComplexAnimation {
307                 sprite: dekarSprite,
308                 frametime: twoFramesTime,
309                 repeat: false,
310                 frames: [
311                         { column: 3, row: 0, disposition: < 0, 0> },
312                         { column: 3, row: 0, disposition: < 0, 0> },
313                         { column: 3, row: 0, disposition: < 0, 0> },
314                         { column: 3, row: 0, disposition: < 0, 0> },
315                         { column: 3, row: 0, disposition: < 0, 0> },
316                         { column: 3, row: 0, disposition: < 0, 0> },
317                         { column: 3, row: 1, disposition: < 0, 0> },
318                         { column: 3, row: 1, disposition: < 0, 0> },
319                         { column: 3, row: 2, disposition: < 0, 0> },
320                         { column: 3, row: 2, disposition: < 0, 0> },
321                         { column: 3, row: 2, disposition: < 0, 0> }
322                 ]
323         },
324         meleeAnimation: SimpleAnimation {
325                 sprite: Sprite {
326                         image: :"melee-dekar.png",
327                         size: <96,96>
328                 },
329                 frametime: twoFramesTime,
330                 framecount: 4
331         }
332 }
333
334 export Sprite swapCursor {
335         image: :"swap-cursor.png",
336         size: <32,32>
337 }
338 export Sprite attackIcons {
339         image: :"attack-type-icons.png",
340         size: <32,32>
341 }
342 export Sprite attackChoiceIcons {
343         image: :"attack-choice-icons.png",
344         size: <16,16>
345 }
346 export Sprite moveIcons {
347         image: :"move-icons.png",
348         size: <32,32>
349 }
350
351 export Frame titleFrame {
352         image: :"title-frame.png",
353         border: <16,16>
354 }
355
356 export Font largeFont {
357         sprite: Sprite {
358                 image: :"large-font.png",
359                 size: <16,32>
360         },
361         rowoffset: -2
362 }
363
364 export ComplexAnimation numberAnimationPrototype {
365         frametime: frameTime,
366         repeat: false,
367         frames: [
368                 { column: 0, row: 0, disposition: <  0,  0> },
369                 { column: 0, row: 0, disposition: <  0,-26> },
370                 { column: 0, row: 0, disposition: <  0,-42> },
371                 { column: 0, row: 0, disposition: <  0,-48> },
372                 { column: 0, row: 0, disposition: <  0,-42> },
373                 { column: 0, row: 0, disposition: <  0,-26> },
374                 { column: 0, row: 0, disposition: <  0,  0> },
375                 { column: 0, row: 0, disposition: <  0,-12> },
376                 { column: 0, row: 0, disposition: <  0,-20> },
377                 { column: 0, row: 0, disposition: <  0,-24> },
378                 { column: 0, row: 0, disposition: <  0,-20> },
379                 { column: 0, row: 0, disposition: <  0,-12> },
380                 { column: 0, row: 0, disposition: <  0,  0> },
381                 { column: 0, row: 0, disposition: <  0, -6> },
382                 { column: 0, row: 0, disposition: <  0,-10> },
383                 { column: 0, row: 0, disposition: <  0,-12> },
384                 { column: 0, row: 0, disposition: <  0,-10> },
385                 { column: 0, row: 0, disposition: <  0, -6> },
386                 { column: 0, row: 0, disposition: <  0,  0> },
387                 { column: 0, row: 0, disposition: <  0,  0> },
388                 { column: 0, row: 0, disposition: <  0,  0> },
389                 { column: 0, row: 0, disposition: <  0,  0> },
390                 { column: 0, row: 0, disposition: <  0,  0> },
391                 { column: 0, row: 0, disposition: <  0,  0> },
392                 { column: 0, row: 0, disposition: <  0,  0> },
393                 { column: 0, row: 0, disposition: <  0,  0> },
394                 { column: 0, row: 0, disposition: <  0,  0> },
395                 { column: 0, row: 0, disposition: <  0,  0> },
396                 { column: 0, row: 0, disposition: <  0,  0> },
397                 { column: 0, row: 0, disposition: <  0,  0> },
398                 { column: 0, row: 0, disposition: <  0,  0> },
399                 { column: 0, row: 0, disposition: <  0,  0> },
400                 { column: 0, row: 0, disposition: <  0,-36> },
401                 { column: 0, row: 0, disposition: <  0,-32> },
402                 { column: 0, row: 0, disposition: <  0,-18> }
403         ]
404 }
405 export Sprite bigNumbers {
406         image: :"big-numbers.png",
407         size: <16,32>
408 }
409 export Sprite bigGreenNumbers {
410         image: :"big-green-numbers.png",
411         size: <16,32>
412 }
413
414 export Sprite heroTagLabels {
415         image: :"hero-tag-sprites.png",
416         size: <32,16>
417 }
418 export Font heroTagFont {
419         sprite: Sprite {
420                 image: :"numbers.png",
421                 size: <16,16>
422         },
423         rowoffset: -3
424 }
425
426 export Frame activeHeroTagFrame {
427         image: :"tag-frames.png",
428         border: <16,16>
429 }
430 export Frame heroTagFrame {
431         image: :"tag-frames.png",
432         border: <16,16>,
433         offset: < 0,33>
434 }
435
436 export Frame smallHeroTagFrame {
437         image: :"small-tag-frame.png",
438         border: <8,16>
439 }
440 export Frame lastSmallHeroTagFrame {
441         image: :"small-tag-frame.png",
442         border: <8,16>,
443         offset: <0,33>
444 }
445
446 export Gauge healthGauge {
447         image: :"gauges.png",
448         full:  <0,16>,
449         empty: <0, 0>,
450         height: 16,
451         start:   6,
452         repeat:  1,
453         end:     6
454 }
455 export Gauge manaGauge {
456         image: :"gauges.png",
457         full:  <0,32>,
458         empty: <0, 0>,
459         height: 16,
460         start:   6,
461         repeat:  1,
462         end:     6
463 }
464 export Gauge ikariGauge {
465         image: :"gauges.png",
466         full:  <0,48>,
467         empty: <0, 0>,
468         height: 16,
469         start:   6,
470         repeat:  1,
471         end:     6
472 }
473
474 export Frame selectFrame {
475         image: :"select-frame.png",
476         border: <16,16>
477 }
478 export Font normalFont {
479         sprite: Sprite {
480                 image: :"normal-font.png",
481                 size: <16,16>
482         },
483         rowoffset: -2
484 }
485 export Font disabledFont {
486         sprite: Sprite {
487                 image: :"disabled-font.png",
488                 size: <16,16>
489         },
490         rowoffset: -2
491 }
492 export Sprite handCursor {
493         image: :"cursor-hand.png",
494         size: <32,32>
495 }
496
497 export Sprite weaponTargetCursor {
498         image: :"targeting-icons.png",
499         size: <32,32>
500 }
501 export Sprite magicTargetCursor {
502         image: :"targeting-icons.png",
503         size: <32,32>,
504         offset: <0,32>
505 }
506 export Sprite itemTargetCursor {
507         image: :"targeting-icons.png",
508         size: <32,32>,
509         offset: <0,64>
510 }
511
512 include "spells.l2s"
513
514 export String spellMenuHeadline "Please choose a spell."
515
516 include "ikaris.l2s"
517 include "items.l2s"
518
519 export String itemMenuHeadline "Please choose an item."