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