RotRegen now takes care to get resource limit too
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / effectinfo.inc
1 // docs: https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/
2 // use `cl_particles_reloadeffects` to reload effects without restarting engine
3 // use `chase_active 1` and `cl_lockview 1` to see effects from different perspectives
4 // `dumpeffectinfo` currently doesn't work so edit effectinfo.txt manually, just try to keep the files in sync
5
6 // `tex` are indices into particles/particlefont.tga (see particles/particlefont-template.tga for numbers)
7 // the first index is inclusive, second exclusive (so `tex 0 8` will use images 0 though 7)
8 // unless they're equal (`tex 69 69` is the same as `tex 69 70`)
9
10 // item respawn effect
11 DEF(TE_WIZSPIKE);
12 // flare particle and light
13 SUB(TE_WIZSPIKE) {
14         MY(alpha_min) = 128;
15         MY(alpha_max) = 128;
16         MY(alpha_fade) = 128;
17         MY(color_min) = "0x63F2EA";
18         MY(color_max) = "0x63f2EA";
19         MY(countabsolute) = 1;
20         MY(lightcolor) = '0.4 0.9 0.9';
21         MY(lightradiusfade) = 200;
22         MY(lightradius) = 200;
23         MY(size_min) = 20;
24         MY(size_max) = 20;
25         MY(type) = "static";
26 }
27 // cloud of particles which expand rapidly and then slow to form a ball
28 SUB(TE_WIZSPIKE) {
29         MY(airfriction) = 2;
30         MY(alpha_min) = 64;
31         MY(alpha_max) = 64;
32         MY(alpha_fade) = 64;
33         MY(color_min) = "0x63F2EA";
34         MY(color_max) = "0x63f2EA";
35         MY(count) = 50;
36         MY(liquidfriction) = 2;
37         MY(originjitter) = '16.0 16.0 16.0';
38         MY(size_min) = 2;
39         MY(size_max) = 2;
40         MY(type) = "static";
41         MY(velocityjitter) = '32.0 32.0 32.0';
42 }
43
44 // laser impact
45 DEF(TE_KNIGHTSPIKE);
46 // decal
47 SUB(TE_KNIGHTSPIKE) {
48         MY(alpha_min) = 256;
49         MY(alpha_max) = 256;
50         MY(countabsolute) = 1;
51         MY(lightcolor) = '4.0 0.2 0.2';
52         MY(lightradiusfade) = 1000;
53         MY(lightradius) = 200;
54         MY(originjitter) = '16.0 16.0 16.0';
55         MY(size_min) = 24;
56         MY(size_max) = 24;
57         MY(tex_min) = 47;
58         MY(tex_max) = 47;
59         MY(type) = "decal";
60 }
61 // flare effect
62 SUB(TE_KNIGHTSPIKE) {
63         MY(alpha_min) = 256;
64         MY(alpha_max) = 256;
65         MY(alpha_fade) = 1024;
66         MY(color_min) = "0xFF2010";
67         MY(color_max) = "0xFF2010";
68         MY(countabsolute) = 1;
69         MY(size_min) = 24;
70         MY(size_max) = 24;
71         MY(tex_min) = 39;
72         MY(tex_max) = 39;
73         MY(type) = "static";
74 }
75 // sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
76 SUB(TE_KNIGHTSPIKE) {
77         MY(airfriction) = 6;
78         MY(alpha_min) = 256;
79         MY(alpha_max) = 256;
80         MY(alpha_fade) = 1024;
81         MY(color_min) = "0x800000";
82         MY(color_max) = "0xFF8020";
83         MY(count) = 128;
84         MY(liquidfriction) = 6;
85         MY(size_min) = 4;
86         MY(size_max) = 4;
87         MY(type) = "spark";
88         MY(velocityjitter) = '256.0 256.0 256.0';
89 }
90
91 // machinegun bullet impact
92 DEF(TE_SPIKE);
93 // bullet impact decal
94 SUB(TE_SPIKE) {
95         MY(alpha_min) = 256;
96         MY(alpha_max) = 256;
97         MY(countabsolute) = 1;
98         MY(originjitter) = '6.0 6.0 6.0';
99         MY(size_min) = 5;
100         MY(size_max) = 5;
101         MY(tex_min) = 56;
102         MY(tex_max) = 59;
103         MY(type) = "decal";
104 }
105 // dust/smoke drifting away from the impact
106 SUB(TE_SPIKE) {
107         MY(alpha_min) = 255;
108         MY(alpha_max) = 255;
109         MY(alpha_fade) = 256;
110         MY(color_min) = "0x101010";
111         MY(color_max) = "0x101010";
112         MY(count) = 4;
113         MY(sizeincrease) = 3;
114         MY(size_min) = 3;
115         MY(size_max) = 3;
116         MY(tex_max) = 8;
117         MY(type) = "smoke";
118         MY(velocityjitter) = '8.0 8.0 8.0';
119 }
120 // dust/smoke staying at the impact
121 SUB(TE_SPIKE) {
122         MY(alpha_min) = 255;
123         MY(alpha_max) = 255;
124         MY(alpha_fade) = 128;
125         MY(color_min) = "0x505050";
126         MY(color_max) = "0x505050";
127         MY(count) = 0.500000;
128         MY(sizeincrease) = 4;
129         MY(size_min) = 4;
130         MY(size_max) = 4;
131         MY(tex_max) = 8;
132         MY(type) = "smoke";
133 }
134 // bouncing sparks
135 SUB(TE_SPIKE) {
136         MY(alpha_max) = 256;
137         MY(alpha_fade) = 256;
138         MY(bounce) = 1.500000;
139         MY(color_min) = "0x8f4333";
140         MY(color_max) = "0xfff31b";
141         MY(count) = 10;
142         MY(gravity) = 1;
143         MY(size_min) = 0.400000;
144         MY(size_max) = 0.400000;
145         MY(type) = "spark";
146         MY(velocityjitter) = '64.0 64.0 64.0';
147         MY(velocityoffset) = '0.0 0.0 80.0';
148 }
149
150 // electro combo explosion
151 DEF(TE_SPIKEQUAD);
152 // decal
153 SUB(TE_SPIKEQUAD) {
154         MY(alpha_min) = 256;
155         MY(alpha_max) = 256;
156         MY(countabsolute) = 1;
157         MY(lightcolor) = '2.0 2.5 3.0';
158         MY(lightradiusfade) = 200;
159         MY(lightradius) = 400;
160         MY(originjitter) = '34.0 34.0 34.0';
161         MY(size_min) = 64;
162         MY(size_max) = 64;
163         MY(tex_min) = 59;
164         MY(tex_max) = 59;
165         MY(type) = "decal";
166 }
167 // flare effect
168 SUB(TE_SPIKEQUAD) {
169         MY(alpha_min) = 256;
170         MY(alpha_max) = 256;
171         MY(alpha_fade) = 128;
172         MY(color_min) = "0x80C0FF";
173         MY(color_max) = "0x80C0FF";
174         MY(countabsolute) = 1;
175         MY(size_min) = 48;
176         MY(size_max) = 48;
177         MY(tex_min) = 38;
178         MY(tex_max) = 38;
179         MY(type) = "static";
180 }
181 // large sparks
182 SUB(TE_SPIKEQUAD) {
183         MY(airfriction) = 4;
184         MY(alpha_min) = 256;
185         MY(alpha_max) = 256;
186         MY(alpha_fade) = 256;
187         MY(bounce) = 1.500000;
188         MY(color_min) = "0x2030FF";
189         MY(color_max) = "0x80C0FF";
190         MY(count) = 10;
191         MY(liquidfriction) = 16;
192         MY(size_min) = 32;
193         MY(size_max) = 32;
194         MY(type) = "static";
195         MY(velocityjitter) = '512.0 512.0 512.0';
196 }
197
198 // quake effect
199 DEF(TE_SUPERSPIKE);
200 // decal
201 SUB(TE_SUPERSPIKE) {
202         MY(alpha_min) = 256;
203         MY(alpha_max) = 256;
204         MY(countabsolute) = 1;
205         MY(originjitter) = '6.0 6.0 6.0';
206         MY(size_min) = 3;
207         MY(size_max) = 3;
208         MY(tex_min) = 56;
209         MY(tex_max) = 59;
210         MY(type) = "decal";
211 }
212 // dust/smoke drifting away from the impact
213 SUB(TE_SUPERSPIKE) {
214         MY(alpha_min) = 255;
215         MY(alpha_max) = 255;
216         MY(alpha_fade) = 256;
217         MY(color_min) = "0x101010";
218         MY(color_max) = "0x101010";
219         MY(count) = 4;
220         MY(sizeincrease) = 3;
221         MY(size_min) = 3;
222         MY(size_max) = 3;
223         MY(tex_max) = 8;
224         MY(type) = "smoke";
225         MY(velocityjitter) = '8.0 8.0 8.0';
226 }
227 // dust/smoke staying at the impact
228 SUB(TE_SUPERSPIKE) {
229         MY(alpha_min) = 255;
230         MY(alpha_max) = 255;
231         MY(alpha_fade) = 128;
232         MY(color_min) = "0x505050";
233         MY(color_max) = "0x505050";
234         MY(count) = 0.500000;
235         MY(sizeincrease) = 4;
236         MY(size_min) = 4;
237         MY(size_max) = 4;
238         MY(tex_max) = 8;
239         MY(type) = "smoke";
240 }
241 // sparks that disappear on impact
242 SUB(TE_SUPERSPIKE) {
243         MY(alpha_max) = 256;
244         MY(alpha_fade) = 768;
245         MY(bounce) = -1;
246         MY(color_min) = "0x8f4333";
247         MY(color_max) = "0xfff31b";
248         MY(count) = 15;
249         MY(gravity) = 1;
250         MY(size_min) = 0.400000;
251         MY(size_max) = 0.400000;
252         MY(type) = "spark";
253         MY(velocityjitter) = '64.0 64.0 64.0';
254         MY(velocityoffset) = '0.0 0.0 80.0';
255 }
256
257 // quake effect
258 DEF(TE_SUPERSPIKEQUAD);
259 // decal
260 SUB(TE_SUPERSPIKEQUAD) {
261         MY(alpha_min) = 256;
262         MY(alpha_max) = 256;
263         MY(countabsolute) = 1;
264         MY(lightcolor) = '0.2 0.2 1.5';
265         MY(lightradiusfade) = 500;
266         MY(lightradius) = 100;
267         MY(originjitter) = '6.0 6.0 6.0';
268         MY(size_min) = 3;
269         MY(size_max) = 3;
270         MY(tex_min) = 56;
271         MY(tex_max) = 59;
272         MY(type) = "decal";
273 }
274 // dust/smoke drifting away from the impact
275 SUB(TE_SUPERSPIKEQUAD) {
276         MY(alpha_min) = 255;
277         MY(alpha_max) = 255;
278         MY(alpha_fade) = 256;
279         MY(color_min) = "0x101010";
280         MY(color_max) = "0x101010";
281         MY(count) = 4;
282         MY(sizeincrease) = 3;
283         MY(size_min) = 3;
284         MY(size_max) = 3;
285         MY(tex_max) = 8;
286         MY(type) = "smoke";
287         MY(velocityjitter) = '8.0 8.0 8.0';
288 }
289 // dust/smoke staying at the impact
290 SUB(TE_SUPERSPIKEQUAD) {
291         MY(alpha_min) = 255;
292         MY(alpha_max) = 255;
293         MY(alpha_fade) = 128;
294         MY(color_min) = "0x505050";
295         MY(color_max) = "0x505050";
296         MY(count) = 0.500000;
297         MY(sizeincrease) = 4;
298         MY(size_min) = 4;
299         MY(size_max) = 4;
300         MY(tex_max) = 8;
301         MY(type) = "smoke";
302 }
303 // sparks that disappear on impact
304 SUB(TE_SUPERSPIKEQUAD) {
305         MY(alpha_max) = 256;
306         MY(alpha_fade) = 768;
307         MY(bounce) = -1;
308         MY(color_min) = "0x8f4333";
309         MY(color_max) = "0xfff31b";
310         MY(count) = 15;
311         MY(gravity) = 1;
312         MY(size_min) = 0.400000;
313         MY(size_max) = 0.400000;
314         MY(type) = "spark";
315         MY(velocityjitter) = '64.0 64.0 64.0';
316         MY(velocityoffset) = '0.0 0.0 80.0';
317 }
318
319 // shotgun pellet impact
320 DEF(TE_GUNSHOT);
321 // decal
322 SUB(TE_GUNSHOT) {
323         MY(alpha_min) = 256;
324         MY(alpha_max) = 256;
325         MY(countabsolute) = 1;
326         MY(originjitter) = '6.0 6.0 6.0';
327         MY(size_min) = 3;
328         MY(size_max) = 3;
329         MY(tex_min) = 56;
330         MY(tex_max) = 59;
331         MY(type) = "decal";
332 }
333 // dust/smoke drifting away from the impact
334 SUB(TE_GUNSHOT) {
335         MY(alpha_min) = 128;
336         MY(alpha_max) = 128;
337         MY(alpha_fade) = 64;
338         MY(color_min) = "0x101010";
339         MY(color_max) = "0x101010";
340         MY(count) = 0.800000;
341         MY(sizeincrease) = 3;
342         MY(size_min) = 3;
343         MY(size_max) = 3;
344         MY(tex_max) = 8;
345         MY(type) = "smoke";
346         MY(velocityjitter) = '8.0 8.0 8.0';
347 }
348 // dust/smoke staying at the impact
349 SUB(TE_GUNSHOT) {
350         MY(alpha_min) = 128;
351         MY(alpha_max) = 128;
352         MY(alpha_fade) = 64;
353         MY(color_min) = "0x505050";
354         MY(color_max) = "0x505050";
355         MY(count) = 0.200000;
356         MY(sizeincrease) = 4;
357         MY(size_min) = 4;
358         MY(size_max) = 4;
359         MY(tex_max) = 8;
360         MY(type) = "smoke";
361 }
362 // bouncing sparks
363 SUB(TE_GUNSHOT) {
364         MY(alpha_max) = 64;
365         MY(alpha_fade) = 64;
366         MY(bounce) = 1.500000;
367         MY(color_min) = "0x8f4333";
368         MY(color_max) = "0xfff31b";
369         MY(count) = 2.500000;
370         MY(gravity) = 1;
371         MY(size_min) = 0.400000;
372         MY(size_max) = 0.400000;
373         MY(type) = "spark";
374         MY(velocityjitter) = '64.0 64.0 64.0';
375         MY(velocityoffset) = '0.0 0.0 80.0';
376 }
377
378 // crylink impact effect
379 DEF(TE_GUNSHOTQUAD);
380 // decal
381 SUB(TE_GUNSHOTQUAD) {
382         MY(alpha_min) = 256;
383         MY(alpha_max) = 256;
384         MY(countabsolute) = 1;
385         MY(originjitter) = '12.0 12.0 12.0';
386         MY(size_min) = 8;
387         MY(size_max) = 8;
388         MY(tex_min) = 47;
389         MY(tex_max) = 47;
390         MY(type) = "decal";
391 }
392 // purple flare effect
393 SUB(TE_GUNSHOTQUAD) {
394         MY(alpha_min) = 256;
395         MY(alpha_max) = 256;
396         MY(alpha_fade) = 512;
397         MY(color_min) = "0x504060";
398         MY(color_max) = "0x504060";
399         MY(countabsolute) = 1;
400         MY(size_min) = 8;
401         MY(size_max) = 8;
402         MY(tex_min) = 39;
403         MY(tex_max) = 39;
404         MY(type) = "static";
405 }
406 // purple sparks
407 SUB(TE_GUNSHOTQUAD) {
408         MY(alpha_min) = 128;
409         MY(alpha_max) = 128;
410         MY(alpha_fade) = 384;
411         MY(bounce) = 1.500000;
412         MY(color_min) = "0xA040C0";
413         MY(color_max) = "0xFFFFFF";
414         MY(count) = 6;
415         MY(gravity) = 1;
416         MY(size_min) = 1;
417         MY(size_max) = 1;
418         MY(type) = "spark";
419         MY(velocityjitter) = '128.0 128.0 128.0';
420         MY(velocityoffset) = '0.0 0.0 80.0';
421 }
422
423 // mortar/hagar explosion (smaller than rocket)
424 DEF(TE_EXPLOSION);
425 // decal
426 SUB(TE_EXPLOSION) {
427         MY(alpha_min) = 256;
428         MY(alpha_max) = 256;
429         MY(countabsolute) = 1;
430         MY(lightcolor) = '4.0 2.0 0.5';
431         MY(lightradiusfade) = 300;
432         MY(lightradius) = 150;
433         MY(originjitter) = '40.0 40.0 40.0';
434         MY(size_min) = 48;
435         MY(size_max) = 48;
436         MY(tex_min) = 8;
437         MY(tex_max) = 16;
438         MY(type) = "decal";
439 }
440 // flare effect
441 SUB(TE_EXPLOSION) {
442         MY(alpha_min) = 192;
443         MY(alpha_max) = 192;
444         MY(alpha_fade) = 64;
445         MY(color_min) = "0x404040";
446         MY(color_max) = "0x404040";
447         MY(countabsolute) = 1;
448         MY(size_min) = 48;
449         MY(size_max) = 48;
450         MY(tex_min) = 35;
451         MY(tex_max) = 37;
452         MY(type) = "static";
453 }
454 // fire effect which expands then slows
455 SUB(TE_EXPLOSION) {
456         MY(airfriction) = 4;
457         MY(alpha_min) = 128;
458         MY(alpha_max) = 128;
459         MY(alpha_fade) = 256;
460         MY(bounce) = 1.500000;
461         MY(color_min) = "0x902010";
462         MY(color_max) = "0xFFD080";
463         MY(count) = 64;
464         MY(liquidfriction) = 4;
465         MY(notunderwater) = true;
466         MY(originjitter) = '8.0 8.0 8.0';
467         MY(size_min) = 16;
468         MY(size_max) = 16;
469         MY(tex_min) = 48;
470         MY(tex_max) = 55;
471         MY(type) = "static";
472         MY(velocityjitter) = '256.0 256.0 256.0';
473 }
474 // underwater bubbles
475 SUB(TE_EXPLOSION) {
476         MY(alpha_min) = 128;
477         MY(alpha_max) = 256;
478         MY(alpha_fade) = 64;
479         MY(bounce) = 1.500000;
480         MY(color_min) = "0x404040";
481         MY(color_max) = "0x808080";
482         MY(count) = 16;
483         MY(gravity) = -0.125000;
484         MY(liquidfriction) = 0.250000;
485         MY(originjitter) = '16.0 16.0 16.0';
486         MY(size_min) = 3;
487         MY(size_max) = 3;
488         MY(tex_min) = 62;
489         MY(tex_max) = 62;
490         MY(type) = "bubble";
491         MY(underwater) = true;
492         MY(velocityjitter) = '96.0 96.0 96.0';
493 }
494 // bouncing sparks
495 SUB(TE_EXPLOSION) {
496         MY(airfriction) = 0.200000;
497         MY(alpha_min) = 256;
498         MY(alpha_max) = 256;
499         MY(alpha_fade) = 384;
500         MY(bounce) = 1.500000;
501         MY(color_min) = "0x903010";
502         MY(color_max) = "0xFFD030";
503         MY(count) = 16;
504         MY(gravity) = 1;
505         MY(liquidfriction) = 0.800000;
506         MY(notunderwater) = true;
507         MY(size_min) = 2;
508         MY(size_max) = 2;
509         MY(type) = "spark";
510         MY(velocityjitter) = '256.0 256.0 256.0';
511         MY(velocityoffset) = '0.0 0.0 80.0';
512 }
513
514 // quake effect
515 DEF(TE_EXPLOSIONQUAD);
516 // decal
517 SUB(TE_EXPLOSIONQUAD) {
518         MY(alpha_min) = 256;
519         MY(alpha_max) = 256;
520         MY(countabsolute) = 1;
521         MY(lightcolor) = '4.0 2.0 8.0';
522         MY(lightradiusfade) = 700;
523         MY(lightradius) = 350;
524         MY(originjitter) = '40.0 40.0 40.0';
525         MY(size_min) = 48;
526         MY(size_max) = 48;
527         MY(tex_min) = 8;
528         MY(tex_max) = 16;
529         MY(type) = "decal";
530 }
531 // smoke cloud
532 SUB(TE_EXPLOSIONQUAD) {
533         MY(alpha_min) = 32;
534         MY(alpha_max) = 32;
535         MY(alpha_fade) = 64;
536         MY(color_min) = "0x202020";
537         MY(color_max) = "0x404040";
538         MY(count) = 16;
539         MY(notunderwater) = true;
540         MY(size_min) = 12;
541         MY(size_max) = 12;
542         MY(tex_max) = 8;
543         MY(type) = "smoke";
544         MY(velocityjitter) = '48.0 48.0 48.0';
545 }
546 // underwater bubbles
547 SUB(TE_EXPLOSIONQUAD) {
548         MY(alpha_min) = 128;
549         MY(alpha_max) = 256;
550         MY(alpha_fade) = 64;
551         MY(bounce) = 1.500000;
552         MY(color_min) = "0x404040";
553         MY(color_max) = "0x808080";
554         MY(count) = 16;
555         MY(gravity) = -0.125000;
556         MY(liquidfriction) = 0.250000;
557         MY(originjitter) = '16.0 16.0 16.0';
558         MY(size_min) = 3;
559         MY(size_max) = 3;
560         MY(tex_min) = 62;
561         MY(tex_max) = 62;
562         MY(type) = "bubble";
563         MY(underwater) = true;
564         MY(velocityjitter) = '96.0 96.0 96.0';
565 }
566 // sparks which go through walls
567 SUB(TE_EXPLOSIONQUAD) {
568         MY(airfriction) = 0.200000;
569         MY(alpha_max) = 256;
570         MY(alpha_fade) = 512;
571         MY(color_min) = "0x903010";
572         MY(color_max) = "0xFFD030";
573         MY(count) = 64;
574         MY(gravity) = 1;
575         MY(liquidfriction) = 0.800000;
576         MY(notunderwater) = true;
577         MY(size_min) = 1;
578         MY(size_max) = 1;
579         MY(type) = "spark";
580         MY(velocityjitter) = '256.0 256.0 256.0';
581         MY(velocityoffset) = '0.0 0.0 80.0';
582 }
583
584 // quake effect
585 DEF(TE_TAREXPLOSION);
586 // decal
587 SUB(TE_TAREXPLOSION) {
588         MY(alpha_min) = 256;
589         MY(alpha_max) = 256;
590         MY(countabsolute) = 1;
591         MY(lightcolor) = '1.6 0.8 2.0';
592         MY(lightradiusfade) = 1200;
593         MY(lightradius) = 600;
594         MY(originjitter) = '40.0 40.0 40.0';
595         MY(size_min) = 48;
596         MY(size_max) = 48;
597         MY(tex_min) = 8;
598         MY(tex_max) = 16;
599         MY(type) = "decal";
600 }
601 // smoke cloud
602 SUB(TE_TAREXPLOSION) {
603         MY(alpha_min) = 32;
604         MY(alpha_max) = 32;
605         MY(alpha_fade) = 64;
606         MY(color_min) = "0x202020";
607         MY(color_max) = "0x404040";
608         MY(count) = 16;
609         MY(notunderwater) = true;
610         MY(size_min) = 12;
611         MY(size_max) = 12;
612         MY(tex_max) = 8;
613         MY(type) = "smoke";
614         MY(velocityjitter) = '48.0 48.0 48.0';
615 }
616 // underwater bubbles
617 SUB(TE_TAREXPLOSION) {
618         MY(alpha_min) = 128;
619         MY(alpha_max) = 256;
620         MY(alpha_fade) = 64;
621         MY(bounce) = 1.500000;
622         MY(color_min) = "0x404040";
623         MY(color_max) = "0x808080";
624         MY(count) = 16;
625         MY(gravity) = -0.125000;
626         MY(liquidfriction) = 0.250000;
627         MY(originjitter) = '16.0 16.0 16.0';
628         MY(size_min) = 3;
629         MY(size_max) = 3;
630         MY(tex_min) = 62;
631         MY(tex_max) = 62;
632         MY(type) = "bubble";
633         MY(underwater) = true;
634         MY(velocityjitter) = '96.0 96.0 96.0';
635 }
636 // sparks which go through walls
637 SUB(TE_TAREXPLOSION) {
638         MY(airfriction) = 0.200000;
639         MY(alpha_max) = 256;
640         MY(alpha_fade) = 512;
641         MY(color_min) = "0x903010";
642         MY(color_max) = "0xFFD030";
643         MY(count) = 64;
644         MY(gravity) = 1;
645         MY(liquidfriction) = 0.800000;
646         MY(notunderwater) = true;
647         MY(size_min) = 1;
648         MY(size_max) = 1;
649         MY(type) = "spark";
650         MY(velocityjitter) = '256.0 256.0 256.0';
651         MY(velocityoffset) = '0.0 0.0 80.0';
652 }
653
654 // bloody impact effect indicating damage
655 DEF(TE_BLOOD);
656 SUB(TE_BLOOD) {
657         MY(airfriction) = 1;
658         MY(alpha_min) = 256;
659         MY(alpha_max) = 256;
660         MY(alpha_fade) = 64;
661         MY(bounce) = -1;
662         MY(count) = 0.167000;
663         MY(liquidfriction) = 4;
664         MY(size_min) = 8;
665         MY(size_max) = 8;
666         MY(staincolor_min) = "0x808080";
667         MY(staincolor_max) = "0x808080";
668         MY(staintex_min) = 16;
669         MY(staintex_max) = 24;
670         MY(tex_min) = 24;
671         MY(tex_max) = 32;
672         MY(type) = "blood";
673         MY(velocityjitter) = '64.0 64.0 64.0';
674         MY(velocitymultiplier) = 1;
675 }
676
677 // sparks (quake effect)
678 DEF(TE_SPARK);
679 SUB(TE_SPARK) {
680         MY(alpha_min) = 64;
681         MY(alpha_max) = 256;
682         MY(alpha_fade) = 768;
683         MY(bounce) = -1;
684         MY(color_min) = "0x8f4333";
685         MY(color_max) = "0xfff31b";
686         MY(count) = 0.500000;
687         MY(gravity) = 1;
688         MY(size_min) = 0.400000;
689         MY(size_max) = 0.600000;
690         MY(tex_min) = 40;
691         MY(tex_max) = 40;
692         MY(type) = "spark";
693         MY(velocityjitter) = '64.0 64.0 64.0';
694         MY(velocitymultiplier) = 1;
695         MY(velocityoffset) = '0.0 0.0 80.0';
696 }
697
698 // vortex impact
699 DEF(TE_PLASMABURN);
700 // decal
701 SUB(TE_PLASMABURN) {
702         MY(alpha_min) = 256;
703         MY(alpha_max) = 256;
704         MY(countabsolute) = 1;
705         MY(lightcolor) = '1.0 1.0 1.0';
706         MY(lightradiusfade) = 400;
707         MY(lightradius) = 200;
708         MY(originjitter) = '16.0 16.0 16.0';
709         MY(size_min) = 24;
710         MY(size_max) = 24;
711         MY(tex_min) = 47;
712         MY(tex_max) = 47;
713         MY(type) = "decal";
714 }
715 // flare effect
716 SUB(TE_PLASMABURN) {
717         MY(alpha_min) = 256;
718         MY(alpha_max) = 256;
719         MY(alpha_fade) = 512;
720         MY(color_min) = "0x80C0FF";
721         MY(color_max) = "0x80C0FF";
722         MY(countabsolute) = 1;
723         MY(size_min) = 8;
724         MY(size_max) = 8;
725         MY(tex_min) = 37;
726         MY(tex_max) = 37;
727         MY(type) = "static";
728 }
729 // small sparks which form a sphere as they slow down
730 SUB(TE_PLASMABURN) {
731         MY(airfriction) = 8;
732         MY(alpha_min) = 256;
733         MY(alpha_max) = 256;
734         MY(alpha_fade) = 1024;
735         MY(bounce) = 2;
736         MY(color_min) = "0x2030FF";
737         MY(color_max) = "0x80C0FF";
738         MY(count) = 128;
739         MY(liquidfriction) = 8;
740         MY(size_min) = 1;
741         MY(size_max) = 2;
742         MY(type) = "spark";
743         MY(velocityjitter) = '128.0 128.0 128.0';
744 }
745
746 // quake effect
747 DEF(TE_SMALLFLASH);
748 SUB(TE_SMALLFLASH) {
749         MY(lightcolor) = '2.0 2.0 2.0';
750         MY(lightradiusfade) = 1000;
751         MY(lightradius) = 200;
752 }
753
754 // quake effect
755 DEF(TE_FLAMEJET);
756 SUB(TE_FLAMEJET) {
757         MY(airfriction) = 1;
758         MY(alpha_min) = 64;
759         MY(alpha_max) = 128;
760         MY(alpha_fade) = 384;
761         MY(bounce) = 1.100000;
762         MY(color_min) = "0x6f0f00";
763         MY(color_max) = "0xe3974f";
764         MY(count) = 0.500000;
765         MY(gravity) = -1;
766         MY(liquidfriction) = 4;
767         MY(size_min) = 4;
768         MY(size_max) = 4;
769         MY(type) = "smoke";
770         MY(velocityjitter) = '128.0 128.0 128.0';
771         MY(velocitymultiplier) = 1;
772 }
773
774 // quake effect
775 DEF(TE_LAVASPLASH);
776 SUB(TE_LAVASPLASH) {
777         MY(alpha_min) = 256;
778         MY(alpha_max) = 256;
779         MY(alpha_fade) = 256;
780         MY(color_min) = "0x6f0f00";
781         MY(color_max) = "0xe3974f";
782         MY(count) = 32;
783         MY(gravity) = 0.050000;
784         MY(originjitter) = '128.0 128.0 32.0';
785         MY(originoffset) = '0.0 0.0 32.0';
786         MY(size_min) = 12;
787         MY(size_max) = 12;
788         MY(type) = "alphastatic";
789         MY(velocityjitter) = '128.0 128.0 0.0';
790         MY(velocityoffset) = '0.0 0.0 256.0';
791 }
792
793 // player teleport effect
794 DEF(TE_TELEPORT);
795 SUB(TE_TELEPORT) {
796         MY(airfriction) = 1;
797         MY(alpha_min) = 64;
798         MY(alpha_max) = 128;
799         MY(alpha_fade) = 256;
800         MY(color_min) = "0xA0A0A0";
801         MY(color_max) = "0xFFFFFF";
802         MY(count) = 56;
803         MY(liquidfriction) = 4;
804         MY(originjitter) = '16.0 16.0 28.0';
805         MY(originoffset) = '0.0 0.0 28.0';
806         MY(size_min) = 10;
807         MY(size_max) = 10;
808         MY(type) = "static";
809         MY(velocityjitter) = '0.0 0.0 256.0';
810 }
811
812 // vortex beam
813 DEF(TE_TEI_G3);
814 SUB(TE_TEI_G3) {
815         MY(alpha_min) = 128;
816         MY(alpha_max) = 128;
817         MY(alpha_fade) = 256;
818         MY(color_min) = "0xFFFFFF";
819         MY(color_max) = "0xFFFFFF";
820         MY(countabsolute) = 1;
821         MY(size_min) = 4;
822         MY(size_max) = 4;
823         MY(tex_min) = 200;
824         MY(tex_max) = 200;
825         MY(type) = "beam";
826 }
827 SUB(TE_TEI_G3) {
828         MY(airfriction) = -4;
829         MY(alpha_min) = 256;
830         MY(alpha_max) = 256;
831         MY(alpha_fade) = 512;
832         MY(color_min) = "0x202020";
833         MY(color_max) = "0x404040";
834         MY(size_min) = 1;
835         MY(size_max) = 1;
836         MY(trailspacing) = 4;
837         MY(type) = "smoke";
838         MY(velocityjitter) = '8.0 8.0 8.0';
839 }
840
841 // smoke effect
842 DEF(TE_TEI_SMOKE);
843 SUB(TE_TEI_SMOKE) {
844         MY(alpha_min) = 256;
845         MY(alpha_max) = 256;
846         MY(alpha_fade) = 512;
847         MY(color_min) = "0x202020";
848         MY(color_max) = "0x404040";
849         MY(count) = 0.167000;
850         MY(originjitter) = '1.5 1.5 1.5';
851         MY(size_min) = 5;
852         MY(size_max) = 5;
853         MY(tex_max) = 8;
854         MY(type) = "smoke";
855         MY(velocityjitter) = '6.0 6.0 6.0';
856         MY(velocitymultiplier) = 1;
857 }
858
859 // rocket explosion (bigger than mortar and hagar)
860 DEF(TE_TEI_BIGEXPLOSION);
861 // decal
862 SUB(TE_TEI_BIGEXPLOSION) {
863         MY(alpha_min) = 256;
864         MY(alpha_max) = 256;
865         MY(countabsolute) = 1;
866         MY(lightcolor) = '4.0 2.0 0.5';
867         MY(lightradiusfade) = 500;
868         MY(lightradius) = 500;
869         MY(originjitter) = '40.0 40.0 40.0';
870         MY(size_min) = 72;
871         MY(size_max) = 72;
872         MY(tex_min) = 8;
873         MY(tex_max) = 16;
874         MY(type) = "decal";
875 }
876 // flare effect
877 SUB(TE_TEI_BIGEXPLOSION) {
878         MY(alpha_min) = 192;
879         MY(alpha_max) = 192;
880         MY(alpha_fade) = 64;
881         MY(color_min) = "0x404040";
882         MY(color_max) = "0x404040";
883         MY(countabsolute) = 1;
884         MY(size_min) = 72;
885         MY(size_max) = 72;
886         MY(tex_min) = 35;
887         MY(tex_max) = 37;
888         MY(type) = "static";
889 }
890 // fire effect
891 SUB(TE_TEI_BIGEXPLOSION) {
892         MY(airfriction) = 4;
893         MY(alpha_min) = 128;
894         MY(alpha_max) = 128;
895         MY(alpha_fade) = 256;
896         MY(bounce) = 1.500000;
897         MY(color_min) = "0x902010";
898         MY(color_max) = "0xFFD080";
899         MY(count) = 128;
900         MY(liquidfriction) = 4;
901         MY(notunderwater) = true;
902         MY(originjitter) = '8.0 8.0 8.0';
903         MY(size_min) = 16;
904         MY(size_max) = 16;
905         MY(tex_min) = 48;
906         MY(tex_max) = 55;
907         MY(type) = "static";
908         MY(velocityjitter) = '512.0 512.0 512.0';
909 }
910 // underwater bubbles
911 SUB(TE_TEI_BIGEXPLOSION) {
912         MY(alpha_min) = 128;
913         MY(alpha_max) = 256;
914         MY(alpha_fade) = 64;
915         MY(bounce) = 1.500000;
916         MY(color_min) = "0x404040";
917         MY(color_max) = "0x808080";
918         MY(count) = 32;
919         MY(gravity) = -0.125000;
920         MY(liquidfriction) = 0.250000;
921         MY(originjitter) = '16.0 16.0 16.0';
922         MY(size_min) = 3;
923         MY(size_max) = 3;
924         MY(tex_min) = 62;
925         MY(tex_max) = 62;
926         MY(type) = "bubble";
927         MY(underwater) = true;
928         MY(velocityjitter) = '144.0 144.0 144.0';
929 }
930 // bouncing sparks
931 SUB(TE_TEI_BIGEXPLOSION) {
932         MY(airfriction) = 0.200000;
933         MY(alpha_min) = 256;
934         MY(alpha_max) = 256;
935         MY(alpha_fade) = 384;
936         MY(bounce) = 1.500000;
937         MY(color_min) = "0x903010";
938         MY(color_max) = "0xFFD030";
939         MY(count) = 64;
940         MY(gravity) = 1;
941         MY(liquidfriction) = 0.800000;
942         MY(notunderwater) = true;
943         MY(size_min) = 2;
944         MY(size_max) = 2;
945         MY(type) = "spark";
946         MY(velocityjitter) = '384.0 384.0 384.0';
947         MY(velocityoffset) = '0.0 0.0 80.0';
948 }
949
950 // electro explosion
951 DEF(TE_TEI_PLASMAHIT);
952 // decal
953 SUB(TE_TEI_PLASMAHIT) {
954         MY(alpha_min) = 256;
955         MY(alpha_max) = 256;
956         MY(countabsolute) = 1;
957         MY(lightcolor) = '2.4 4.8 8.0';
958         MY(lightradiusfade) = 600;
959         MY(lightradius) = 200;
960         MY(originjitter) = '20.0 20.0 20.0';
961         MY(size_min) = 32;
962         MY(size_max) = 32;
963         MY(tex_min) = 59;
964         MY(tex_max) = 59;
965         MY(type) = "decal";
966 }
967 // flare effect
968 SUB(TE_TEI_PLASMAHIT) {
969         MY(alpha_min) = 256;
970         MY(alpha_max) = 256;
971         MY(alpha_fade) = 512;
972         MY(color_min) = "0x80C0FF";
973         MY(color_max) = "0x80C0FF";
974         MY(countabsolute) = 1;
975         MY(size_min) = 32;
976         MY(size_max) = 32;
977         MY(tex_min) = 38;
978         MY(tex_max) = 38;
979         MY(type) = "static";
980 }
981 // cloud of bouncing sparks
982 SUB(TE_TEI_PLASMAHIT) {
983         MY(alpha_min) = 256;
984         MY(alpha_max) = 256;
985         MY(alpha_fade) = 1024;
986         MY(bounce) = 1.500000;
987         MY(color_min) = "0x2030FF";
988         MY(color_max) = "0x80C0FF";
989         MY(count) = 0.500000;
990         MY(size_min) = 2;
991         MY(size_max) = 4;
992         MY(type) = "spark";
993         MY(velocityjitter) = '512.0 512.0 512.0';
994 }
995
996 // bloody impact effect indicating damage
997 DEF(blood);
998 SUB(blood) {
999         MY(airfriction) = 0.400000;
1000         MY(alpha_min) = 1560;
1001         MY(alpha_max) = 2560;
1002         MY(alpha_fade) = 7000;
1003         MY(blend) = "invmod";
1004         MY(bounce) = -1;
1005         MY(color_min) = "0xA8FFFF";
1006         MY(color_max) = "0xA8FFFFF";
1007         MY(count) = 0.400000;
1008         MY(sizeincrease) = 20;
1009         MY(size_min) = 5;
1010         MY(size_max) = 11;
1011         MY(staincolor_min) = "0x808080";
1012         MY(staincolor_max) = "0x808080";
1013         MY(stainsize_min) = 1;
1014         MY(stainsize_max) = 2;
1015         MY(staintex_min) = 16;
1016         MY(staintex_max) = 24;
1017         MY(stretchfactor) = 20;
1018         MY(tex_min) = 24;
1019         MY(tex_max) = 32;
1020         MY(type) = "spark";
1021         MY(velocityjitter) = '99.0 99.0 55.0';
1022 }
1023 //blood mist
1024 SUB(blood) {
1025         MY(alpha_min) = 100;
1026         MY(alpha_max) = 256;
1027         MY(alpha_fade) = 400;
1028         MY(blend) = "invmod";
1029         MY(color_min) = "0x000000";
1030         MY(color_max) = "0x420000";
1031         MY(countabsolute) = 1;
1032         MY(originjitter) = '11.0 11.0 11.0';
1033         MY(sizeincrease) = 20;
1034         MY(size_min) = 25;
1035         MY(size_max) = 30;
1036         MY(tex_min) = 24;
1037         MY(tex_max) = 32;
1038         MY(type) = "alphastatic";
1039 }
1040
1041 // player teleport effect
1042 DEF(teleport);
1043 SUB(teleport) {
1044         MY(airfriction) = 2;
1045         MY(alpha_max) = 256;
1046         MY(alpha_fade) = 100;
1047         MY(bounce) = 1.500000;
1048         MY(color_min) = "0x807aff";
1049         MY(color_max) = "0x4463d5";
1050         MY(count) = 500;
1051         MY(originjitter) = '1.0 1.0 1.0';
1052         MY(size_min) = 1;
1053         MY(size_max) = 1;
1054         MY(stretchfactor) = 0.600000;
1055         MY(tex_min) = 64;
1056         MY(tex_max) = 64;
1057         MY(type) = "spark";
1058         MY(velocityjitter) = '1000.0 1000.0 1500.0';
1059         MY(velocitymultiplier) = 0.500000;
1060 }
1061 SUB(teleport) {
1062         MY(alpha_min) = 190;
1063         MY(alpha_max) = 190;
1064         MY(alpha_fade) = 180;
1065         MY(color_min) = "0x807aff";
1066         MY(color_max) = "0x4463d5";
1067         MY(countabsolute) = 1;
1068         MY(sizeincrease) = -80;
1069         MY(size_min) = 150;
1070         MY(size_max) = 150;
1071         MY(tex_min) = 65;
1072         MY(tex_max) = 65;
1073         MY(type) = "smoke";
1074 }
1075
1076 // normal super gory blood trail (used by gibs)
1077 DEF(TR_BLOOD);
1078 SUB(TR_BLOOD) {
1079         MY(airfriction) = -2;
1080         MY(alpha_min) = 384;
1081         MY(alpha_max) = 984;
1082         MY(alpha_fade) = 1492;
1083         MY(blend) = "invmod";
1084         MY(bounce) = -1;
1085         MY(color_min) = "0xA8FFFF";
1086         MY(color_max) = "0xA8FFFF";
1087         MY(gravity) = 0.400000;
1088         MY(liquidfriction) = 1;
1089         MY(sizeincrease) = -5;
1090         MY(size_min) = 4;
1091         MY(size_max) = 19;
1092         MY(staincolor_min) = "0x808080";
1093         MY(staincolor_max) = "0x808080";
1094         MY(stainsize_min) = 1;
1095         MY(stainsize_max) = 2;
1096         MY(staintex_min) = 16;
1097         MY(staintex_max) = 24;
1098         MY(stretchfactor) = 7;
1099         MY(tex_min) = 24;
1100         MY(tex_max) = 32;
1101         MY(trailspacing) = 20;
1102         MY(type) = "spark";
1103         MY(velocityjitter) = '64.0 64.0 64.0';
1104         MY(velocitymultiplier) = -0.100000;
1105 }
1106 // splash around gib
1107 SUB(TR_BLOOD) {
1108         MY(alpha_min) = 684;
1109         MY(alpha_max) = 684;
1110         MY(alpha_fade) = 7492;
1111         MY(color_min) = "0xA8FFFF";
1112         MY(color_max) = "0xA8FFFF";
1113         MY(sizeincrease) = 500;
1114         MY(size_min) = 4;
1115         MY(size_max) = 6;
1116         MY(tex_min) = 24;
1117         MY(tex_max) = 32;
1118         MY(trailspacing) = 42;
1119         MY(type) = "blood";
1120 }
1121
1122 // thinner blood trail (used by quake zombies)
1123 DEF(TR_SLIGHTBLOOD);
1124 SUB(TR_SLIGHTBLOOD) {
1125         MY(airfriction) = 1;
1126         MY(alpha_min) = 384;
1127         MY(alpha_max) = 384;
1128         MY(alpha_fade) = 192;
1129         MY(bounce) = -1;
1130         MY(color_min) = "0xA8FFFF";
1131         MY(color_max) = "0xA8FFFF";
1132         MY(liquidfriction) = 4;
1133         MY(size_min) = 8;
1134         MY(size_max) = 8;
1135         MY(staincolor_min) = "0x808080";
1136         MY(staincolor_max) = "0x808080";
1137         MY(staintex_min) = 16;
1138         MY(staintex_max) = 24;
1139         MY(tex_min) = 24;
1140         MY(tex_max) = 32;
1141         MY(trailspacing) = 64;
1142         MY(type) = "blood";
1143         MY(velocityjitter) = '64.0 64.0 64.0';
1144         MY(velocitymultiplier) = 0.500000;
1145 }
1146
1147 // func_stardust effect, used in some maps to indicate teleporters
1148 DEF(EF_STARDUST);
1149 SUB(EF_STARDUST) {
1150         MY(airfriction) = 0.200000;
1151         MY(alpha_min) = 64;
1152         MY(alpha_max) = 128;
1153         MY(alpha_fade) = 128;
1154         MY(color_min) = "0xfff368";
1155         MY(color_max) = "0xfff368";
1156         MY(count) = 37.500000;
1157         MY(gravity) = -0.100000;
1158         MY(liquidfriction) = 0.800000;
1159         MY(originjitter) = '16.0 16.0 64.0';
1160         MY(size_min) = 1;
1161         MY(size_max) = 2;
1162         MY(type) = "static";
1163         MY(velocityjitter) = '32.0 32.0 0.0';
1164 }
1165
1166 // flare particle and light
1167 DEF(item_respawn);
1168 SUB(item_respawn) {
1169         MY(alpha_min) = 128;
1170         MY(alpha_max) = 128;
1171         MY(alpha_fade) = 128;
1172         MY(color_min) = "0x63F2EA";
1173         MY(color_max) = "0x63f2EA";
1174         MY(countabsolute) = 1;
1175         MY(size_min) = 32;
1176         MY(size_max) = 32;
1177         MY(type) = "static";
1178 }
1179 // cloud of particles which expand rapidly and then slow to form a ball
1180 SUB(item_respawn) {
1181         MY(alpha_min) = 256;
1182         MY(alpha_max) = 256;
1183         MY(alpha_fade) = 1280;
1184         MY(color_min) = "0x63F2EA";
1185         MY(color_max) = "0x63f2EA";
1186         MY(count) = 128;
1187         MY(size_min) = 2;
1188         MY(size_max) = 2;
1189         MY(tex_min) = 41;
1190         MY(tex_max) = 41;
1191         MY(type) = "spark";
1192         MY(velocityjitter) = '256.0 256.0 256.0';
1193 }
1194
1195 DEF(jumppad_activate);
1196 SUB(jumppad_activate) {
1197         MY(lightcolor) = '2.0 2.0 2.0';
1198         MY(lightradiusfade) = 2000;
1199         MY(lightradius) = 200;
1200 }
1201
1202 DEF(laser_muzzleflash);
1203 // glow and light
1204 SUB(laser_muzzleflash) {
1205         MY(airfriction) = 10;
1206         MY(alpha_min) = 256;
1207         MY(alpha_max) = 512;
1208         MY(alpha_fade) = 6280;
1209         MY(color_min) = "0xcc0000";
1210         MY(color_max) = "0xff0000";
1211         MY(countabsolute) = 1;
1212         MY(lightcolor) = '3.0 0.1 0.1';
1213         MY(lightradiusfade) = 2000;
1214         MY(lightradius) = 200;
1215         MY(sizeincrease) = -100;
1216         MY(size_min) = 10;
1217         MY(size_max) = 15;
1218         MY(stretchfactor) = 2;
1219         MY(tex_min) = 65;
1220         MY(tex_max) = 65;
1221         MY(type) = "smoke";
1222 }
1223 // electricity
1224 SUB(laser_muzzleflash) {
1225         MY(airfriction) = 10;
1226         MY(alpha_min) = 256;
1227         MY(alpha_max) = 512;
1228         MY(alpha_fade) = 6280;
1229         MY(color_min) = "0xb44215";
1230         MY(color_max) = "0xff0000";
1231         MY(count) = 3;
1232         MY(originjitter) = '2.0 2.0 2.0';
1233         MY(startangle_min) = -180;
1234         MY(startangle_max) = 180;
1235         MY(spin_min) = 4000;
1236         MY(spin_max) = -4000;
1237         MY(sizeincrease) = -100;
1238         MY(size_min) = 5;
1239         MY(size_max) = 7;
1240         MY(stretchfactor) = 2.300000;
1241         MY(tex_min) = 43;
1242         MY(tex_max) = 43;
1243         MY(type) = "spark";
1244         MY(velocityjitter) = '150.0 150.0 150.0';
1245         MY(velocitymultiplier) = 0.200000;
1246 }
1247 // fire
1248 SUB(laser_muzzleflash) {
1249         MY(airfriction) = 12;
1250         MY(alpha_min) = 256;
1251         MY(alpha_max) = 512;
1252         MY(alpha_fade) = 6280;
1253         MY(color_min) = "0xff4200";
1254         MY(color_max) = "0xff0000";
1255         MY(count) = 6;
1256         MY(originjitter) = '2.0 2.0 2.0';
1257         MY(sizeincrease) = -100;
1258         MY(size_min) = 7;
1259         MY(size_max) = 9;
1260         MY(stretchfactor) = 2;
1261         MY(tex_min) = 8;
1262         MY(tex_max) = 15;
1263         MY(type) = "spark";
1264         MY(velocityjitter) = '100.0 100.0 100.0';
1265         MY(velocitymultiplier) = 0.200000;
1266 }
1267
1268 DEF(laser_impact);
1269 // decal
1270 SUB(laser_impact) {
1271         MY(alpha_min) = 256;
1272         MY(alpha_max) = 256;
1273         MY(countabsolute) = 1;
1274         MY(lightcolor) = '8.0 0.4 0.4';
1275         MY(lightradiusfade) = 500;
1276         MY(lightradius) = 200;
1277         MY(originjitter) = '14.0 14.0 14.0';
1278         MY(size_min) = 24;
1279         MY(size_max) = 24;
1280         MY(tex_min) = 47;
1281         MY(tex_max) = 47;
1282         MY(type) = "decal";
1283 }
1284 // flare effect
1285 SUB(laser_impact) {
1286         MY(alpha_min) = 256;
1287         MY(alpha_max) = 256;
1288         MY(alpha_fade) = 1024;
1289         MY(color_min) = "0xFF2010";
1290         MY(color_max) = "0xFF2010";
1291         MY(countabsolute) = 1;
1292         MY(size_min) = 24;
1293         MY(size_max) = 24;
1294         MY(tex_min) = 39;
1295         MY(tex_max) = 39;
1296         MY(type) = "static";
1297 }
1298 // sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
1299 SUB(laser_impact) {
1300         MY(airfriction) = 6;
1301         MY(alpha_min) = 256;
1302         MY(alpha_max) = 256;
1303         MY(alpha_fade) = 1024;
1304         MY(color_min) = "0x800000";
1305         MY(color_max) = "0xFF8020";
1306         MY(count) = 128;
1307         MY(liquidfriction) = 6;
1308         MY(size_min) = 4;
1309         MY(size_max) = 4;
1310         MY(type) = "spark";
1311         MY(velocityjitter) = '256.0 256.0 256.0';
1312 }
1313 SUB(laser_impact) {
1314         MY(alpha_min) = 128;
1315         MY(alpha_max) = 256;
1316         MY(alpha_fade) = 256;
1317         MY(color_min) = "0x800000";
1318         MY(color_max) = "0xFF8020";
1319         MY(count) = 4;
1320         MY(originjitter) = '1.0 1.0 1.0';
1321         MY(sizeincrease) = 6;
1322         MY(size_min) = 12;
1323         MY(size_max) = 12;
1324         MY(tex_min) = 48;
1325         MY(tex_max) = 55;
1326         MY(type) = "smoke";
1327         MY(velocityjitter) = '16.0 16.0 16.0';
1328         MY(velocitymultiplier) = 0.010000;
1329 }
1330
1331 DEF(shotgun_muzzleflash);
1332 SUB(shotgun_muzzleflash) {
1333         MY(alpha_min) = 256;
1334         MY(alpha_max) = 256;
1335         MY(alpha_fade) = 512;
1336         MY(color_min) = "0x202020";
1337         MY(color_max) = "0x404040";
1338         MY(count) = 1.500000;
1339         MY(lightcolor) = '2.0 1.5 0.2';
1340         MY(lightradiusfade) = 2000;
1341         MY(lightradius) = 200;
1342         MY(originjitter) = '1.5 1.5 1.5';
1343         MY(sizeincrease) = 12;
1344         MY(size_min) = 5;
1345         MY(size_max) = 5;
1346         MY(tex_max) = 8;
1347         MY(type) = "smoke";
1348         MY(velocityjitter) = '6.0 6.0 6.0';
1349         MY(velocitymultiplier) = 0.050000;
1350 }
1351 SUB(shotgun_muzzleflash) {
1352         MY(airfriction) = 5;
1353         MY(alpha_max) = 128;
1354         MY(alpha_fade) = 1024;
1355         MY(color_min) = "0xffdb96";
1356         MY(color_max) = "0xff5400";
1357         MY(count) = 16;
1358         MY(originjitter) = '1.0 1.0 1.0';
1359         MY(size_min) = 10;
1360         MY(size_max) = 20;
1361         MY(stretchfactor) = 2.500000;
1362         MY(tex_min) = 48;
1363         MY(tex_max) = 55;
1364         MY(type) = "spark";
1365         MY(velocityjitter) = '100.0 100.0 100.0';
1366         MY(velocitymultiplier) = 0.500000;
1367 }
1368
1369 // shotgun pellet impact
1370 DEF(shotgun_impact);
1371 // decal
1372 SUB(shotgun_impact) {
1373         MY(alpha_min) = 256;
1374         MY(alpha_max) = 256;
1375         MY(countabsolute) = 1;
1376         MY(originjitter) = '10.0 10.0 10.0';
1377         MY(size_min) = 5;
1378         MY(size_max) = 8;
1379         MY(tex_min) = 56;
1380         MY(tex_max) = 59;
1381         MY(type) = "decal";
1382 }
1383 // dust/smoke drifting away from the impact
1384 SUB(shotgun_impact) {
1385         MY(airfriction) = 5;
1386         MY(alpha_min) = 300;
1387         MY(alpha_max) = 550;
1388         MY(alpha_fade) = 756;
1389         MY(color_min) = "0x473a37";
1390         MY(color_max) = "0x0b0a07";
1391         MY(count) = 1;
1392         MY(notunderwater) = true;
1393         MY(startangle_max) = 360;
1394         MY(spin_min) = -50;
1395         MY(spin_max) = 50;
1396         MY(sizeincrease) = 25;
1397         MY(size_min) = 10;
1398         MY(size_max) = 20;
1399         MY(tex_max) = 8;
1400         MY(type) = "alphastatic";
1401         MY(velocityjitter) = '150.0 150.0 150.0';
1402         MY(velocitymultiplier) = 0.200000;
1403 }
1404 // dust/smoke staying at the impact
1405 SUB(shotgun_impact) {
1406         MY(airfriction) = 5;
1407         MY(alpha_min) = 200;
1408         MY(alpha_max) = 350;
1409         MY(alpha_fade) = 500;
1410         MY(bounce) = 6;
1411         MY(color_min) = "0x201d1a";
1412         MY(color_max) = "0x000000";
1413         MY(count) = 0.200000;
1414         MY(notunderwater) = true;
1415         MY(startangle_max) = 360;
1416         MY(spin_min) = -50;
1417         MY(spin_max) = 50;
1418         MY(sizeincrease) = 74;
1419         MY(size_min) = 10;
1420         MY(size_max) = 11;
1421         MY(tex_min) = 36;
1422         MY(tex_max) = 36;
1423         MY(type) = "alphastatic";
1424         MY(velocityjitter) = '11.0 11.0 11.0';
1425         MY(velocitymultiplier) = 0.030000;
1426 }
1427 // sparks
1428 SUB(shotgun_impact) {
1429         MY(airfriction) = 1.100000;
1430         MY(alpha_max) = 356;
1431         MY(alpha_fade) = 268;
1432         MY(bounce) = 1.500000;
1433         MY(color_min) = "0xFDFFD9";
1434         MY(color_max) = "0xFDFFD9";
1435         MY(count) = 0.500000;
1436         MY(gravity) = 1;
1437         MY(notunderwater) = true;
1438         MY(originjitter) = '1.0 1.0 1.0';
1439         MY(size_min) = 0.600000;
1440         MY(size_max) = 0.600000;
1441         MY(tex_min) = 40;
1442         MY(tex_max) = 40;
1443         MY(type) = "spark";
1444         MY(velocityjitter) = '200.0 200.0 200.0';
1445         MY(velocitymultiplier) = 0.200000;
1446 }
1447
1448 DEF(uzi_muzzleflash);
1449 SUB(uzi_muzzleflash) {
1450         MY(alpha_min) = 256;
1451         MY(alpha_max) = 256;
1452         MY(alpha_fade) = 512;
1453         MY(color_min) = "0x202020";
1454         MY(color_max) = "0x404040";
1455         MY(count) = 1;
1456         MY(gravity) = -0.100000;
1457         MY(lightcolor) = '2.0 1.5 0.2';
1458         MY(lightradiusfade) = 2000;
1459         MY(lightradius) = 200;
1460         MY(originjitter) = '1.5 1.5 1.5';
1461         MY(size_min) = 5;
1462         MY(size_max) = 5;
1463         MY(tex_max) = 8;
1464         MY(type) = "static";
1465         MY(velocityjitter) = '1.0 1.0 1.0';
1466         MY(velocitymultiplier) = 0.030000;
1467 }
1468 SUB(uzi_muzzleflash) {
1469         MY(airfriction) = 12;
1470         MY(alpha_max) = 256;
1471         MY(alpha_fade) = 6000;
1472         MY(color_min) = "0xff9c00";
1473         MY(color_max) = "0xffd200";
1474         MY(count) = 3;
1475         MY(originjitter) = '1.0 1.0 1.0';
1476         MY(size_min) = 0.300000;
1477         MY(size_max) = 0.400000;
1478         MY(stretchfactor) = 0.150000;
1479         MY(tex_min) = 40;
1480         MY(tex_max) = 40;
1481         MY(type) = "spark";
1482         MY(velocityjitter) = '555.0 555.0 555.0';
1483         MY(velocitymultiplier) = 3;
1484 }
1485
1486 DEF(machinegun_impact);
1487 // decal
1488 SUB(machinegun_impact) {
1489         MY(alpha_min) = 256;
1490         MY(alpha_max) = 256;
1491         MY(countabsolute) = 1;
1492         MY(lightcolor) = '6.0 3.6 0.6';
1493         MY(lightradiusfade) = 800;
1494         MY(lightradius) = 80;
1495         MY(originjitter) = '10.0 10.0 10.0';
1496         MY(size_min) = 5;
1497         MY(size_max) = 5;
1498         MY(tex_min) = 56;
1499         MY(tex_max) = 59;
1500         MY(type) = "decal";
1501 }
1502 // dust/smoke drifting away from the impact
1503 SUB(machinegun_impact) {
1504         MY(airfriction) = 5;
1505         MY(alpha_min) = 300;
1506         MY(alpha_max) = 550;
1507         MY(alpha_fade) = 456;
1508         MY(color_min) = "0x473a37";
1509         MY(color_max) = "0x0b0a07";
1510         MY(count) = 1.500000;
1511         MY(notunderwater) = true;
1512         MY(startangle_max) = 360;
1513         MY(spin_min) = -50;
1514         MY(spin_max) = 50;
1515         MY(sizeincrease) = 15;
1516         MY(size_min) = 10;
1517         MY(size_max) = 20;
1518         MY(tex_max) = 8;
1519         MY(type) = "alphastatic";
1520         MY(velocityjitter) = '150.0 150.0 150.0';
1521         MY(velocitymultiplier) = 0.100000;
1522 }
1523 // dust/smoke staying at the impact
1524 SUB(machinegun_impact) {
1525         MY(airfriction) = 5;
1526         MY(alpha_min) = 200;
1527         MY(alpha_max) = 350;
1528         MY(alpha_fade) = 500;
1529         MY(bounce) = 6;
1530         MY(color_min) = "0x201d1a";
1531         MY(color_max) = "0x000000";
1532         MY(count) = 0.500000;
1533         MY(notunderwater) = true;
1534         MY(startangle_max) = 360;
1535         MY(spin_min) = -50;
1536         MY(spin_max) = 50;
1537         MY(sizeincrease) = 74;
1538         MY(size_min) = 10;
1539         MY(size_max) = 11;
1540         MY(tex_min) = 36;
1541         MY(tex_max) = 36;
1542         MY(type) = "alphastatic";
1543         MY(velocityjitter) = '11.0 11.0 11.0';
1544         MY(velocitymultiplier) = 0.030000;
1545 }
1546 // debris
1547 SUB(machinegun_impact) {
1548         MY(airfriction) = 1;
1549         MY(alpha_min) = 300;
1550         MY(alpha_max) = 550;
1551         MY(alpha_fade) = 256;
1552         MY(bounce) = 1.700000;
1553         MY(color_min) = "0x63493e";
1554         MY(color_max) = "0xffffff";
1555         MY(count) = 1;
1556         MY(gravity) = 1.400000;
1557         MY(notunderwater) = true;
1558         MY(startangle_max) = 360;
1559         MY(spin_min) = -500;
1560         MY(spin_max) = 500;
1561         MY(size_min) = 1;
1562         MY(size_max) = 5;
1563         MY(tex_min) = 66;
1564         MY(tex_max) = 68;
1565         MY(type) = "alphastatic";
1566         MY(velocityjitter) = '350.0 350.0 350.0';
1567         MY(velocitymultiplier) = 0.200000;
1568 }
1569 // sparks
1570 SUB(machinegun_impact) {
1571         MY(airfriction) = 2;
1572         MY(alpha_min) = 256;
1573         MY(alpha_max) = 256;
1574         MY(alpha_fade) = 168;
1575         MY(bounce) = 1;
1576         MY(color_min) = "0xFDFFD9";
1577         MY(color_max) = "0xFDFFD9";
1578         MY(count) = 1;
1579         MY(gravity) = 1;
1580         MY(notunderwater) = true;
1581         MY(originjitter) = '1.0 1.0 1.0';
1582         MY(size_min) = 0.300000;
1583         MY(size_max) = 0.300000;
1584         MY(tex_min) = 40;
1585         MY(tex_max) = 40;
1586         MY(type) = "spark";
1587         MY(velocityjitter) = '300.0 300.0 300.0';
1588         MY(velocitymultiplier) = 0.200000;
1589 }
1590
1591 DEF(grenadelauncher_muzzleflash);
1592 SUB(grenadelauncher_muzzleflash) {
1593         MY(airfriction) = 12;
1594         MY(alpha_min) = 256;
1595         MY(alpha_max) = 256;
1596         MY(alpha_fade) = 512;
1597         MY(color_min) = "0x202020";
1598         MY(color_max) = "0x404040";
1599         MY(count) = 1.500000;
1600         MY(lightcolor) = '2.0 1.5 0.2';
1601         MY(lightradiusfade) = 2000;
1602         MY(lightradius) = 200;
1603         MY(originjitter) = '1.5 1.5 1.5';
1604         MY(size_min) = 5;
1605         MY(size_max) = 5;
1606         MY(tex_max) = 8;
1607         MY(type) = "smoke";
1608         MY(velocityjitter) = '20.0 20.0 20.0';
1609         MY(velocitymultiplier) = 0.030000;
1610 }
1611 SUB(grenadelauncher_muzzleflash) {
1612         MY(airfriction) = 5;
1613         MY(alpha_max) = 128;
1614         MY(alpha_fade) = 1024;
1615         MY(color_min) = "0xffdb96";
1616         MY(color_max) = "0xff5400";
1617         MY(count) = 16;
1618         MY(originjitter) = '1.0 1.0 1.0';
1619         MY(size_min) = 10;
1620         MY(size_max) = 20;
1621         MY(stretchfactor) = 2.500000;
1622         MY(tex_min) = 48;
1623         MY(tex_max) = 55;
1624         MY(type) = "spark";
1625         MY(velocityjitter) = '100.0 100.0 100.0';
1626         MY(velocitymultiplier) = 0.500000;
1627 }
1628
1629 // mortar trail
1630 DEF(TR_GRENADE);
1631 // smoke
1632 SUB(TR_GRENADE) {
1633         MY(alpha_min) = 300;
1634         MY(alpha_max) = 400;
1635         MY(alpha_fade) = 780;
1636         MY(bounce) = 1;
1637         MY(color_min) = "0x101010";
1638         MY(color_max) = "0x000000";
1639         MY(originjitter) = '1.0 1.0 1.0';
1640         MY(sizeincrease) = 10;
1641         MY(size_min) = 3;
1642         MY(size_max) = 2;
1643         MY(tex_max) = 8;
1644         MY(trailspacing) = 4;
1645         MY(type) = "smoke";
1646         MY(velocityjitter) = '1.0 1.0 1.0';
1647         MY(velocitymultiplier) = -0.020000;
1648 }
1649 // fire
1650 SUB(TR_GRENADE) {
1651         MY(airfriction) = 8;
1652         MY(alpha_min) = 100;
1653         MY(alpha_max) = 144;
1654         MY(alpha_fade) = 988;
1655         MY(color_min) = "0xffdf72";
1656         MY(color_max) = "0x811200";
1657         MY(notunderwater) = true;
1658         MY(sizeincrease) = -15;
1659         MY(size_min) = 5;
1660         MY(size_max) = 2;
1661         MY(tex_min) = 48;
1662         MY(tex_max) = 55;
1663         MY(trailspacing) = 4;
1664         MY(type) = "static";
1665         MY(velocityjitter) = '32.0 32.0 32.0';
1666         MY(velocitymultiplier) = -1;
1667 }
1668 // bubbles
1669 SUB(TR_GRENADE) {
1670         MY(alpha_min) = 256;
1671         MY(alpha_max) = 256;
1672         MY(alpha_fade) = 256;
1673         MY(bounce) = 1.500000;
1674         MY(color_min) = "0x404040";
1675         MY(color_max) = "0x808080";
1676         MY(gravity) = -0.125000;
1677         MY(liquidfriction) = 4;
1678         MY(size_min) = 1;
1679         MY(size_max) = 1;
1680         MY(tex_min) = 62;
1681         MY(tex_max) = 62;
1682         MY(trailspacing) = 16;
1683         MY(type) = "bubble";
1684         MY(underwater) = true;
1685         MY(velocityjitter) = '16.0 16.0 16.0';
1686 }
1687
1688 // hookbomb trail
1689 DEF(TR_KNIGHTSPIKE);
1690 // smoke
1691 SUB(TR_KNIGHTSPIKE) {
1692         MY(alpha_min) = 300;
1693         MY(alpha_max) = 400;
1694         MY(alpha_fade) = 600;
1695         MY(bounce) = 1;
1696         MY(color_min) = "0x303030";
1697         MY(color_max) = "0x000000";
1698         MY(gravity) = -0.110000;
1699         MY(notunderwater) = true;
1700         MY(originjitter) = '2.0 2.0 2.0';
1701         MY(sizeincrease) = 11;
1702         MY(size_min) = 3;
1703         MY(size_max) = 3;
1704         MY(tex_max) = 8;
1705         MY(trailspacing) = 6;
1706         MY(type) = "smoke";
1707         MY(velocityjitter) = '3.0 3.0 3.0';
1708         MY(velocitymultiplier) = -0.020000;
1709 }
1710 // marker
1711 SUB(TR_KNIGHTSPIKE) {
1712         MY(alpha_min) = 256;
1713         MY(alpha_max) = 256;
1714         MY(alpha_fade) = 720;
1715         MY(color_min) = "0x666666";
1716         MY(color_max) = "0x000000";
1717         MY(sizeincrease) = -0.100000;
1718         MY(size_min) = 1;
1719         MY(size_max) = 1;
1720         MY(tex_min) = 62;
1721         MY(tex_max) = 62;
1722         MY(trailspacing) = 2;
1723         MY(type) = "alphastatic";
1724 }
1725 // bubbles
1726 SUB(TR_KNIGHTSPIKE) {
1727         MY(alpha_min) = 256;
1728         MY(alpha_max) = 256;
1729         MY(alpha_fade) = 256;
1730         MY(bounce) = 1.500000;
1731         MY(color_min) = "0x404040";
1732         MY(color_max) = "0x808080";
1733         MY(gravity) = -0.125000;
1734         MY(liquidfriction) = 4;
1735         MY(size_min) = 1;
1736         MY(size_max) = 1;
1737         MY(tex_min) = 62;
1738         MY(tex_max) = 62;
1739         MY(trailspacing) = 32;
1740         MY(type) = "bubble";
1741         MY(underwater) = true;
1742         MY(velocityjitter) = '16.0 16.0 16.0';
1743 }
1744
1745 DEF(grenade_explode);
1746 // decal
1747 SUB(grenade_explode) {
1748         MY(alpha_min) = 256;
1749         MY(alpha_max) = 256;
1750         MY(countabsolute) = 1;
1751         MY(lightcolor) = '8.0 4.0 1.0';
1752         MY(lightradiusfade) = 400;
1753         MY(lightradius) = 250;
1754         MY(originjitter) = '26.0 26.0 26.0';
1755         MY(size_min) = 48;
1756         MY(size_max) = 48;
1757         MY(tex_min) = 8;
1758         MY(tex_max) = 16;
1759         MY(type) = "decal";
1760 }
1761 // fire effect which expands then slows
1762 SUB(grenade_explode) {
1763         MY(airfriction) = 8;
1764         MY(alpha_min) = 128;
1765         MY(alpha_max) = 228;
1766         MY(alpha_fade) = 356;
1767         MY(bounce) = 4.500000;
1768         MY(color_min) = "0xe03f00";
1769         MY(color_max) = "0x5e0000";
1770         MY(count) = 40;
1771         MY(liquidfriction) = 8;
1772         MY(notunderwater) = true;
1773         MY(originjitter) = '8.0 8.0 8.0';
1774         MY(sizeincrease) = 20;
1775         MY(size_min) = 16;
1776         MY(size_max) = 26;
1777         MY(tex_min) = 48;
1778         MY(tex_max) = 55;
1779         MY(type) = "static";
1780         MY(velocityjitter) = '256.0 256.0 256.0';
1781 }
1782 // fire effect which make bright dot inside
1783 SUB(grenade_explode) {
1784         MY(airfriction) = 8;
1785         MY(alpha_min) = 228;
1786         MY(alpha_max) = 328;
1787         MY(alpha_fade) = 756;
1788         MY(bounce) = 1;
1789         MY(color_min) = "0xe03f00";
1790         MY(color_max) = "0xffdf92";
1791         MY(count) = 15;
1792         MY(liquidfriction) = 8;
1793         MY(notunderwater) = true;
1794         MY(originjitter) = '8.0 8.0 8.0';
1795         MY(sizeincrease) = 40;
1796         MY(size_min) = 6;
1797         MY(size_max) = 16;
1798         MY(tex_min) = 48;
1799         MY(tex_max) = 55;
1800         MY(type) = "static";
1801         MY(velocityjitter) = '256.0 256.0 256.0';
1802 }
1803 // smoke
1804 SUB(grenade_explode) {
1805         MY(airfriction) = 5;
1806         MY(alpha_min) = 300;
1807         MY(alpha_max) = 550;
1808         MY(alpha_fade) = 556;
1809         MY(bounce) = 6;
1810         MY(color_min) = "0x000000";
1811         MY(color_max) = "0x111111";
1812         MY(count) = 10;
1813         MY(notunderwater) = true;
1814         MY(sizeincrease) = 34;
1815         MY(size_min) = 20;
1816         MY(size_max) = 40;
1817         MY(tex_max) = 8;
1818         MY(type) = "alphastatic";
1819         MY(velocityjitter) = '256.0 256.0 256.0';
1820 }
1821 // underwater bubbles
1822 SUB(grenade_explode) {
1823         MY(alpha_min) = 128;
1824         MY(alpha_max) = 256;
1825         MY(alpha_fade) = 64;
1826         MY(bounce) = 1.500000;
1827         MY(color_min) = "0x404040";
1828         MY(color_max) = "0x808080";
1829         MY(count) = 32;
1830         MY(gravity) = -0.125000;
1831         MY(liquidfriction) = 0.250000;
1832         MY(originjitter) = '16.0 16.0 16.0';
1833         MY(size_min) = 3;
1834         MY(size_max) = 6;
1835         MY(tex_min) = 62;
1836         MY(tex_max) = 62;
1837         MY(type) = "bubble";
1838         MY(underwater) = true;
1839         MY(velocityjitter) = '196.0 196.0 196.0';
1840 }
1841 // underwatershockwave
1842 SUB(grenade_explode) {
1843         MY(alpha_min) = 40;
1844         MY(alpha_max) = 40;
1845         MY(alpha_fade) = 300;
1846         MY(countabsolute) = 1;
1847         MY(sizeincrease) = 1500;
1848         MY(size_min) = 5;
1849         MY(size_max) = 5;
1850         MY(tex_min) = 33;
1851         MY(tex_max) = 33;
1852         MY(type) = "smoke";
1853         MY(underwater) = true;
1854         MY(velocitymultiplier) = 0.300000;
1855 }
1856 // bouncing sparks
1857 SUB(grenade_explode) {
1858         MY(airfriction) = 1;
1859         MY(alpha_min) = 644;
1860         MY(alpha_max) = 956;
1861         MY(alpha_fade) = 484;
1862         MY(bounce) = 1.600000;
1863         MY(color_min) = "0xffa35b";
1864         MY(color_max) = "0xfff2be";
1865         MY(count) = 16;
1866         MY(gravity) = 1;
1867         MY(liquidfriction) = 0.800000;
1868         MY(notunderwater) = true;
1869         MY(originjitter) = '16.0 16.0 16.0';
1870         MY(size_min) = 1;
1871         MY(size_max) = 0.100000;
1872         MY(tex_min) = 40;
1873         MY(tex_max) = 40;
1874         MY(type) = "spark";
1875         MY(velocityjitter) = '424.0 424.0 624.0';
1876         MY(velocityoffset) = '0.0 0.0 80.0';
1877 }
1878 // debris
1879 SUB(grenade_explode) {
1880         MY(airfriction) = 0.500000;
1881         MY(alpha_min) = 644;
1882         MY(alpha_max) = 956;
1883         MY(alpha_fade) = 684;
1884         MY(bounce) = 1.600000;
1885         MY(color_min) = "0x6a3d25";
1886         MY(color_max) = "0xcac5b4";
1887         MY(count) = 12;
1888         MY(gravity) = 1.300000;
1889         MY(notunderwater) = true;
1890         MY(startangle_min) = -180;
1891         MY(startangle_max) = 180;
1892         MY(spin_min) = -1000;
1893         MY(spin_max) = 1000;
1894         MY(size_min) = 2;
1895         MY(size_max) = 6;
1896         MY(tex_min) = 66;
1897         MY(tex_max) = 68;
1898         MY(type) = "alphastatic";
1899         MY(velocityjitter) = '324.0 324.0 524.0';
1900 }
1901
1902 DEF(electro_muzzleflash);
1903 SUB(electro_muzzleflash) {
1904         MY(alpha_min) = 256;
1905         MY(alpha_max) = 256;
1906         MY(alpha_fade) = 512;
1907         MY(color_min) = "0x283880";
1908         MY(color_max) = "0x283880";
1909         MY(countabsolute) = 1;
1910         MY(lightcolor) = '1.5 3.0 6.0';
1911         MY(lightradiusfade) = 2000;
1912         MY(lightradius) = 200;
1913         MY(originjitter) = '1.5 1.5 1.5';
1914         MY(sizeincrease) = -10;
1915         MY(size_min) = 15;
1916         MY(size_max) = 15;
1917         MY(tex_min) = 65;
1918         MY(tex_max) = 65;
1919         MY(type) = "smoke";
1920         MY(velocityjitter) = '6.0 6.0 6.0';
1921         MY(velocitymultiplier) = 0.010000;
1922 }
1923 SUB(electro_muzzleflash) {
1924         MY(airfriction) = 2;
1925         MY(alpha_min) = 110;
1926         MY(alpha_max) = 228;
1927         MY(alpha_fade) = 2024;
1928         MY(color_min) = "0xD9FDFF";
1929         MY(color_max) = "0xD9FDFF";
1930         MY(count) = 7;
1931         MY(originjitter) = '1.0 1.0 1.0';
1932         MY(size_min) = 5;
1933         MY(size_max) = 15;
1934         MY(stretchfactor) = 1.500000;
1935         MY(tex_min) = 8;
1936         MY(tex_max) = 15;
1937         MY(type) = "spark";
1938         MY(velocityjitter) = '150.0 150.0 150.0';
1939         MY(velocitymultiplier) = 0.500000;
1940 }
1941 SUB(electro_muzzleflash) {
1942         MY(airfriction) = 8;
1943         MY(alpha_min) = 110;
1944         MY(alpha_max) = 228;
1945         MY(alpha_fade) = 1024;
1946         MY(color_min) = "0xD9FDFF";
1947         MY(color_max) = "0xD9FDFF";
1948         MY(count) = 5;
1949         MY(gravity) = 1.300000;
1950         MY(originjitter) = '1.0 1.0 1.0';
1951         MY(size_min) = 7;
1952         MY(size_max) = 6;
1953         MY(stretchfactor) = 0.100000;
1954         MY(tex_min) = 41;
1955         MY(tex_max) = 41;
1956         MY(type) = "spark";
1957         MY(velocityjitter) = '350.0 350.0 350.0';
1958         MY(velocitymultiplier) = 2.500000;
1959 }
1960
1961 // electro trail
1962 DEF(TR_NEXUIZPLASMA);
1963 // glowing vapor trail
1964 SUB(TR_NEXUIZPLASMA) {
1965         MY(alpha_min) = 256;
1966         MY(alpha_max) = 256;
1967         MY(alpha_fade) = 968;
1968         MY(color_min) = "0x283880";
1969         MY(color_max) = "0x283880";
1970         MY(lightcolor) = '1.5 3.0 6.0';
1971         MY(lightradius) = 90;
1972         MY(size_min) = 3;
1973         MY(size_max) = 3;
1974         MY(tex_min) = 38;
1975         MY(tex_max) = 38;
1976         MY(trailspacing) = 2;
1977         MY(type) = "static";
1978         MY(velocitymultiplier) = -0.100000;
1979 }
1980 // bright sparks
1981 SUB(TR_NEXUIZPLASMA) {
1982         MY(airfriction) = 12;
1983         MY(alpha_min) = 444;
1984         MY(alpha_max) = 512;
1985         MY(alpha_fade) = 1866;
1986         MY(bounce) = 1;
1987         MY(color_min) = "0x629dff";
1988         MY(color_max) = "0x0018ff";
1989         MY(count) = 1.500000;
1990         MY(originjitter) = '1.0 1.0 1.0';
1991         MY(sizeincrease) = -20;
1992         MY(size_min) = 2;
1993         MY(size_max) = 4;
1994         MY(tex_min) = 42;
1995         MY(tex_max) = 42;
1996         MY(trailspacing) = 12;
1997         MY(type) = "snow";
1998         MY(velocityjitter) = '50.0 50.0 50.0';
1999         MY(velocityoffset) = '0.0 0.0 15.0';
2000 }
2001
2002 DEF(electro_impact);
2003 // decal
2004 SUB(electro_impact) {
2005         MY(alpha_min) = 256;
2006         MY(alpha_max) = 256;
2007         MY(countabsolute) = 1;
2008         MY(lightcolor) = '3.1 4.4 10.0';
2009         MY(lightradiusfade) = 250;
2010         MY(lightradius) = 250;
2011         MY(originjitter) = '17.0 17.0 17.0';
2012         MY(size_min) = 32;
2013         MY(size_max) = 32;
2014         MY(tex_min) = 59;
2015         MY(tex_max) = 59;
2016         MY(type) = "decal";
2017 }
2018 // shockwave
2019 SUB(electro_impact) {
2020         MY(alpha_min) = 40;
2021         MY(alpha_max) = 40;
2022         MY(alpha_fade) = 350;
2023         MY(color_min) = "0x80C0FF";
2024         MY(color_max) = "0x80C0FF";
2025         MY(countabsolute) = 1;
2026         MY(sizeincrease) = 1000;
2027         MY(size_min) = 32;
2028         MY(size_max) = 32;
2029         MY(tex_min) = 33;
2030         MY(tex_max) = 33;
2031         MY(type) = "smoke";
2032         MY(velocitymultiplier) = 44;
2033 }
2034 // flare effect
2035 SUB(electro_impact) {
2036         MY(alpha_min) = 256;
2037         MY(alpha_max) = 256;
2038         MY(alpha_fade) = 512;
2039         MY(color_min) = "0x80C0FF";
2040         MY(color_max) = "0x80C0FF";
2041         MY(countabsolute) = 1;
2042         MY(size_min) = 12;
2043         MY(size_max) = 32;
2044         MY(tex_min) = 38;
2045         MY(tex_max) = 38;
2046         MY(type) = "static";
2047 }
2048 // cloud of bouncing sparks
2049 SUB(electro_impact) {
2050         MY(airfriction) = 6;
2051         MY(alpha_min) = 256;
2052         MY(alpha_max) = 256;
2053         MY(alpha_fade) = 1024;
2054         MY(bounce) = 2;
2055         MY(color_min) = "0x629dff";
2056         MY(color_max) = "0x0018ff";
2057         MY(count) = 30;
2058         MY(gravity) = -0.300000;
2059         MY(originjitter) = '1.0 1.0 1.0';
2060         MY(startangle_min) = -180;
2061         MY(startangle_max) = 180;
2062         MY(spin_min) = -9999;
2063         MY(spin_max) = 9999;
2064         MY(sizeincrease) = -50;
2065         MY(size_min) = 36;
2066         MY(size_max) = 36;
2067         MY(tex_min) = 42;
2068         MY(tex_max) = 42;
2069         MY(type) = "smoke";
2070         MY(velocityjitter) = '512.0 512.0 512.0';
2071 }
2072 // inner cloud of smoke
2073 SUB(electro_impact) {
2074         MY(airfriction) = 30;
2075         MY(alpha_min) = 200;
2076         MY(alpha_max) = 256;
2077         MY(alpha_fade) = 512;
2078         MY(color_min) = "0x629dff";
2079         MY(color_max) = "0x0018ff";
2080         MY(count) = 30;
2081         MY(originjitter) = '20.0 20.0 20.0';
2082         MY(sizeincrease) = 50;
2083         MY(size_min) = 20;
2084         MY(size_max) = 24;
2085         MY(tex_max) = 8;
2086         MY(type) = "smoke";
2087         MY(velocityjitter) = '320.0 320.0 320.0';
2088 }
2089
2090 DEF(electro_ballexplode);
2091 // decal
2092 SUB(electro_ballexplode) {
2093         MY(alpha_min) = 256;
2094         MY(alpha_max) = 256;
2095         MY(countabsolute) = 1;
2096         MY(lightcolor) = '3.1 4.4 10.0';
2097         MY(lightradiusfade) = 250;
2098         MY(lightradius) = 250;
2099         MY(originjitter) = '17.0 17.0 17.0';
2100         MY(size_min) = 32;
2101         MY(size_max) = 32;
2102         MY(tex_min) = 59;
2103         MY(tex_max) = 59;
2104         MY(type) = "decal";
2105 }
2106 // flare effect
2107 SUB(electro_ballexplode) {
2108         MY(alpha_min) = 256;
2109         MY(alpha_max) = 256;
2110         MY(alpha_fade) = 512;
2111         MY(color_min) = "0x80C0FF";
2112         MY(color_max) = "0x80C0FF";
2113         MY(countabsolute) = 1;
2114         MY(size_min) = 32;
2115         MY(size_max) = 32;
2116         MY(tex_min) = 38;
2117         MY(tex_max) = 38;
2118         MY(type) = "static";
2119 }
2120 // cloud of bouncing sparks
2121 SUB(electro_ballexplode) {
2122         MY(alpha_min) = 256;
2123         MY(alpha_max) = 256;
2124         MY(alpha_fade) = 1024;
2125         MY(bounce) = 2;
2126         MY(color_min) = "0xFDFFD9";
2127         MY(color_max) = "0xFDFFD9";
2128         MY(count) = 64;
2129         MY(originjitter) = '1.0 1.0 1.0';
2130         MY(size_min) = 1;
2131         MY(size_max) = 2;
2132         MY(stretchfactor) = 0.400000;
2133         MY(tex_min) = 41;
2134         MY(tex_max) = 41;
2135         MY(type) = "spark";
2136         MY(velocityjitter) = '512.0 512.0 512.0';
2137 }
2138 // inner cloud of smoke
2139 SUB(electro_ballexplode) {
2140         MY(alpha_min) = 256;
2141         MY(alpha_max) = 256;
2142         MY(alpha_fade) = 512;
2143         MY(color_min) = "0x202020";
2144         MY(color_max) = "0x404040";
2145         MY(count) = 8;
2146         MY(originjitter) = '20.0 20.0 20.0';
2147         MY(size_min) = 24;
2148         MY(size_max) = 24;
2149         MY(tex_max) = 8;
2150         MY(type) = "smoke";
2151         MY(velocityjitter) = '32.0 32.0 32.0';
2152 }
2153
2154 DEF(electro_combo);
2155 // decal
2156 SUB(electro_combo) {
2157         MY(alpha_min) = 256;
2158         MY(alpha_max) = 256;
2159         MY(countabsolute) = 1;
2160         MY(lightcolor) = '4.0 5.0 6.0';
2161         MY(lightradiusfade) = 300;
2162         MY(lightradius) = 400;
2163         MY(originjitter) = '17.0 17.0 17.0';
2164         MY(size_min) = 64;
2165         MY(size_max) = 64;
2166         MY(tex_min) = 59;
2167         MY(tex_max) = 59;
2168         MY(type) = "decal";
2169 }
2170 // flare effect
2171 SUB(electro_combo) {
2172         MY(alpha_min) = 128;
2173         MY(alpha_max) = 128;
2174         MY(alpha_fade) = 64;
2175         MY(color_min) = "0x80C0FF";
2176         MY(color_max) = "0x80C0FF";
2177         MY(countabsolute) = 1;
2178         MY(size_min) = 48;
2179         MY(size_max) = 48;
2180         MY(tex_min) = 38;
2181         MY(tex_max) = 38;
2182         MY(type) = "static";
2183 }
2184 // large sparks
2185 SUB(electro_combo) {
2186         MY(airfriction) = 6;
2187         MY(alpha_min) = 156;
2188         MY(alpha_max) = 156;
2189         MY(alpha_fade) = 156;
2190         MY(bounce) = 2;
2191         MY(color_min) = "0x2030FF";
2192         MY(color_max) = "0x80C0FF";
2193         MY(count) = 5;
2194         MY(liquidfriction) = 16;
2195         MY(sizeincrease) = 50;
2196         MY(size_min) = 32;
2197         MY(size_max) = 32;
2198         MY(tex_max) = 7;
2199         MY(type) = "static";
2200         MY(velocityjitter) = '512.0 512.0 512.0';
2201 }
2202 SUB(electro_combo) {
2203         MY(alpha_min) = 444;
2204         MY(alpha_max) = 512;
2205         MY(alpha_fade) = 700;
2206         MY(bounce) = 1.600000;
2207         MY(color_min) = "0xa9cacf";
2208         MY(color_max) = "0x0054ff";
2209         MY(count) = 32;
2210         MY(gravity) = 0.300000;
2211         MY(originjitter) = '1.0 1.0 1.0';
2212         MY(size_min) = 2;
2213         MY(size_max) = 4;
2214         MY(stretchfactor) = 2;
2215         MY(tex_min) = 41;
2216         MY(tex_max) = 41;
2217         MY(type) = "spark";
2218         MY(velocityjitter) = '312.0 312.0 312.0';
2219         MY(velocitymultiplier) = 3;
2220 }
2221 // inner cloud of smoke
2222 SUB(electro_combo) {
2223         MY(alpha_min) = 256;
2224         MY(alpha_max) = 256;
2225         MY(alpha_fade) = 256;
2226         MY(color_min) = "0x202020";
2227         MY(color_max) = "0x404040";
2228         MY(count) = 0.125000;
2229         MY(originjitter) = '20.0 20.0 20.0';
2230         MY(size_min) = 24;
2231         MY(size_max) = 24;
2232         MY(tex_max) = 8;
2233         MY(type) = "smoke";
2234         MY(velocityjitter) = '32.0 32.0 32.0';
2235 }
2236 // shockwave
2237 SUB(electro_combo) {
2238         MY(alpha_min) = 40;
2239         MY(alpha_max) = 40;
2240         MY(alpha_fade) = 100;
2241         MY(color_min) = "0xa9cacf";
2242         MY(color_max) = "0x0054ff";
2243         MY(countabsolute) = 1;
2244         MY(sizeincrease) = 600;
2245         MY(size_min) = 30;
2246         MY(size_max) = 30;
2247         MY(tex_min) = 33;
2248         MY(tex_max) = 33;
2249         MY(type) = "smoke";
2250         MY(velocitymultiplier) = 0.300000;
2251 }
2252
2253 DEF(crylink_muzzleflash);
2254 SUB(crylink_muzzleflash) {
2255         MY(alpha_min) = 128;
2256         MY(alpha_max) = 128;
2257         MY(alpha_fade) = 2024;
2258         MY(color_min) = "0xdd9cff";
2259         MY(color_max) = "0xff0090";
2260         MY(count) = 0.500000;
2261         MY(lightcolor) = '1.6 0.2 2.0';
2262         MY(lightradiusfade) = 2000;
2263         MY(lightradius) = 200;
2264         MY(size_min) = 15;
2265         MY(size_max) = 20;
2266         MY(tex_min) = 65;
2267         MY(tex_max) = 65;
2268         MY(type) = "smoke";
2269         MY(velocitymultiplier) = 0.010000;
2270 }
2271 SUB(crylink_muzzleflash) {
2272         MY(airfriction) = 12;
2273         MY(alpha_max) = 128;
2274         MY(alpha_fade) = 1024;
2275         MY(color_min) = "0xA080C0";
2276         MY(color_max) = "0xA080C0";
2277         MY(count) = 5;
2278         MY(originjitter) = '1.0 1.0 1.0';
2279         MY(size_min) = 5;
2280         MY(size_max) = 10;
2281         MY(stretchfactor) = 1.500000;
2282         MY(tex_min) = 35;
2283         MY(tex_max) = 36;
2284         MY(type) = "spark";
2285         MY(velocityjitter) = '200.0 200.0 200.0';
2286         MY(velocitymultiplier) = 0.300000;
2287 }
2288
2289 DEF(crylink_impact);
2290 // decal
2291 SUB(crylink_impact) {
2292         MY(alpha_min) = 256;
2293         MY(alpha_max) = 256;
2294         MY(countabsolute) = 1;
2295         MY(originjitter) = '12.0 12.0 12.0';
2296         MY(size_min) = 24;
2297         MY(size_max) = 24;
2298         MY(tex_min) = 47;
2299         MY(tex_max) = 47;
2300         MY(type) = "decal";
2301 }
2302 // purple flare effect
2303 SUB(crylink_impact) {
2304         MY(alpha_min) = 256;
2305         MY(alpha_max) = 256;
2306         MY(alpha_fade) = 512;
2307         MY(color_min) = "0x504060";
2308         MY(color_max) = "0x504060";
2309         MY(countabsolute) = 1;
2310         MY(size_min) = 24;
2311         MY(size_max) = 24;
2312         MY(tex_min) = 39;
2313         MY(tex_max) = 39;
2314         MY(type) = "static";
2315 }
2316 // purple sparks
2317 SUB(crylink_impact) {
2318         MY(alpha_min) = 256;
2319         MY(alpha_max) = 256;
2320         MY(alpha_fade) = 1024;
2321         MY(bounce) = 2;
2322         MY(color_min) = "0xA040C0";
2323         MY(color_max) = "0xA040C0";
2324         MY(count) = 40;
2325         MY(size_min) = 6;
2326         MY(size_max) = 6;
2327         MY(tex_min) = 41;
2328         MY(tex_max) = 41;
2329         MY(type) = "spark";
2330         MY(velocityjitter) = '512.0 512.0 512.0';
2331 }
2332 // purple splash
2333 SUB(crylink_impact) {
2334         MY(alpha_min) = 256;
2335         MY(alpha_max) = 256;
2336         MY(alpha_fade) = 512;
2337         MY(color_min) = "0xE070FF";
2338         MY(color_max) = "0xE070FF";
2339         MY(count) = 1.500000;
2340         MY(size_min) = 16;
2341         MY(size_max) = 16;
2342         MY(type) = "static";
2343         MY(velocityjitter) = '32.0 32.0 32.0';
2344 }
2345 // purple splash
2346 SUB(crylink_impact) {
2347         MY(alpha_min) = 256;
2348         MY(alpha_max) = 256;
2349         MY(alpha_fade) = 1024;
2350         MY(color_min) = "0xE070FF";
2351         MY(color_max) = "0xE070FF";
2352         MY(count) = 3;
2353         MY(size_min) = 16;
2354         MY(size_max) = 16;
2355         MY(type) = "static";
2356         MY(velocityjitter) = '256.0 256.0 256.0';
2357 }
2358
2359 DEF(nex_muzzleflash);
2360 SUB(nex_muzzleflash) {
2361         MY(airfriction) = 9;
2362         MY(alpha_min) = 328;
2363         MY(alpha_max) = 328;
2364         MY(alpha_fade) = 4000;
2365         MY(color_min) = "0x202020";
2366         MY(color_max) = "0x0072ff";
2367         MY(count) = 12;
2368         MY(lightcolor) = '2.0 2.5 3.0';
2369         MY(lightradiusfade) = 200;
2370         MY(lightradius) = 200;
2371         MY(originjitter) = '4.0 4.0 4.0';
2372         MY(sizeincrease) = -100;
2373         MY(size_min) = 16;
2374         MY(size_max) = 16;
2375         MY(stretchfactor) = 2;
2376         MY(tex_min) = 48;
2377         MY(tex_max) = 55;
2378         MY(type) = "spark";
2379         MY(velocityjitter) = '180.0 180.0 180.0';
2380         MY(velocitymultiplier) = 1.400000;
2381 }
2382 SUB(nex_muzzleflash) {
2383         MY(airfriction) = 9;
2384         MY(alpha_max) = 128;
2385         MY(alpha_fade) = 1024;
2386         MY(color_min) = "0xD9FDFF";
2387         MY(color_max) = "0xD9FDFF";
2388         MY(count) = 50;
2389         MY(originjitter) = '1.0 1.0 1.0';
2390         MY(size_min) = 1;
2391         MY(size_max) = 1;
2392         MY(tex_min) = 41;
2393         MY(tex_max) = 41;
2394         MY(type) = "spark";
2395         MY(velocityjitter) = '600.0 600.0 600.0';
2396         MY(velocitymultiplier) = 1.500000;
2397 }
2398
2399 // vortex beam
2400 DEF(nex_beam);
2401 SUB(nex_beam) {
2402         MY(airfriction) = 5;
2403         MY(alpha_min) = 64;
2404         MY(alpha_max) = 128;
2405         MY(alpha_fade) = 64;
2406         MY(color_min) = "0x1680A0";
2407         MY(color_max) = "0x1680A0";
2408         MY(sizeincrease) = 2;
2409         MY(size_min) = 4;
2410         MY(size_max) = 4;
2411         MY(tex_min) = 32;
2412         MY(tex_max) = 32;
2413         MY(trailspacing) = 64;
2414         MY(type) = "static";
2415 }
2416 // drifting smoke
2417 SUB(nex_beam) {
2418         MY(airfriction) = 9;
2419         MY(alpha_min) = 32;
2420         MY(alpha_max) = 64;
2421         MY(alpha_fade) = 32;
2422         MY(color_min) = "0x5080A0";
2423         MY(color_max) = "0x5080A0";
2424         MY(sizeincrease) = 8;
2425         MY(size_min) = 1;
2426         MY(size_max) = 1;
2427         MY(tex_max) = 8;
2428         MY(trailspacing) = 12;
2429         MY(type) = "static";
2430         MY(velocityjitter) = '64.0 64.0 64.0';
2431 }
2432 // bright core
2433 SUB(nex_beam) {
2434         MY(alpha_min) = 256;
2435         MY(alpha_max) = 256;
2436         MY(alpha_fade) = 1280;
2437         MY(color_min) = "0x80CDFF";
2438         MY(color_max) = "0x80CDFF";
2439         MY(size_min) = 4;
2440         MY(size_max) = 4;
2441         MY(trailspacing) = 12;
2442         MY(type) = "static";
2443 }
2444 // sparks
2445 SUB(nex_beam) {
2446         MY(airfriction) = 5;
2447         MY(alpha_min) = 64;
2448         MY(alpha_max) = 128;
2449         MY(alpha_fade) = 80;
2450         MY(color_min) = "0x1680A0";
2451         MY(color_max) = "0x1680A0";
2452         MY(gravity) = -0.010000;
2453         MY(size_min) = 1;
2454         MY(size_max) = 1;
2455         MY(tex_min) = 63;
2456         MY(tex_max) = 63;
2457         MY(trailspacing) = 16;
2458         MY(type) = "snow";
2459 }
2460
2461 DEF(nex_impact);
2462 // decal
2463 SUB(nex_impact) {
2464         MY(alpha_min) = 256;
2465         MY(alpha_max) = 256;
2466         MY(countabsolute) = 1;
2467         MY(lightcolor) = '4.0 6.0 8.0';
2468         MY(lightradiusfade) = 250;
2469         MY(lightradius) = 200;
2470         MY(originjitter) = '14.0 14.0 14.0';
2471         MY(startangle_min) = -180;
2472         MY(startangle_max) = 180;
2473         MY(size_min) = 24;
2474         MY(size_max) = 24;
2475         MY(tex_min) = 47;
2476         MY(tex_max) = 47;
2477         MY(type) = "decal";
2478 }
2479 // rotating something
2480 SUB(nex_impact) {
2481         MY(alpha_min) = 55;
2482         MY(alpha_max) = 55;
2483         MY(alpha_fade) = 50;
2484         MY(color_min) = "0x1680A0";
2485         MY(color_max) = "0x1680A0";
2486         MY(count) = 5;
2487         MY(startangle_min) = 180;
2488         MY(startangle_max) = -180;
2489         MY(spin_min) = 500;
2490         MY(spin_max) = -500;
2491         MY(sizeincrease) = 20;
2492         MY(size_min) = 25;
2493         MY(size_max) = 28;
2494         MY(tex_min) = 46;
2495         MY(tex_max) = 46;
2496         MY(type) = "smoke";
2497 }
2498 // shockwave
2499 SUB(nex_impact) {
2500         MY(alpha_min) = 50;
2501         MY(alpha_max) = 50;
2502         MY(alpha_fade) = 400;
2503         MY(color_min) = "0x1680A0";
2504         MY(color_max) = "0x1680A0";
2505         MY(countabsolute) = 1;
2506         MY(sizeincrease) = 900;
2507         MY(size_min) = 16;
2508         MY(size_max) = 16;
2509         MY(tex_min) = 33;
2510         MY(tex_max) = 33;
2511         MY(type) = "static";
2512 }
2513 // shockwave2
2514 SUB(nex_impact) {
2515         MY(alpha_min) = 50;
2516         MY(alpha_max) = 50;
2517         MY(alpha_fade) = 100;
2518         MY(color_min) = "0x1680A0";
2519         MY(color_max) = "0x1680A0";
2520         MY(countabsolute) = 1;
2521         MY(sizeincrease) = 500;
2522         MY(size_min) = 5;
2523         MY(size_max) = 5;
2524         MY(tex_min) = 65;
2525         MY(tex_max) = 65;
2526         MY(type) = "static";
2527 }
2528 // flare effect
2529 SUB(nex_impact) {
2530         MY(alpha_min) = 256;
2531         MY(alpha_max) = 256;
2532         MY(alpha_fade) = 256;
2533         MY(color_min) = "0x80C0FF";
2534         MY(color_max) = "0x80C0FF";
2535         MY(countabsolute) = 1;
2536         MY(size_min) = 8;
2537         MY(size_max) = 8;
2538         MY(tex_min) = 37;
2539         MY(tex_max) = 37;
2540         MY(type) = "static";
2541 }
2542 // small sparks which glow brightly but live briefly
2543 SUB(nex_impact) {
2544         MY(airfriction) = 9;
2545         MY(alpha_max) = 128;
2546         MY(alpha_fade) = 512;
2547         MY(bounce) = 2;
2548         MY(color_min) = "0xD9FDFF";
2549         MY(color_max) = "0xD9FDFF";
2550         MY(count) = 64;
2551         MY(size_min) = 4;
2552         MY(size_max) = 4;
2553         MY(stretchfactor) = 3;
2554         MY(tex_min) = 41;
2555         MY(tex_max) = 41;
2556         MY(type) = "spark";
2557         MY(velocityjitter) = '600.0 600.0 600.0';
2558         MY(velocitymultiplier) = 0.500000;
2559 }
2560 // small sparks that live longer
2561 SUB(nex_impact) {
2562         MY(airfriction) = 2;
2563         MY(alpha_min) = 255;
2564         MY(alpha_max) = 255;
2565         MY(alpha_fade) = 112;
2566         MY(bounce) = 1.600000;
2567         MY(color_min) = "0xD9FDFF";
2568         MY(color_max) = "0xD9FDFF";
2569         MY(count) = 16;
2570         MY(gravity) = 1;
2571         MY(size_min) = 2;
2572         MY(size_max) = 2;
2573         MY(stretchfactor) = 0.700000;
2574         MY(tex_min) = 41;
2575         MY(tex_max) = 41;
2576         MY(type) = "spark";
2577         MY(velocityjitter) = '300.0 300.0 600.0';
2578         MY(velocitymultiplier) = 2.500000;
2579 }
2580
2581 DEF(hagar_muzzleflash);
2582 SUB(hagar_muzzleflash) {
2583         MY(alpha_min) = 256;
2584         MY(alpha_max) = 256;
2585         MY(alpha_fade) = 512;
2586         MY(color_min) = "0x202020";
2587         MY(color_max) = "0x404040";
2588         MY(count) = 2;
2589         MY(lightcolor) = '2.0 1.5 0.2';
2590         MY(lightradiusfade) = 2000;
2591         MY(lightradius) = 200;
2592         MY(originjitter) = '1.5 1.5 1.5';
2593         MY(size_min) = 5;
2594         MY(size_max) = 5;
2595         MY(tex_max) = 8;
2596         MY(type) = "smoke";
2597         MY(velocityjitter) = '6.0 6.0 6.0';
2598         MY(velocitymultiplier) = 0.010000;
2599 }
2600 SUB(hagar_muzzleflash) {
2601         MY(airfriction) = 12;
2602         MY(alpha_max) = 128;
2603         MY(alpha_fade) = 1024;
2604         MY(color_min) = "0xff8400";
2605         MY(color_max) = "0xff4200";
2606         MY(count) = 15;
2607         MY(originjitter) = '1.0 1.0 1.0';
2608         MY(startangle_min) = -180;
2609         MY(startangle_max) = 180;
2610         MY(spin_min) = -400;
2611         MY(spin_max) = 400;
2612         MY(size_min) = 5;
2613         MY(size_max) = 10;
2614         MY(stretchfactor) = 2;
2615         MY(tex_min) = 48;
2616         MY(tex_max) = 55;
2617         MY(type) = "spark";
2618         MY(velocityjitter) = '200.0 200.0 200.0';
2619         MY(velocitymultiplier) = 0.500000;
2620 }
2621
2622 DEF(hagar_bounce);
2623 SUB(hagar_bounce) {
2624         MY(alpha_min) = 256;
2625         MY(alpha_max) = 256;
2626         MY(alpha_fade) = 256;
2627         MY(color_min) = "0x202020";
2628         MY(color_max) = "0x404040";
2629         MY(count) = 2;
2630         MY(lightcolor) = '2.0 1.5 0.2';
2631         MY(lightradiusfade) = 300;
2632         MY(lightradius) = 60;
2633         MY(originjitter) = '1.5 1.5 1.5';
2634         MY(size_min) = 5;
2635         MY(size_max) = 5;
2636         MY(tex_max) = 8;
2637         MY(type) = "smoke";
2638         MY(velocityjitter) = '6.0 6.0 6.0';
2639         MY(velocitymultiplier) = 0.010000;
2640 }
2641 SUB(hagar_bounce) {
2642         MY(airfriction) = 12;
2643         MY(alpha_max) = 256;
2644         MY(alpha_fade) = 256;
2645         MY(bounce) = 1.500000;
2646         MY(color_min) = "0xFFFDD9";
2647         MY(color_max) = "0xFFFDD9";
2648         MY(count) = 15;
2649         MY(gravity) = 1;
2650         MY(originjitter) = '1.0 1.0 1.0';
2651         MY(size_min) = 3;
2652         MY(size_max) = 3;
2653         MY(tex_min) = 40;
2654         MY(tex_max) = 40;
2655         MY(type) = "spark";
2656         MY(velocityjitter) = '600.0 600.0 600.0';
2657         MY(velocitymultiplier) = 0.500000;
2658 }
2659
2660 DEF(hagar_explode);
2661 // decal
2662 SUB(hagar_explode) {
2663         MY(alpha_min) = 256;
2664         MY(alpha_max) = 256;
2665         MY(countabsolute) = 1;
2666         MY(lightcolor) = '8.0 4.0 1.0';
2667         MY(lightradiusfade) = 400;
2668         MY(lightradius) = 120;
2669         MY(originjitter) = '14.0 14.0 14.0';
2670         MY(size_min) = 28;
2671         MY(size_max) = 38;
2672         MY(tex_min) = 8;
2673         MY(tex_max) = 16;
2674         MY(type) = "decal";
2675 }
2676 // fire effect which make bright dot inside
2677 SUB(hagar_explode) {
2678         MY(airfriction) = 8;
2679         MY(alpha_min) = 80;
2680         MY(alpha_max) = 200;
2681         MY(alpha_fade) = 356;
2682         MY(bounce) = 1.500000;
2683         MY(color_min) = "0xffe955";
2684         MY(color_max) = "0xff5a00";
2685         MY(count) = 3.500000;
2686         MY(liquidfriction) = 8;
2687         MY(notunderwater) = true;
2688         MY(originjitter) = '8.0 8.0 8.0';
2689         MY(sizeincrease) = 5;
2690         MY(size_min) = 16;
2691         MY(size_max) = 26;
2692         MY(tex_min) = 48;
2693         MY(tex_max) = 55;
2694         MY(type) = "smoke";
2695         MY(velocityjitter) = '156.0 156.0 156.0';
2696 }
2697 // fire effect which expands then slows
2698 SUB(hagar_explode) {
2699         MY(airfriction) = 12;
2700         MY(alpha_min) = 128;
2701         MY(alpha_max) = 256;
2702         MY(alpha_fade) = 456;
2703         MY(bounce) = 1.500000;
2704         MY(color_min) = "0x8f0d00";
2705         MY(color_max) = "0xff5a00";
2706         MY(count) = 12;
2707         MY(liquidfriction) = 8;
2708         MY(notunderwater) = true;
2709         MY(originjitter) = '8.0 8.0 8.0';
2710         MY(sizeincrease) = 15;
2711         MY(size_min) = 20;
2712         MY(size_max) = 26;
2713         MY(tex_min) = 48;
2714         MY(tex_max) = 55;
2715         MY(type) = "static";
2716         MY(velocityjitter) = '286.0 286.0 286.0';
2717 }
2718 // smoke
2719 SUB(hagar_explode) {
2720         MY(airfriction) = 5;
2721         MY(alpha_min) = 200;
2722         MY(alpha_max) = 500;
2723         MY(alpha_fade) = 600;
2724         MY(bounce) = 2;
2725         MY(color_min) = "0x000000";
2726         MY(color_max) = "0x111111";
2727         MY(count) = 7;
2728         MY(notunderwater) = true;
2729         MY(sizeincrease) = 20;
2730         MY(size_min) = 20;
2731         MY(size_max) = 40;
2732         MY(tex_max) = 8;
2733         MY(type) = "alphastatic";
2734         MY(velocityjitter) = '244.0 244.0 244.0';
2735 }
2736 // underwater bubbles
2737 SUB(hagar_explode) {
2738         MY(alpha_min) = 128;
2739         MY(alpha_max) = 256;
2740         MY(alpha_fade) = 64;
2741         MY(bounce) = 1.500000;
2742         MY(color_min) = "0x404040";
2743         MY(color_max) = "0x808080";
2744         MY(count) = 16;
2745         MY(gravity) = -0.125000;
2746         MY(liquidfriction) = 0.250000;
2747         MY(originjitter) = '16.0 16.0 16.0';
2748         MY(size_min) = 3;
2749         MY(size_max) = 3;
2750         MY(tex_min) = 62;
2751         MY(tex_max) = 62;
2752         MY(type) = "bubble";
2753         MY(underwater) = true;
2754         MY(velocityjitter) = '96.0 96.0 96.0';
2755 }
2756 // bouncing sparks
2757 SUB(hagar_explode) {
2758         MY(airfriction) = 1;
2759         MY(alpha_min) = 644;
2760         MY(alpha_max) = 956;
2761         MY(alpha_fade) = 684;
2762         MY(bounce) = 1.600000;
2763         MY(color_min) = "0xffa35b";
2764         MY(color_max) = "0xfff2be";
2765         MY(count) = 4;
2766         MY(gravity) = 1;
2767         MY(liquidfriction) = 0.800000;
2768         MY(notunderwater) = true;
2769         MY(originjitter) = '16.0 16.0 16.0';
2770         MY(size_min) = 1;
2771         MY(size_max) = 0.100000;
2772         MY(tex_min) = 40;
2773         MY(tex_max) = 40;
2774         MY(type) = "spark";
2775         MY(velocityjitter) = '224.0 224.0 224.0';
2776         MY(velocityoffset) = '0.0 0.0 80.0';
2777 }
2778
2779 DEF(rocketlauncher_muzzleflash);
2780 SUB(rocketlauncher_muzzleflash) {
2781         MY(airfriction) = 2;
2782         MY(alpha_min) = 256;
2783         MY(alpha_max) = 256;
2784         MY(alpha_fade) = 256;
2785         MY(color_min) = "0x202020";
2786         MY(color_max) = "0x404040";
2787         MY(count) = 10;
2788         MY(originjitter) = '1.5 1.5 1.5';
2789         MY(sizeincrease) = 20;
2790         MY(size_min) = 1;
2791         MY(size_max) = 1;
2792         MY(tex_max) = 8;
2793         MY(type) = "smoke";
2794         MY(velocityjitter) = '40.0 40.0 40.0';
2795         MY(velocitymultiplier) = -0.130000;
2796 }
2797 SUB(rocketlauncher_muzzleflash) {
2798         MY(airfriction) = 9;
2799         MY(alpha_min) = 10;
2800         MY(alpha_max) = 25;
2801         MY(alpha_fade) = 20;
2802         MY(color_min) = "0xFFFDD9";
2803         MY(color_max) = "0xFFFDD9";
2804         MY(count) = 6;
2805         MY(originjitter) = '3.0 3.0 3.0';
2806         MY(startangle_min) = -180;
2807         MY(startangle_max) = 180;
2808         MY(spin_min) = -30;
2809         MY(spin_max) = 30;
2810         MY(sizeincrease) = 20;
2811         MY(size_min) = 5;
2812         MY(size_max) = 10;
2813         MY(tex_min) = 35;
2814         MY(tex_max) = 36;
2815         MY(type) = "smoke";
2816         MY(velocityjitter) = '100.0 100.0 100.0';
2817         MY(velocitymultiplier) = 0.300000;
2818 }
2819
2820 // rocket trail
2821 DEF(TR_ROCKET);
2822 // smoke
2823 SUB(TR_ROCKET) {
2824         MY(alpha_min) = 200;
2825         MY(alpha_max) = 300;
2826         MY(alpha_fade) = 200;
2827         MY(bounce) = 1;
2828         MY(color_min) = "0x000000";
2829         MY(color_max) = "0x666666";
2830         MY(lightcolor) = '6.0 3.0 1.0';
2831         MY(lightradius) = 150;
2832         MY(notunderwater) = true;
2833         MY(originjitter) = '2.0 2.0 2.0';
2834         MY(startangle_min) = -180;
2835         MY(startangle_max) = 180;
2836         MY(spin_min) = -30;
2837         MY(spin_max) = 30;
2838         MY(sizeincrease) = 11;
2839         MY(size_min) = 3;
2840         MY(size_max) = 4;
2841         MY(tex_max) = 8;
2842         MY(trailspacing) = 10;
2843         MY(type) = "smoke";
2844         MY(velocityjitter) = '3.0 3.0 3.0';
2845         MY(velocitymultiplier) = -0.020000;
2846 }
2847 // fire
2848 SUB(TR_ROCKET) {
2849         MY(airfriction) = 8;
2850         MY(alpha_min) = 100;
2851         MY(alpha_max) = 144;
2852         MY(alpha_fade) = 588;
2853         MY(color_min) = "0xffdf72";
2854         MY(color_max) = "0x811200";
2855         MY(sizeincrease) = -30;
2856         MY(size_min) = 7;
2857         MY(size_max) = 7;
2858         MY(tex_min) = 48;
2859         MY(tex_max) = 55;
2860         MY(trailspacing) = 4;
2861         MY(type) = "static";
2862         MY(velocityjitter) = '32.0 32.0 32.0';
2863         MY(velocitymultiplier) = -1.500000;
2864 }
2865 // bubbles
2866 SUB(TR_ROCKET) {
2867         MY(alpha_min) = 256;
2868         MY(alpha_max) = 256;
2869         MY(alpha_fade) = 256;
2870         MY(bounce) = 1.500000;
2871         MY(gravity) = -0.125000;
2872         MY(liquidfriction) = 4;
2873         MY(size_min) = 1;
2874         MY(size_max) = 2;
2875         MY(tex_min) = 62;
2876         MY(tex_max) = 62;
2877         MY(trailspacing) = 16;
2878         MY(type) = "bubble";
2879         MY(underwater) = true;
2880         MY(velocityjitter) = '16.0 16.0 16.0';
2881         MY(velocitymultiplier) = -0.310000;
2882 }
2883 // sparks
2884 SUB(TR_ROCKET) {
2885         MY(airfriction) = 5;
2886         MY(alpha_min) = 444;
2887         MY(alpha_max) = 512;
2888         MY(alpha_fade) = 1866;
2889         MY(bounce) = 1;
2890         MY(color_min) = "0xFFFDD9";
2891         MY(color_max) = "0xFFFDD9";
2892         MY(notunderwater) = true;
2893         MY(originjitter) = '1.0 1.0 1.0';
2894         MY(size_min) = 0.500000;
2895         MY(size_max) = 0.500000;
2896         MY(stretchfactor) = 0.300000;
2897         MY(tex_min) = 40;
2898         MY(tex_max) = 40;
2899         MY(trailspacing) = 20;
2900         MY(type) = "spark";
2901         MY(velocityjitter) = '100.0 100.0 100.0';
2902         MY(velocitymultiplier) = -0.310000;
2903 }
2904
2905 // rocket explosion (bigger than mortar and hagar)
2906 DEF(rocket_explode);
2907 SUB(rocket_explode) {
2908         MY(alpha_min) = 256;
2909         MY(alpha_max) = 256;
2910         MY(countabsolute) = 1;
2911         MY(lightcolor) = '8.0 4.0 1.0';
2912         MY(lightradiusfade) = 750;
2913         MY(lightradius) = 400;
2914         MY(originjitter) = '23.0 23.0 23.0';
2915         MY(size_min) = 72;
2916         MY(size_max) = 72;
2917         MY(tex_min) = 8;
2918         MY(tex_max) = 16;
2919         MY(type) = "decal";
2920 }
2921 // fire effect
2922 SUB(rocket_explode) {
2923         MY(airfriction) = 8;
2924         MY(alpha_min) = 200;
2925         MY(alpha_max) = 256;
2926         MY(alpha_fade) = 512;
2927         MY(bounce) = 1.500000;
2928         MY(color_min) = "0x8f0d00";
2929         MY(color_max) = "0xff5a00";
2930         MY(count) = 32;
2931         MY(liquidfriction) = 8;
2932         MY(notunderwater) = true;
2933         MY(originjitter) = '8.0 8.0 8.0';
2934         MY(sizeincrease) = 45;
2935         MY(size_min) = 33;
2936         MY(size_max) = 44;
2937         MY(tex_min) = 48;
2938         MY(tex_max) = 55;
2939         MY(type) = "static";
2940         MY(velocityjitter) = '512.0 512.0 512.0';
2941 }
2942 // fire effect 2
2943 SUB(rocket_explode) {
2944         MY(airfriction) = 19;
2945         MY(alpha_min) = 200;
2946         MY(alpha_max) = 256;
2947         MY(alpha_fade) = 612;
2948         MY(bounce) = 2.500000;
2949         MY(color_min) = "0xea691b";
2950         MY(color_max) = "0xeed05a";
2951         MY(count) = 14;
2952         MY(liquidfriction) = 19;
2953         MY(notunderwater) = true;
2954         MY(originjitter) = '8.0 8.0 8.0';
2955         MY(sizeincrease) = 55;
2956         MY(size_min) = 33;
2957         MY(size_max) = 44;
2958         MY(tex_min) = 48;
2959         MY(tex_max) = 55;
2960         MY(type) = "smoke";
2961         MY(velocityjitter) = '912.0 912.0 912.0';
2962 }
2963 // smoke
2964 SUB(rocket_explode) {
2965         MY(airfriction) = 5;
2966         MY(alpha_min) = 200;
2967         MY(alpha_max) = 450;
2968         MY(alpha_fade) = 456;
2969         MY(bounce) = 2;
2970         MY(color_min) = "0x000000";
2971         MY(color_max) = "0x111111";
2972         MY(count) = 32;
2973         MY(notunderwater) = true;
2974         MY(sizeincrease) = 44;
2975         MY(size_min) = 20;
2976         MY(size_max) = 40;
2977         MY(tex_max) = 8;
2978         MY(type) = "alphastatic";
2979         MY(velocityjitter) = '444.0 444.0 444.0';
2980 }
2981 // underwater bubbles
2982 SUB(rocket_explode) {
2983         MY(alpha_min) = 128;
2984         MY(alpha_max) = 256;
2985         MY(alpha_fade) = 64;
2986         MY(bounce) = 1.500000;
2987         MY(color_min) = "0x404040";
2988         MY(color_max) = "0x808080";
2989         MY(count) = 32;
2990         MY(gravity) = -0.125000;
2991         MY(liquidfriction) = 0.250000;
2992         MY(originjitter) = '16.0 16.0 16.0';
2993         MY(size_min) = 3;
2994         MY(size_max) = 3;
2995         MY(tex_min) = 62;
2996         MY(tex_max) = 62;
2997         MY(type) = "bubble";
2998         MY(underwater) = true;
2999         MY(velocityjitter) = '144.0 144.0 144.0';
3000 }
3001 // underwatershockwave
3002 SUB(rocket_explode) {
3003         MY(alpha_min) = 40;
3004         MY(alpha_max) = 40;
3005         MY(alpha_fade) = 300;
3006         MY(countabsolute) = 1;
3007         MY(sizeincrease) = 1900;
3008         MY(size_min) = 30;
3009         MY(size_max) = 30;
3010         MY(tex_min) = 33;
3011         MY(tex_max) = 33;
3012         MY(type) = "smoke";
3013         MY(underwater) = true;
3014         MY(velocitymultiplier) = 0.300000;
3015 }
3016 // bouncing sparks
3017 SUB(rocket_explode) {
3018         MY(airfriction) = 1;
3019         MY(alpha_min) = 644;
3020         MY(alpha_max) = 956;
3021         MY(alpha_fade) = 484;
3022         MY(bounce) = 1.600000;
3023         MY(color_min) = "0xffa35b";
3024         MY(color_max) = "0xfff2be";
3025         MY(count) = 16;
3026         MY(gravity) = 1;
3027         MY(liquidfriction) = 0.800000;
3028         MY(notunderwater) = true;
3029         MY(originjitter) = '16.0 16.0 16.0';
3030         MY(size_min) = 1;
3031         MY(size_max) = 0.100000;
3032         MY(tex_min) = 40;
3033         MY(tex_max) = 40;
3034         MY(type) = "spark";
3035         MY(velocityjitter) = '424.0 424.0 624.0';
3036         MY(velocityoffset) = '0.0 0.0 80.0';
3037 }
3038 // debris
3039 SUB(rocket_explode) {
3040         MY(airfriction) = 0.500000;
3041         MY(alpha_min) = 644;
3042         MY(alpha_max) = 956;
3043         MY(alpha_fade) = 684;
3044         MY(bounce) = 1.600000;
3045         MY(color_min) = "0x6a3d25";
3046         MY(color_max) = "0xcac5b4";
3047         MY(count) = 12;
3048         MY(gravity) = 1.300000;
3049         MY(notunderwater) = true;
3050         MY(startangle_min) = -180;
3051         MY(startangle_max) = 180;
3052         MY(spin_min) = -1000;
3053         MY(spin_max) = 1000;
3054         MY(size_min) = 2;
3055         MY(size_max) = 6;
3056         MY(tex_min) = 66;
3057         MY(tex_max) = 68;
3058         MY(type) = "alphastatic";
3059         MY(velocityjitter) = '324.0 324.0 524.0';
3060 }
3061
3062 DEF(grapple_muzzleflash);
3063 SUB(grapple_muzzleflash) {
3064         MY(lightcolor) = '1.0 0.0 0.0';
3065         MY(lightradiusfade) = 800;
3066         MY(lightradius) = 160;
3067 }
3068
3069 DEF(grapple_impact);
3070 SUB(grapple_impact) {
3071         MY(lightcolor) = '1.0 0.0 0.0';
3072         MY(lightradiusfade) = 800;
3073         MY(lightradius) = 160;
3074 }
3075
3076 DEF(nex242_misc_laser_beam);
3077 SUB(nex242_misc_laser_beam) {
3078         MY(alpha_min) = 256;
3079         MY(alpha_max) = 256;
3080         MY(alpha_fade) = 64;
3081         MY(color_min) = "0xff0000";
3082         MY(color_max) = "0xff0000";
3083         MY(countabsolute) = 1;
3084         MY(sizeincrease) = 1;
3085         MY(size_min) = 1;
3086         MY(size_max) = 1;
3087         MY(tex_min) = 200;
3088         MY(tex_max) = 200;
3089         MY(type) = "beam";
3090 }
3091
3092 DEF(nex242_misc_laser_beam_end);
3093 SUB(nex242_misc_laser_beam_end) {
3094         MY(alpha_min) = 128;
3095         MY(alpha_max) = 256;
3096         MY(alpha_fade) = 768;
3097         MY(bounce) = -1;
3098         MY(color_min) = "0x8f4333";
3099         MY(color_max) = "0xfff31b";
3100         MY(count) = 0.500000;
3101         MY(gravity) = 1;
3102         MY(size_min) = 0.400000;
3103         MY(size_max) = 0.400000;
3104         MY(type) = "spark";
3105         MY(velocityjitter) = '64.0 64.0 64.0';
3106         MY(velocitymultiplier) = 100;
3107 }
3108
3109 DEF(nex242_misc_laser_beam_fast);
3110 SUB(nex242_misc_laser_beam_fast) {
3111         MY(alpha_min) = 256;
3112         MY(alpha_max) = 256;
3113         MY(alpha_fade) = 640;
3114         MY(color_min) = "0xff0000";
3115         MY(color_max) = "0xff0000";
3116         MY(countabsolute) = 1;
3117         MY(sizeincrease) = 0.100000;
3118         MY(size_min) = 1;
3119         MY(size_max) = 1;
3120         MY(tex_min) = 200;
3121         MY(tex_max) = 200;
3122         MY(type) = "beam";
3123 }
3124
3125 DEF(nex242_misc_laser_beam_fast_end);
3126 SUB(nex242_misc_laser_beam_fast_end) {
3127         MY(alpha_min) = 128;
3128         MY(alpha_max) = 256;
3129         MY(alpha_fade) = 768;
3130         MY(bounce) = -1;
3131         MY(color_min) = "0x8f4333";
3132         MY(color_max) = "0xfff31b";
3133         MY(count) = 0.500000;
3134         MY(gravity) = 1;
3135         MY(size_min) = 0.400000;
3136         MY(size_max) = 0.400000;
3137         MY(type) = "spark";
3138         MY(velocityjitter) = '64.0 64.0 64.0';
3139         MY(velocitymultiplier) = 100;
3140 }
3141
3142 DEF(nex242_misc_laser_green_beam);
3143 SUB(nex242_misc_laser_green_beam) {
3144         MY(alpha_min) = 256;
3145         MY(alpha_max) = 256;
3146         MY(alpha_fade) = 64;
3147         MY(color_min) = "0x00ff00";
3148         MY(color_max) = "0x00ff00";
3149         MY(countabsolute) = 1;
3150         MY(sizeincrease) = 1;
3151         MY(size_min) = 1;
3152         MY(size_max) = 1;
3153         MY(tex_min) = 200;
3154         MY(tex_max) = 200;
3155         MY(type) = "beam";
3156 }
3157
3158 DEF(nex242_misc_laser_green_beam_end);
3159 SUB(nex242_misc_laser_green_beam_end) {
3160         MY(alpha_min) = 128;
3161         MY(alpha_max) = 256;
3162         MY(alpha_fade) = 768;
3163         MY(bounce) = -1;
3164         MY(color_min) = "0x8f4333";
3165         MY(color_max) = "0xfff31b";
3166         MY(count) = 0.500000;
3167         MY(gravity) = 1;
3168         MY(size_min) = 0.400000;
3169         MY(size_max) = 0.400000;
3170         MY(type) = "spark";
3171         MY(velocityjitter) = '64.0 64.0 64.0';
3172         MY(velocitymultiplier) = 100;
3173 }
3174
3175 DEF(nex242_misc_laser_blue_beam);
3176 SUB(nex242_misc_laser_blue_beam) {
3177         MY(alpha_min) = 256;
3178         MY(alpha_max) = 256;
3179         MY(alpha_fade) = 64;
3180         MY(color_min) = "0x0000ff";
3181         MY(color_max) = "0x0000ff";
3182         MY(countabsolute) = 1;
3183         MY(sizeincrease) = 1;
3184         MY(size_min) = 1;
3185         MY(size_max) = 1;
3186         MY(tex_min) = 200;
3187         MY(tex_max) = 200;
3188         MY(type) = "beam";
3189 }
3190
3191 DEF(nex242_misc_laser_blue_beam_end);
3192 SUB(nex242_misc_laser_blue_beam_end) {
3193         MY(alpha_min) = 128;
3194         MY(alpha_max) = 256;
3195         MY(alpha_fade) = 768;
3196         MY(bounce) = -1;
3197         MY(color_min) = "0x8f4333";
3198         MY(color_max) = "0xfff31b";
3199         MY(count) = 0.500000;
3200         MY(gravity) = 1;
3201         MY(size_min) = 0.400000;
3202         MY(size_max) = 0.400000;
3203         MY(type) = "spark";
3204         MY(velocityjitter) = '64.0 64.0 64.0';
3205         MY(velocitymultiplier) = 100;
3206 }
3207
3208 DEF(nex242_misc_laser_yellow_beam);
3209 SUB(nex242_misc_laser_yellow_beam) {
3210         MY(alpha_min) = 256;
3211         MY(alpha_max) = 256;
3212         MY(alpha_fade) = 64;
3213         MY(color_min) = "0xffff00";
3214         MY(color_max) = "0xffff00";
3215         MY(countabsolute) = 1;
3216         MY(sizeincrease) = 1;
3217         MY(size_min) = 1;
3218         MY(size_max) = 1;
3219         MY(tex_min) = 200;
3220         MY(tex_max) = 200;
3221         MY(type) = "beam";
3222 }
3223
3224 DEF(nex242_misc_laser_yellow_beam_end);
3225 SUB(nex242_misc_laser_yellow_beam_end) {
3226         MY(alpha_min) = 128;
3227         MY(alpha_max) = 256;
3228         MY(alpha_fade) = 768;
3229         MY(bounce) = -1;
3230         MY(color_min) = "0x8f4333";
3231         MY(color_max) = "0xfff31b";
3232         MY(count) = 0.500000;
3233         MY(gravity) = 1;
3234         MY(size_min) = 0.400000;
3235         MY(size_max) = 0.400000;
3236         MY(type) = "spark";
3237         MY(velocityjitter) = '64.0 64.0 64.0';
3238         MY(velocitymultiplier) = 100;
3239 }
3240
3241 DEF(nex242_misc_laser_cyan_beam);
3242 SUB(nex242_misc_laser_cyan_beam) {
3243         MY(alpha_min) = 256;
3244         MY(alpha_max) = 256;
3245         MY(alpha_fade) = 64;
3246         MY(color_min) = "0x00ffff";
3247         MY(color_max) = "0x00ffff";
3248         MY(countabsolute) = 1;
3249         MY(sizeincrease) = 1;
3250         MY(size_min) = 1;
3251         MY(size_max) = 1;
3252         MY(tex_min) = 200;
3253         MY(tex_max) = 200;
3254         MY(type) = "beam";
3255 }
3256
3257 DEF(nex242_misc_laser_cyan_beam_end);
3258 SUB(nex242_misc_laser_cyan_beam_end) {
3259         MY(alpha_min) = 128;
3260         MY(alpha_max) = 256;
3261         MY(alpha_fade) = 768;
3262         MY(bounce) = -1;
3263         MY(color_min) = "0x8f4333";
3264         MY(color_max) = "0xfff31b";
3265         MY(count) = 0.500000;
3266         MY(gravity) = 1;
3267         MY(size_min) = 0.400000;
3268         MY(size_max) = 0.400000;
3269         MY(type) = "spark";
3270         MY(velocityjitter) = '64.0 64.0 64.0';
3271         MY(velocitymultiplier) = 100;
3272 }
3273
3274 DEF(nex242_misc_laser_magenta_beam);
3275 SUB(nex242_misc_laser_magenta_beam) {
3276         MY(alpha_min) = 256;
3277         MY(alpha_max) = 256;
3278         MY(alpha_fade) = 64;
3279         MY(color_min) = "0xff00ff";
3280         MY(color_max) = "0xff00ff";
3281         MY(countabsolute) = 1;
3282         MY(sizeincrease) = 1;
3283         MY(size_min) = 1;
3284         MY(size_max) = 1;
3285         MY(tex_min) = 200;
3286         MY(tex_max) = 200;
3287         MY(type) = "beam";
3288 }
3289
3290 DEF(nex242_misc_laser_magenta_beam_end);
3291 SUB(nex242_misc_laser_magenta_beam_end) {
3292         MY(alpha_min) = 128;
3293         MY(alpha_max) = 256;
3294         MY(alpha_fade) = 768;
3295         MY(bounce) = -1;
3296         MY(color_min) = "0x8f4333";
3297         MY(color_max) = "0xfff31b";
3298         MY(count) = 0.500000;
3299         MY(gravity) = 1;
3300         MY(size_min) = 0.400000;
3301         MY(size_max) = 0.400000;
3302         MY(type) = "spark";
3303         MY(velocityjitter) = '64.0 64.0 64.0';
3304         MY(velocitymultiplier) = 100;
3305 }
3306
3307 DEF(nex242_misc_laser_white_beam);
3308 SUB(nex242_misc_laser_white_beam) {
3309         MY(alpha_min) = 256;
3310         MY(alpha_max) = 256;
3311         MY(alpha_fade) = 64;
3312         MY(color_min) = "0xffffff";
3313         MY(color_max) = "0xffffff";
3314         MY(countabsolute) = 1;
3315         MY(sizeincrease) = 1;
3316         MY(size_min) = 1;
3317         MY(size_max) = 1;
3318         MY(tex_min) = 200;
3319         MY(tex_max) = 200;
3320         MY(type) = "beam";
3321 }
3322
3323 DEF(nex242_misc_laser_white_beam_end);
3324 SUB(nex242_misc_laser_white_beam_end) {
3325         MY(alpha_min) = 128;
3326         MY(alpha_max) = 256;
3327         MY(alpha_fade) = 768;
3328         MY(bounce) = -1;
3329         MY(color_min) = "0x8f4333";
3330         MY(color_max) = "0xfff31b";
3331         MY(count) = 0.500000;
3332         MY(gravity) = 1;
3333         MY(size_min) = 0.400000;
3334         MY(size_max) = 0.400000;
3335         MY(type) = "spark";