]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/effects/effectinfo.inc
more docs
[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 // `dumpeffectinfo` currently doesn't work so edit effectinfo.txt manually, just try to keep the files in sync
4 // `tex` are indices into particles/particlefont.tga, the first is inclusive, second exclusive
5
6 // item respawn effect
7 DEF(TE_WIZSPIKE);
8 // flare particle and light
9 SUB(TE_WIZSPIKE) {
10         MY(alpha_min) = 128;
11         MY(alpha_max) = 128;
12         MY(alpha_fade) = 128;
13         MY(color_min) = "0x63F2EA";
14         MY(color_max) = "0x63f2EA";
15         MY(countabsolute) = 1;
16         MY(lightcolor) = '0.4 0.9 0.9';
17         MY(lightradiusfade) = 200;
18         MY(lightradius) = 200;
19         MY(size_min) = 20;
20         MY(size_max) = 20;
21         MY(type) = "static";
22 }
23 // cloud of particles which expand rapidly and then slow to form a ball
24 SUB(TE_WIZSPIKE) {
25         MY(airfriction) = 2;
26         MY(alpha_min) = 64;
27         MY(alpha_max) = 64;
28         MY(alpha_fade) = 64;
29         MY(color_min) = "0x63F2EA";
30         MY(color_max) = "0x63f2EA";
31         MY(count) = 50;
32         MY(liquidfriction) = 2;
33         MY(originjitter) = '16.0 16.0 16.0';
34         MY(size_min) = 2;
35         MY(size_max) = 2;
36         MY(type) = "static";
37         MY(velocityjitter) = '32.0 32.0 32.0';
38 }
39
40 // laser impact
41 DEF(TE_KNIGHTSPIKE);
42 // decal
43 SUB(TE_KNIGHTSPIKE) {
44         MY(alpha_min) = 256;
45         MY(alpha_max) = 256;
46         MY(countabsolute) = 1;
47         MY(lightcolor) = '4.0 0.2 0.2';
48         MY(lightradiusfade) = 1000;
49         MY(lightradius) = 200;
50         MY(originjitter) = '16.0 16.0 16.0';
51         MY(size_min) = 24;
52         MY(size_max) = 24;
53         MY(tex_min) = 47;
54         MY(tex_max) = 47;
55         MY(type) = "decal";
56 }
57 // flare effect
58 SUB(TE_KNIGHTSPIKE) {
59         MY(alpha_min) = 256;
60         MY(alpha_max) = 256;
61         MY(alpha_fade) = 1024;
62         MY(color_min) = "0xFF2010";
63         MY(color_max) = "0xFF2010";
64         MY(countabsolute) = 1;
65         MY(size_min) = 24;
66         MY(size_max) = 24;
67         MY(tex_min) = 39;
68         MY(tex_max) = 39;
69         MY(type) = "static";
70 }
71 // sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
72 SUB(TE_KNIGHTSPIKE) {
73         MY(airfriction) = 6;
74         MY(alpha_min) = 256;
75         MY(alpha_max) = 256;
76         MY(alpha_fade) = 1024;
77         MY(color_min) = "0x800000";
78         MY(color_max) = "0xFF8020";
79         MY(count) = 128;
80         MY(liquidfriction) = 6;
81         MY(size_min) = 4;
82         MY(size_max) = 4;
83         MY(type) = "spark";
84         MY(velocityjitter) = '256.0 256.0 256.0';
85 }
86
87 // machinegun bullet impact
88 DEF(TE_SPIKE);
89 // bullet impact decal
90 SUB(TE_SPIKE) {
91         MY(alpha_min) = 256;
92         MY(alpha_max) = 256;
93         MY(countabsolute) = 1;
94         MY(originjitter) = '6.0 6.0 6.0';
95         MY(size_min) = 5;
96         MY(size_max) = 5;
97         MY(tex_min) = 56;
98         MY(tex_max) = 59;
99         MY(type) = "decal";
100 }
101 // dust/smoke drifting away from the impact
102 SUB(TE_SPIKE) {
103         MY(alpha_min) = 255;
104         MY(alpha_max) = 255;
105         MY(alpha_fade) = 256;
106         MY(color_min) = "0x101010";
107         MY(color_max) = "0x101010";
108         MY(count) = 4;
109         MY(sizeincrease) = 3;
110         MY(size_min) = 3;
111         MY(size_max) = 3;
112         MY(tex_max) = 8;
113         MY(type) = "smoke";
114         MY(velocityjitter) = '8.0 8.0 8.0';
115 }
116 // dust/smoke staying at the impact
117 SUB(TE_SPIKE) {
118         MY(alpha_min) = 255;
119         MY(alpha_max) = 255;
120         MY(alpha_fade) = 128;
121         MY(color_min) = "0x505050";
122         MY(color_max) = "0x505050";
123         MY(count) = 0.500000;
124         MY(sizeincrease) = 4;
125         MY(size_min) = 4;
126         MY(size_max) = 4;
127         MY(tex_max) = 8;
128         MY(type) = "smoke";
129 }
130 // bouncing sparks
131 SUB(TE_SPIKE) {
132         MY(alpha_max) = 256;
133         MY(alpha_fade) = 256;
134         MY(bounce) = 1.500000;
135         MY(color_min) = "0x8f4333";
136         MY(color_max) = "0xfff31b";
137         MY(count) = 10;
138         MY(gravity) = 1;
139         MY(size_min) = 0.400000;
140         MY(size_max) = 0.400000;
141         MY(type) = "spark";
142         MY(velocityjitter) = '64.0 64.0 64.0';
143         MY(velocityoffset) = '0.0 0.0 80.0';
144 }
145
146 // electro combo explosion
147 DEF(TE_SPIKEQUAD);
148 // decal
149 SUB(TE_SPIKEQUAD) {
150         MY(alpha_min) = 256;
151         MY(alpha_max) = 256;
152         MY(countabsolute) = 1;
153         MY(lightcolor) = '2.0 2.5 3.0';
154         MY(lightradiusfade) = 200;
155         MY(lightradius) = 400;
156         MY(originjitter) = '34.0 34.0 34.0';
157         MY(size_min) = 64;
158         MY(size_max) = 64;
159         MY(tex_min) = 59;
160         MY(tex_max) = 59;
161         MY(type) = "decal";
162 }
163 // flare effect
164 SUB(TE_SPIKEQUAD) {
165         MY(alpha_min) = 256;
166         MY(alpha_max) = 256;
167         MY(alpha_fade) = 128;
168         MY(color_min) = "0x80C0FF";
169         MY(color_max) = "0x80C0FF";
170         MY(countabsolute) = 1;
171         MY(size_min) = 48;
172         MY(size_max) = 48;
173         MY(tex_min) = 38;
174         MY(tex_max) = 38;
175         MY(type) = "static";
176 }
177 // large sparks
178 SUB(TE_SPIKEQUAD) {
179         MY(airfriction) = 4;
180         MY(alpha_min) = 256;
181         MY(alpha_max) = 256;
182         MY(alpha_fade) = 256;
183         MY(bounce) = 1.500000;
184         MY(color_min) = "0x2030FF";
185         MY(color_max) = "0x80C0FF";
186         MY(count) = 10;
187         MY(liquidfriction) = 16;
188         MY(size_min) = 32;
189         MY(size_max) = 32;
190         MY(type) = "static";
191         MY(velocityjitter) = '512.0 512.0 512.0';
192 }
193
194 // quake effect
195 DEF(TE_SUPERSPIKE);
196 // decal
197 SUB(TE_SUPERSPIKE) {
198         MY(alpha_min) = 256;
199         MY(alpha_max) = 256;
200         MY(countabsolute) = 1;
201         MY(originjitter) = '6.0 6.0 6.0';
202         MY(size_min) = 3;
203         MY(size_max) = 3;
204         MY(tex_min) = 56;
205         MY(tex_max) = 59;
206         MY(type) = "decal";
207 }
208 // dust/smoke drifting away from the impact
209 SUB(TE_SUPERSPIKE) {
210         MY(alpha_min) = 255;
211         MY(alpha_max) = 255;
212         MY(alpha_fade) = 256;
213         MY(color_min) = "0x101010";
214         MY(color_max) = "0x101010";
215         MY(count) = 4;
216         MY(sizeincrease) = 3;
217         MY(size_min) = 3;
218         MY(size_max) = 3;
219         MY(tex_max) = 8;
220         MY(type) = "smoke";
221         MY(velocityjitter) = '8.0 8.0 8.0';
222 }
223 // dust/smoke staying at the impact
224 SUB(TE_SUPERSPIKE) {
225         MY(alpha_min) = 255;
226         MY(alpha_max) = 255;
227         MY(alpha_fade) = 128;
228         MY(color_min) = "0x505050";
229         MY(color_max) = "0x505050";
230         MY(count) = 0.500000;
231         MY(sizeincrease) = 4;
232         MY(size_min) = 4;
233         MY(size_max) = 4;
234         MY(tex_max) = 8;
235         MY(type) = "smoke";
236 }
237 // sparks that disappear on impact
238 SUB(TE_SUPERSPIKE) {
239         MY(alpha_max) = 256;
240         MY(alpha_fade) = 768;
241         MY(bounce) = -1;
242         MY(color_min) = "0x8f4333";
243         MY(color_max) = "0xfff31b";
244         MY(count) = 15;
245         MY(gravity) = 1;
246         MY(size_min) = 0.400000;
247         MY(size_max) = 0.400000;
248         MY(type) = "spark";
249         MY(velocityjitter) = '64.0 64.0 64.0';
250         MY(velocityoffset) = '0.0 0.0 80.0';
251 }
252
253 // quake effect
254 DEF(TE_SUPERSPIKEQUAD);
255 // decal
256 SUB(TE_SUPERSPIKEQUAD) {
257         MY(alpha_min) = 256;
258         MY(alpha_max) = 256;
259         MY(countabsolute) = 1;
260         MY(lightcolor) = '0.2 0.2 1.5';
261         MY(lightradiusfade) = 500;
262         MY(lightradius) = 100;
263         MY(originjitter) = '6.0 6.0 6.0';
264         MY(size_min) = 3;
265         MY(size_max) = 3;
266         MY(tex_min) = 56;
267         MY(tex_max) = 59;
268         MY(type) = "decal";
269 }
270 // dust/smoke drifting away from the impact
271 SUB(TE_SUPERSPIKEQUAD) {
272         MY(alpha_min) = 255;
273         MY(alpha_max) = 255;
274         MY(alpha_fade) = 256;
275         MY(color_min) = "0x101010";
276         MY(color_max) = "0x101010";
277         MY(count) = 4;
278         MY(sizeincrease) = 3;
279         MY(size_min) = 3;
280         MY(size_max) = 3;
281         MY(tex_max) = 8;
282         MY(type) = "smoke";
283         MY(velocityjitter) = '8.0 8.0 8.0';
284 }
285 // dust/smoke staying at the impact
286 SUB(TE_SUPERSPIKEQUAD) {
287         MY(alpha_min) = 255;
288         MY(alpha_max) = 255;
289         MY(alpha_fade) = 128;
290         MY(color_min) = "0x505050";
291         MY(color_max) = "0x505050";
292         MY(count) = 0.500000;
293         MY(sizeincrease) = 4;
294         MY(size_min) = 4;
295         MY(size_max) = 4;
296         MY(tex_max) = 8;
297         MY(type) = "smoke";
298 }
299 // sparks that disappear on impact
300 SUB(TE_SUPERSPIKEQUAD) {
301         MY(alpha_max) = 256;
302         MY(alpha_fade) = 768;
303         MY(bounce) = -1;
304         MY(color_min) = "0x8f4333";
305         MY(color_max) = "0xfff31b";
306         MY(count) = 15;
307         MY(gravity) = 1;
308         MY(size_min) = 0.400000;
309         MY(size_max) = 0.400000;
310         MY(type) = "spark";
311         MY(velocityjitter) = '64.0 64.0 64.0';
312         MY(velocityoffset) = '0.0 0.0 80.0';
313 }
314
315 // shotgun pellet impact
316 DEF(TE_GUNSHOT);
317 // decal
318 SUB(TE_GUNSHOT) {
319         MY(alpha_min) = 256;
320         MY(alpha_max) = 256;
321         MY(countabsolute) = 1;
322         MY(originjitter) = '6.0 6.0 6.0';
323         MY(size_min) = 3;
324         MY(size_max) = 3;
325         MY(tex_min) = 56;
326         MY(tex_max) = 59;
327         MY(type) = "decal";
328 }
329 // dust/smoke drifting away from the impact
330 SUB(TE_GUNSHOT) {
331         MY(alpha_min) = 128;
332         MY(alpha_max) = 128;
333         MY(alpha_fade) = 64;
334         MY(color_min) = "0x101010";
335         MY(color_max) = "0x101010";
336         MY(count) = 0.800000;
337         MY(sizeincrease) = 3;
338         MY(size_min) = 3;
339         MY(size_max) = 3;
340         MY(tex_max) = 8;
341         MY(type) = "smoke";
342         MY(velocityjitter) = '8.0 8.0 8.0';
343 }
344 // dust/smoke staying at the impact
345 SUB(TE_GUNSHOT) {
346         MY(alpha_min) = 128;
347         MY(alpha_max) = 128;
348         MY(alpha_fade) = 64;
349         MY(color_min) = "0x505050";
350         MY(color_max) = "0x505050";
351         MY(count) = 0.200000;
352         MY(sizeincrease) = 4;
353         MY(size_min) = 4;
354         MY(size_max) = 4;
355         MY(tex_max) = 8;
356         MY(type) = "smoke";
357 }
358 // bouncing sparks
359 SUB(TE_GUNSHOT) {
360         MY(alpha_max) = 64;
361         MY(alpha_fade) = 64;
362         MY(bounce) = 1.500000;
363         MY(color_min) = "0x8f4333";
364         MY(color_max) = "0xfff31b";
365         MY(count) = 2.500000;
366         MY(gravity) = 1;
367         MY(size_min) = 0.400000;
368         MY(size_max) = 0.400000;
369         MY(type) = "spark";
370         MY(velocityjitter) = '64.0 64.0 64.0';
371         MY(velocityoffset) = '0.0 0.0 80.0';
372 }
373
374 // crylink impact effect
375 DEF(TE_GUNSHOTQUAD);
376 // decal
377 SUB(TE_GUNSHOTQUAD) {
378         MY(alpha_min) = 256;
379         MY(alpha_max) = 256;
380         MY(countabsolute) = 1;
381         MY(originjitter) = '12.0 12.0 12.0';
382         MY(size_min) = 8;
383         MY(size_max) = 8;
384         MY(tex_min) = 47;
385         MY(tex_max) = 47;
386         MY(type) = "decal";
387 }
388 // purple flare effect
389 SUB(TE_GUNSHOTQUAD) {
390         MY(alpha_min) = 256;
391         MY(alpha_max) = 256;
392         MY(alpha_fade) = 512;
393         MY(color_min) = "0x504060";
394         MY(color_max) = "0x504060";
395         MY(countabsolute) = 1;
396         MY(size_min) = 8;
397         MY(size_max) = 8;
398         MY(tex_min) = 39;
399         MY(tex_max) = 39;
400         MY(type) = "static";
401 }
402 // purple sparks
403 SUB(TE_GUNSHOTQUAD) {
404         MY(alpha_min) = 128;
405         MY(alpha_max) = 128;
406         MY(alpha_fade) = 384;
407         MY(bounce) = 1.500000;
408         MY(color_min) = "0xA040C0";
409         MY(color_max) = "0xFFFFFF";
410         MY(count) = 6;
411         MY(gravity) = 1;
412         MY(size_min) = 1;
413         MY(size_max) = 1;
414         MY(type) = "spark";
415         MY(velocityjitter) = '128.0 128.0 128.0';
416         MY(velocityoffset) = '0.0 0.0 80.0';
417 }
418
419 // mortar/hagar explosion (smaller than rocket)
420 DEF(TE_EXPLOSION);
421 // decal
422 SUB(TE_EXPLOSION) {
423         MY(alpha_min) = 256;
424         MY(alpha_max) = 256;
425         MY(countabsolute) = 1;
426         MY(lightcolor) = '4.0 2.0 0.5';
427         MY(lightradiusfade) = 300;
428         MY(lightradius) = 150;
429         MY(originjitter) = '40.0 40.0 40.0';
430         MY(size_min) = 48;
431         MY(size_max) = 48;
432         MY(tex_min) = 8;
433         MY(tex_max) = 16;
434         MY(type) = "decal";
435 }
436 // flare effect
437 SUB(TE_EXPLOSION) {
438         MY(alpha_min) = 192;
439         MY(alpha_max) = 192;
440         MY(alpha_fade) = 64;
441         MY(color_min) = "0x404040";
442         MY(color_max) = "0x404040";
443         MY(countabsolute) = 1;
444         MY(size_min) = 48;
445         MY(size_max) = 48;
446         MY(tex_min) = 35;
447         MY(tex_max) = 37;
448         MY(type) = "static";
449 }
450 // fire effect which expands then slows
451 SUB(TE_EXPLOSION) {
452         MY(airfriction) = 4;
453         MY(alpha_min) = 128;
454         MY(alpha_max) = 128;
455         MY(alpha_fade) = 256;
456         MY(bounce) = 1.500000;
457         MY(color_min) = "0x902010";
458         MY(color_max) = "0xFFD080";
459         MY(count) = 64;
460         MY(liquidfriction) = 4;
461         MY(notunderwater) = true;
462         MY(originjitter) = '8.0 8.0 8.0';
463         MY(size_min) = 16;
464         MY(size_max) = 16;
465         MY(tex_min) = 48;
466         MY(tex_max) = 55;
467         MY(type) = "static";
468         MY(velocityjitter) = '256.0 256.0 256.0';
469 }
470 // underwater bubbles
471 SUB(TE_EXPLOSION) {
472         MY(alpha_min) = 128;
473         MY(alpha_max) = 256;
474         MY(alpha_fade) = 64;
475         MY(bounce) = 1.500000;
476         MY(color_min) = "0x404040";
477         MY(color_max) = "0x808080";
478         MY(count) = 16;
479         MY(gravity) = -0.125000;
480         MY(liquidfriction) = 0.250000;
481         MY(originjitter) = '16.0 16.0 16.0';
482         MY(size_min) = 3;
483         MY(size_max) = 3;
484         MY(tex_min) = 62;
485         MY(tex_max) = 62;
486         MY(type) = "bubble";
487         MY(underwater) = true;
488         MY(velocityjitter) = '96.0 96.0 96.0';
489 }
490 // bouncing sparks
491 SUB(TE_EXPLOSION) {
492         MY(airfriction) = 0.200000;
493         MY(alpha_min) = 256;
494         MY(alpha_max) = 256;
495         MY(alpha_fade) = 384;
496         MY(bounce) = 1.500000;
497         MY(color_min) = "0x903010";
498         MY(color_max) = "0xFFD030";
499         MY(count) = 16;
500         MY(gravity) = 1;
501         MY(liquidfriction) = 0.800000;
502         MY(notunderwater) = true;
503         MY(size_min) = 2;
504         MY(size_max) = 2;
505         MY(type) = "spark";
506         MY(velocityjitter) = '256.0 256.0 256.0';
507         MY(velocityoffset) = '0.0 0.0 80.0';
508 }
509
510 // quake effect
511 DEF(TE_EXPLOSIONQUAD);
512 // decal
513 SUB(TE_EXPLOSIONQUAD) {
514         MY(alpha_min) = 256;
515         MY(alpha_max) = 256;
516         MY(countabsolute) = 1;
517         MY(lightcolor) = '4.0 2.0 8.0';
518         MY(lightradiusfade) = 700;
519         MY(lightradius) = 350;
520         MY(originjitter) = '40.0 40.0 40.0';
521         MY(size_min) = 48;
522         MY(size_max) = 48;
523         MY(tex_min) = 8;
524         MY(tex_max) = 16;
525         MY(type) = "decal";
526 }
527 // smoke cloud
528 SUB(TE_EXPLOSIONQUAD) {
529         MY(alpha_min) = 32;
530         MY(alpha_max) = 32;
531         MY(alpha_fade) = 64;
532         MY(color_min) = "0x202020";
533         MY(color_max) = "0x404040";
534         MY(count) = 16;
535         MY(notunderwater) = true;
536         MY(size_min) = 12;
537         MY(size_max) = 12;
538         MY(tex_max) = 8;
539         MY(type) = "smoke";
540         MY(velocityjitter) = '48.0 48.0 48.0';
541 }
542 // underwater bubbles
543 SUB(TE_EXPLOSIONQUAD) {
544         MY(alpha_min) = 128;
545         MY(alpha_max) = 256;
546         MY(alpha_fade) = 64;
547         MY(bounce) = 1.500000;
548         MY(color_min) = "0x404040";
549         MY(color_max) = "0x808080";
550         MY(count) = 16;
551         MY(gravity) = -0.125000;
552         MY(liquidfriction) = 0.250000;
553         MY(originjitter) = '16.0 16.0 16.0';
554         MY(size_min) = 3;
555         MY(size_max) = 3;
556         MY(tex_min) = 62;
557         MY(tex_max) = 62;
558         MY(type) = "bubble";
559         MY(underwater) = true;
560         MY(velocityjitter) = '96.0 96.0 96.0';
561 }
562 // sparks which go through walls
563 SUB(TE_EXPLOSIONQUAD) {
564         MY(airfriction) = 0.200000;
565         MY(alpha_max) = 256;
566         MY(alpha_fade) = 512;
567         MY(color_min) = "0x903010";
568         MY(color_max) = "0xFFD030";
569         MY(count) = 64;
570         MY(gravity) = 1;
571         MY(liquidfriction) = 0.800000;
572         MY(notunderwater) = true;
573         MY(size_min) = 1;
574         MY(size_max) = 1;
575         MY(type) = "spark";
576         MY(velocityjitter) = '256.0 256.0 256.0';
577         MY(velocityoffset) = '0.0 0.0 80.0';
578 }
579
580 // quake effect
581 DEF(TE_TAREXPLOSION);
582 // decal
583 SUB(TE_TAREXPLOSION) {
584         MY(alpha_min) = 256;
585         MY(alpha_max) = 256;
586         MY(countabsolute) = 1;
587         MY(lightcolor) = '1.6 0.8 2.0';
588         MY(lightradiusfade) = 1200;
589         MY(lightradius) = 600;
590         MY(originjitter) = '40.0 40.0 40.0';
591         MY(size_min) = 48;
592         MY(size_max) = 48;
593         MY(tex_min) = 8;
594         MY(tex_max) = 16;
595         MY(type) = "decal";
596 }
597 // smoke cloud
598 SUB(TE_TAREXPLOSION) {
599         MY(alpha_min) = 32;
600         MY(alpha_max) = 32;
601         MY(alpha_fade) = 64;
602         MY(color_min) = "0x202020";
603         MY(color_max) = "0x404040";
604         MY(count) = 16;
605         MY(notunderwater) = true;
606         MY(size_min) = 12;
607         MY(size_max) = 12;
608         MY(tex_max) = 8;
609         MY(type) = "smoke";
610         MY(velocityjitter) = '48.0 48.0 48.0';
611 }
612 // underwater bubbles
613 SUB(TE_TAREXPLOSION) {
614         MY(alpha_min) = 128;
615         MY(alpha_max) = 256;
616         MY(alpha_fade) = 64;
617         MY(bounce) = 1.500000;
618         MY(color_min) = "0x404040";
619         MY(color_max) = "0x808080";
620         MY(count) = 16;
621         MY(gravity) = -0.125000;
622         MY(liquidfriction) = 0.250000;
623         MY(originjitter) = '16.0 16.0 16.0';
624         MY(size_min) = 3;
625         MY(size_max) = 3;
626         MY(tex_min) = 62;
627         MY(tex_max) = 62;
628         MY(type) = "bubble";
629         MY(underwater) = true;
630         MY(velocityjitter) = '96.0 96.0 96.0';
631 }
632 // sparks which go through walls
633 SUB(TE_TAREXPLOSION) {
634         MY(airfriction) = 0.200000;
635         MY(alpha_max) = 256;
636         MY(alpha_fade) = 512;
637         MY(color_min) = "0x903010";
638         MY(color_max) = "0xFFD030";
639         MY(count) = 64;
640         MY(gravity) = 1;
641         MY(liquidfriction) = 0.800000;
642         MY(notunderwater) = true;
643         MY(size_min) = 1;
644         MY(size_max) = 1;
645         MY(type) = "spark";
646         MY(velocityjitter) = '256.0 256.0 256.0';
647         MY(velocityoffset) = '0.0 0.0 80.0';
648 }
649
650 // bloody impact effect indicating damage
651 DEF(TE_BLOOD);
652 SUB(TE_BLOOD) {
653         MY(airfriction) = 1;
654         MY(alpha_min) = 256;
655         MY(alpha_max) = 256;
656         MY(alpha_fade) = 64;
657         MY(bounce) = -1;
658         MY(count) = 0.167000;
659         MY(liquidfriction) = 4;
660         MY(size_min) = 8;
661         MY(size_max) = 8;
662         MY(staincolor_min) = "0x808080";
663         MY(staincolor_max) = "0x808080";
664         MY(staintex_min) = 16;
665         MY(staintex_max) = 24;
666         MY(tex_min) = 24;
667         MY(tex_max) = 32;
668         MY(type) = "blood";
669         MY(velocityjitter) = '64.0 64.0 64.0';
670         MY(velocitymultiplier) = 1;
671 }
672
673 // sparks (quake effect)
674 DEF(TE_SPARK);
675 SUB(TE_SPARK) {
676         MY(alpha_min) = 64;
677         MY(alpha_max) = 256;
678         MY(alpha_fade) = 768;
679         MY(bounce) = -1;
680         MY(color_min) = "0x8f4333";
681         MY(color_max) = "0xfff31b";
682         MY(count) = 0.500000;
683         MY(gravity) = 1;
684         MY(size_min) = 0.400000;
685         MY(size_max) = 0.600000;
686         MY(tex_min) = 40;
687         MY(tex_max) = 40;
688         MY(type) = "spark";
689         MY(velocityjitter) = '64.0 64.0 64.0';
690         MY(velocitymultiplier) = 1;
691         MY(velocityoffset) = '0.0 0.0 80.0';
692 }
693
694 // vortex impact
695 DEF(TE_PLASMABURN);
696 // decal
697 SUB(TE_PLASMABURN) {
698         MY(alpha_min) = 256;
699         MY(alpha_max) = 256;
700         MY(countabsolute) = 1;
701         MY(lightcolor) = '1.0 1.0 1.0';
702         MY(lightradiusfade) = 400;
703         MY(lightradius) = 200;
704         MY(originjitter) = '16.0 16.0 16.0';
705         MY(size_min) = 24;
706         MY(size_max) = 24;
707         MY(tex_min) = 47;
708         MY(tex_max) = 47;
709         MY(type) = "decal";
710 }
711 // flare effect
712 SUB(TE_PLASMABURN) {
713         MY(alpha_min) = 256;
714         MY(alpha_max) = 256;
715         MY(alpha_fade) = 512;
716         MY(color_min) = "0x80C0FF";
717         MY(color_max) = "0x80C0FF";
718         MY(countabsolute) = 1;
719         MY(size_min) = 8;
720         MY(size_max) = 8;
721         MY(tex_min) = 37;
722         MY(tex_max) = 37;
723         MY(type) = "static";
724 }
725 // small sparks which form a sphere as they slow down
726 SUB(TE_PLASMABURN) {
727         MY(airfriction) = 8;
728         MY(alpha_min) = 256;
729         MY(alpha_max) = 256;
730         MY(alpha_fade) = 1024;
731         MY(bounce) = 2;
732         MY(color_min) = "0x2030FF";
733         MY(color_max) = "0x80C0FF";
734         MY(count) = 128;
735         MY(liquidfriction) = 8;
736         MY(size_min) = 1;
737         MY(size_max) = 2;
738         MY(type) = "spark";
739         MY(velocityjitter) = '128.0 128.0 128.0';
740 }
741
742 // quake effect
743 DEF(TE_SMALLFLASH);
744 SUB(TE_SMALLFLASH) {
745         MY(lightcolor) = '2.0 2.0 2.0';
746         MY(lightradiusfade) = 1000;
747         MY(lightradius) = 200;
748 }
749
750 // quake effect
751 DEF(TE_FLAMEJET);
752 SUB(TE_FLAMEJET) {
753         MY(airfriction) = 1;
754         MY(alpha_min) = 64;
755         MY(alpha_max) = 128;
756         MY(alpha_fade) = 384;
757         MY(bounce) = 1.100000;
758         MY(color_min) = "0x6f0f00";
759         MY(color_max) = "0xe3974f";
760         MY(count) = 0.500000;
761         MY(gravity) = -1;
762         MY(liquidfriction) = 4;
763         MY(size_min) = 4;
764         MY(size_max) = 4;
765         MY(type) = "smoke";
766         MY(velocityjitter) = '128.0 128.0 128.0';
767         MY(velocitymultiplier) = 1;
768 }
769
770 // quake effect
771 DEF(TE_LAVASPLASH);
772 SUB(TE_LAVASPLASH) {
773         MY(alpha_min) = 256;
774         MY(alpha_max) = 256;
775         MY(alpha_fade) = 256;
776         MY(color_min) = "0x6f0f00";
777         MY(color_max) = "0xe3974f";
778         MY(count) = 32;
779         MY(gravity) = 0.050000;
780         MY(originjitter) = '128.0 128.0 32.0';
781         MY(originoffset) = '0.0 0.0 32.0';
782         MY(size_min) = 12;
783         MY(size_max) = 12;
784         MY(type) = "alphastatic";
785         MY(velocityjitter) = '128.0 128.0 0.0';
786         MY(velocityoffset) = '0.0 0.0 256.0';
787 }
788
789 // player teleport effect
790 DEF(TE_TELEPORT);
791 SUB(TE_TELEPORT) {
792         MY(airfriction) = 1;
793         MY(alpha_min) = 64;
794         MY(alpha_max) = 128;
795         MY(alpha_fade) = 256;
796         MY(color_min) = "0xA0A0A0";
797         MY(color_max) = "0xFFFFFF";
798         MY(count) = 56;
799         MY(liquidfriction) = 4;
800         MY(originjitter) = '16.0 16.0 28.0';
801         MY(originoffset) = '0.0 0.0 28.0';
802         MY(size_min) = 10;
803         MY(size_max) = 10;
804         MY(type) = "static";
805         MY(velocityjitter) = '0.0 0.0 256.0';
806 }
807
808 // vortex beam
809 DEF(TE_TEI_G3);
810 SUB(TE_TEI_G3) {
811         MY(alpha_min) = 128;
812         MY(alpha_max) = 128;
813         MY(alpha_fade) = 256;
814         MY(color_min) = "0xFFFFFF";
815         MY(color_max) = "0xFFFFFF";
816         MY(countabsolute) = 1;
817         MY(size_min) = 4;
818         MY(size_max) = 4;
819         MY(tex_min) = 200;
820         MY(tex_max) = 200;
821         MY(type) = "beam";
822 }
823 SUB(TE_TEI_G3) {
824         MY(airfriction) = -4;
825         MY(alpha_min) = 256;
826         MY(alpha_max) = 256;
827         MY(alpha_fade) = 512;
828         MY(color_min) = "0x202020";
829         MY(color_max) = "0x404040";
830         MY(size_min) = 1;
831         MY(size_max) = 1;
832         MY(trailspacing) = 4;
833         MY(type) = "smoke";
834         MY(velocityjitter) = '8.0 8.0 8.0';
835 }
836
837 // smoke effect
838 DEF(TE_TEI_SMOKE);
839 SUB(TE_TEI_SMOKE) {
840         MY(alpha_min) = 256;
841         MY(alpha_max) = 256;
842         MY(alpha_fade) = 512;
843         MY(color_min) = "0x202020";
844         MY(color_max) = "0x404040";
845         MY(count) = 0.167000;
846         MY(originjitter) = '1.5 1.5 1.5';
847         MY(size_min) = 5;
848         MY(size_max) = 5;
849         MY(tex_max) = 8;
850         MY(type) = "smoke";
851         MY(velocityjitter) = '6.0 6.0 6.0';
852         MY(velocitymultiplier) = 1;
853 }
854
855 // rocket explosion (bigger than mortar and hagar)
856 DEF(TE_TEI_BIGEXPLOSION);
857 // decal
858 SUB(TE_TEI_BIGEXPLOSION) {
859         MY(alpha_min) = 256;
860         MY(alpha_max) = 256;
861         MY(countabsolute) = 1;
862         MY(lightcolor) = '4.0 2.0 0.5';
863         MY(lightradiusfade) = 500;
864         MY(lightradius) = 500;
865         MY(originjitter) = '40.0 40.0 40.0';
866         MY(size_min) = 72;
867         MY(size_max) = 72;
868         MY(tex_min) = 8;
869         MY(tex_max) = 16;
870         MY(type) = "decal";
871 }
872 // flare effect
873 SUB(TE_TEI_BIGEXPLOSION) {
874         MY(alpha_min) = 192;
875         MY(alpha_max) = 192;
876         MY(alpha_fade) = 64;
877         MY(color_min) = "0x404040";
878         MY(color_max) = "0x404040";
879         MY(countabsolute) = 1;
880         MY(size_min) = 72;
881         MY(size_max) = 72;
882         MY(tex_min) = 35;
883         MY(tex_max) = 37;
884         MY(type) = "static";
885 }
886 // fire effect
887 SUB(TE_TEI_BIGEXPLOSION) {
888         MY(airfriction) = 4;
889         MY(alpha_min) = 128;
890         MY(alpha_max) = 128;
891         MY(alpha_fade) = 256;
892         MY(bounce) = 1.500000;
893         MY(color_min) = "0x902010";
894         MY(color_max) = "0xFFD080";
895         MY(count) = 128;
896         MY(liquidfriction) = 4;
897         MY(notunderwater) = true;
898         MY(originjitter) = '8.0 8.0 8.0';
899         MY(size_min) = 16;
900         MY(size_max) = 16;
901         MY(tex_min) = 48;
902         MY(tex_max) = 55;
903         MY(type) = "static";
904         MY(velocityjitter) = '512.0 512.0 512.0';
905 }
906 // underwater bubbles
907 SUB(TE_TEI_BIGEXPLOSION) {
908         MY(alpha_min) = 128;
909         MY(alpha_max) = 256;
910         MY(alpha_fade) = 64;
911         MY(bounce) = 1.500000;
912         MY(color_min) = "0x404040";
913         MY(color_max) = "0x808080";
914         MY(count) = 32;
915         MY(gravity) = -0.125000;
916         MY(liquidfriction) = 0.250000;
917         MY(originjitter) = '16.0 16.0 16.0';
918         MY(size_min) = 3;
919         MY(size_max) = 3;
920         MY(tex_min) = 62;
921         MY(tex_max) = 62;
922         MY(type) = "bubble";
923         MY(underwater) = true;
924         MY(velocityjitter) = '144.0 144.0 144.0';
925 }
926 // bouncing sparks
927 SUB(TE_TEI_BIGEXPLOSION) {
928         MY(airfriction) = 0.200000;
929         MY(alpha_min) = 256;
930         MY(alpha_max) = 256;
931         MY(alpha_fade) = 384;
932         MY(bounce) = 1.500000;
933         MY(color_min) = "0x903010";
934         MY(color_max) = "0xFFD030";
935         MY(count) = 64;
936         MY(gravity) = 1;
937         MY(liquidfriction) = 0.800000;
938         MY(notunderwater) = true;
939         MY(size_min) = 2;
940         MY(size_max) = 2;
941         MY(type) = "spark";
942         MY(velocityjitter) = '384.0 384.0 384.0';
943         MY(velocityoffset) = '0.0 0.0 80.0';
944 }
945
946 // electro explosion
947 DEF(TE_TEI_PLASMAHIT);
948 // decal
949 SUB(TE_TEI_PLASMAHIT) {
950         MY(alpha_min) = 256;
951         MY(alpha_max) = 256;
952         MY(countabsolute) = 1;
953         MY(lightcolor) = '2.4 4.8 8.0';
954         MY(lightradiusfade) = 600;
955         MY(lightradius) = 200;
956         MY(originjitter) = '20.0 20.0 20.0';
957         MY(size_min) = 32;
958         MY(size_max) = 32;
959         MY(tex_min) = 59;
960         MY(tex_max) = 59;
961         MY(type) = "decal";
962 }
963 // flare effect
964 SUB(TE_TEI_PLASMAHIT) {
965         MY(alpha_min) = 256;
966         MY(alpha_max) = 256;
967         MY(alpha_fade) = 512;
968         MY(color_min) = "0x80C0FF";
969         MY(color_max) = "0x80C0FF";
970         MY(countabsolute) = 1;
971         MY(size_min) = 32;
972         MY(size_max) = 32;
973         MY(tex_min) = 38;
974         MY(tex_max) = 38;
975         MY(type) = "static";
976 }
977 // cloud of bouncing sparks
978 SUB(TE_TEI_PLASMAHIT) {
979         MY(alpha_min) = 256;
980         MY(alpha_max) = 256;
981         MY(alpha_fade) = 1024;
982         MY(bounce) = 1.500000;
983         MY(color_min) = "0x2030FF";
984         MY(color_max) = "0x80C0FF";
985         MY(count) = 0.500000;
986         MY(size_min) = 2;
987         MY(size_max) = 4;
988         MY(type) = "spark";
989         MY(velocityjitter) = '512.0 512.0 512.0';
990 }
991
992 // bloody impact effect indicating damage
993 DEF(blood);
994 SUB(blood) {
995         MY(airfriction) = 0.400000;
996         MY(alpha_min) = 1560;
997         MY(alpha_max) = 2560;
998         MY(alpha_fade) = 7000;
999         MY(blend) = "invmod";
1000         MY(bounce) = -1;
1001         MY(color_min) = "0xA8FFFF";
1002         MY(color_max) = "0xA8FFFFF";
1003         MY(count) = 0.400000;
1004         MY(sizeincrease) = 20;
1005         MY(size_min) = 5;
1006         MY(size_max) = 11;
1007         MY(staincolor_min) = "0x808080";
1008         MY(staincolor_max) = "0x808080";
1009         MY(stainsize_min) = 1;
1010         MY(stainsize_max) = 2;
1011         MY(staintex_min) = 16;
1012         MY(staintex_max) = 24;
1013         MY(stretchfactor) = 20;
1014         MY(tex_min) = 24;
1015         MY(tex_max) = 32;
1016         MY(type) = "spark";
1017         MY(velocityjitter) = '99.0 99.0 55.0';
1018 }
1019 //blood mist
1020 SUB(blood) {
1021         MY(alpha_min) = 100;
1022         MY(alpha_max) = 256;
1023         MY(alpha_fade) = 400;
1024         MY(blend) = "invmod";
1025         MY(color_min) = "0x000000";
1026         MY(color_max) = "0x420000";
1027         MY(countabsolute) = 1;
1028         MY(originjitter) = '11.0 11.0 11.0';
1029         MY(sizeincrease) = 20;
1030         MY(size_min) = 25;
1031         MY(size_max) = 30;
1032         MY(tex_min) = 24;
1033         MY(tex_max) = 32;
1034         MY(type) = "alphastatic";
1035 }
1036
1037 // player teleport effect
1038 DEF(teleport);
1039 SUB(teleport) {
1040         MY(airfriction) = 2;
1041         MY(alpha_max) = 256;
1042         MY(alpha_fade) = 100;
1043         MY(bounce) = 1.500000;
1044         MY(color_min) = "0x807aff";
1045         MY(color_max) = "0x4463d5";
1046         MY(count) = 500;
1047         MY(originjitter) = '1.0 1.0 1.0';
1048         MY(size_min) = 1;
1049         MY(size_max) = 1;
1050         MY(stretchfactor) = 0.600000;
1051         MY(tex_min) = 64;
1052         MY(tex_max) = 64;
1053         MY(type) = "spark";
1054         MY(velocityjitter) = '1000.0 1000.0 1500.0';
1055         MY(velocitymultiplier) = 0.500000;
1056 }
1057 SUB(teleport) {
1058         MY(alpha_min) = 190;
1059         MY(alpha_max) = 190;
1060         MY(alpha_fade) = 180;
1061         MY(color_min) = "0x807aff";
1062         MY(color_max) = "0x4463d5";
1063         MY(countabsolute) = 1;
1064         MY(sizeincrease) = -80;
1065         MY(size_min) = 150;
1066         MY(size_max) = 150;
1067         MY(tex_min) = 65;
1068         MY(tex_max) = 65;
1069         MY(type) = "smoke";
1070 }
1071
1072 // normal super gory blood trail (used by gibs)
1073 DEF(TR_BLOOD);
1074 SUB(TR_BLOOD) {
1075         MY(airfriction) = -2;
1076         MY(alpha_min) = 384;
1077         MY(alpha_max) = 984;
1078         MY(alpha_fade) = 1492;
1079         MY(blend) = "invmod";
1080         MY(bounce) = -1;
1081         MY(color_min) = "0xA8FFFF";
1082         MY(color_max) = "0xA8FFFF";
1083         MY(gravity) = 0.400000;
1084         MY(liquidfriction) = 1;
1085         MY(sizeincrease) = -5;
1086         MY(size_min) = 4;
1087         MY(size_max) = 19;
1088         MY(staincolor_min) = "0x808080";
1089         MY(staincolor_max) = "0x808080";
1090         MY(stainsize_min) = 1;
1091         MY(stainsize_max) = 2;
1092         MY(staintex_min) = 16;
1093         MY(staintex_max) = 24;
1094         MY(stretchfactor) = 7;
1095         MY(tex_min) = 24;
1096         MY(tex_max) = 32;
1097         MY(trailspacing) = 20;
1098         MY(type) = "spark";
1099         MY(velocityjitter) = '64.0 64.0 64.0';
1100         MY(velocitymultiplier) = -0.100000;
1101 }
1102 // splash around gib
1103 SUB(TR_BLOOD) {
1104         MY(alpha_min) = 684;
1105         MY(alpha_max) = 684;
1106         MY(alpha_fade) = 7492;
1107         MY(color_min) = "0xA8FFFF";
1108         MY(color_max) = "0xA8FFFF";
1109         MY(sizeincrease) = 500;
1110         MY(size_min) = 4;
1111         MY(size_max) = 6;
1112         MY(tex_min) = 24;
1113         MY(tex_max) = 32;
1114         MY(trailspacing) = 42;
1115         MY(type) = "blood";
1116 }
1117
1118 // thinner blood trail (used by quake zombies)
1119 DEF(TR_SLIGHTBLOOD);
1120 SUB(TR_SLIGHTBLOOD) {
1121         MY(airfriction) = 1;
1122         MY(alpha_min) = 384;
1123         MY(alpha_max) = 384;
1124         MY(alpha_fade) = 192;
1125         MY(bounce) = -1;
1126         MY(color_min) = "0xA8FFFF";
1127         MY(color_max) = "0xA8FFFF";
1128         MY(liquidfriction) = 4;
1129         MY(size_min) = 8;
1130         MY(size_max) = 8;
1131         MY(staincolor_min) = "0x808080";
1132         MY(staincolor_max) = "0x808080";
1133         MY(staintex_min) = 16;
1134         MY(staintex_max) = 24;
1135         MY(tex_min) = 24;
1136         MY(tex_max) = 32;
1137         MY(trailspacing) = 64;
1138         MY(type) = "blood";
1139         MY(velocityjitter) = '64.0 64.0 64.0';
1140         MY(velocitymultiplier) = 0.500000;
1141 }
1142
1143 // func_stardust effect, used in some maps to indicate teleporters
1144 DEF(EF_STARDUST);
1145 SUB(EF_STARDUST) {
1146         MY(airfriction) = 0.200000;
1147         MY(alpha_min) = 64;
1148         MY(alpha_max) = 128;
1149         MY(alpha_fade) = 128;
1150         MY(color_min) = "0xfff368";
1151         MY(color_max) = "0xfff368";
1152         MY(count) = 37.500000;
1153         MY(gravity) = -0.100000;
1154         MY(liquidfriction) = 0.800000;
1155         MY(originjitter) = '16.0 16.0 64.0';
1156         MY(size_min) = 1;
1157         MY(size_max) = 2;
1158         MY(type) = "static";
1159         MY(velocityjitter) = '32.0 32.0 0.0';
1160 }
1161
1162 // flare particle and light
1163 DEF(item_respawn);
1164 SUB(item_respawn) {
1165         MY(alpha_min) = 128;
1166         MY(alpha_max) = 128;
1167         MY(alpha_fade) = 128;
1168         MY(color_min) = "0x63F2EA";
1169         MY(color_max) = "0x63f2EA";
1170         MY(countabsolute) = 1;
1171         MY(size_min) = 32;
1172         MY(size_max) = 32;
1173         MY(type) = "static";
1174 }
1175 // cloud of particles which expand rapidly and then slow to form a ball
1176 SUB(item_respawn) {
1177         MY(alpha_min) = 256;
1178         MY(alpha_max) = 256;
1179         MY(alpha_fade) = 1280;
1180         MY(color_min) = "0x63F2EA";
1181         MY(color_max) = "0x63f2EA";
1182         MY(count) = 128;
1183         MY(size_min) = 2;
1184         MY(size_max) = 2;
1185         MY(tex_min) = 41;
1186         MY(tex_max) = 41;
1187         MY(type) = "spark";
1188         MY(velocityjitter) = '256.0 256.0 256.0';
1189 }
1190
1191 DEF(jumppad_activate);
1192 SUB(jumppad_activate) {
1193         MY(lightcolor) = '2.0 2.0 2.0';
1194         MY(lightradiusfade) = 2000;
1195         MY(lightradius) = 200;
1196 }
1197
1198 DEF(laser_muzzleflash);
1199 // glow and light
1200 SUB(laser_muzzleflash) {
1201         MY(airfriction) = 10;
1202         MY(alpha_min) = 256;
1203         MY(alpha_max) = 512;
1204         MY(alpha_fade) = 6280;
1205         MY(color_min) = "0xcc0000";
1206         MY(color_max) = "0xff0000";
1207         MY(countabsolute) = 1;
1208         MY(lightcolor) = '3.0 0.1 0.1';
1209         MY(lightradiusfade) = 2000;
1210         MY(lightradius) = 200;
1211         MY(sizeincrease) = -100;
1212         MY(size_min) = 10;
1213         MY(size_max) = 15;
1214         MY(stretchfactor) = 2;
1215         MY(tex_min) = 65;
1216         MY(tex_max) = 65;
1217         MY(type) = "smoke";
1218 }
1219 // electricity
1220 SUB(laser_muzzleflash) {
1221         MY(airfriction) = 10;
1222         MY(alpha_min) = 256;
1223         MY(alpha_max) = 512;
1224         MY(alpha_fade) = 6280;
1225         MY(color_min) = "0xb44215";
1226         MY(color_max) = "0xff0000";
1227         MY(count) = 3;
1228         MY(originjitter) = '2.0 2.0 2.0';
1229         MY(startangle_min) = -180;
1230         MY(startangle_max) = 180;
1231         MY(spin_min) = 4000;
1232         MY(spin_max) = -4000;
1233         MY(sizeincrease) = -100;
1234         MY(size_min) = 5;
1235         MY(size_max) = 7;
1236         MY(stretchfactor) = 2.300000;
1237         MY(tex_min) = 43;
1238         MY(tex_max) = 43;
1239         MY(type) = "spark";
1240         MY(velocityjitter) = '150.0 150.0 150.0';
1241         MY(velocitymultiplier) = 0.200000;
1242 }
1243 // fire
1244 SUB(laser_muzzleflash) {
1245         MY(airfriction) = 12;
1246         MY(alpha_min) = 256;
1247         MY(alpha_max) = 512;
1248         MY(alpha_fade) = 6280;
1249         MY(color_min) = "0xff4200";
1250         MY(color_max) = "0xff0000";
1251         MY(count) = 6;
1252         MY(originjitter) = '2.0 2.0 2.0';
1253         MY(sizeincrease) = -100;
1254         MY(size_min) = 7;
1255         MY(size_max) = 9;
1256         MY(stretchfactor) = 2;
1257         MY(tex_min) = 8;
1258         MY(tex_max) = 15;
1259         MY(type) = "spark";
1260         MY(velocityjitter) = '100.0 100.0 100.0';
1261         MY(velocitymultiplier) = 0.200000;
1262 }
1263
1264 DEF(laser_impact);
1265 // decal
1266 SUB(laser_impact) {
1267         MY(alpha_min) = 256;
1268         MY(alpha_max) = 256;
1269         MY(countabsolute) = 1;
1270         MY(lightcolor) = '8.0 0.4 0.4';
1271         MY(lightradiusfade) = 500;
1272         MY(lightradius) = 200;
1273         MY(originjitter) = '14.0 14.0 14.0';
1274         MY(size_min) = 24;
1275         MY(size_max) = 24;
1276         MY(tex_min) = 47;
1277         MY(tex_max) = 47;
1278         MY(type) = "decal";
1279 }
1280 // flare effect
1281 SUB(laser_impact) {
1282         MY(alpha_min) = 256;
1283         MY(alpha_max) = 256;
1284         MY(alpha_fade) = 1024;
1285         MY(color_min) = "0xFF2010";
1286         MY(color_max) = "0xFF2010";
1287         MY(countabsolute) = 1;
1288         MY(size_min) = 24;
1289         MY(size_max) = 24;
1290         MY(tex_min) = 39;
1291         MY(tex_max) = 39;
1292         MY(type) = "static";
1293 }
1294 // sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
1295 SUB(laser_impact) {
1296         MY(airfriction) = 6;
1297         MY(alpha_min) = 256;
1298         MY(alpha_max) = 256;
1299         MY(alpha_fade) = 1024;
1300         MY(color_min) = "0x800000";
1301         MY(color_max) = "0xFF8020";
1302         MY(count) = 128;
1303         MY(liquidfriction) = 6;
1304         MY(size_min) = 4;
1305         MY(size_max) = 4;
1306         MY(type) = "spark";
1307         MY(velocityjitter) = '256.0 256.0 256.0';
1308 }
1309 SUB(laser_impact) {
1310         MY(alpha_min) = 128;
1311         MY(alpha_max) = 256;
1312         MY(alpha_fade) = 256;
1313         MY(color_min) = "0x800000";
1314         MY(color_max) = "0xFF8020";
1315         MY(count) = 4;
1316         MY(originjitter) = '1.0 1.0 1.0';
1317         MY(sizeincrease) = 6;
1318         MY(size_min) = 12;
1319         MY(size_max) = 12;
1320         MY(tex_min) = 48;
1321         MY(tex_max) = 55;
1322         MY(type) = "smoke";
1323         MY(velocityjitter) = '16.0 16.0 16.0';
1324         MY(velocitymultiplier) = 0.010000;
1325 }
1326
1327 DEF(shotgun_muzzleflash);
1328 SUB(shotgun_muzzleflash) {
1329         MY(alpha_min) = 256;
1330         MY(alpha_max) = 256;
1331         MY(alpha_fade) = 512;
1332         MY(color_min) = "0x202020";
1333         MY(color_max) = "0x404040";
1334         MY(count) = 1.500000;
1335         MY(lightcolor) = '2.0 1.5 0.2';
1336         MY(lightradiusfade) = 2000;
1337         MY(lightradius) = 200;
1338         MY(originjitter) = '1.5 1.5 1.5';
1339         MY(sizeincrease) = 12;
1340         MY(size_min) = 5;
1341         MY(size_max) = 5;
1342         MY(tex_max) = 8;
1343         MY(type) = "smoke";
1344         MY(velocityjitter) = '6.0 6.0 6.0';
1345         MY(velocitymultiplier) = 0.050000;
1346 }
1347 SUB(shotgun_muzzleflash) {
1348         MY(airfriction) = 5;
1349         MY(alpha_max) = 128;
1350         MY(alpha_fade) = 1024;
1351         MY(color_min) = "0xffdb96";
1352         MY(color_max) = "0xff5400";
1353         MY(count) = 16;
1354         MY(originjitter) = '1.0 1.0 1.0';
1355         MY(size_min) = 10;
1356         MY(size_max) = 20;
1357         MY(stretchfactor) = 2.500000;
1358         MY(tex_min) = 48;
1359         MY(tex_max) = 55;
1360         MY(type) = "spark";
1361         MY(velocityjitter) = '100.0 100.0 100.0';
1362         MY(velocitymultiplier) = 0.500000;
1363 }
1364
1365 // shotgun pellet impact
1366 DEF(shotgun_impact);
1367 // decal
1368 SUB(shotgun_impact) {
1369         MY(alpha_min) = 256;
1370         MY(alpha_max) = 256;
1371         MY(countabsolute) = 1;
1372         MY(originjitter) = '10.0 10.0 10.0';
1373         MY(size_min) = 5;
1374         MY(size_max) = 8;
1375         MY(tex_min) = 56;
1376         MY(tex_max) = 59;
1377         MY(type) = "decal";
1378 }
1379 // dust/smoke drifting away from the impact
1380 SUB(shotgun_impact) {
1381         MY(airfriction) = 5;
1382         MY(alpha_min) = 300;
1383         MY(alpha_max) = 550;
1384         MY(alpha_fade) = 756;
1385         MY(color_min) = "0x473a37";
1386         MY(color_max) = "0x0b0a07";
1387         MY(count) = 1;
1388         MY(notunderwater) = true;
1389         MY(startangle_max) = 360;
1390         MY(spin_min) = -50;
1391         MY(spin_max) = 50;
1392         MY(sizeincrease) = 25;
1393         MY(size_min) = 10;
1394         MY(size_max) = 20;
1395         MY(tex_max) = 8;
1396         MY(type) = "alphastatic";
1397         MY(velocityjitter) = '150.0 150.0 150.0';
1398         MY(velocitymultiplier) = 0.200000;
1399 }
1400 // dust/smoke staying at the impact
1401 SUB(shotgun_impact) {
1402         MY(airfriction) = 5;
1403         MY(alpha_min) = 200;
1404         MY(alpha_max) = 350;
1405         MY(alpha_fade) = 500;
1406         MY(bounce) = 6;
1407         MY(color_min) = "0x201d1a";
1408         MY(color_max) = "0x000000";
1409         MY(count) = 0.200000;
1410         MY(notunderwater) = true;
1411         MY(startangle_max) = 360;
1412         MY(spin_min) = -50;
1413         MY(spin_max) = 50;
1414         MY(sizeincrease) = 74;
1415         MY(size_min) = 10;
1416         MY(size_max) = 11;
1417         MY(tex_min) = 36;
1418         MY(tex_max) = 36;
1419         MY(type) = "alphastatic";
1420         MY(velocityjitter) = '11.0 11.0 11.0';
1421         MY(velocitymultiplier) = 0.030000;
1422 }
1423 // sparks
1424 SUB(shotgun_impact) {
1425         MY(airfriction) = 1.100000;
1426         MY(alpha_max) = 356;
1427         MY(alpha_fade) = 268;
1428         MY(bounce) = 1.500000;
1429         MY(color_min) = "0xFDFFD9";
1430         MY(color_max) = "0xFDFFD9";
1431         MY(count) = 0.500000;
1432         MY(gravity) = 1;
1433         MY(notunderwater) = true;
1434         MY(originjitter) = '1.0 1.0 1.0';
1435         MY(size_min) = 0.600000;
1436         MY(size_max) = 0.600000;
1437         MY(tex_min) = 40;
1438         MY(tex_max) = 40;
1439         MY(type) = "spark";
1440         MY(velocityjitter) = '200.0 200.0 200.0';
1441         MY(velocitymultiplier) = 0.200000;
1442 }
1443
1444 DEF(uzi_muzzleflash);
1445 SUB(uzi_muzzleflash) {
1446         MY(alpha_min) = 256;
1447         MY(alpha_max) = 256;
1448         MY(alpha_fade) = 512;
1449         MY(color_min) = "0x202020";
1450         MY(color_max) = "0x404040";
1451         MY(count) = 1;
1452         MY(gravity) = -0.100000;
1453         MY(lightcolor) = '2.0 1.5 0.2';
1454         MY(lightradiusfade) = 2000;
1455         MY(lightradius) = 200;
1456         MY(originjitter) = '1.5 1.5 1.5';
1457         MY(size_min) = 5;
1458         MY(size_max) = 5;
1459         MY(tex_max) = 8;
1460         MY(type) = "static";
1461         MY(velocityjitter) = '1.0 1.0 1.0';
1462         MY(velocitymultiplier) = 0.030000;
1463 }
1464 SUB(uzi_muzzleflash) {
1465         MY(airfriction) = 12;
1466         MY(alpha_max) = 256;
1467         MY(alpha_fade) = 6000;
1468         MY(color_min) = "0xff9c00";
1469         MY(color_max) = "0xffd200";
1470         MY(count) = 3;
1471         MY(originjitter) = '1.0 1.0 1.0';
1472         MY(size_min) = 0.300000;
1473         MY(size_max) = 0.400000;
1474         MY(stretchfactor) = 0.150000;
1475         MY(tex_min) = 40;
1476         MY(tex_max) = 40;
1477         MY(type) = "spark";
1478         MY(velocityjitter) = '555.0 555.0 555.0';
1479         MY(velocitymultiplier) = 3;
1480 }
1481
1482 DEF(machinegun_impact);
1483 // decal
1484 SUB(machinegun_impact) {
1485         MY(alpha_min) = 256;
1486         MY(alpha_max) = 256;
1487         MY(countabsolute) = 1;
1488         MY(lightcolor) = '6.0 3.6 0.6';
1489         MY(lightradiusfade) = 800;
1490         MY(lightradius) = 80;
1491         MY(originjitter) = '10.0 10.0 10.0';
1492         MY(size_min) = 5;
1493         MY(size_max) = 5;
1494         MY(tex_min) = 56;
1495         MY(tex_max) = 59;
1496         MY(type) = "decal";
1497 }
1498 // dust/smoke drifting away from the impact
1499 SUB(machinegun_impact) {
1500         MY(airfriction) = 5;
1501         MY(alpha_min) = 300;
1502         MY(alpha_max) = 550;
1503         MY(alpha_fade) = 456;
1504         MY(color_min) = "0x473a37";
1505         MY(color_max) = "0x0b0a07";
1506         MY(count) = 1.500000;
1507         MY(notunderwater) = true;
1508         MY(startangle_max) = 360;
1509         MY(spin_min) = -50;
1510         MY(spin_max) = 50;
1511         MY(sizeincrease) = 15;
1512         MY(size_min) = 10;
1513         MY(size_max) = 20;
1514         MY(tex_max) = 8;
1515         MY(type) = "alphastatic";
1516         MY(velocityjitter) = '150.0 150.0 150.0';
1517         MY(velocitymultiplier) = 0.100000;
1518 }
1519 // dust/smoke staying at the impact
1520 SUB(machinegun_impact) {
1521         MY(airfriction) = 5;
1522         MY(alpha_min) = 200;
1523         MY(alpha_max) = 350;
1524         MY(alpha_fade) = 500;
1525         MY(bounce) = 6;
1526         MY(color_min) = "0x201d1a";
1527         MY(color_max) = "0x000000";
1528         MY(count) = 0.500000;
1529         MY(notunderwater) = true;
1530         MY(startangle_max) = 360;
1531         MY(spin_min) = -50;
1532         MY(spin_max) = 50;
1533         MY(sizeincrease) = 74;
1534         MY(size_min) = 10;
1535         MY(size_max) = 11;
1536         MY(tex_min) = 36;
1537         MY(tex_max) = 36;
1538         MY(type) = "alphastatic";
1539         MY(velocityjitter) = '11.0 11.0 11.0';
1540         MY(velocitymultiplier) = 0.030000;
1541 }
1542 // debris
1543 SUB(machinegun_impact) {
1544         MY(airfriction) = 1;
1545         MY(alpha_min) = 300;
1546         MY(alpha_max) = 550;
1547         MY(alpha_fade) = 256;
1548         MY(bounce) = 1.700000;
1549         MY(color_min) = "0x63493e";
1550         MY(color_max) = "0xffffff";
1551         MY(count) = 1;
1552         MY(gravity) = 1.400000;
1553         MY(notunderwater) = true;
1554         MY(startangle_max) = 360;
1555         MY(spin_min) = -500;
1556         MY(spin_max) = 500;
1557         MY(size_min) = 1;
1558         MY(size_max) = 5;
1559         MY(tex_min) = 66;
1560         MY(tex_max) = 68;
1561         MY(type) = "alphastatic";
1562         MY(velocityjitter) = '350.0 350.0 350.0';
1563         MY(velocitymultiplier) = 0.200000;
1564 }
1565 // sparks
1566 SUB(machinegun_impact) {
1567         MY(airfriction) = 2;
1568         MY(alpha_min) = 256;
1569         MY(alpha_max) = 256;
1570         MY(alpha_fade) = 168;
1571         MY(bounce) = 1;
1572         MY(color_min) = "0xFDFFD9";
1573         MY(color_max) = "0xFDFFD9";
1574         MY(count) = 1;
1575         MY(gravity) = 1;
1576         MY(notunderwater) = true;
1577         MY(originjitter) = '1.0 1.0 1.0';
1578         MY(size_min) = 0.300000;
1579         MY(size_max) = 0.300000;
1580         MY(tex_min) = 40;
1581         MY(tex_max) = 40;
1582         MY(type) = "spark";
1583         MY(velocityjitter) = '300.0 300.0 300.0';
1584         MY(velocitymultiplier) = 0.200000;
1585 }
1586
1587 DEF(grenadelauncher_muzzleflash);
1588 SUB(grenadelauncher_muzzleflash) {
1589         MY(airfriction) = 12;
1590         MY(alpha_min) = 256;
1591         MY(alpha_max) = 256;
1592         MY(alpha_fade) = 512;
1593         MY(color_min) = "0x202020";
1594         MY(color_max) = "0x404040";
1595         MY(count) = 1.500000;
1596         MY(lightcolor) = '2.0 1.5 0.2';
1597         MY(lightradiusfade) = 2000;
1598         MY(lightradius) = 200;
1599         MY(originjitter) = '1.5 1.5 1.5';
1600         MY(size_min) = 5;
1601         MY(size_max) = 5;
1602         MY(tex_max) = 8;
1603         MY(type) = "smoke";
1604         MY(velocityjitter) = '20.0 20.0 20.0';
1605         MY(velocitymultiplier) = 0.030000;
1606 }
1607 SUB(grenadelauncher_muzzleflash) {
1608         MY(airfriction) = 5;
1609         MY(alpha_max) = 128;
1610         MY(alpha_fade) = 1024;
1611         MY(color_min) = "0xffdb96";
1612         MY(color_max) = "0xff5400";
1613         MY(count) = 16;
1614         MY(originjitter) = '1.0 1.0 1.0';
1615         MY(size_min) = 10;
1616         MY(size_max) = 20;
1617         MY(stretchfactor) = 2.500000;
1618         MY(tex_min) = 48;
1619         MY(tex_max) = 55;
1620         MY(type) = "spark";
1621         MY(velocityjitter) = '100.0 100.0 100.0';
1622         MY(velocitymultiplier) = 0.500000;
1623 }
1624
1625 // mortar trail
1626 DEF(TR_GRENADE);
1627 // smoke
1628 SUB(TR_GRENADE) {
1629         MY(alpha_min) = 300;
1630         MY(alpha_max) = 400;
1631         MY(alpha_fade) = 780;
1632         MY(bounce) = 1;
1633         MY(color_min) = "0x101010";
1634         MY(color_max) = "0x000000";
1635         MY(originjitter) = '1.0 1.0 1.0';
1636         MY(sizeincrease) = 10;
1637         MY(size_min) = 3;
1638         MY(size_max) = 2;
1639         MY(tex_max) = 8;
1640         MY(trailspacing) = 4;
1641         MY(type) = "smoke";
1642         MY(velocityjitter) = '1.0 1.0 1.0';
1643         MY(velocitymultiplier) = -0.020000;
1644 }
1645 // fire
1646 SUB(TR_GRENADE) {
1647         MY(airfriction) = 8;
1648         MY(alpha_min) = 100;
1649         MY(alpha_max) = 144;
1650         MY(alpha_fade) = 988;
1651         MY(color_min) = "0xffdf72";
1652         MY(color_max) = "0x811200";
1653         MY(notunderwater) = true;
1654         MY(sizeincrease) = -15;
1655         MY(size_min) = 5;
1656         MY(size_max) = 2;
1657         MY(tex_min) = 48;
1658         MY(tex_max) = 55;
1659         MY(trailspacing) = 4;
1660         MY(type) = "static";
1661         MY(velocityjitter) = '32.0 32.0 32.0';
1662         MY(velocitymultiplier) = -1;
1663 }
1664 // bubbles
1665 SUB(TR_GRENADE) {
1666         MY(alpha_min) = 256;
1667         MY(alpha_max) = 256;
1668         MY(alpha_fade) = 256;
1669         MY(bounce) = 1.500000;
1670         MY(color_min) = "0x404040";
1671         MY(color_max) = "0x808080";
1672         MY(gravity) = -0.125000;
1673         MY(liquidfriction) = 4;
1674         MY(size_min) = 1;
1675         MY(size_max) = 1;
1676         MY(tex_min) = 62;
1677         MY(tex_max) = 62;
1678         MY(trailspacing) = 16;
1679         MY(type) = "bubble";
1680         MY(underwater) = true;
1681         MY(velocityjitter) = '16.0 16.0 16.0';
1682 }
1683
1684 // hookbomb trail
1685 DEF(TR_KNIGHTSPIKE);
1686 // smoke
1687 SUB(TR_KNIGHTSPIKE) {
1688         MY(alpha_min) = 300;
1689         MY(alpha_max) = 400;
1690         MY(alpha_fade) = 600;
1691         MY(bounce) = 1;
1692         MY(color_min) = "0x303030";
1693         MY(color_max) = "0x000000";
1694         MY(gravity) = -0.110000;
1695         MY(notunderwater) = true;
1696         MY(originjitter) = '2.0 2.0 2.0';
1697         MY(sizeincrease) = 11;
1698         MY(size_min) = 3;
1699         MY(size_max) = 3;
1700         MY(tex_max) = 8;
1701         MY(trailspacing) = 6;
1702         MY(type) = "smoke";
1703         MY(velocityjitter) = '3.0 3.0 3.0';
1704         MY(velocitymultiplier) = -0.020000;
1705 }
1706 // marker
1707 SUB(TR_KNIGHTSPIKE) {
1708         MY(alpha_min) = 256;
1709         MY(alpha_max) = 256;
1710         MY(alpha_fade) = 720;
1711         MY(color_min) = "0x666666";
1712         MY(color_max) = "0x000000";
1713         MY(sizeincrease) = -0.100000;
1714         MY(size_min) = 1;
1715         MY(size_max) = 1;
1716         MY(tex_min) = 62;
1717         MY(tex_max) = 62;
1718         MY(trailspacing) = 2;
1719         MY(type) = "alphastatic";
1720 }
1721 // bubbles
1722 SUB(TR_KNIGHTSPIKE) {
1723         MY(alpha_min) = 256;
1724         MY(alpha_max) = 256;
1725         MY(alpha_fade) = 256;
1726         MY(bounce) = 1.500000;
1727         MY(color_min) = "0x404040";
1728         MY(color_max) = "0x808080";
1729         MY(gravity) = -0.125000;
1730         MY(liquidfriction) = 4;
1731         MY(size_min) = 1;
1732         MY(size_max) = 1;
1733         MY(tex_min) = 62;
1734         MY(tex_max) = 62;
1735         MY(trailspacing) = 32;
1736         MY(type) = "bubble";
1737         MY(underwater) = true;
1738         MY(velocityjitter) = '16.0 16.0 16.0';
1739 }
1740
1741 DEF(grenade_explode);
1742 // decal
1743 SUB(grenade_explode) {
1744         MY(alpha_min) = 256;
1745         MY(alpha_max) = 256;
1746         MY(countabsolute) = 1;
1747         MY(lightcolor) = '8.0 4.0 1.0';
1748         MY(lightradiusfade) = 400;
1749         MY(lightradius) = 250;
1750         MY(originjitter) = '26.0 26.0 26.0';
1751         MY(size_min) = 48;
1752         MY(size_max) = 48;
1753         MY(tex_min) = 8;
1754         MY(tex_max) = 16;
1755         MY(type) = "decal";
1756 }
1757 // fire effect which expands then slows
1758 SUB(grenade_explode) {
1759         MY(airfriction) = 8;
1760         MY(alpha_min) = 128;
1761         MY(alpha_max) = 228;
1762         MY(alpha_fade) = 356;
1763         MY(bounce) = 4.500000;
1764         MY(color_min) = "0xe03f00";
1765         MY(color_max) = "0x5e0000";
1766         MY(count) = 40;
1767         MY(liquidfriction) = 8;
1768         MY(notunderwater) = true;
1769         MY(originjitter) = '8.0 8.0 8.0';
1770         MY(sizeincrease) = 20;
1771         MY(size_min) = 16;
1772         MY(size_max) = 26;
1773         MY(tex_min) = 48;
1774         MY(tex_max) = 55;
1775         MY(type) = "static";
1776         MY(velocityjitter) = '256.0 256.0 256.0';
1777 }
1778 // fire effect which make bright dot inside
1779 SUB(grenade_explode) {
1780         MY(airfriction) = 8;
1781         MY(alpha_min) = 228;
1782         MY(alpha_max) = 328;
1783         MY(alpha_fade) = 756;
1784         MY(bounce) = 1;
1785         MY(color_min) = "0xe03f00";
1786         MY(color_max) = "0xffdf92";
1787         MY(count) = 15;
1788         MY(liquidfriction) = 8;
1789         MY(notunderwater) = true;
1790         MY(originjitter) = '8.0 8.0 8.0';
1791         MY(sizeincrease) = 40;
1792         MY(size_min) = 6;
1793         MY(size_max) = 16;
1794         MY(tex_min) = 48;
1795         MY(tex_max) = 55;
1796         MY(type) = "static";
1797         MY(velocityjitter) = '256.0 256.0 256.0';
1798 }
1799 // smoke
1800 SUB(grenade_explode) {
1801         MY(airfriction) = 5;
1802         MY(alpha_min) = 300;
1803         MY(alpha_max) = 550;
1804         MY(alpha_fade) = 556;
1805         MY(bounce) = 6;
1806         MY(color_min) = "0x000000";
1807         MY(color_max) = "0x111111";
1808         MY(count) = 10;
1809         MY(notunderwater) = true;
1810         MY(sizeincrease) = 34;
1811         MY(size_min) = 20;
1812         MY(size_max) = 40;
1813         MY(tex_max) = 8;
1814         MY(type) = "alphastatic";
1815         MY(velocityjitter) = '256.0 256.0 256.0';
1816 }
1817 // underwater bubbles
1818 SUB(grenade_explode) {
1819         MY(alpha_min) = 128;
1820         MY(alpha_max) = 256;
1821         MY(alpha_fade) = 64;
1822         MY(bounce) = 1.500000;
1823         MY(color_min) = "0x404040";
1824         MY(color_max) = "0x808080";
1825         MY(count) = 32;
1826         MY(gravity) = -0.125000;
1827         MY(liquidfriction) = 0.250000;
1828         MY(originjitter) = '16.0 16.0 16.0';
1829         MY(size_min) = 3;
1830         MY(size_max) = 6;
1831         MY(tex_min) = 62;
1832         MY(tex_max) = 62;
1833         MY(type) = "bubble";
1834         MY(underwater) = true;
1835         MY(velocityjitter) = '196.0 196.0 196.0';
1836 }
1837 // underwatershockwave
1838 SUB(grenade_explode) {
1839         MY(alpha_min) = 40;
1840         MY(alpha_max) = 40;
1841         MY(alpha_fade) = 300;
1842         MY(countabsolute) = 1;
1843         MY(sizeincrease) = 1500;
1844         MY(size_min) = 5;
1845         MY(size_max) = 5;
1846         MY(tex_min) = 33;
1847         MY(tex_max) = 33;
1848         MY(type) = "smoke";
1849         MY(underwater) = true;
1850         MY(velocitymultiplier) = 0.300000;
1851 }
1852 // bouncing sparks
1853 SUB(grenade_explode) {
1854         MY(airfriction) = 1;
1855         MY(alpha_min) = 644;
1856         MY(alpha_max) = 956;
1857         MY(alpha_fade) = 484;
1858         MY(bounce) = 1.600000;
1859         MY(color_min) = "0xffa35b";
1860         MY(color_max) = "0xfff2be";
1861         MY(count) = 16;
1862         MY(gravity) = 1;
1863         MY(liquidfriction) = 0.800000;
1864         MY(notunderwater) = true;
1865         MY(originjitter) = '16.0 16.0 16.0';
1866         MY(size_min) = 1;
1867         MY(size_max) = 0.100000;
1868         MY(tex_min) = 40;
1869         MY(tex_max) = 40;
1870         MY(type) = "spark";
1871         MY(velocityjitter) = '424.0 424.0 624.0';
1872         MY(velocityoffset) = '0.0 0.0 80.0';
1873 }
1874 // debris
1875 SUB(grenade_explode) {
1876         MY(airfriction) = 0.500000;
1877         MY(alpha_min) = 644;
1878         MY(alpha_max) = 956;
1879         MY(alpha_fade) = 684;
1880         MY(bounce) = 1.600000;
1881         MY(color_min) = "0x6a3d25";
1882         MY(color_max) = "0xcac5b4";
1883         MY(count) = 12;
1884         MY(gravity) = 1.300000;
1885         MY(notunderwater) = true;
1886         MY(startangle_min) = -180;
1887         MY(startangle_max) = 180;
1888         MY(spin_min) = -1000;
1889         MY(spin_max) = 1000;
1890         MY(size_min) = 2;
1891         MY(size_max) = 6;
1892         MY(tex_min) = 66;
1893         MY(tex_max) = 68;
1894         MY(type) = "alphastatic";
1895         MY(velocityjitter) = '324.0 324.0 524.0';
1896 }
1897
1898 DEF(electro_muzzleflash);
1899 SUB(electro_muzzleflash) {
1900         MY(alpha_min) = 256;
1901         MY(alpha_max) = 256;
1902         MY(alpha_fade) = 512;
1903         MY(color_min) = "0x283880";
1904         MY(color_max) = "0x283880";
1905         MY(countabsolute) = 1;
1906         MY(lightcolor) = '1.5 3.0 6.0';
1907         MY(lightradiusfade) = 2000;
1908         MY(lightradius) = 200;
1909         MY(originjitter) = '1.5 1.5 1.5';
1910         MY(sizeincrease) = -10;
1911         MY(size_min) = 15;
1912         MY(size_max) = 15;
1913         MY(tex_min) = 65;
1914         MY(tex_max) = 65;
1915         MY(type) = "smoke";
1916         MY(velocityjitter) = '6.0 6.0 6.0';
1917         MY(velocitymultiplier) = 0.010000;
1918 }
1919 SUB(electro_muzzleflash) {
1920         MY(airfriction) = 2;
1921         MY(alpha_min) = 110;
1922         MY(alpha_max) = 228;
1923         MY(alpha_fade) = 2024;
1924         MY(color_min) = "0xD9FDFF";
1925         MY(color_max) = "0xD9FDFF";
1926         MY(count) = 7;
1927         MY(originjitter) = '1.0 1.0 1.0';
1928         MY(size_min) = 5;
1929         MY(size_max) = 15;
1930         MY(stretchfactor) = 1.500000;
1931         MY(tex_min) = 8;
1932         MY(tex_max) = 15;
1933         MY(type) = "spark";
1934         MY(velocityjitter) = '150.0 150.0 150.0';
1935         MY(velocitymultiplier) = 0.500000;
1936 }
1937 SUB(electro_muzzleflash) {
1938         MY(airfriction) = 8;
1939         MY(alpha_min) = 110;
1940         MY(alpha_max) = 228;
1941         MY(alpha_fade) = 1024;
1942         MY(color_min) = "0xD9FDFF";
1943         MY(color_max) = "0xD9FDFF";
1944         MY(count) = 5;
1945         MY(gravity) = 1.300000;
1946         MY(originjitter) = '1.0 1.0 1.0';
1947         MY(size_min) = 7;
1948         MY(size_max) = 6;
1949         MY(stretchfactor) = 0.100000;
1950         MY(tex_min) = 41;
1951         MY(tex_max) = 41;
1952         MY(type) = "spark";
1953         MY(velocityjitter) = '350.0 350.0 350.0';
1954         MY(velocitymultiplier) = 2.500000;
1955 }
1956
1957 // electro trail
1958 DEF(TR_NEXUIZPLASMA);
1959 // glowing vapor trail
1960 SUB(TR_NEXUIZPLASMA) {
1961         MY(alpha_min) = 256;
1962         MY(alpha_max) = 256;
1963         MY(alpha_fade) = 968;
1964         MY(color_min) = "0x283880";
1965         MY(color_max) = "0x283880";
1966         MY(lightcolor) = '1.5 3.0 6.0';
1967         MY(lightradius) = 90;
1968         MY(size_min) = 3;
1969         MY(size_max) = 3;
1970         MY(tex_min) = 38;
1971         MY(tex_max) = 38;
1972         MY(trailspacing) = 2;
1973         MY(type) = "static";
1974         MY(velocitymultiplier) = -0.100000;
1975 }
1976 // bright sparks
1977 SUB(TR_NEXUIZPLASMA) {
1978         MY(airfriction) = 12;
1979         MY(alpha_min) = 444;
1980         MY(alpha_max) = 512;
1981         MY(alpha_fade) = 1866;
1982         MY(bounce) = 1;
1983         MY(color_min) = "0x629dff";
1984         MY(color_max) = "0x0018ff";
1985         MY(count) = 1.500000;
1986         MY(originjitter) = '1.0 1.0 1.0';
1987         MY(sizeincrease) = -20;
1988         MY(size_min) = 2;
1989         MY(size_max) = 4;
1990         MY(tex_min) = 42;
1991         MY(tex_max) = 42;
1992         MY(trailspacing) = 12;
1993         MY(type) = "snow";
1994         MY(velocityjitter) = '50.0 50.0 50.0';
1995         MY(velocityoffset) = '0.0 0.0 15.0';
1996 }
1997
1998 DEF(electro_impact);
1999 // decal
2000 SUB(electro_impact) {
2001         MY(alpha_min) = 256;
2002         MY(alpha_max) = 256;
2003         MY(countabsolute) = 1;
2004         MY(lightcolor) = '3.1 4.4 10.0';
2005         MY(lightradiusfade) = 250;
2006         MY(lightradius) = 250;
2007         MY(originjitter) = '17.0 17.0 17.0';
2008         MY(size_min) = 32;
2009         MY(size_max) = 32;
2010         MY(tex_min) = 59;
2011         MY(tex_max) = 59;
2012         MY(type) = "decal";
2013 }
2014 // shockwave
2015 SUB(electro_impact) {
2016         MY(alpha_min) = 40;
2017         MY(alpha_max) = 40;
2018         MY(alpha_fade) = 350;
2019         MY(color_min) = "0x80C0FF";
2020         MY(color_max) = "0x80C0FF";
2021         MY(countabsolute) = 1;
2022         MY(sizeincrease) = 1000;
2023         MY(size_min) = 32;
2024         MY(size_max) = 32;
2025         MY(tex_min) = 33;
2026         MY(tex_max) = 33;
2027         MY(type) = "smoke";
2028         MY(velocitymultiplier) = 44;
2029 }
2030 // flare effect
2031 SUB(electro_impact) {
2032         MY(alpha_min) = 256;
2033         MY(alpha_max) = 256;
2034         MY(alpha_fade) = 512;
2035         MY(color_min) = "0x80C0FF";
2036         MY(color_max) = "0x80C0FF";
2037         MY(countabsolute) = 1;
2038         MY(size_min) = 12;
2039         MY(size_max) = 32;
2040         MY(tex_min) = 38;
2041         MY(tex_max) = 38;
2042         MY(type) = "static";
2043 }
2044 // cloud of bouncing sparks
2045 SUB(electro_impact) {
2046         MY(airfriction) = 6;
2047         MY(alpha_min) = 256;
2048         MY(alpha_max) = 256;
2049         MY(alpha_fade) = 1024;
2050         MY(bounce) = 2;
2051         MY(color_min) = "0x629dff";
2052         MY(color_max) = "0x0018ff";
2053         MY(count) = 30;
2054         MY(gravity) = -0.300000;
2055         MY(originjitter) = '1.0 1.0 1.0';
2056         MY(startangle_min) = -180;
2057         MY(startangle_max) = 180;
2058         MY(spin_min) = -9999;
2059         MY(spin_max) = 9999;
2060         MY(sizeincrease) = -50;
2061         MY(size_min) = 36;
2062         MY(size_max) = 36;
2063         MY(tex_min) = 42;
2064         MY(tex_max) = 42;
2065         MY(type) = "smoke";
2066         MY(velocityjitter) = '512.0 512.0 512.0';
2067 }
2068 // inner cloud of smoke
2069 SUB(electro_impact) {
2070         MY(airfriction) = 30;
2071         MY(alpha_min) = 200;
2072         MY(alpha_max) = 256;
2073         MY(alpha_fade) = 512;
2074         MY(color_min) = "0x629dff";
2075         MY(color_max) = "0x0018ff";
2076         MY(count) = 30;
2077         MY(originjitter) = '20.0 20.0 20.0';
2078         MY(sizeincrease) = 50;
2079         MY(size_min) = 20;
2080         MY(size_max) = 24;
2081         MY(tex_max) = 8;
2082         MY(type) = "smoke";
2083         MY(velocityjitter) = '320.0 320.0 320.0';
2084 }
2085
2086 DEF(electro_ballexplode);
2087 // decal
2088 SUB(electro_ballexplode) {
2089         MY(alpha_min) = 256;
2090         MY(alpha_max) = 256;
2091         MY(countabsolute) = 1;
2092         MY(lightcolor) = '3.1 4.4 10.0';
2093         MY(lightradiusfade) = 250;
2094         MY(lightradius) = 250;
2095         MY(originjitter) = '17.0 17.0 17.0';
2096         MY(size_min) = 32;
2097         MY(size_max) = 32;
2098         MY(tex_min) = 59;
2099         MY(tex_max) = 59;
2100         MY(type) = "decal";
2101 }
2102 // flare effect
2103 SUB(electro_ballexplode) {
2104         MY(alpha_min) = 256;
2105         MY(alpha_max) = 256;
2106         MY(alpha_fade) = 512;
2107         MY(color_min) = "0x80C0FF";
2108         MY(color_max) = "0x80C0FF";
2109         MY(countabsolute) = 1;
2110         MY(size_min) = 32;
2111         MY(size_max) = 32;
2112         MY(tex_min) = 38;
2113         MY(tex_max) = 38;
2114         MY(type) = "static";
2115 }
2116 // cloud of bouncing sparks
2117 SUB(electro_ballexplode) {
2118         MY(alpha_min) = 256;
2119         MY(alpha_max) = 256;
2120         MY(alpha_fade) = 1024;
2121         MY(bounce) = 2;
2122         MY(color_min) = "0xFDFFD9";
2123         MY(color_max) = "0xFDFFD9";
2124         MY(count) = 64;
2125         MY(originjitter) = '1.0 1.0 1.0';
2126         MY(size_min) = 1;
2127         MY(size_max) = 2;
2128         MY(stretchfactor) = 0.400000;
2129         MY(tex_min) = 41;
2130         MY(tex_max) = 41;
2131         MY(type) = "spark";
2132         MY(velocityjitter) = '512.0 512.0 512.0';
2133 }
2134 // inner cloud of smoke
2135 SUB(electro_ballexplode) {
2136         MY(alpha_min) = 256;
2137         MY(alpha_max) = 256;
2138         MY(alpha_fade) = 512;
2139         MY(color_min) = "0x202020";
2140         MY(color_max) = "0x404040";
2141         MY(count) = 8;
2142         MY(originjitter) = '20.0 20.0 20.0';
2143         MY(size_min) = 24;
2144         MY(size_max) = 24;
2145         MY(tex_max) = 8;
2146         MY(type) = "smoke";
2147         MY(velocityjitter) = '32.0 32.0 32.0';
2148 }
2149
2150 DEF(electro_combo);
2151 // decal
2152 SUB(electro_combo) {
2153         MY(alpha_min) = 256;
2154         MY(alpha_max) = 256;
2155         MY(countabsolute) = 1;
2156         MY(lightcolor) = '4.0 5.0 6.0';
2157         MY(lightradiusfade) = 300;
2158         MY(lightradius) = 400;
2159         MY(originjitter) = '17.0 17.0 17.0';
2160         MY(size_min) = 64;
2161         MY(size_max) = 64;
2162         MY(tex_min) = 59;
2163         MY(tex_max) = 59;
2164         MY(type) = "decal";
2165 }
2166 // flare effect
2167 SUB(electro_combo) {
2168         MY(alpha_min) = 128;
2169         MY(alpha_max) = 128;
2170         MY(alpha_fade) = 64;
2171         MY(color_min) = "0x80C0FF";
2172         MY(color_max) = "0x80C0FF";
2173         MY(countabsolute) = 1;
2174         MY(size_min) = 48;
2175         MY(size_max) = 48;
2176         MY(tex_min) = 38;
2177         MY(tex_max) = 38;
2178         MY(type) = "static";
2179 }
2180 // large sparks
2181 SUB(electro_combo) {
2182         MY(airfriction) = 6;
2183         MY(alpha_min) = 156;
2184         MY(alpha_max) = 156;
2185         MY(alpha_fade) = 156;
2186         MY(bounce) = 2;
2187         MY(color_min) = "0x2030FF";
2188         MY(color_max) = "0x80C0FF";
2189         MY(count) = 5;
2190         MY(liquidfriction) = 16;
2191         MY(sizeincrease) = 50;
2192         MY(size_min) = 32;
2193         MY(size_max) = 32;
2194         MY(tex_max) = 7;
2195         MY(type) = "static";
2196         MY(velocityjitter) = '512.0 512.0 512.0';
2197 }
2198 SUB(electro_combo) {
2199         MY(alpha_min) = 444;
2200         MY(alpha_max) = 512;
2201         MY(alpha_fade) = 700;
2202         MY(bounce) = 1.600000;
2203         MY(color_min) = "0xa9cacf";
2204         MY(color_max) = "0x0054ff";
2205         MY(count) = 32;
2206         MY(gravity) = 0.300000;
2207         MY(originjitter) = '1.0 1.0 1.0';
2208         MY(size_min) = 2;
2209         MY(size_max) = 4;
2210         MY(stretchfactor) = 2;
2211         MY(tex_min) = 41;
2212         MY(tex_max) = 41;
2213         MY(type) = "spark";
2214         MY(velocityjitter) = '312.0 312.0 312.0';
2215         MY(velocitymultiplier) = 3;
2216 }
2217 // inner cloud of smoke
2218 SUB(electro_combo) {
2219         MY(alpha_min) = 256;
2220         MY(alpha_max) = 256;
2221         MY(alpha_fade) = 256;
2222         MY(color_min) = "0x202020";
2223         MY(color_max) = "0x404040";
2224         MY(count) = 0.125000;
2225         MY(originjitter) = '20.0 20.0 20.0';
2226         MY(size_min) = 24;
2227         MY(size_max) = 24;
2228         MY(tex_max) = 8;
2229         MY(type) = "smoke";
2230         MY(velocityjitter) = '32.0 32.0 32.0';
2231 }
2232 // shockwave
2233 SUB(electro_combo) {
2234         MY(alpha_min) = 40;
2235         MY(alpha_max) = 40;
2236         MY(alpha_fade) = 100;
2237         MY(color_min) = "0xa9cacf";
2238         MY(color_max) = "0x0054ff";
2239         MY(countabsolute) = 1;
2240         MY(sizeincrease) = 600;
2241         MY(size_min) = 30;
2242         MY(size_max) = 30;
2243         MY(tex_min) = 33;
2244         MY(tex_max) = 33;
2245         MY(type) = "smoke";
2246         MY(velocitymultiplier) = 0.300000;
2247 }
2248
2249 DEF(crylink_muzzleflash);
2250 SUB(crylink_muzzleflash) {
2251         MY(alpha_min) = 128;
2252         MY(alpha_max) = 128;
2253         MY(alpha_fade) = 2024;
2254         MY(color_min) = "0xdd9cff";
2255         MY(color_max) = "0xff0090";
2256         MY(count) = 0.500000;
2257         MY(lightcolor) = '1.6 0.2 2.0';
2258         MY(lightradiusfade) = 2000;
2259         MY(lightradius) = 200;
2260         MY(size_min) = 15;
2261         MY(size_max) = 20;
2262         MY(tex_min) = 65;
2263         MY(tex_max) = 65;
2264         MY(type) = "smoke";
2265         MY(velocitymultiplier) = 0.010000;
2266 }
2267 SUB(crylink_muzzleflash) {
2268         MY(airfriction) = 12;
2269         MY(alpha_max) = 128;
2270         MY(alpha_fade) = 1024;
2271         MY(color_min) = "0xA080C0";
2272         MY(color_max) = "0xA080C0";
2273         MY(count) = 5;
2274         MY(originjitter) = '1.0 1.0 1.0';
2275         MY(size_min) = 5;
2276         MY(size_max) = 10;
2277         MY(stretchfactor) = 1.500000;
2278         MY(tex_min) = 35;
2279         MY(tex_max) = 36;
2280         MY(type) = "spark";
2281         MY(velocityjitter) = '200.0 200.0 200.0';
2282         MY(velocitymultiplier) = 0.300000;
2283 }
2284
2285 DEF(crylink_impact);
2286 // decal
2287 SUB(crylink_impact) {
2288         MY(alpha_min) = 256;
2289         MY(alpha_max) = 256;
2290         MY(countabsolute) = 1;
2291         MY(originjitter) = '12.0 12.0 12.0';
2292         MY(size_min) = 24;
2293         MY(size_max) = 24;
2294         MY(tex_min) = 47;
2295         MY(tex_max) = 47;
2296         MY(type) = "decal";
2297 }
2298 // purple flare effect
2299 SUB(crylink_impact) {
2300         MY(alpha_min) = 256;
2301         MY(alpha_max) = 256;
2302         MY(alpha_fade) = 512;
2303         MY(color_min) = "0x504060";
2304         MY(color_max) = "0x504060";
2305         MY(countabsolute) = 1;
2306         MY(size_min) = 24;
2307         MY(size_max) = 24;
2308         MY(tex_min) = 39;
2309         MY(tex_max) = 39;
2310         MY(type) = "static";
2311 }
2312 // purple sparks
2313 SUB(crylink_impact) {
2314         MY(alpha_min) = 256;
2315         MY(alpha_max) = 256;
2316         MY(alpha_fade) = 1024;
2317         MY(bounce) = 2;
2318         MY(color_min) = "0xA040C0";
2319         MY(color_max) = "0xA040C0";
2320         MY(count) = 40;
2321         MY(size_min) = 6;
2322         MY(size_max) = 6;
2323         MY(tex_min) = 41;
2324         MY(tex_max) = 41;
2325         MY(type) = "spark";
2326         MY(velocityjitter) = '512.0 512.0 512.0';
2327 }
2328 // purple splash
2329 SUB(crylink_impact) {
2330         MY(alpha_min) = 256;
2331         MY(alpha_max) = 256;
2332         MY(alpha_fade) = 512;
2333         MY(color_min) = "0xE070FF";
2334         MY(color_max) = "0xE070FF";
2335         MY(count) = 1.500000;
2336         MY(size_min) = 16;
2337         MY(size_max) = 16;
2338         MY(type) = "static";
2339         MY(velocityjitter) = '32.0 32.0 32.0';
2340 }
2341 // purple splash
2342 SUB(crylink_impact) {
2343         MY(alpha_min) = 256;
2344         MY(alpha_max) = 256;
2345         MY(alpha_fade) = 1024;
2346         MY(color_min) = "0xE070FF";
2347         MY(color_max) = "0xE070FF";
2348         MY(count) = 3;
2349         MY(size_min) = 16;
2350         MY(size_max) = 16;
2351         MY(type) = "static";
2352         MY(velocityjitter) = '256.0 256.0 256.0';
2353 }
2354
2355 DEF(nex_muzzleflash);
2356 SUB(nex_muzzleflash) {
2357         MY(airfriction) = 9;
2358         MY(alpha_min) = 328;
2359         MY(alpha_max) = 328;
2360         MY(alpha_fade) = 4000;
2361         MY(color_min) = "0x202020";
2362         MY(color_max) = "0x0072ff";
2363         MY(count) = 12;
2364         MY(lightcolor) = '2.0 2.5 3.0';
2365         MY(lightradiusfade) = 200;
2366         MY(lightradius) = 200;
2367         MY(originjitter) = '4.0 4.0 4.0';
2368         MY(sizeincrease) = -100;
2369         MY(size_min) = 16;
2370         MY(size_max) = 16;
2371         MY(stretchfactor) = 2;
2372         MY(tex_min) = 48;
2373         MY(tex_max) = 55;
2374         MY(type) = "spark";
2375         MY(velocityjitter) = '180.0 180.0 180.0';
2376         MY(velocitymultiplier) = 1.400000;
2377 }
2378 SUB(nex_muzzleflash) {
2379         MY(airfriction) = 9;
2380         MY(alpha_max) = 128;
2381         MY(alpha_fade) = 1024;
2382         MY(color_min) = "0xD9FDFF";
2383         MY(color_max) = "0xD9FDFF";
2384         MY(count) = 50;
2385         MY(originjitter) = '1.0 1.0 1.0';
2386         MY(size_min) = 1;
2387         MY(size_max) = 1;
2388         MY(tex_min) = 41;
2389         MY(tex_max) = 41;
2390         MY(type) = "spark";
2391         MY(velocityjitter) = '600.0 600.0 600.0';
2392         MY(velocitymultiplier) = 1.500000;
2393 }
2394
2395 // vortex beam
2396 DEF(nex_beam);
2397 SUB(nex_beam) {
2398         MY(airfriction) = 5;
2399         MY(alpha_min) = 64;
2400         MY(alpha_max) = 128;
2401         MY(alpha_fade) = 64;
2402         MY(color_min) = "0x1680A0";
2403         MY(color_max) = "0x1680A0";
2404         MY(sizeincrease) = 2;
2405         MY(size_min) = 4;
2406         MY(size_max) = 4;
2407         MY(tex_min) = 32;
2408         MY(tex_max) = 32;
2409         MY(trailspacing) = 64;
2410         MY(type) = "static";
2411 }
2412 // drifting smoke
2413 SUB(nex_beam) {
2414         MY(airfriction) = 9;
2415         MY(alpha_min) = 32;
2416         MY(alpha_max) = 64;
2417         MY(alpha_fade) = 32;
2418         MY(color_min) = "0x5080A0";
2419         MY(color_max) = "0x5080A0";
2420         MY(sizeincrease) = 8;
2421         MY(size_min) = 1;
2422         MY(size_max) = 1;
2423         MY(tex_max) = 8;
2424         MY(trailspacing) = 12;
2425         MY(type) = "static";
2426         MY(velocityjitter) = '64.0 64.0 64.0';
2427 }
2428 // bright core
2429 SUB(nex_beam) {
2430         MY(alpha_min) = 256;
2431         MY(alpha_max) = 256;
2432         MY(alpha_fade) = 1280;
2433         MY(color_min) = "0x80CDFF";
2434         MY(color_max) = "0x80CDFF";
2435         MY(size_min) = 4;
2436         MY(size_max) = 4;
2437         MY(trailspacing) = 12;
2438         MY(type) = "static";
2439 }
2440 // sparks
2441 SUB(nex_beam) {
2442         MY(airfriction) = 5;
2443         MY(alpha_min) = 64;
2444         MY(alpha_max) = 128;
2445         MY(alpha_fade) = 80;
2446         MY(color_min) = "0x1680A0";
2447         MY(color_max) = "0x1680A0";
2448         MY(gravity) = -0.010000;
2449         MY(size_min) = 1;
2450         MY(size_max) = 1;
2451         MY(tex_min) = 63;
2452         MY(tex_max) = 63;
2453         MY(trailspacing) = 16;
2454         MY(type) = "snow";
2455 }
2456
2457 DEF(nex_impact);
2458 // decal
2459 SUB(nex_impact) {
2460         MY(alpha_min) = 256;
2461         MY(alpha_max) = 256;
2462         MY(countabsolute) = 1;
2463         MY(lightcolor) = '4.0 6.0 8.0';
2464         MY(lightradiusfade) = 250;
2465         MY(lightradius) = 200;
2466         MY(originjitter) = '14.0 14.0 14.0';
2467         MY(startangle_min) = -180;
2468         MY(startangle_max) = 180;
2469         MY(size_min) = 24;
2470         MY(size_max) = 24;
2471         MY(tex_min) = 47;
2472         MY(tex_max) = 47;
2473         MY(type) = "decal";
2474 }
2475 // rotating something
2476 SUB(nex_impact) {
2477         MY(alpha_min) = 55;
2478         MY(alpha_max) = 55;
2479         MY(alpha_fade) = 50;
2480         MY(color_min) = "0x1680A0";
2481         MY(color_max) = "0x1680A0";
2482         MY(count) = 5;
2483         MY(startangle_min) = 180;
2484         MY(startangle_max) = -180;
2485         MY(spin_min) = 500;
2486         MY(spin_max) = -500;
2487         MY(sizeincrease) = 20;
2488         MY(size_min) = 25;
2489         MY(size_max) = 28;
2490         MY(tex_min) = 46;
2491         MY(tex_max) = 46;
2492         MY(type) = "smoke";
2493 }
2494 // shockwave
2495 SUB(nex_impact) {
2496         MY(alpha_min) = 50;
2497         MY(alpha_max) = 50;
2498         MY(alpha_fade) = 400;
2499         MY(color_min) = "0x1680A0";
2500         MY(color_max) = "0x1680A0";
2501         MY(countabsolute) = 1;
2502         MY(sizeincrease) = 900;
2503         MY(size_min) = 16;
2504         MY(size_max) = 16;
2505         MY(tex_min) = 33;
2506         MY(tex_max) = 33;
2507         MY(type) = "static";
2508 }
2509 // shockwave2
2510 SUB(nex_impact) {
2511         MY(alpha_min) = 50;
2512         MY(alpha_max) = 50;
2513         MY(alpha_fade) = 100;
2514         MY(color_min) = "0x1680A0";
2515         MY(color_max) = "0x1680A0";
2516         MY(countabsolute) = 1;
2517         MY(sizeincrease) = 500;
2518         MY(size_min) = 5;
2519         MY(size_max) = 5;
2520         MY(tex_min) = 65;
2521         MY(tex_max) = 65;
2522         MY(type) = "static";
2523 }
2524 // flare effect
2525 SUB(nex_impact) {
2526         MY(alpha_min) = 256;
2527         MY(alpha_max) = 256;
2528         MY(alpha_fade) = 256;
2529         MY(color_min) = "0x80C0FF";
2530         MY(color_max) = "0x80C0FF";
2531         MY(countabsolute) = 1;
2532         MY(size_min) = 8;
2533         MY(size_max) = 8;
2534         MY(tex_min) = 37;
2535         MY(tex_max) = 37;
2536         MY(type) = "static";
2537 }
2538 // small sparks which glow brightly but live briefly
2539 SUB(nex_impact) {
2540         MY(airfriction) = 9;
2541         MY(alpha_max) = 128;
2542         MY(alpha_fade) = 512;
2543         MY(bounce) = 2;
2544         MY(color_min) = "0xD9FDFF";
2545         MY(color_max) = "0xD9FDFF";
2546         MY(count) = 64;
2547         MY(size_min) = 4;
2548         MY(size_max) = 4;
2549         MY(stretchfactor) = 3;
2550         MY(tex_min) = 41;
2551         MY(tex_max) = 41;
2552         MY(type) = "spark";
2553         MY(velocityjitter) = '600.0 600.0 600.0';
2554         MY(velocitymultiplier) = 0.500000;
2555 }
2556 // small sparks that live longer
2557 SUB(nex_impact) {
2558         MY(airfriction) = 2;
2559         MY(alpha_min) = 255;
2560         MY(alpha_max) = 255;
2561         MY(alpha_fade) = 112;
2562         MY(bounce) = 1.600000;
2563         MY(color_min) = "0xD9FDFF";
2564         MY(color_max) = "0xD9FDFF";
2565         MY(count) = 16;
2566         MY(gravity) = 1;
2567         MY(size_min) = 2;
2568         MY(size_max) = 2;
2569         MY(stretchfactor) = 0.700000;
2570         MY(tex_min) = 41;
2571         MY(tex_max) = 41;
2572         MY(type) = "spark";
2573         MY(velocityjitter) = '300.0 300.0 600.0';
2574         MY(velocitymultiplier) = 2.500000;
2575 }
2576
2577 DEF(hagar_muzzleflash);
2578 SUB(hagar_muzzleflash) {
2579         MY(alpha_min) = 256;
2580         MY(alpha_max) = 256;
2581         MY(alpha_fade) = 512;
2582         MY(color_min) = "0x202020";
2583         MY(color_max) = "0x404040";
2584         MY(count) = 2;
2585         MY(lightcolor) = '2.0 1.5 0.2';
2586         MY(lightradiusfade) = 2000;
2587         MY(lightradius) = 200;
2588         MY(originjitter) = '1.5 1.5 1.5';
2589         MY(size_min) = 5;
2590         MY(size_max) = 5;
2591         MY(tex_max) = 8;
2592         MY(type) = "smoke";
2593         MY(velocityjitter) = '6.0 6.0 6.0';
2594         MY(velocitymultiplier) = 0.010000;
2595 }
2596 SUB(hagar_muzzleflash) {
2597         MY(airfriction) = 12;
2598         MY(alpha_max) = 128;
2599         MY(alpha_fade) = 1024;
2600         MY(color_min) = "0xff8400";
2601         MY(color_max) = "0xff4200";
2602         MY(count) = 15;
2603         MY(originjitter) = '1.0 1.0 1.0';
2604         MY(startangle_min) = -180;
2605         MY(startangle_max) = 180;
2606         MY(spin_min) = -400;
2607         MY(spin_max) = 400;
2608         MY(size_min) = 5;
2609         MY(size_max) = 10;
2610         MY(stretchfactor) = 2;
2611         MY(tex_min) = 48;
2612         MY(tex_max) = 55;
2613         MY(type) = "spark";
2614         MY(velocityjitter) = '200.0 200.0 200.0';
2615         MY(velocitymultiplier) = 0.500000;
2616 }
2617
2618 DEF(hagar_bounce);
2619 SUB(hagar_bounce) {
2620         MY(alpha_min) = 256;
2621         MY(alpha_max) = 256;
2622         MY(alpha_fade) = 256;
2623         MY(color_min) = "0x202020";
2624         MY(color_max) = "0x404040";
2625         MY(count) = 2;
2626         MY(lightcolor) = '2.0 1.5 0.2';
2627         MY(lightradiusfade) = 300;
2628         MY(lightradius) = 60;
2629         MY(originjitter) = '1.5 1.5 1.5';
2630         MY(size_min) = 5;
2631         MY(size_max) = 5;
2632         MY(tex_max) = 8;
2633         MY(type) = "smoke";
2634         MY(velocityjitter) = '6.0 6.0 6.0';
2635         MY(velocitymultiplier) = 0.010000;
2636 }
2637 SUB(hagar_bounce) {
2638         MY(airfriction) = 12;
2639         MY(alpha_max) = 256;
2640         MY(alpha_fade) = 256;
2641         MY(bounce) = 1.500000;
2642         MY(color_min) = "0xFFFDD9";
2643         MY(color_max) = "0xFFFDD9";
2644         MY(count) = 15;
2645         MY(gravity) = 1;
2646         MY(originjitter) = '1.0 1.0 1.0';
2647         MY(size_min) = 3;
2648         MY(size_max) = 3;
2649         MY(tex_min) = 40;
2650         MY(tex_max) = 40;
2651         MY(type) = "spark";
2652         MY(velocityjitter) = '600.0 600.0 600.0';
2653         MY(velocitymultiplier) = 0.500000;
2654 }
2655
2656 DEF(hagar_explode);
2657 // decal
2658 SUB(hagar_explode) {
2659         MY(alpha_min) = 256;
2660         MY(alpha_max) = 256;
2661         MY(countabsolute) = 1;
2662         MY(lightcolor) = '8.0 4.0 1.0';
2663         MY(lightradiusfade) = 400;
2664         MY(lightradius) = 120;
2665         MY(originjitter) = '14.0 14.0 14.0';
2666         MY(size_min) = 28;
2667         MY(size_max) = 38;
2668         MY(tex_min) = 8;
2669         MY(tex_max) = 16;
2670         MY(type) = "decal";
2671 }
2672 // fire effect which make bright dot inside
2673 SUB(hagar_explode) {
2674         MY(airfriction) = 8;
2675         MY(alpha_min) = 80;
2676         MY(alpha_max) = 200;
2677         MY(alpha_fade) = 356;
2678         MY(bounce) = 1.500000;
2679         MY(color_min) = "0xffe955";
2680         MY(color_max) = "0xff5a00";
2681         MY(count) = 3.500000;
2682         MY(liquidfriction) = 8;
2683         MY(notunderwater) = true;
2684         MY(originjitter) = '8.0 8.0 8.0';
2685         MY(sizeincrease) = 5;
2686         MY(size_min) = 16;
2687         MY(size_max) = 26;
2688         MY(tex_min) = 48;
2689         MY(tex_max) = 55;
2690         MY(type) = "smoke";
2691         MY(velocityjitter) = '156.0 156.0 156.0';
2692 }
2693 // fire effect which expands then slows
2694 SUB(hagar_explode) {
2695         MY(airfriction) = 12;
2696         MY(alpha_min) = 128;
2697         MY(alpha_max) = 256;
2698         MY(alpha_fade) = 456;
2699         MY(bounce) = 1.500000;
2700         MY(color_min) = "0x8f0d00";
2701         MY(color_max) = "0xff5a00";
2702         MY(count) = 12;
2703         MY(liquidfriction) = 8;
2704         MY(notunderwater) = true;
2705         MY(originjitter) = '8.0 8.0 8.0';
2706         MY(sizeincrease) = 15;
2707         MY(size_min) = 20;
2708         MY(size_max) = 26;
2709         MY(tex_min) = 48;
2710         MY(tex_max) = 55;
2711         MY(type) = "static";
2712         MY(velocityjitter) = '286.0 286.0 286.0';
2713 }
2714 // smoke
2715 SUB(hagar_explode) {
2716         MY(airfriction) = 5;
2717         MY(alpha_min) = 200;
2718         MY(alpha_max) = 500;
2719         MY(alpha_fade) = 600;
2720         MY(bounce) = 2;
2721         MY(color_min) = "0x000000";
2722         MY(color_max) = "0x111111";
2723         MY(count) = 7;
2724         MY(notunderwater) = true;
2725         MY(sizeincrease) = 20;
2726         MY(size_min) = 20;
2727         MY(size_max) = 40;
2728         MY(tex_max) = 8;
2729         MY(type) = "alphastatic";
2730         MY(velocityjitter) = '244.0 244.0 244.0';
2731 }
2732 // underwater bubbles
2733 SUB(hagar_explode) {
2734         MY(alpha_min) = 128;
2735         MY(alpha_max) = 256;
2736         MY(alpha_fade) = 64;
2737         MY(bounce) = 1.500000;
2738         MY(color_min) = "0x404040";
2739         MY(color_max) = "0x808080";
2740         MY(count) = 16;
2741         MY(gravity) = -0.125000;
2742         MY(liquidfriction) = 0.250000;
2743         MY(originjitter) = '16.0 16.0 16.0';
2744         MY(size_min) = 3;
2745         MY(size_max) = 3;
2746         MY(tex_min) = 62;
2747         MY(tex_max) = 62;
2748         MY(type) = "bubble";
2749         MY(underwater) = true;
2750         MY(velocityjitter) = '96.0 96.0 96.0';
2751 }
2752 // bouncing sparks
2753 SUB(hagar_explode) {
2754         MY(airfriction) = 1;
2755         MY(alpha_min) = 644;
2756         MY(alpha_max) = 956;
2757         MY(alpha_fade) = 684;
2758         MY(bounce) = 1.600000;
2759         MY(color_min) = "0xffa35b";
2760         MY(color_max) = "0xfff2be";
2761         MY(count) = 4;
2762         MY(gravity) = 1;
2763         MY(liquidfriction) = 0.800000;
2764         MY(notunderwater) = true;
2765         MY(originjitter) = '16.0 16.0 16.0';
2766         MY(size_min) = 1;
2767         MY(size_max) = 0.100000;
2768         MY(tex_min) = 40;
2769         MY(tex_max) = 40;
2770         MY(type) = "spark";
2771         MY(velocityjitter) = '224.0 224.0 224.0';
2772         MY(velocityoffset) = '0.0 0.0 80.0';
2773 }
2774
2775 DEF(rocketlauncher_muzzleflash);
2776 SUB(rocketlauncher_muzzleflash) {
2777         MY(airfriction) = 2;
2778         MY(alpha_min) = 256;
2779         MY(alpha_max) = 256;
2780         MY(alpha_fade) = 256;
2781         MY(color_min) = "0x202020";
2782         MY(color_max) = "0x404040";
2783         MY(count) = 10;
2784         MY(originjitter) = '1.5 1.5 1.5';
2785         MY(sizeincrease) = 20;
2786         MY(size_min) = 1;
2787         MY(size_max) = 1;
2788         MY(tex_max) = 8;
2789         MY(type) = "smoke";
2790         MY(velocityjitter) = '40.0 40.0 40.0';
2791         MY(velocitymultiplier) = -0.130000;
2792 }
2793 SUB(rocketlauncher_muzzleflash) {
2794         MY(airfriction) = 9;
2795         MY(alpha_min) = 10;
2796         MY(alpha_max) = 25;
2797         MY(alpha_fade) = 20;
2798         MY(color_min) = "0xFFFDD9";
2799         MY(color_max) = "0xFFFDD9";
2800         MY(count) = 6;
2801         MY(originjitter) = '3.0 3.0 3.0';
2802         MY(startangle_min) = -180;
2803         MY(startangle_max) = 180;
2804         MY(spin_min) = -30;
2805         MY(spin_max) = 30;
2806         MY(sizeincrease) = 20;
2807         MY(size_min) = 5;
2808         MY(size_max) = 10;
2809         MY(tex_min) = 35;
2810         MY(tex_max) = 36;
2811         MY(type) = "smoke";
2812         MY(velocityjitter) = '100.0 100.0 100.0';
2813         MY(velocitymultiplier) = 0.300000;
2814 }
2815
2816 // rocket trail
2817 DEF(TR_ROCKET);
2818 // smoke
2819 SUB(TR_ROCKET) {
2820         MY(alpha_min) = 200;
2821         MY(alpha_max) = 300;
2822         MY(alpha_fade) = 200;
2823         MY(bounce) = 1;
2824         MY(color_min) = "0x000000";
2825         MY(color_max) = "0x666666";
2826         MY(lightcolor) = '6.0 3.0 1.0';
2827         MY(lightradius) = 150;
2828         MY(notunderwater) = true;
2829         MY(originjitter) = '2.0 2.0 2.0';
2830         MY(startangle_min) = -180;
2831         MY(startangle_max) = 180;
2832         MY(spin_min) = -30;
2833         MY(spin_max) = 30;
2834         MY(sizeincrease) = 11;
2835         MY(size_min) = 3;
2836         MY(size_max) = 4;
2837         MY(tex_max) = 8;
2838         MY(trailspacing) = 10;
2839         MY(type) = "smoke";
2840         MY(velocityjitter) = '3.0 3.0 3.0';
2841         MY(velocitymultiplier) = -0.020000;
2842 }
2843 // fire
2844 SUB(TR_ROCKET) {
2845         MY(airfriction) = 8;
2846         MY(alpha_min) = 100;
2847         MY(alpha_max) = 144;
2848         MY(alpha_fade) = 588;
2849         MY(color_min) = "0xffdf72";
2850         MY(color_max) = "0x811200";
2851         MY(sizeincrease) = -30;
2852         MY(size_min) = 7;
2853         MY(size_max) = 7;
2854         MY(tex_min) = 48;
2855         MY(tex_max) = 55;
2856         MY(trailspacing) = 4;
2857         MY(type) = "static";
2858         MY(velocityjitter) = '32.0 32.0 32.0';
2859         MY(velocitymultiplier) = -1.500000;
2860 }
2861 // bubbles
2862 SUB(TR_ROCKET) {
2863         MY(alpha_min) = 256;
2864         MY(alpha_max) = 256;
2865         MY(alpha_fade) = 256;
2866         MY(bounce) = 1.500000;
2867         MY(gravity) = -0.125000;
2868         MY(liquidfriction) = 4;
2869         MY(size_min) = 1;
2870         MY(size_max) = 2;
2871         MY(tex_min) = 62;
2872         MY(tex_max) = 62;
2873         MY(trailspacing) = 16;
2874         MY(type) = "bubble";
2875         MY(underwater) = true;
2876         MY(velocityjitter) = '16.0 16.0 16.0';
2877         MY(velocitymultiplier) = -0.310000;
2878 }
2879 // sparks
2880 SUB(TR_ROCKET) {
2881         MY(airfriction) = 5;
2882         MY(alpha_min) = 444;
2883         MY(alpha_max) = 512;
2884         MY(alpha_fade) = 1866;
2885         MY(bounce) = 1;
2886         MY(color_min) = "0xFFFDD9";
2887         MY(color_max) = "0xFFFDD9";
2888         MY(notunderwater) = true;
2889         MY(originjitter) = '1.0 1.0 1.0';
2890         MY(size_min) = 0.500000;
2891         MY(size_max) = 0.500000;
2892         MY(stretchfactor) = 0.300000;
2893         MY(tex_min) = 40;
2894         MY(tex_max) = 40;
2895         MY(trailspacing) = 20;
2896         MY(type) = "spark";
2897         MY(velocityjitter) = '100.0 100.0 100.0';
2898         MY(velocitymultiplier) = -0.310000;
2899 }
2900
2901 // rocket explosion (bigger than mortar and hagar)
2902 DEF(rocket_explode);
2903 SUB(rocket_explode) {
2904         MY(alpha_min) = 256;
2905         MY(alpha_max) = 256;
2906         MY(countabsolute) = 1;
2907         MY(lightcolor) = '8.0 4.0 1.0';
2908         MY(lightradiusfade) = 750;
2909         MY(lightradius) = 400;
2910         MY(originjitter) = '23.0 23.0 23.0';
2911         MY(size_min) = 72;
2912         MY(size_max) = 72;
2913         MY(tex_min) = 8;
2914         MY(tex_max) = 16;
2915         MY(type) = "decal";
2916 }
2917 // fire effect
2918 SUB(rocket_explode) {
2919         MY(airfriction) = 8;
2920         MY(alpha_min) = 200;
2921         MY(alpha_max) = 256;
2922         MY(alpha_fade) = 512;
2923         MY(bounce) = 1.500000;
2924         MY(color_min) = "0x8f0d00";
2925         MY(color_max) = "0xff5a00";
2926         MY(count) = 32;
2927         MY(liquidfriction) = 8;
2928         MY(notunderwater) = true;
2929         MY(originjitter) = '8.0 8.0 8.0';
2930         MY(sizeincrease) = 45;
2931         MY(size_min) = 33;
2932         MY(size_max) = 44;
2933         MY(tex_min) = 48;
2934         MY(tex_max) = 55;
2935         MY(type) = "static";
2936         MY(velocityjitter) = '512.0 512.0 512.0';
2937 }
2938 // fire effect 2
2939 SUB(rocket_explode) {
2940         MY(airfriction) = 19;
2941         MY(alpha_min) = 200;
2942         MY(alpha_max) = 256;
2943         MY(alpha_fade) = 612;
2944         MY(bounce) = 2.500000;
2945         MY(color_min) = "0xea691b";
2946         MY(color_max) = "0xeed05a";
2947         MY(count) = 14;
2948         MY(liquidfriction) = 19;
2949         MY(notunderwater) = true;
2950         MY(originjitter) = '8.0 8.0 8.0';
2951         MY(sizeincrease) = 55;
2952         MY(size_min) = 33;
2953         MY(size_max) = 44;
2954         MY(tex_min) = 48;
2955         MY(tex_max) = 55;
2956         MY(type) = "smoke";
2957         MY(velocityjitter) = '912.0 912.0 912.0';
2958 }
2959 // smoke
2960 SUB(rocket_explode) {
2961         MY(airfriction) = 5;
2962         MY(alpha_min) = 200;
2963         MY(alpha_max) = 450;
2964         MY(alpha_fade) = 456;
2965         MY(bounce) = 2;
2966         MY(color_min) = "0x000000";
2967         MY(color_max) = "0x111111";
2968         MY(count) = 32;
2969         MY(notunderwater) = true;
2970         MY(sizeincrease) = 44;
2971         MY(size_min) = 20;
2972         MY(size_max) = 40;
2973         MY(tex_max) = 8;
2974         MY(type) = "alphastatic";
2975         MY(velocityjitter) = '444.0 444.0 444.0';
2976 }
2977 // underwater bubbles
2978 SUB(rocket_explode) {
2979         MY(alpha_min) = 128;
2980         MY(alpha_max) = 256;
2981         MY(alpha_fade) = 64;
2982         MY(bounce) = 1.500000;
2983         MY(color_min) = "0x404040";
2984         MY(color_max) = "0x808080";
2985         MY(count) = 32;
2986         MY(gravity) = -0.125000;
2987         MY(liquidfriction) = 0.250000;
2988         MY(originjitter) = '16.0 16.0 16.0';
2989         MY(size_min) = 3;
2990         MY(size_max) = 3;
2991         MY(tex_min) = 62;
2992         MY(tex_max) = 62;
2993         MY(type) = "bubble";
2994         MY(underwater) = true;
2995         MY(velocityjitter) = '144.0 144.0 144.0';
2996 }
2997 // underwatershockwave
2998 SUB(rocket_explode) {
2999         MY(alpha_min) = 40;
3000         MY(alpha_max) = 40;
3001         MY(alpha_fade) = 300;
3002         MY(countabsolute) = 1;
3003         MY(sizeincrease) = 1900;
3004         MY(size_min) = 30;
3005         MY(size_max) = 30;
3006         MY(tex_min) = 33;
3007         MY(tex_max) = 33;
3008         MY(type) = "smoke";
3009         MY(underwater) = true;
3010         MY(velocitymultiplier) = 0.300000;
3011 }
3012 // bouncing sparks
3013 SUB(rocket_explode) {
3014         MY(airfriction) = 1;
3015         MY(alpha_min) = 644;
3016         MY(alpha_max) = 956;
3017         MY(alpha_fade) = 484;
3018         MY(bounce) = 1.600000;
3019         MY(color_min) = "0xffa35b";
3020         MY(color_max) = "0xfff2be";
3021         MY(count) = 16;
3022         MY(gravity) = 1;
3023         MY(liquidfriction) = 0.800000;
3024         MY(notunderwater) = true;
3025         MY(originjitter) = '16.0 16.0 16.0';
3026         MY(size_min) = 1;
3027         MY(size_max) = 0.100000;
3028         MY(tex_min) = 40;
3029         MY(tex_max) = 40;
3030         MY(type) = "spark";
3031         MY(velocityjitter) = '424.0 424.0 624.0';
3032         MY(velocityoffset) = '0.0 0.0 80.0';
3033 }
3034 // debris
3035 SUB(rocket_explode) {
3036         MY(airfriction) = 0.500000;
3037         MY(alpha_min) = 644;
3038         MY(alpha_max) = 956;
3039         MY(alpha_fade) = 684;
3040         MY(bounce) = 1.600000;
3041         MY(color_min) = "0x6a3d25";
3042         MY(color_max) = "0xcac5b4";
3043         MY(count) = 12;
3044         MY(gravity) = 1.300000;
3045         MY(notunderwater) = true;
3046         MY(startangle_min) = -180;
3047         MY(startangle_max) = 180;
3048         MY(spin_min) = -1000;
3049         MY(spin_max) = 1000;
3050         MY(size_min) = 2;
3051         MY(size_max) = 6;
3052         MY(tex_min) = 66;
3053         MY(tex_max) = 68;
3054         MY(type) = "alphastatic";
3055         MY(velocityjitter) = '324.0 324.0 524.0';
3056 }
3057
3058 DEF(grapple_muzzleflash);
3059 SUB(grapple_muzzleflash) {
3060         MY(lightcolor) = '1.0 0.0 0.0';
3061         MY(lightradiusfade) = 800;
3062         MY(lightradius) = 160;
3063 }
3064
3065 DEF(grapple_impact);
3066 SUB(grapple_impact) {
3067         MY(lightcolor) = '1.0 0.0 0.0';
3068         MY(lightradiusfade) = 800;
3069         MY(lightradius) = 160;
3070 }
3071
3072 DEF(nex242_misc_laser_beam);
3073 SUB(nex242_misc_laser_beam) {
3074         MY(alpha_min) = 256;
3075         MY(alpha_max) = 256;
3076         MY(alpha_fade) = 64;
3077         MY(color_min) = "0xff0000";
3078         MY(color_max) = "0xff0000";
3079         MY(countabsolute) = 1;
3080         MY(sizeincrease) = 1;
3081         MY(size_min) = 1;
3082         MY(size_max) = 1;
3083         MY(tex_min) = 200;
3084         MY(tex_max) = 200;
3085         MY(type) = "beam";
3086 }
3087
3088 DEF(nex242_misc_laser_beam_end);
3089 SUB(nex242_misc_laser_beam_end) {
3090         MY(alpha_min) = 128;
3091         MY(alpha_max) = 256;
3092         MY(alpha_fade) = 768;
3093         MY(bounce) = -1;
3094         MY(color_min) = "0x8f4333";
3095         MY(color_max) = "0xfff31b";
3096         MY(count) = 0.500000;
3097         MY(gravity) = 1;
3098         MY(size_min) = 0.400000;
3099         MY(size_max) = 0.400000;
3100         MY(type) = "spark";
3101         MY(velocityjitter) = '64.0 64.0 64.0';
3102         MY(velocitymultiplier) = 100;
3103 }
3104
3105 DEF(nex242_misc_laser_beam_fast);
3106 SUB(nex242_misc_laser_beam_fast) {
3107         MY(alpha_min) = 256;
3108         MY(alpha_max) = 256;
3109         MY(alpha_fade) = 640;
3110         MY(color_min) = "0xff0000";
3111         MY(color_max) = "0xff0000";
3112         MY(countabsolute) = 1;
3113         MY(sizeincrease) = 0.100000;
3114         MY(size_min) = 1;
3115         MY(size_max) = 1;
3116         MY(tex_min) = 200;
3117         MY(tex_max) = 200;
3118         MY(type) = "beam";
3119 }
3120
3121 DEF(nex242_misc_laser_beam_fast_end);
3122 SUB(nex242_misc_laser_beam_fast_end) {
3123         MY(alpha_min) = 128;
3124         MY(alpha_max) = 256;
3125         MY(alpha_fade) = 768;
3126         MY(bounce) = -1;
3127         MY(color_min) = "0x8f4333";
3128         MY(color_max) = "0xfff31b";
3129         MY(count) = 0.500000;
3130         MY(gravity) = 1;
3131         MY(size_min) = 0.400000;
3132         MY(size_max) = 0.400000;
3133         MY(type) = "spark";
3134         MY(velocityjitter) = '64.0 64.0 64.0';
3135         MY(velocitymultiplier) = 100;
3136 }
3137
3138 DEF(nex242_misc_laser_green_beam);
3139 SUB(nex242_misc_laser_green_beam) {
3140         MY(alpha_min) = 256;
3141         MY(alpha_max) = 256;
3142         MY(alpha_fade) = 64;
3143         MY(color_min) = "0x00ff00";
3144         MY(color_max) = "0x00ff00";
3145         MY(countabsolute) = 1;
3146         MY(sizeincrease) = 1;
3147         MY(size_min) = 1;
3148         MY(size_max) = 1;
3149         MY(tex_min) = 200;
3150         MY(tex_max) = 200;
3151         MY(type) = "beam";
3152 }
3153
3154 DEF(nex242_misc_laser_green_beam_end);
3155 SUB(nex242_misc_laser_green_beam_end) {
3156         MY(alpha_min) = 128;
3157         MY(alpha_max) = 256;
3158         MY(alpha_fade) = 768;
3159         MY(bounce) = -1;
3160         MY(color_min) = "0x8f4333";
3161         MY(color_max) = "0xfff31b";
3162         MY(count) = 0.500000;
3163         MY(gravity) = 1;
3164         MY(size_min) = 0.400000;
3165         MY(size_max) = 0.400000;
3166         MY(type) = "spark";
3167         MY(velocityjitter) = '64.0 64.0 64.0';
3168         MY(velocitymultiplier) = 100;
3169 }
3170
3171 DEF(nex242_misc_laser_blue_beam);
3172 SUB(nex242_misc_laser_blue_beam) {
3173         MY(alpha_min) = 256;
3174         MY(alpha_max) = 256;
3175         MY(alpha_fade) = 64;
3176         MY(color_min) = "0x0000ff";
3177         MY(color_max) = "0x0000ff";
3178         MY(countabsolute) = 1;
3179         MY(sizeincrease) = 1;
3180         MY(size_min) = 1;
3181         MY(size_max) = 1;
3182         MY(tex_min) = 200;
3183         MY(tex_max) = 200;
3184         MY(type) = "beam";
3185 }
3186
3187 DEF(nex242_misc_laser_blue_beam_end);
3188 SUB(nex242_misc_laser_blue_beam_end) {
3189         MY(alpha_min) = 128;
3190         MY(alpha_max) = 256;
3191         MY(alpha_fade) = 768;
3192         MY(bounce) = -1;
3193         MY(color_min) = "0x8f4333";
3194         MY(color_max) = "0xfff31b";
3195         MY(count) = 0.500000;
3196         MY(gravity) = 1;
3197         MY(size_min) = 0.400000;
3198         MY(size_max) = 0.400000;
3199         MY(type) = "spark";
3200         MY(velocityjitter) = '64.0 64.0 64.0';
3201         MY(velocitymultiplier) = 100;
3202 }
3203
3204 DEF(nex242_misc_laser_yellow_beam);
3205 SUB(nex242_misc_laser_yellow_beam) {
3206         MY(alpha_min) = 256;
3207         MY(alpha_max) = 256;
3208         MY(alpha_fade) = 64;
3209         MY(color_min) = "0xffff00";
3210         MY(color_max) = "0xffff00";
3211         MY(countabsolute) = 1;
3212         MY(sizeincrease) = 1;
3213         MY(size_min) = 1;
3214         MY(size_max) = 1;
3215         MY(tex_min) = 200;
3216         MY(tex_max) = 200;
3217         MY(type) = "beam";
3218 }
3219
3220 DEF(nex242_misc_laser_yellow_beam_end);
3221 SUB(nex242_misc_laser_yellow_beam_end) {
3222         MY(alpha_min) = 128;
3223         MY(alpha_max) = 256;
3224         MY(alpha_fade) = 768;
3225         MY(bounce) = -1;
3226         MY(color_min) = "0x8f4333";
3227         MY(color_max) = "0xfff31b";
3228         MY(count) = 0.500000;
3229         MY(gravity) = 1;
3230         MY(size_min) = 0.400000;
3231         MY(size_max) = 0.400000;
3232         MY(type) = "spark";
3233         MY(velocityjitter) = '64.0 64.0 64.0';
3234         MY(velocitymultiplier) = 100;
3235 }
3236
3237 DEF(nex242_misc_laser_cyan_beam);
3238 SUB(nex242_misc_laser_cyan_beam) {
3239         MY(alpha_min) = 256;
3240         MY(alpha_max) = 256;
3241         MY(alpha_fade) = 64;
3242         MY(color_min) = "0x00ffff";
3243         MY(color_max) = "0x00ffff";
3244         MY(countabsolute) = 1;
3245         MY(sizeincrease) = 1;
3246         MY(size_min) = 1;
3247         MY(size_max) = 1;
3248         MY(tex_min) = 200;
3249         MY(tex_max) = 200;
3250         MY(type) = "beam";
3251 }
3252
3253 DEF(nex242_misc_laser_cyan_beam_end);
3254 SUB(nex242_misc_laser_cyan_beam_end) {
3255         MY(alpha_min) = 128;
3256         MY(alpha_max) = 256;
3257         MY(alpha_fade) = 768;
3258         MY(bounce) = -1;
3259         MY(color_min) = "0x8f4333";
3260         MY(color_max) = "0xfff31b";
3261         MY(count) = 0.500000;
3262         MY(gravity) = 1;
3263         MY(size_min) = 0.400000;
3264         MY(size_max) = 0.400000;
3265         MY(type) = "spark";
3266         MY(velocityjitter) = '64.0 64.0 64.0';
3267         MY(velocitymultiplier) = 100;
3268 }
3269
3270 DEF(nex242_misc_laser_magenta_beam);
3271 SUB(nex242_misc_laser_magenta_beam) {
3272         MY(alpha_min) = 256;
3273         MY(alpha_max) = 256;
3274         MY(alpha_fade) = 64;
3275         MY(color_min) = "0xff00ff";
3276         MY(color_max) = "0xff00ff";
3277         MY(countabsolute) = 1;
3278         MY(sizeincrease) = 1;
3279         MY(size_min) = 1;
3280         MY(size_max) = 1;
3281         MY(tex_min) = 200;
3282         MY(tex_max) = 200;
3283         MY(type) = "beam";
3284 }
3285
3286 DEF(nex242_misc_laser_magenta_beam_end);
3287 SUB(nex242_misc_laser_magenta_beam_end) {
3288         MY(alpha_min) = 128;
3289         MY(alpha_max) = 256;
3290         MY(alpha_fade) = 768;
3291         MY(bounce) = -1;
3292         MY(color_min) = "0x8f4333";
3293         MY(color_max) = "0xfff31b";
3294         MY(count) = 0.500000;
3295         MY(gravity) = 1;
3296         MY(size_min) = 0.400000;
3297         MY(size_max) = 0.400000;
3298         MY(type) = "spark";
3299         MY(velocityjitter) = '64.0 64.0 64.0';
3300         MY(velocitymultiplier) = 100;
3301 }
3302
3303 DEF(nex242_misc_laser_white_beam);
3304 SUB(nex242_misc_laser_white_beam) {
3305         MY(alpha_min) = 256;
3306         MY(alpha_max) = 256;
3307         MY(alpha_fade) = 64;
3308         MY(color_min) = "0xffffff";
3309         MY(color_max) = "0xffffff";
3310         MY(countabsolute) = 1;
3311         MY(sizeincrease) = 1;
3312         MY(size_min) = 1;
3313         MY(size_max) = 1;
3314         MY(tex_min) = 200;
3315         MY(tex_max) = 200;
3316         MY(type) = "beam";
3317 }
3318
3319 DEF(nex242_misc_laser_white_beam_end);
3320 SUB(nex242_misc_laser_white_beam_end) {
3321         MY(alpha_min) = 128;
3322         MY(alpha_max) = 256;
3323         MY(alpha_fade) = 768;
3324         MY(bounce) = -1;
3325         MY(color_min) = "0x8f4333";
3326         MY(color_max) = "0xfff31b";
3327         MY(count) = 0.500000;
3328         MY(gravity) = 1;
3329         MY(size_min) = 0.400000;
3330         MY(size_max) = 0.400000;
3331         MY(type) = "spark";
3332         MY(velocityjitter) = '64.0 64.0 64.0';
3333         MY(velocitymultiplier) = 100;
3334 }
3335
3336 DEF(nex242_misc_laser_black_beam);
3337 SUB(nex242_misc_laser_black_beam) {
3338         MY(alpha_min) = 256;
3339         MY(alpha_max) = 256;
3340         MY(alpha_fade) = 64;
3341         MY(color_min) = "0x000000";
3342         MY(color_max) = "0x000000";
3343         MY(countabsolute) = 1;
3344         MY(sizeincrease) = 1;
3345         MY(size_min) = 1;
3346         MY(size_max) = 1;
3347         MY(tex_min) = 200;
3348         MY(tex_max) = 200;
3349         MY(type) = "beam";
3350 }
3351
3352 DEF(nex242_misc_laser_black_beam_end);
3353 SUB(nex242_misc_laser_black_beam_end) {
3354         MY(alpha_min) = 128;
3355         MY(alpha_max) = 256;
3356         MY(alpha_fade) = 768;
3357         MY(bounce) = -1;
3358         MY(color_min) = "0x8f4333";
3359         MY(color_max) = "0xfff31b";
3360         MY(count) = 0.500000;
3361         MY(gravity) = 1;
3362         MY(size_min) = 0.400000;
3363         MY(size_max) = 0.400000;
3364         MY(type) = "spark";
3365         MY(velocityjitter) = '64.0 64.0 64.0';
3366         MY(velocitymultiplier) = 100;
3367 }
3368
3369 DEF(nex242_misc_laser_orange_beam);
3370 SUB(nex242_misc_laser_orange_beam) {
3371         MY(alpha_min) = 256;
3372         MY(alpha_max) = 256;
3373         MY(alpha_fade) = 64;
3374         MY(color_min) = "0xff6600";
3375         MY(color_max) = "0xff6600";
3376         MY(countabsolute) = 1;
3377         MY(sizeincrease) = 1;
3378         MY(size_min) = 1;
3379         MY(size_max) = 1;
3380         MY(tex_min) = 200;
3381         MY(tex_max) = 200;
3382         MY(type) = "beam";
3383 }
3384
3385 DEF(nex242_misc_laser_orange_beam_end);
3386 SUB(nex242_misc_laser_orange_beam_end) {
3387         MY(alpha_min) = 128;
3388         MY(alpha_max) = 256;
3389         MY(alpha_fade) = 768;
3390         MY(bounce) = -1;
3391         MY(color_min) = "0x8f4333";
3392         MY(color_max) = "0xfff31b";
3393         MY(count) = 0.500000;
3394         MY(gravity) = 1;
3395         MY(size_min) = 0.400000;
3396         MY(size_max) = 0.400000;
3397         MY(type) = "spark";
3398         MY(velocityjitter) = '64.0 64.0 64.0';
3399         MY(velocitymultiplier) = 100;
3400 }
3401
3402 // bigger crylink impact effect
3403 DEF(crylink_impactbig);
3404 // decal
3405 SUB(crylink_impactbig) {
3406         MY(alpha_min) = 256;
3407         MY(alpha_max) = 256;
3408         MY(countabsolute) = 1;
3409         MY(originjitter) = '12.0 12.0 12.0';
3410         MY(size_min) = 24;
3411         MY(size_max) = 24;
3412         MY(tex_min) = 47;
3413         MY(tex_max) = 47;
3414         MY(type) = "decal";
3415 }
3416 // purple flare effect
3417 SUB(crylink_impactbig) {
3418         MY(alpha_min) = 256;
3419         MY(alpha_max) = 256;
3420         MY(alpha_fade) = 512;
3421         MY(color_min) = "0x504060";
3422         MY(color_max) = "0x504060";
3423         MY(countabsolute) = 1;
3424         MY(size_min) = 24;
3425         MY(size_max) = 24;
3426         MY(tex_min) = 39;
3427         MY(tex_max) = 39;
3428         MY(type) = "static";
3429 }
3430 // purple sparks
3431 SUB(crylink_impactbig) {
3432         MY(alpha_min) = 256;
3433         MY(alpha_max) = 256;
3434         MY(alpha_fade) = 1024;
3435         MY(bounce) = 2;
3436         MY(color_min) = "0xA040C0";
3437         MY(color_max) = "0xA040C0";
3438         MY(count) = 40;
3439         MY(size_min) = 6;
3440         MY(size_max) = 6;
3441         MY(tex_min) = 41;
3442         MY(tex_max) = 41;
3443         MY(type) = "spark";
3444         MY(velocityjitter) = '512.0 512.0 512.0';
3445 }
3446 // purple splash
3447 SUB(crylink_impactbig) {
3448         MY(alpha_min) = 256;
3449         MY(alpha_max) = 256;
3450         MY(alpha_fade) = 512;
3451         MY(color_min) = "0xE070FF";
3452         MY(color_max) = "0xE070FF";
3453         MY(count) = 1.500000;
3454         MY(size_min) = 16;
3455         MY(size_max) = 16;
3456         MY(type) = "static";
3457         MY(velocityjitter) = '32.0 32.0 32.0';
3458 }
3459 // purple splash
3460 SUB(crylink_impactbig) {
3461         MY(alpha_min) = 256;
3462         MY(alpha_max) = 256;
3463         MY(alpha_fade) = 1024;
3464         MY(color_min) = "0xE070FF";
3465         MY(color_max) = "0xE070FF";
3466         MY(count) = 3;
3467         MY(size_min) = 16;
3468         MY(size_max) = 16;
3469         MY(type) = "static";
3470         MY(velocityjitter) = '256.0 256.0 256.0';
3471 }
3472
3473 #include "effectinfo_gentle.inc"
3474
3475 DEF(laser_deadly);
3476 // decal
3477 SUB(laser_deadly) {
3478         MY(alpha_min) = 256;
3479         MY(alpha_max) = 256;
3480         MY(countabsolute) = 1;
3481         MY(originjitter) = '6.0 6.0 6.0';
3482         MY(size_min) = 5;
3483         MY(size_max) = 5;
3484         MY(tex_min) = 56;
3485         MY(tex_max) = 59;
3486         MY(type) = "decal";
3487 }
3488 // dust/smoke drifting away from the impact
3489 SUB(laser_deadly) {
3490         MY(airfriction) = 7;
3491         MY(alpha_max) = 64;
3492         MY(alpha_fade) = 64;
3493         MY(color_min) = "0xFFFFFF";
3494         MY(color_max) = "0xFFFFFF";
3495         MY(count) = 0.025000;
3496         MY(liquidfriction) = 16;
3497         MY(originjitter) = '1.0 1.0 1.0';
3498         MY(sizeincrease) = 2;
3499         MY(size_min) = 3;
3500         MY(size_max) = 3;
3501         MY(tex_min) = 48;
3502         MY(tex_max) = 55;
3503         MY(type) = "smoke";
3504         MY(velocityjitter) = '15.0 15.0 15.0';
3505         MY(velocitymultiplier) = 20;
3506 }
3507 // sparks
3508 SUB(laser_deadly) {
3509         MY(airfriction) = 5;
3510         MY(alpha_min) = 256;
3511         MY(alpha_max) = 256;
3512         MY(alpha_fade) = 768;
3513         MY(bounce) = 1;
3514         MY(color_min) = "0xFDFFD9";
3515         MY(color_max) = "0xFDFFD9";
3516         MY(count) = 0.025000;
3517         MY(gravity) = 1;
3518         MY(notunderwater) = true;
3519         MY(originjitter) = '1.0 1.0 1.0';
3520         MY(size_min) = 0.600000;
3521         MY(size_max) = 0.600000;
3522         MY(tex_min) = 40;
3523         MY(tex_max) = 40;
3524         MY(type) = "spark";
3525         MY(velocityjitter) = '100.0 100.0 100.0';
3526         MY(velocitymultiplier) = 100;
3527 }
3528
3529 DEF(torch_small);
3530 // fire
3531 SUB(torch_small) {
3532         MY(alpha_min) = 200;
3533         MY(alpha_max) = 256;
3534         MY(alpha_fade) = 512;
3535         MY(color_min) = "0x8f0d00";
3536         MY(color_max) = "0xff5a00";
3537         MY(count) = 8;
3538         MY(gravity) = -0.500000;
3539         MY(originjitter) = '5.0 5.0 5.0';
3540         MY(sizeincrease) = -1;
3541         MY(size_min) = 1;
3542         MY(size_max) = 11;
3543         MY(tex_min) = 48;
3544         MY(tex_max) = 55;
3545         MY(type) = "smoke";
3546         MY(velocityjitter) = '1.0 1.0 50.0';
3547 }
3548 // smoke
3549 SUB(torch_small) {
3550         MY(alpha_min) = 200;
3551         MY(alpha_max) = 256;
3552         MY(alpha_fade) = 200;
3553         MY(color_min) = "0x000000";
3554         MY(color_max) = "0x111111";
3555         MY(count) = 4;
3556         MY(gravity) = -0.300000;
3557         MY(originjitter) = '3.0 3.0 3.0';
3558         MY(sizeincrease) = 5;
3559         MY(size_min) = 5;
3560         MY(size_max) = 10;
3561         MY(tex_max) = 8;
3562         MY(type) = "alphastatic";
3563         MY(velocityjitter) = '11.0 11.0 50.0';
3564 }
3565
3566 DEF(fountain01);
3567 SUB(fountain01) {
3568         MY(alpha_max) = 100;
3569         MY(alpha_fade) = 100;
3570         MY(bounce) = 1;
3571         MY(color_min) = "0x7cbaff";
3572         MY(color_max) = "0xcfd1ff";
3573         MY(count) = 16;
3574         MY(gravity) = 0.600000;
3575         MY(originjitter) = '5.0 5.0 5.0';
3576         MY(sizeincrease) = 20;
3577         MY(size_min) = 10;
3578         MY(size_max) = 15;
3579         MY(tex_max) = 8;
3580         MY(type) = "snow";
3581         MY(velocityjitter) = '81.0 81.0 150.0';
3582         MY(velocitymultiplier) = 2;
3583 }
3584
3585 DEF(hookbomb_explode);
3586 // decal
3587 SUB(hookbomb_explode) {
3588         MY(airfriction) = 10;
3589         MY(alpha_max) = 256;
3590         MY(alpha_fade) = 200;
3591         MY(bounce) = 1.500000;
3592         MY(color_min) = "0x807aff";
3593         MY(color_max) = "0x4463d5";
3594         MY(count) = 25;
3595         MY(originjitter) = '10.0 10.0 10.0';
3596         MY(sizeincrease) = -160;
3597         MY(size_min) = 150;
3598         MY(size_max) = 200;
3599         MY(tex_min) = 38;
3600         MY(tex_max) = 38;
3601         MY(type) = "static";
3602         MY(velocityjitter) = '550.0 550.0 550.0';
3603 }
3604 // decal in the air
3605 SUB(hookbomb_explode) {
3606         MY(alpha_min) = 256;
3607         MY(alpha_max) = 265;
3608         MY(alpha_fade) = 100;
3609         MY(color_min) = "0x807aff";
3610         MY(color_max) = "0x4463d5";
3611         MY(countabsolute) = 3;
3612         MY(originoffset) = '0.0 0.0 6.0';
3613         MY(sizeincrease) = -60;
3614         MY(size_min) = 160;
3615         MY(size_max) = 200;
3616         MY(tex_min) = 38;
3617         MY(tex_max) = 38;
3618         MY(type) = "static";
3619 }
3620 // decal on the ground
3621 SUB(hookbomb_explode) {
3622         MY(alpha_min) = 256;
3623         MY(alpha_max) = 256;
3624         MY(countabsolute) = 1;
3625         MY(originjitter) = '6.0 6.0 6.0';
3626         MY(size_min) = 80;
3627         MY(size_max) = 100;
3628         MY(tex_min) = 39;
3629         MY(tex_max) = 39;
3630         MY(type) = "decal";
3631 }
3632 // some sparks
3633 SUB(hookbomb_explode) {
3634         MY(airfriction) = 2;
3635         MY(alpha_min) = 256;
3636         MY(alpha_max) = 256;
3637         MY(alpha_fade) = 456;
3638         MY(bounce) = 1.500000;
3639         MY(color_min) = "0x807aff";
3640         MY(color_max) = "0x4463d5";
3641         MY(count) = 30;
3642         MY(gravity) = 1;
3643         MY(originjitter) = '1.0 1.0 1.0';
3644         MY(sizeincrease) = -60;
3645         MY(size_min) = 20;
3646         MY(size_max) = 30;
3647         MY(tex_min) = 38;
3648         MY(tex_max) = 38;
3649         MY(type) = "spark";
3650         MY(velocityjitter) = '1900.0 1900.0 1300.0';
3651         MY(velocitymultiplier) = 0.500000;
3652 }
3653
3654 DEF(EF_MGTURRETTRAIL);
3655 // smoke
3656 SUB(EF_MGTURRETTRAIL) {
3657         MY(alpha_min) = 128;
3658         MY(alpha_max) = 196;
3659         MY(alpha_fade) = 768;
3660         MY(color_min) = "0xd0d0a0";
3661         MY(color_max) = "0xffffff";
3662         MY(gravity) = -0.010000;
3663         MY(notunderwater) = true;
3664         MY(sizeincrease) = -8;
3665         MY(size_min) = 5;
3666         MY(size_max) = 4;
3667         MY(tex_max) = 8;
3668         MY(trailspacing) = 10;
3669         MY(type) = "smoke";
3670 }
3671 // bubbles
3672 SUB(EF_MGTURRETTRAIL) {
3673         MY(alpha_min) = 256;
3674         MY(alpha_max) = 256;
3675         MY(alpha_fade) = 256;
3676         MY(bounce) = 1.500000;
3677         MY(color_min) = "0x404040";
3678         MY(color_max) = "0x808080";
3679         MY(gravity) = -0.125000;
3680         MY(liquidfriction) = 4;
3681         MY(size_min) = 1;
3682         MY(size_max) = 1;
3683         MY(tex_min) = 62;
3684         MY(tex_max) = 62;
3685         MY(trailspacing) = 32;
3686         MY(type) = "bubble";
3687         MY(underwater) = true;
3688         MY(velocityjitter) = '16.0 16.0 16.0';
3689 }
3690
3691 DEF(fire_big);
3692 // fire
3693 SUB(fire_big) {
3694         MY(alpha_min) = 200;
3695         MY(alpha_max) = 356;
3696         MY(alpha_fade) = 512;
3697         MY(bounce) = 2;
3698         MY(color_min) = "0x8f0d00";
3699         MY(color_max) = "0xff5a00";
3700         MY(count) = 26;
3701         MY(gravity) = -0.500000;
3702         MY(originjitter) = '33.0 33.0 33.0';
3703         MY(sizeincrease) = -3;
3704         MY(size_min) = 11;
3705         MY(size_max) = 31;
3706         MY(tex_min) = 48;
3707         MY(tex_max) = 55;
3708         MY(type) = "smoke";
3709         MY(velocityjitter) = '22.0 22.0 50.0';
3710 }
3711 // smoke
3712 SUB(fire_big) {
3713         MY(alpha_min) = 200;
3714         MY(alpha_max) = 256;
3715         MY(alpha_fade) = 200;
3716         MY(bounce) = 2;
3717         MY(color_min) = "0x000000";
3718         MY(color_max) = "0x111111";
3719         MY(count) = 11;
3720         MY(gravity) = -0.300000;
3721         MY(originjitter) = '44.0 44.0 44.0';
3722         MY(sizeincrease) = 11;
3723         MY(size_min) = 22;
3724         MY(size_max) = 33;
3725         MY(tex_max) = 8;
3726         MY(type) = "alphastatic";
3727         MY(velocityjitter) = '11.0 11.0 50.0';
3728 }
3729
3730 #define flare(name, colormin, colormax) \
3731         DEF(name##_flare); \
3732         SUB(name##_flare) /* smoke */ { \
3733                 MY(alpha_min) = 200; \
3734                 MY(alpha_max) = 256; \
3735                 MY(alpha_fade) = 160; \
3736                 MY(bounce) = 1; \
3737                 MY(color_min) = colormin; \
3738                 MY(color_max) = colormax; \
3739                 MY(count) = 10.500000; \
3740                 MY(gravity) = -0.240000; \
3741                 MY(originjitter) = '2.0 2.0 0.0'; \
3742                 MY(sizeincrease) = 11; \
3743                 MY(size_min) = 1; \
3744                 MY(size_max) = 11; \
3745                 MY(tex_max) = 8; \
3746                 MY(type) = "alphastatic"; \
3747                 MY(velocityjitter) = '15.0 15.0 30.0'; \
3748         }
3749
3750 flare(red,      "0xff0000", "0xdc7171")
3751 flare(blue, "0x0000ff", "0x7194dc")
3752 #undef flare
3753
3754 DEF(smoke_ring);
3755 // smoke
3756 SUB(smoke_ring) {
3757         MY(airfriction) = 3;
3758         MY(alpha_min) = 100;
3759         MY(alpha_max) = 156;
3760         MY(alpha_fade) = 200;
3761         MY(bounce) = 1.100000;
3762         MY(color_min) = "0x111111";
3763         MY(color_max) = "0x979797";
3764         MY(count) = 45;
3765         MY(gravity) = 0.100000;
3766         MY(notunderwater) = true;
3767         MY(sizeincrease) = 21;
3768         MY(size_min) = 1;
3769         MY(size_max) = 11;
3770         MY(tex_max) = 8;
3771         MY(type) = "smoke";
3772         MY(velocityjitter) = '190.0 190.0 50.0';
3773 }
3774
3775 DEF(smoke_large);
3776 // smoke
3777 SUB(smoke_large) {
3778         MY(airfriction) = 7;
3779         MY(alpha_min) = 140;
3780         MY(alpha_max) = 256;
3781         MY(alpha_fade) = 190;
3782         MY(bounce) = 1.100000;
3783         MY(color_min) = "0x9e895f";
3784         MY(color_max) = "0xffd39b";
3785         MY(count) = 25;
3786         MY(gravity) = -0.150000;
3787         MY(notunderwater) = true;
3788         MY(sizeincrease) = 21;
3789         MY(size_min) = 11;
3790         MY(size_max) = 21;
3791         MY(tex_max) = 8;
3792         MY(type) = "alphastatic";
3793         MY(velocityjitter) = '390.0 390.0 390.0';
3794 }
3795
3796 DEF(sparks);
3797 SUB(sparks) {
3798         MY(airfriction) = 3;
3799         MY(alpha_max) = 256;
3800         MY(alpha_fade) = 256;
3801         MY(bounce) = 1.500000;
3802         MY(color_min) = "0xFFFDD9";
3803         MY(color_max) = "0xFFFDD9";
3804         MY(count) = 15;
3805         MY(gravity) = 1;
3806         MY(originjitter) = '1.0 1.0 1.0';
3807         MY(size_min) = 1;
3808         MY(size_max) = 3;
3809         MY(tex_min) = 40;
3810         MY(tex_max) = 40;
3811         MY(type) = "spark";
3812         MY(velocityjitter) = '300.0 300.0 200.0';
3813         MY(velocitymultiplier) = 1.500000;
3814 }
3815
3816 DEF(electricity_sparks);
3817 SUB(electricity_sparks) {
3818         MY(airfriction) = 3;
3819         MY(alpha_max) = 256;
3820         MY(alpha_fade) = 556;
3821         MY(bounce) = 1.500000;
3822         MY(color_min) = "0x807aff";
3823         MY(color_max) = "0x4463d5";
3824         MY(count) = 35;
3825         MY(gravity) = 1;
3826         MY(originjitter) = '1.0 1.0 1.0';
3827         MY(size_min) = 1;
3828         MY(size_max) = 3;
3829         MY(tex_min) = 40;
3830         MY(tex_max) = 40;
3831         MY(type) = "spark";
3832         MY(velocityjitter) = '300.0 300.0 300.0';
3833         MY(velocitymultiplier) = 0.500000;
3834 }
3835
3836 DEF(steam);
3837 SUB(steam) {
3838         MY(airfriction) = 5;
3839         MY(alpha_min) = 140;
3840         MY(alpha_max) = 256;
3841         MY(alpha_fade) = 190;
3842         MY(bounce) = 1.100000;
3843         MY(color_min) = "0xfffbdf";
3844         MY(color_max) = "0xffffff";
3845         MY(count) = 1;
3846         MY(gravity) = -0.250000;
3847         MY(notunderwater) = true;
3848         MY(sizeincrease) = 7;
3849         MY(size_min) = 1;
3850         MY(size_max) = 3;
3851         MY(tex_max) = 8;
3852         MY(type) = "smoke";
3853         MY(velocityjitter) = '19.0 19.0 19.0';
3854         MY(velocitymultiplier) = 14;
3855 }
3856
3857 DEF(smoking);
3858 SUB(smoking) {
3859         MY(airfriction) = -1;
3860         MY(alpha_min) = 100;
3861         MY(alpha_max) = 256;
3862         MY(alpha_fade) = 100;
3863         MY(bounce) = 1.500000;
3864         MY(color_min) = "0x292929";
3865         MY(color_max) = "0x000000";
3866         MY(count) = 10;
3867         MY(gravity) = -0.100000;
3868         MY(originjitter) = '10.0 10.0 10.0';
3869         MY(sizeincrease) = 5;
3870         MY(size_min) = 10;
3871         MY(size_max) = 40;
3872         MY(tex_max) = 8;
3873         MY(type) = "alphastatic";
3874         MY(velocityjitter) = '5.0 5.0 20.0';
3875 }
3876
3877 // golden dust (create it once per second to cover large area in small yellow particles)
3878 DEF(goldendust);
3879 SUB(goldendust) {
3880         MY(alpha_min) = 256;
3881         MY(alpha_max) = 256;
3882         MY(alpha_fade) = 70;
3883         MY(bounce) = 1.500000;
3884         MY(color_min) = "0xff9600";
3885         MY(color_max) = "0xffefb8";
3886         MY(count) = 25;
3887         MY(originjitter) = '500.0 500.0 500.0';
3888         MY(sizeincrease) = -0.300000;
3889         MY(size_min) = 2;
3890         MY(size_max) = 3;
3891         MY(tex_min) = 38;
3892         MY(tex_max) = 38;
3893         MY(type) = "snow";
3894         MY(velocityjitter) = '0.1 0.1 0.1';
3895 }
3896
3897 DEF(healing_fx);
3898 SUB(healing_fx) {
3899         MY(airfriction) = -0.500000;
3900         MY(alpha_min) = 256;
3901         MY(alpha_max) = 256;
3902         MY(alpha_fade) = 170;
3903         MY(bounce) = 1.500000;
3904         MY(color_min) = "0xff0000";
3905         MY(color_max) = "0xff0000";
3906         MY(count) = 25;
3907         MY(gravity) = -0.100000;
3908         MY(originjitter) = '5.0 5.0 100.0';
3909         MY(sizeincrease) = -0.050000;
3910         MY(size_min) = 1;
3911         MY(size_max) = 3;
3912         MY(tex_min) = 40;
3913         MY(tex_max) = 40;
3914         MY(type) = "spark";
3915         MY(velocityjitter) = '50.0 50.0 0.0';
3916 }
3917
3918 DEF(armorrepair_fx);
3919 SUB(armorrepair_fx) {
3920         MY(airfriction) = -0.500000;
3921         MY(alpha_min) = 256;
3922         MY(alpha_max) = 256;
3923         MY(alpha_fade) = 170;
3924         MY(bounce) = 1.500000;
3925         MY(color_min) = "0x00ff00";
3926         MY(color_max) = "0x00ff00";
3927         MY(count) = 25;
3928         MY(gravity) = -0.100000;
3929         MY(originjitter) = '5.0 5.0 50.0';
3930         MY(sizeincrease) = -0.050000;
3931         MY(size_min) = 1;
3932         MY(size_max) = 3;
3933         MY(tex_min) = 40;
3934         MY(tex_max) = 40;
3935         MY(type) = "spark";
3936         MY(velocityjitter) = '50.0 50.0 0.0';
3937 }
3938
3939 DEF(ammoregen_fx);
3940 SUB(ammoregen_fx) {
3941         MY(airfriction) = -0.500000;
3942         MY(alpha_min) = 256;
3943         MY(alpha_max) = 256;
3944         MY(alpha_fade) = 170;
3945         MY(bounce) = 1.500000;
3946         MY(color_min) = "0x0000ff";
3947         MY(color_max) = "0x0000ff";
3948         MY(count) = 25;
3949         MY(gravity) = -0.100000;
3950         MY(originjitter) = '5.0 5.0 50.0';
3951         MY(sizeincrease) = -0.050000;
3952         MY(size_min) = 1;
3953         MY(size_max) = 3;
3954         MY(tex_min) = 40;
3955         MY(tex_max) = 40;
3956         MY(type) = "spark";
3957         MY(velocityjitter) = '50.0 50.0 0.0';
3958 }
3959
3960 // red-yellow flame like fx
3961 DEF(rage);
3962 SUB(rage) {
3963         MY(airfriction) = 2;
3964         MY(alpha_min) = 256;
3965         MY(alpha_max) = 256;
3966         MY(alpha_fade) = 190;
3967         MY(color_min) = "0xff0000";
3968         MY(color_max) = "0xff7800";
3969         MY(count) = 2.500000;
3970         MY(gravity) = -0.060000;
3971         MY(originjitter) = '5.0 5.0 5.0';
3972         MY(sizeincrease) = 10;
3973         MY(size_min) = 1;
3974         MY(size_max) = 3;
3975         MY(tex_min) = 35;
3976         MY(tex_max) = 36;
3977         MY(type) = "smoke";
3978         MY(velocityjitter) = '25.0 25.0 25.0';
3979 }
3980
3981 // pieces of glass or ice falling on the floor
3982 DEF(iceorglass);
3983 SUB(iceorglass) {
3984         MY(airfriction) = 3;
3985         MY(alpha_min) = 256;
3986         MY(alpha_max) = 256;
3987         MY(bounce) = 2;
3988         MY(color_min) = "0xffffff";
3989         MY(color_max) = "0xb2d3e6";
3990         MY(count) = 15;
3991         MY(gravity) = 1.300000;
3992         MY(originjitter) = '30.0 30.0 30.0';
3993         MY(size_min) = 3;
3994         MY(size_max) = 7;
3995         MY(tex_min) = 44;
3996         MY(tex_max) = 44;
3997         MY(time_min) = 1;
3998         MY(time_max) = 3;
3999         MY(type) = "alphastatic";
4000         MY(velocityjitter) = '100.0 100.0 100.0';
4001 }
4002
4003 // cover small area in poison gas, spawn it once per second
4004 DEF(poisonfield);
4005 SUB(poisonfield) {
4006         MY(airfriction) = 1;
4007         MY(alpha_min) = 256;
4008         MY(alpha_max) = 256;
4009         MY(alpha_fade) = 50;
4010         MY(bounce) = 1.500000;
4011         MY(color_min) = "0x00ff00";
4012         MY(color_max) = "0x7db843";
4013         MY(count) = 15;
4014         MY(gravity) = -0.010000;
4015         MY(originjitter) = '333.0 333.0 50.0';
4016         MY(sizeincrease) = 30;
4017         MY(size_min) = 1;
4018         MY(size_max) = 1;
4019         MY(tex_max) = 8;
4020         MY(type) = "smoke";
4021         MY(velocityjitter) = '5.0 5.0 5.0';
4022 }
4023
4024 // cover small area in icy mist, spawn it once per second
4025 DEF(icefield);
4026 SUB(icefield) {
4027         MY(airfriction) = 1;
4028         MY(alpha_min) = 256;
4029         MY(alpha_max) = 256;
4030         MY(alpha_fade) = 50;
4031         MY(bounce) = 1.500000;
4032         MY(color_min) = "0x008aff";
4033         MY(color_max) = "0x75e7ff";
4034         MY(count) = 10;
4035         MY(gravity) = -0.010000;
4036         MY(originjitter) = '333.0 333.0 0.0';
4037         MY(sizeincrease) = 10;
4038         MY(size_min) = 1;
4039         MY(size_max) = 1;
4040         MY(tex_max) = 8;
4041         MY(type) = "smoke";
4042         MY(velocityjitter) = '5.0 5.0 30.0';
4043 }
4044 SUB(icefield) {
4045         MY(alpha_min) = 256;
4046         MY(alpha_max) = 256;
4047         MY(alpha_fade) = 50;
4048         MY(color_min) = "0x008aff";
4049         MY(color_max) = "0x75e7ff";
4050         MY(count) = 5;
4051         MY(gravity) = -0.001000;
4052         MY(originjitter) = '333.0 333.0 0.0';
4053         MY(sizeincrease) = 10;
4054         MY(size_min) = 1;
4055         MY(size_max) = 1;
4056         MY(tex_min) = 48;
4057         MY(tex_max) = 55;
4058         MY(type) = "smoke";
4059 }
4060
4061 // cover very small area in flames, spawn it 3 times per second (or more often to get better looking fire at cost of fps hit )
4062 DEF(firefield);
4063 // flames that go up
4064 SUB(firefield) {
4065         MY(airfriction) = 1;
4066         MY(alpha_min) = 50;
4067         MY(alpha_max) = 256;
4068         MY(alpha_fade) = 200;
4069         MY(bounce) = 1.500000;
4070         MY(color_min) = "0x8f0d00";
4071         MY(color_max) = "0xff5a00";
4072         MY(count) = 100;
4073         MY(gravity) = -0.060000;
4074         MY(originjitter) = '180.0 180.0 0.0';
4075         MY(sizeincrease) = 20;
4076         MY(size_min) = 1;
4077         MY(size_max) = 1;
4078         MY(tex_min) = 48;
4079         MY(tex_max) = 55;
4080         MY(type) = "smoke";
4081         MY(velocityjitter) = '5.0 5.0 30.0';
4082 }
4083 // flames that stay on the ground
4084 SUB(firefield) {
4085         MY(alpha_min) = 50;
4086         MY(alpha_max) = 256;
4087         MY(alpha_fade) = 200;
4088         MY(color_min) = "0x8f0d00";
4089         MY(color_max) = "0xff5a00";
4090         MY(count) = 50;
4091         MY(originjitter) = '180.0 180.0 0.0';
4092         MY(sizeincrease) = 40;
4093         MY(size_min) = 1;
4094         MY(size_max) = 1;
4095         MY(tex_min) = 48;
4096         MY(tex_max) = 55;
4097         MY(type) = "smoke";
4098 }
4099 // smoke
4100 SUB(firefield) {
4101         MY(alpha_min) = 256;
4102         MY(alpha_max) = 256;
4103         MY(alpha_fade) = 70;
4104         MY(color_min) = "0x000000";
4105         MY(color_max) = "0x111111";
4106         MY(count) = 20;
4107         MY(gravity) = -0.020000;
4108         MY(originjitter) = '180.0 180.0 0.0';
4109         MY(sizeincrease) = 7;
4110         MY(size_min) = 1;
4111         MY(size_max) = 1;
4112         MY(tex_max) = 8;
4113         MY(type) = "alphastatic";
4114 }
4115
4116 // flamethrower, spawn it as fast as you can  20 times per second or more, it needs direction
4117 DEF(flamethrower);
4118 // fast fire
4119 SUB(flamethrower) {
4120         MY(airfriction) = 1.200000;
4121         MY(alpha_min) = 50;
4122         MY(alpha_max) = 256;
4123         MY(alpha_fade) = 250;
4124         MY(bounce) = 1.500000;
4125         MY(color_min) = "0x8f0d00";
4126         MY(color_max) = "0xff5a00";
4127         MY(count) = 3;
4128         MY(gravity) = -0.060000;
4129         MY(sizeincrease) = 20;
4130         MY(size_min) = 5;
4131         MY(size_max) = 5;
4132         MY(tex_min) = 48;
4133         MY(tex_max) = 55;
4134         MY(type) = "smoke";
4135         MY(velocityjitter) = '40.0 40.0 11.0';
4136         MY(velocitymultiplier) = 30;
4137 }
4138 // slow fire
4139 SUB(flamethrower) {
4140         MY(airfriction) = 1.200000;
4141         MY(alpha_min) = 50;
4142         MY(alpha_max) = 256;
4143         MY(alpha_fade) = 200;
4144         MY(bounce) = 1.500000;
4145         MY(color_min) = "0x8f0d00";
4146         MY(color_max) = "0xff5a00";
4147         MY(count) = 2.500000;
4148         MY(gravity) = -0.060000;
4149         MY(sizeincrease) = 20;
4150         MY(size_min) = 5;
4151         MY(size_max) = 5;
4152         MY(tex_min) = 48;
4153         MY(tex_max) = 55;
4154         MY(type) = "smoke";
4155         MY(velocityjitter) = '40.0 40.0 40.0';
4156         MY(velocitymultiplier) = 20;
4157 }
4158 // very slow and small fire
4159 SUB(flamethrower) {
4160         MY(airfriction) = 0.300000;
4161         MY(alpha_min) = 50;
4162         MY(alpha_max) = 256;
4163         MY(alpha_fade) = 200;
4164         MY(bounce) = 1.500000;
4165         MY(color_min) = "0x8f0d00";
4166         MY(color_max) = "0xff5a00";
4167         MY(count) = 1.500000;
4168         MY(gravity) = -0.060000;
4169         MY(sizeincrease) = 10;
4170         MY(size_min) = 5;
4171         MY(size_max) = 5;
4172         MY(tex_min) = 48;
4173         MY(tex_max) = 55;
4174         MY(type) = "smoke";
4175         MY(velocityjitter) = '30.0 30.0 30.0';
4176         MY(velocitymultiplier) = 10;
4177 }
4178 // decreasing fire
4179 SUB(flamethrower) {
4180         MY(airfriction) = 0.300000;
4181         MY(alpha_min) = 50;
4182         MY(alpha_max) = 256;
4183         MY(alpha_fade) = 200;
4184         MY(bounce) = 1.500000;
4185         MY(color_min) = "0x8f0d00";
4186         MY(color_max) = "0xff5a00";
4187         MY(count) = 2;
4188         MY(gravity) = -0.060000;
4189         MY(sizeincrease) = -10;
4190         MY(size_min) = 20;
4191         MY(size_max) = 30;
4192         MY(tex_min) = 48;
4193         MY(tex_max) = 55;
4194         MY(type) = "smoke";
4195         MY(velocityjitter) = '10.0 10.0 10.0';
4196         MY(velocitymultiplier) = 15;
4197 }
4198 // smoke
4199 SUB(flamethrower) {
4200         MY(airfriction) = 1;
4201         MY(alpha_min) = 256;
4202         MY(alpha_max) = 256;
4203         MY(alpha_fade) = 90;
4204         MY(color_min) = "0x000000";
4205         MY(color_max) = "0x111111";
4206         MY(count) = 0.500000;
4207         MY(originjitter) = '10.0 10.0 10.0';
4208         MY(sizeincrease) = 7;
4209         MY(size_min) = 5;
4210         MY(size_max) = 15;
4211         MY(tex_max) = 8;
4212         MY(type) = "alphastatic";
4213         MY(velocitymultiplier) = 20;
4214         MY(velocityoffset) = '0.0 0.0 10.0';
4215 }
4216
4217 // port-o-launch trail
4218 DEF(TR_WIZSPIKE);
4219 // glowing vapor trail
4220 SUB(TR_WIZSPIKE) {
4221         MY(alpha_min) = 256;
4222         MY(alpha_max) = 256;
4223         MY(alpha_fade) = 968;
4224         MY(color_min) = "0x404040";
4225         MY(color_max) = "0x404040";
4226         MY(lightcolor) = '1.5 3.0 6.0';
4227         MY(lightradius) = 90;
4228         MY(size_min) = 3;
4229         MY(size_max) = 3;
4230         MY(tex_min) = 62;
4231         MY(tex_max) = 62;
4232         MY(trailspacing) = 4;
4233         MY(type) = "static";
4234         MY(velocitymultiplier) = -0.100000;
4235 }
4236 // bright sparks
4237 SUB(TR_WIZSPIKE) {
4238         MY(airfriction) = 12;
4239         MY(alpha_min) = 444;
4240         MY(alpha_max) = 512;
4241         MY(alpha_fade) = 1866;
4242         MY(bounce) = 1;
4243         MY(color_min) = "0x404040";
4244         MY(color_max) = "0x404040";
4245         MY(count) = 1.500000;
4246         MY(originjitter) = '1.0 1.0 1.0';
4247         MY(sizeincrease) = -20;
4248         MY(size_min) = 2;
4249         MY(size_max) = 4;
4250         MY(tex_min) = 42;
4251         MY(tex_max) = 42;
4252         MY(trailspacing) = 12;
4253         MY(type) = "snow";
4254         MY(velocityjitter) = '50.0 50.0 50.0';
4255         MY(velocityoffset) = '0.0 0.0 15.0';
4256 }
4257
4258 // TAG trail
4259 DEF(TR_VORESPIKE);
4260 // glowing vapor trail
4261 SUB(TR_VORESPIKE) {
4262         MY(alpha_min) = 256;
4263         MY(alpha_max) = 256;
4264         MY(alpha_fade) = 968;
4265         MY(color_min) = "0x804000";
4266         MY(color_max) = "0x804000";
4267         MY(lightcolor) = '1.5 3.0 6.0';
4268         MY(lightradius) = 90;
4269         MY(size_min) = 3;
4270         MY(size_max) = 3;
4271         MY(tex_min) = 62;
4272         MY(tex_max) = 62;
4273         MY(trailspacing) = 4;
4274         MY(type) = "static";
4275         MY(velocitymultiplier) = -0.100000;
4276 }
4277 // bright sparks
4278 SUB(TR_VORESPIKE) {
4279         MY(airfriction) = 12;
4280         MY(alpha_min) = 444;
4281         MY(alpha_max) = 512;
4282         MY(alpha_fade) = 1866;
4283         MY(bounce) = 1;
4284         MY(color_min) = "0xff8000";
4285         MY(color_max) = "0xff8000";
4286         MY(count) = 1.500000;
4287         MY(originjitter) = '1.0 1.0 1.0';
4288         MY(sizeincrease) = -20;
4289         MY(size_min) = 2;
4290         MY(size_max) = 4;
4291         MY(tex_min) = 42;
4292         MY(tex_max) = 42;
4293         MY(trailspacing) = 12;
4294         MY(type) = "snow";
4295         MY(velocityjitter) = '50.0 50.0 50.0';
4296         MY(velocityoffset) = '0.0 0.0 15.0';
4297 }
4298
4299 DEF(flac_explode);
4300 SUB(flac_explode) {
4301         MY(alpha_min) = 256;
4302         MY(alpha_max) = 256;
4303         MY(countabsolute) = 1;
4304         MY(lightcolor) = '8.0 4.0 1.0';
4305         MY(lightradiusfade) = 400;
4306         MY(lightradius) = 150;
4307         MY(originjitter) = '40.0 40.0 40.0';
4308         MY(size_min) = 18;
4309         MY(size_max) = 28;
4310         MY(tex_min) = 8;
4311         MY(tex_max) = 16;
4312         MY(type) = "decal";
4313 }
4314 // fire effect which make bright dot inside
4315 SUB(flac_explode) {
4316         MY(airfriction) = 8;
4317         MY(alpha_min) = 128;
4318         MY(alpha_max) = 256;
4319         MY(alpha_fade) = 456;
4320         MY(bounce) = 1.500000;
4321         MY(color_min) = "0xffe955";
4322         MY(color_max) = "0xff5a00";
4323         MY(count) = 3;
4324         MY(liquidfriction) = 8;
4325         MY(notunderwater) = true;
4326         MY(originjitter) = '8.0 8.0 8.0';
4327         MY(sizeincrease) = 5;
4328         MY(size_min) = 6;
4329         MY(size_max) = 16;
4330         MY(tex_min) = 48;
4331         MY(tex_max) = 55;
4332         MY(type) = "smoke";
4333         MY(velocityjitter) = '156.0 156.0 156.0';
4334 }
4335 // fire effect which expands then slows
4336 SUB(flac_explode) {
4337         MY(airfriction) = 12;
4338         MY(alpha_min) = 128;
4339         MY(alpha_max) = 256;
4340         MY(alpha_fade) = 456;
4341         MY(bounce) = 1.500000;
4342         MY(color_min) = "0x8f0d00";
4343         MY(color_max) = "0xff5a00";
4344         MY(count) = 6;
4345         MY(liquidfriction) = 8;
4346         MY(notunderwater) = true;
4347         MY(originjitter) = '8.0 8.0 8.0';
4348         MY(sizeincrease) = 15;
4349         MY(size_min) = 10;
4350         MY(size_max) = 16;
4351         MY(tex_min) = 48;
4352         MY(tex_max) = 55;
4353         MY(type) = "static";
4354         MY(velocityjitter) = '256.0 256.0 256.0';
4355 }
4356 // smoke
4357 SUB(flac_explode) {
4358         MY(airfriction) = 5;
4359         MY(alpha_min) = 500;
4360         MY(alpha_max) = 600;
4361         MY(alpha_fade) = 556;
4362         MY(bounce) = 2;
4363         MY(color_min) = "0x000000";
4364         MY(color_max) = "0x111111";
4365         MY(count) = 5;
4366         MY(notunderwater) = true;
4367         MY(sizeincrease) = 20;
4368         MY(size_min) = 10;
4369         MY(size_max) = 20;
4370         MY(tex_max) = 8;
4371         MY(type) = "alphastatic";
4372         MY(velocityjitter) = '244.0 244.0 244.0';
4373 }
4374 // underwater bubbles
4375 SUB(flac_explode) {
4376         MY(alpha_min) = 128;
4377         MY(alpha_max) = 256;
4378         MY(alpha_fade) = 64;
4379         MY(bounce) = 1.500000;
4380         MY(color_min) = "0x404040";
4381         MY(color_max) = "0x808080";
4382         MY(count) = 8;
4383         MY(gravity) = -0.125000;
4384         MY(liquidfriction) = 0.250000;
4385         MY(originjitter) = '16.0 16.0 16.0';
4386         MY(size_min) = 1;
4387         MY(size_max) = 2;
4388         MY(tex_min) = 62;
4389         MY(tex_max) = 62;
4390         MY(type) = "bubble";
4391         MY(underwater) = true;
4392         MY(velocityjitter) = '96.0 96.0 96.0';
4393 }
4394 // bouncing sparks
4395 SUB(flac_explode) {
4396         MY(airfriction) = 0.200000;
4397         MY(alpha_min) = 256;
4398         MY(alpha_max) = 256;
4399         MY(alpha_fade) = 384;
4400         MY(bounce) = 1.500000;
4401         MY(color_min) = "0x903010";
4402         MY(color_max) = "0xFFD030";
4403         MY(count) = 4;
4404         MY(gravity) = 1;
4405         MY(liquidfriction) = 0.800000;
4406         MY(notunderwater) = true;
4407         MY(size_min) = 2;
4408         MY(size_max) = 2;
4409         MY(tex_min) = 40;
4410         MY(tex_max) = 40;
4411         MY(type) = "spark";
4412         MY(velocityjitter) = '256.0 256.0 256.0';
4413         MY(velocityoffset) = '0.0 0.0 80.0';
4414 }
4415
4416 // bullet trail (somewhat like a tracer)
4417 DEF(tr_bullet);
4418 SUB(tr_bullet) {
4419         MY(alpha_min) = 256;
4420         MY(alpha_max) = 256;
4421         MY(alpha_fade) = 2560;
4422         MY(color_min) = "0xff8960";
4423         MY(color_max) = "0xff8533";
4424         MY(size_min) = 4;
4425         MY(size_max) = 4;
4426         MY(stretchfactor) = 0.200000;
4427         MY(tex_min) = 70;
4428         MY(tex_max) = 70;
4429         MY(trailspacing) = 750;
4430         MY(type) = "spark";
4431         MY(velocitymultiplier) = 3;
4432 }
4433
4434 // smoke emitter for small pipes
4435 DEF(smoking_smallemitter);
4436 SUB(smoking_smallemitter) {
4437         MY(airfriction) = -1;
4438         MY(alpha_min) = 200;
4439         MY(alpha_max) = 256;
4440         MY(alpha_fade) = 100;
4441         MY(color_min) = "0x292929";
4442         MY(color_max) = "0x000000";
4443         MY(count) = 10;
4444         MY(gravity) = -0.100000;
4445         MY(originjitter) = '10.0 10.0 10.0';
4446         MY(sizeincrease) = 20;
4447         MY(size_min) = 6;
4448         MY(size_max) = 15;
4449         MY(tex_max) = 8;
4450         MY(type) = "alphastatic";
4451         MY(velocityjitter) = '5.0 5.0 20.0';
4452 }
4453
4454 // crylink trail
4455 DEF(TR_CRYLINKPLASMA);
4456 // plasma smoke
4457 SUB(TR_CRYLINKPLASMA) {
4458         MY(alpha_min) = 256;
4459         MY(alpha_max) = 256;
4460         MY(alpha_fade) = 1024;
4461         MY(color_min) = "0x5522aa";
4462         MY(color_max) = "0x6622ff";
4463         MY(sizeincrease) = 8;
4464         MY(size_min) = 2;
4465         MY(size_max) = 2;
4466         MY(tex_min) = 32;
4467         MY(tex_max) = 32;
4468         MY(trailspacing) = 128;
4469         MY(type) = "static";
4470         MY(velocityjitter) = '8.0 8.0 8.0';
4471         MY(velocitymultiplier) = -0.010000;
4472 }
4473 // crylink main trail
4474 SUB(TR_CRYLINKPLASMA) {
4475         MY(alpha_min) = 256;
4476         MY(alpha_max) = 256;
4477         MY(alpha_fade) = 2600;
4478         MY(color_min) = "0x5522aa";
4479         MY(color_max) = "0x6622ff";
4480         MY(sizeincrease) = 15;
4481         MY(size_min) = 3;
4482         MY(size_max) = 3;
4483         MY(tex_min) = 3;
4484         MY(tex_max) = 3;
4485         MY(trailspacing) = 16;
4486         MY(type) = "static";
4487         MY(velocityjitter) = '2.0 2.0 2.0';
4488         MY(velocitymultiplier) = 0.010000;
4489 }
4490
4491 DEF(cherryblossom);
4492 SUB(cherryblossom) {
4493         MY(airfriction) = 1;
4494         MY(alpha_min) = 128;
4495         MY(alpha_max) = 256;
4496         MY(alpha_fade) = 32;
4497         MY(bounce) = 1.500000;
4498         MY(color_min) = "0xb123ff";
4499         MY(color_max) = "0xb183ff";
4500         MY(count) = 1.500000;
4501         MY(gravity) = 0.050000;
4502         MY(liquidfriction) = 1;
4503         MY(originjitter) = '16.0 16.0 16.0';
4504         MY(size_min) = 1.500000;
4505         MY(size_max) = 2;
4506         MY(tex_min) = 40;
4507         MY(tex_max) = 40;
4508         MY(type) = "static";
4509         MY(velocityjitter) = '32.0 32.0 0.0';
4510 }
4511
4512 DEF(alien_blood);
4513 SUB(alien_blood) {
4514         MY(airfriction) = 0.400000;
4515         MY(alpha_min) = 1560;
4516         MY(alpha_max) = 2560;
4517         MY(alpha_fade) = 7000;
4518         MY(blend) = "invmod";
4519         MY(bounce) = -1;
4520         MY(color_min) = "0xDC9BCD";
4521         MY(color_max) = "0xDC9BCD";
4522         MY(count) = 0.400000;
4523         MY(sizeincrease) = 20;
4524         MY(size_min) = 5;
4525         MY(size_max) = 11;
4526         MY(staincolor_min) = "0xDC9BCD";
4527         MY(staincolor_max) = "0xDC9BCD";
4528         MY(stainsize_min) = 1;
4529         MY(stainsize_max) = 2;
4530         MY(staintex_min) = 16;
4531         MY(staintex_max) = 24;
4532         MY(stretchfactor) = 25;
4533         MY(tex_min) = 24;
4534         MY(tex_max) = 32;
4535         MY(type) = "spark";
4536         MY(velocityjitter) = '99.0 99.0 55.0';
4537 }
4538 // blood mist
4539 SUB(alien_blood) {
4540         MY(alpha_min) = 3000;
4541         MY(alpha_max) = 5560;
4542         MY(alpha_fade) = 12000;
4543         MY(blend) = "invmod";
4544         MY(color_min) = "0xDC9BCD";
4545         MY(color_max) = "0xDC9BCD";
4546         MY(countabsolute) = 1;
4547         MY(originjitter) = '11.0 11.0 11.0';
4548         MY(sizeincrease) = 20;
4549         MY(size_min) = 25;
4550         MY(size_max) = 30;
4551         MY(tex_min) = 24;
4552         MY(tex_max) = 32;
4553         MY(type) = "smoke";
4554 }
4555
4556 DEF(robot_blood);
4557 SUB(robot_blood) {
4558         MY(airfriction) = 1;
4559         MY(alpha_min) = 256;
4560         MY(alpha_max) = 256;
4561         MY(alpha_fade) = 64;
4562         MY(bounce) = -1;
4563         MY(color_min) = "0xff3000";
4564         MY(color_max) = "0xff7373";
4565         MY(count) = 0.167000;
4566         MY(gravity) = 1;
4567         MY(liquidfriction) = 4;
4568         MY(size_min) = 1;
4569         MY(size_max) = 2;
4570         MY(tex_min) = 70;
4571         MY(tex_max) = 70;
4572         MY(type) = "spark";
4573         MY(velocityjitter) = '264.0 264.0 264.0';
4574         MY(velocityoffset) = '0.0 0.0 100.0';
4575 }
4576 // shockwave
4577 SUB(robot_blood) {
4578         MY(alpha_max) = 90;
4579         MY(alpha_fade) = 1000;
4580         MY(color_min) = "0xff8400";
4581         MY(color_max) = "0xffbb72";
4582         MY(countabsolute) = 1;
4583         MY(originjitter) = '11.0 11.0 11.0';
4584         MY(sizeincrease) = 800;
4585         MY(size_min) = 2;
4586         MY(size_max) = 2;
4587         MY(tex_min) = 74;
4588         MY(tex_max) = 74;
4589         MY(type) = "smoke";
4590 }
4591 // electo sparks
4592 SUB(robot_blood) {
4593         MY(alpha_min) = 256;
4594         MY(alpha_max) = 256;
4595         MY(alpha_fade) = 5120;
4596         MY(color_min) = "0xff3000";
4597         MY(color_max) = "0xff8585";
4598         MY(count) = 0.100000;
4599         MY(originjitter) = '41.0 41.0 21.0';
4600         MY(startangle_min) = -180;
4601         MY(startangle_max) = 180;
4602         MY(spin_min) = 4000;
4603         MY(spin_max) = -4000;
4604         MY(size_min) = 20;
4605         MY(size_max) = 40;
4606         MY(tex_min) = 71;
4607         MY(tex_max) = 73;
4608         MY(type) = "smoke";
4609 }
4610
4611 DEF(alien_TR_BLOOD);
4612 SUB(alien_TR_BLOOD) {
4613         MY(airfriction) = -2;
4614         MY(alpha_min) = 384;
4615         MY(alpha_max) = 984;
4616         MY(alpha_fade) = 1492;
4617         MY(blend) = "invmod";
4618         MY(bounce) = -1;
4619         MY(color_min) = "0xC080B0";
4620         MY(color_max) = "0xC080B0";
4621         MY(gravity) = 0.400000;
4622         MY(liquidfriction) = 1;
4623         MY(sizeincrease) = -5;
4624         MY(size_min) = 4;
4625         MY(size_max) = 19;
4626         MY(staincolor_min) = "0xC080B0";
4627         MY(staincolor_max) = "0xC080B0";
4628         MY(stainsize_min) = 1;
4629         MY(stainsize_max) = 2;
4630         MY(staintex_min) = 16;
4631         MY(staintex_max) = 24;
4632         MY(stretchfactor) = 7;
4633         MY(tex_min) = 24;
4634         MY(tex_max) = 32;
4635         MY(trailspacing) = 20;
4636         MY(type) = "spark";
4637         MY(velocityjitter) = '64.0 64.0 64.0';
4638         MY(velocitymultiplier) = -0.100000;
4639 }
4640
4641 // splash around gib
4642 SUB(TR_BLOOD) {
4643         MY(alpha_min) = 684;
4644         MY(alpha_max) = 684;
4645         MY(alpha_fade) = 7492;
4646         MY(color_min) = "0xA8FFFF";
4647         MY(color_max) = "0xA8FFFF";
4648         MY(sizeincrease) = 500;
4649         MY(size_min) = 4;
4650         MY(size_max) = 6;
4651         MY(tex_min) = 24;
4652         MY(tex_max) = 32;
4653         MY(trailspacing) = 42;
4654         MY(type) = "blood";
4655 }
4656
4657 DEF(robot_TR_BLOOD);
4658 SUB(robot_TR_BLOOD) {
4659         MY(airfriction) = -2;
4660         MY(alpha_min) = 384;
4661         MY(alpha_max) = 984;
4662         MY(alpha_fade) = 1892;
4663         MY(blend) = "invmod";
4664         MY(bounce) = -1;
4665         MY(color_min) = "0xC0D890";
4666         MY(color_max) = "0xC0D890";
4667         MY(gravity) = 0.400000;
4668         MY(liquidfriction) = 1;
4669         MY(sizeincrease) = -6;
4670         MY(size_min) = 4;
4671         MY(size_max) = 13;
4672         MY(staincolor_min) = "0x808080";
4673         MY(staincolor_max) = "0x808080";
4674         MY(stainsize_min) = 1;
4675         MY(stainsize_max) = 3;
4676         MY(staintex_min) = 16;
4677         MY(staintex_max) = 24;
4678         MY(stretchfactor) = 6;
4679         MY(tex_min) = 24;
4680         MY(tex_max) = 32;
4681         MY(trailspacing) = 16;
4682         MY(type) = "spark";
4683         MY(velocityjitter) = '64.0 64.0 64.0';
4684         MY(velocitymultiplier) = -0.300000;
4685 }
4686 // fire
4687 SUB(robot_TR_BLOOD) {
4688         MY(airfriction) = 4;
4689         MY(alpha_min) = 128;
4690         MY(alpha_max) = 256;
4691         MY(alpha_fade) = 900;
4692         MY(color_min) = "0x902010";
4693         MY(color_max) = "0xff3600";
4694         MY(gravity) = -1;
4695         MY(liquidfriction) = 4;
4696         MY(notunderwater) = true;
4697         MY(sizeincrease) = 10;
4698         MY(size_min) = 5;
4699         MY(size_max) = 20;
4700         MY(stretchfactor) = 5;
4701         MY(tex_min) = 48;
4702         MY(tex_max) = 55;
4703         MY(trailspacing) = 16;
4704         MY(type) = "spark";
4705         MY(velocityjitter) = '44.0 44.0 44.0';
4706 }
4707 // arcs
4708 SUB(robot_TR_BLOOD) {
4709         MY(alpha_min) = 1128;
4710         MY(alpha_max) = 1256;
4711         MY(alpha_fade) = 44900;
4712         MY(color_min) = "0xff3000";
4713         MY(color_max) = "0xff8585";
4714         MY(startangle_min) = -180;
4715         MY(startangle_max) = 180;
4716         MY(spin_min) = 4000;
4717         MY(spin_max) = -4000;
4718         MY(size_min) = 25;
4719         MY(size_max) = 30;
4720         MY(tex_min) = 71;
4721         MY(tex_max) = 73;
4722         MY(trailspacing) = 128;
4723         MY(type) = "smoke";
4724         MY(velocityjitter) = '44.0 44.0 44.0';
4725 }
4726
4727 DEF(alien_TR_SLIGHTBLOOD);
4728 SUB(alien_TR_SLIGHTBLOOD) {
4729         MY(airfriction) = 1;
4730         MY(alpha_min) = 384;
4731         MY(alpha_max) = 384;
4732         MY(alpha_fade) = 192;
4733         MY(bounce) = -1;
4734         MY(color_min) = "0xC080B0";
4735         MY(color_max) = "0xC080B0";
4736         MY(liquidfriction) = 4;
4737         MY(size_min) = 80;
4738         MY(size_max) = 80;
4739         MY(staincolor_min) = "0x808080";
4740         MY(staincolor_max) = "0x808080";
4741         MY(staintex_min) = 16;
4742         MY(staintex_max) = 24;
4743         MY(tex_min) = 24;
4744         MY(tex_max) = 32;
4745         MY(trailspacing) = 64;
4746         MY(type) = "blood";
4747         MY(velocityjitter) = '64.0 64.0 64.0';
4748         MY(velocitymultiplier) = 0.500000;
4749 }
4750
4751 DEF(robot_TR_SLIGHTBLOOD);
4752 SUB(robot_TR_SLIGHTBLOOD) {
4753         MY(airfriction) = 1;
4754         MY(alpha_min) = 384;
4755         MY(alpha_max) = 384;
4756         MY(alpha_fade) = 192;
4757         MY(bounce) = -1;
4758         MY(color_min) = "0xC0D890";
4759         MY(color_max) = "0xC0D890";
4760         MY(liquidfriction) = 4;
4761         MY(size_min) = 8;
4762         MY(size_max) = 8;
4763         MY(staincolor_min) = "0x808080";
4764         MY(staincolor_max) = "0x808080";
4765         MY(staintex_min) = 16;
4766         MY(staintex_max) = 24;
4767         MY(tex_min) = 24;
4768         MY(tex_max) = 32;
4769         MY(trailspacing) = 64;
4770         MY(type) = "blood";
4771         MY(velocityjitter) = '64.0 64.0 64.0';
4772         MY(velocitymultiplier) = 0.500000;
4773 }
4774
4775 DEF(item_pickup);
4776 // flare particle and light
4777 SUB(item_pickup) {
4778         MY(alpha_min) = 128;
4779         MY(alpha_max) = 64;
4780         MY(alpha_fade) = 64;
4781         MY(color_min) = "0x63F2EA";
4782         MY(color_max) = "0xB0C5C4";
4783         MY(countabsolute) = 1;
4784         MY(size_min) = 8;
4785         MY(size_max) = 16;
4786         MY(type) = "static";
4787 }
4788 // cloud of particles which expand rapidly and then slow to form a ball
4789 SUB(item_pickup) {
4790         MY(alpha_min) = 256;
4791         MY(alpha_max) = 256;
4792         MY(alpha_fade) = 1280;
4793         MY(color_min) = "0x63F2EA";
4794         MY(color_max) = "0xB0C5C4";
4795         MY(count) = 32;
4796         MY(size_min) = 1;
4797         MY(size_max) = 1;
4798         MY(tex_min) = 41;
4799         MY(tex_max) = 41;
4800         MY(type) = "spark";
4801         MY(velocityjitter) = '256.0 256.0 256.0';
4802 }
4803
4804 DEF(bloodshower);
4805 SUB(bloodshower) {
4806         MY(alpha_min) = 156;
4807         MY(alpha_max) = 656;
4808         MY(alpha_fade) = 1664;
4809         MY(blend) = "invmod";
4810         MY(bounce) = -1;
4811         MY(color_min) = "0xA8FFFF";
4812         MY(color_max) = "0xA8FFFFF";
4813         MY(count) = 125;
4814         MY(gravity) = 1;
4815         MY(liquidfriction) = 4;
4816         MY(size_min) = 8;
4817         MY(size_max) = 28;
4818         MY(staincolor_min) = "0x808080";
4819         MY(staincolor_max) = "0x808080";
4820         MY(stainsize_min) = 1;
4821         MY(stainsize_max) = 2;
4822         MY(staintex_min) = 16;
4823         MY(staintex_max) = 24;
4824         MY(stretchfactor) = 3;
4825         MY(tex_min) = 24;
4826         MY(tex_max) = 32;
4827         MY(type) = "spark";
4828         MY(velocityjitter) = '764.0 764.0 764.0';
4829 }
4830 // center blood
4831 SUB(bloodshower) {
4832         MY(alpha_min) = 156;
4833         MY(alpha_max) = 656;
4834         MY(alpha_fade) = 1664;
4835         MY(blend) = "invmod";
4836         MY(color_min) = "0xA8FFFF";
4837         MY(color_max) = "0xA8FFFFF";
4838         MY(countabsolute) = 0.100000;
4839         MY(originjitter) = '50.0 50.0 50.0';
4840         MY(sizeincrease) = 300;
4841         MY(size_min) = 1;
4842         MY(size_max) = 28;
4843         MY(tex_min) = 24;
4844         MY(tex_max) = 32;
4845         MY(type) = "smoke";
4846 }
4847
4848 DEF(alien_bloodshower);
4849 SUB(alien_bloodshower) {
4850         MY(alpha_min) = 156;
4851         MY(alpha_max) = 656;
4852         MY(alpha_fade) = 1664;
4853         MY(blend) = "invmod";
4854         MY(bounce) = -1;
4855         MY(color_min) = "0xC080B0";
4856         MY(color_max) = "0xC080B0";
4857         MY(count) = 125;
4858         MY(gravity) = 1;
4859         MY(liquidfriction) = 4;
4860         MY(size_min) = 8;
4861         MY(size_max) = 28;
4862         MY(staincolor_min) = "0xC080B0";
4863         MY(staincolor_max) = "0xC080B0";
4864         MY(stainsize_min) = 1;
4865         MY(stainsize_max) = 2;
4866         MY(staintex_min) = 16;
4867         MY(staintex_max) = 24;
4868         MY(stretchfactor) = 3;
4869         MY(tex_min) = 24;
4870         MY(tex_max) = 32;
4871         MY(type) = "spark";
4872         MY(velocityjitter) = '764.0 764.0 764.0';
4873 }
4874 // center blood
4875 SUB(bloodshower) {
4876         MY(alpha_min) = 156;
4877         MY(alpha_max) = 656;
4878         MY(alpha_fade) = 1664;
4879         MY(blend) = "invmod";
4880         MY(color_min) = "0xA8FFFF";
4881         MY(color_max) = "0xA8FFFFF";
4882         MY(countabsolute) = 0.100000;
4883         MY(originjitter) = '50.0 50.0 50.0';
4884         MY(sizeincrease) = 300;
4885         MY(size_min) = 1;
4886         MY(size_max) = 28;
4887         MY(tex_min) = 24;
4888         MY(tex_max) = 32;
4889         MY(type) = "smoke";
4890 }
4891
4892 DEF(robot_bloodshower);
4893 SUB(robot_bloodshower) {
4894         MY(alpha_min) = 156;
4895         MY(alpha_max) = 656;
4896         MY(alpha_fade) = 1664;
4897         MY(blend) = "invmod";
4898         MY(bounce) = -1;
4899         MY(color_min) = "0xC0D890";
4900         MY(color_max) = "0xC0D890";
4901         MY(count) = 100;
4902         MY(gravity) = 1;
4903         MY(liquidfriction) = 4;
4904         MY(size_min) = 8;
4905         MY(size_max) = 28;
4906         MY(staincolor_min) = "0xC0D890";
4907         MY(staincolor_max) = "0xC0D890";
4908         MY(stainsize_min) = 1;
4909         MY(stainsize_max) = 2;
4910         MY(staintex_min) = 16;
4911         MY(staintex_max) = 24;
4912         MY(stretchfactor) = 3;
4913         MY(tex_min) = 24;
4914         MY(tex_max) = 32;
4915         MY(type) = "spark";
4916         MY(velocityjitter) = '764.0 764.0 764.0';
4917 }
4918 // arc
4919 SUB(robot_bloodshower) {
4920         MY(alpha_min) = 1128;
4921         MY(alpha_max) = 1256;
4922         MY(alpha_fade) = 4200;
4923         MY(color_min) = "0xff3000";
4924         MY(color_max) = "0xff8585";
4925         MY(count) = 2.500000;
4926         MY(originjitter) = '150.0 150.0 150.0';
4927         MY(startangle_min) = -180;
4928         MY(startangle_max) = 180;
4929         MY(spin_min) = 99;
4930         MY(spin_max) = -99;
4931         MY(size_min) = 25;
4932         MY(size_max) = 40;
4933         MY(tex_min) = 71;
4934         MY(tex_max) = 73;
4935         MY(type) = "smoke";
4936         MY(velocityjitter) = '44.0 44.0 44.0';
4937 }
4938 // shockwave
4939 SUB(robot_bloodshower) {
4940         MY(alpha_min) = 11;
4941         MY(alpha_max) = 125;
4942         MY(alpha_fade) = 990;
4943         MY(color_min) = "0xff3000";
4944         MY(color_max) = "0xff8585";
4945         MY(count) = 2.500000;
4946         MY(sizeincrease) = 3000;
4947         MY(size_min) = 5;
4948         MY(size_max) = 50;
4949         MY(tex_min) = 74;
4950         MY(tex_max) = 74;
4951         MY(type) = "smoke";
4952 }
4953
4954 #define ground_quake(name, colormin, colormax) \
4955         DEF(name##_ground_quake); \
4956         SUB(name##_ground_quake) /* smoke */ { \
4957                 MY(airfriction) = 3; \
4958                 MY(alpha_min) = 100; \
4959                 MY(alpha_max) = 126; \
4960                 MY(alpha_fade) = 200; \
4961                 MY(bounce) = 1.100000; \
4962                 MY(color_min) = "0x111111"; \
4963                 MY(color_max) = "0xbbbbbb"; \
4964                 MY(count) = 90; \
4965                 MY(gravity) = 0.500000; \
4966                 MY(notunderwater) = true; \
4967                 MY(sizeincrease) = 100; \
4968                 MY(size_min) = 20; \
4969                 MY(size_max) = 50; \
4970                 MY(tex_max) = 8; \
4971                 MY(time_min) = 5; \
4972                 MY(time_max) = 10; \
4973                 MY(type) = "smoke"; \
4974                 MY(velocityjitter) = '190.0 190.0 50.0'; \
4975         } \
4976         SUB(name##_ground_quake) { \
4977                 MY(airfriction) = 4; \
4978                 MY(alpha_min) = 100; \
4979                 MY(alpha_max) = 126; \
4980                 MY(alpha_fade) = 200; \
4981                 MY(bounce) = 1.200000; \
4982                 MY(color_min) = "0x111111"; \
4983                 MY(color_max) = "0x979797"; \
4984                 MY(count) = 40; \
4985                 MY(gravity) = 0.200000; \
4986                 MY(notunderwater) = true; \
4987                 MY(sizeincrease) = 60; \
4988                 MY(size_min) = 10; \
4989                 MY(size_max) = 30; \
4990                 MY(tex_max) = 8; \
4991                 MY(time_min) = 10; \
4992                 MY(time_max) = 15; \
4993                 MY(type) = "smoke"; \
4994                 MY(velocityjitter) = '190.0 190.0 50.0'; \
4995         } \
4996         SUB(name##_ground_quake) { \
4997                 MY(alpha_min) = 200; \
4998                 MY(alpha_max) = 356; \
4999                 MY(alpha_fade) = 512; \
5000                 MY(bounce) = 6; \
5001                 MY(color_min) = colormin; \
5002                 MY(color_max) = colormax; \
5003                 MY(count) = 16; \
5004                 MY(gravity) = -0.500000; \
5005                 MY(originjitter) = '33.0 33.0 33.0'; \
5006                 MY(sizeincrease) = 5; \
5007                 MY(size_min) = 4; \
5008                 MY(size_max) = 20; \
5009                 MY(tex_min) = 48; \
5010                 MY(tex_max) = 55; \
5011                 MY(time_min) = 15; \
5012                 MY(time_max) = 25; \
5013                 MY(type) = "smoke"; \
5014                 MY(velocityjitter) = '22.0 22.0 50.0'; \
5015         } \
5016         SUB(name##_ground_quake) /* smoke */ { \
5017                 MY(alpha_min) = 200; \
5018                 MY(alpha_max) = 256; \
5019                 MY(alpha_fade) = 200; \
5020                 MY(bounce) = 2; \
5021                 MY(color_min) = "0x000000"; \
5022                 MY(color_max) = "0xffffff"; \
5023                 MY(count) = 11; \
5024                 MY(gravity) = -0.300000; \
5025                 MY(originjitter) = '44.0 44.0 44.0'; \
5026                 MY(sizeincrease) = 11; \
5027                 MY(size_min) = 22; \
5028                 MY(size_max) = 33; \
5029                 MY(tex_max) = 8; \
5030                 MY(time_min) = 25; \
5031                 MY(time_max) = 35; \
5032                 MY(type) = "alphastatic"; \
5033                 MY(velocityjitter) = '11.0 11.0 50.0'; \
5034         } \
5035         /**/
5036
5037 ground_quake(red,       "0x9E6A64", "0x91302D")
5038 ground_quake(blue,      "0x64679E", "0x2D4C91")
5039 #undef ground_quake
5040
5041 #include "effectinfo_gentle_morphed.inc"
5042
5043 // Team / hit vaporizer effects
5044 #define TE_TEI_G3(name, colormin1, colormax1, colormin2, colormax2) \
5045         DEF(TE_TEI_G3##name); \
5046         SUB(TE_TEI_G3##name) { \
5047                 MY(alpha_min) = 128; \
5048                 MY(alpha_max) = 128; \
5049                 MY(alpha_fade) = 256; \
5050                 MY(color_min) = colormin1; \
5051                 MY(color_max) = colormax1; \
5052                 MY(countabsolute) = 1; \
5053                 MY(size_min) = 4; \
5054                 MY(size_max) = 4; \
5055                 MY(tex_min) = 200; \
5056                 MY(tex_max) = 200; \
5057                 MY(type) = "beam"; \
5058         } \
5059         SUB(TE_TEI_G3##name) { \
5060                 MY(airfriction) = -4; \
5061                 MY(alpha_min) = 256; \
5062                 MY(alpha_max) = 256; \
5063                 MY(alpha_fade) = 512; \
5064                 MY(color_min) = colormin2; \
5065                 MY(color_max) = colormax2; \
5066                 MY(sizeincrease) = 3; \
5067                 MY(size_min) = 0.300000; \
5068                 MY(size_max) = 0.300000; \
5069                 MY(tex_min) = 46; \
5070                 MY(tex_max) = 46; \
5071                 MY(trailspacing) = 8; \
5072                 MY(type) = "smoke"; \
5073                 MY(velocityjitter) = '3.0 3.0 3.0'; \
5074         } \
5075         DEF(TE_TEI_G3##name##_HIT); \
5076         SUB(TE_TEI_G3##name##_HIT) { \
5077                 MY(alpha_min) = 128; \
5078                 MY(alpha_max) = 128; \
5079                 MY(alpha_fade) = 256; \
5080                 MY(color_min) = colormin1; \
5081                 MY(color_max) = colormax1; \
5082                 MY(countabsolute) = 1; \
5083                 MY(size_min) = 8; \
5084                 MY(size_max) = 8; \
5085                 MY(tex_min) = 200; \
5086                 MY(tex_max) = 200; \
5087                 MY(type) = "beam"; \
5088         } \
5089         SUB(TE_TEI_G3##name##_HIT) /* rings */ { \
5090                 MY(airfriction) = -4; \
5091                 MY(alpha_min) = 256; \
5092                 MY(alpha_max) = 256; \
5093                 MY(alpha_fade) = 512; \
5094                 MY(color_min) = "0xFFFFFF"; \
5095                 MY(color_max) = colormax1; \
5096                 MY(sizeincrease) = -2; \
5097                 MY(size_min) = 2; \
5098                 MY(size_max) = 2; \
5099                 MY(trailspacing) = 20; \
5100                 MY(type) = "smoke"; \
5101                 MY(velocityjitter) = '2.0 2.0 2.0'; \
5102         } \
5103         SUB(TE_TEI_G3##name##_HIT) { \
5104                 MY(airfriction) = -4; \
5105                 MY(alpha_min) = 256; \
5106                 MY(alpha_max) = 256; \
5107                 MY(alpha_fade) = 512; \
5108                 MY(color_min) = colormin1; \
5109                 MY(color_max) = colormax1; \
5110                 MY(sizeincrease) = -6; \
5111                 MY(size_min) = 10; \
5112                 MY(size_max) = 10; \
5113                 MY(trailspacing) = 40; \
5114                 MY(type) = "smoke"; \
5115         } \
5116         /**/
5117 TE_TEI_G3(RED, "0xFF0000", "0xFF0011", "0x200000", "0x400000")
5118 TE_TEI_G3(BLUE, "0x0000FF", "0x1100FF", "0x000020", "0x000040")
5119 TE_TEI_G3(YELLOW, "0xffff00", "0xffff11", "0x202000", "0x404000")
5120 TE_TEI_G3(PINK, "0xFF00FF", "0xFF11FF", "0x200020", "0x400040")
5121 #undef TE_TEI_G3
5122
5123 #include "effectinfo_gentle_particlegibs.inc"
5124
5125 #include "effectinfo_onslaught.inc"
5126
5127 DEF(firemine);
5128 SUB(firemine) {
5129         MY(airfriction) = 1.200000;
5130         MY(alpha_min) = 50;
5131         MY(alpha_max) = 256;
5132         MY(alpha_fade) = 250;
5133         MY(bounce) = 1.500000;
5134         MY(color_min) = "0x8f0d00";
5135         MY(color_max) = "0xff5a00";
5136         MY(count) = 0.500000;
5137         MY(gravity) = -0.060000;
5138         MY(sizeincrease) = 5;
5139         MY(size_min) = 1;
5140         MY(size_max) = 1;
5141         MY(tex_min) = 48;
5142         MY(tex_max) = 55;
5143         MY(trailspacing) = 2;
5144         MY(type) = "smoke";
5145         MY(velocityjitter) = '10.0 10.0 2.0';
5146 }
5147 // slowfire
5148 SUB(firemine) {
5149         MY(airfriction) = 1.200000;
5150         MY(alpha_min) = 50;
5151         MY(alpha_max) = 256;
5152         MY(alpha_fade) = 200;
5153         MY(bounce) = 1.500000;
5154         MY(color_min) = "0x8f0d00";
5155         MY(color_max) = "0xff5a00";
5156         MY(count) = 0.500000;
5157         MY(gravity) = -0.060000;
5158         MY(sizeincrease) = 5;
5159         MY(size_min) = 1;
5160         MY(size_max) = 1;
5161         MY(tex_min) = 48;
5162         MY(tex_max) = 55;
5163         MY(trailspacing) = 2;
5164         MY(type) = "smoke";
5165         MY(velocityjitter) = '10.0 10.0 10.0';
5166 }
5167 // very slow and small fire
5168 SUB(firemine) {
5169         MY(airfriction) = 0.300000;
5170         MY(alpha_min) = 50;
5171         MY(alpha_max) = 256;
5172         MY(alpha_fade) = 200;
5173         MY(bounce) = 1.500000;
5174         MY(color_min) = "0x8f0d00";
5175         MY(color_max) = "0xff5a00";
5176         MY(count) = 0.500000;
5177         MY(gravity) = -0.060000;
5178         MY(sizeincrease) = 2;
5179         MY(size_min) = 1;
5180         MY(size_max) = 1;
5181         MY(tex_min) = 48;
5182         MY(tex_max) = 55;
5183         MY(trailspacing) = 4;
5184         MY(type) = "smoke";
5185         MY(velocityjitter) = '8.0 8.0 8.0';
5186 }
5187 // decreasing fire
5188 SUB(firemine) {
5189         MY(airfriction) = 0.300000;
5190         MY(alpha_min) = 50;
5191         MY(alpha_max) = 256;
5192         MY(alpha_fade) = 200;
5193         MY(bounce) = 1.500000;
5194         MY(color_min) = "0x8f0d00";
5195         MY(color_max) = "0xff5a00";
5196         MY(count) = 0.500000;
5197         MY(gravity) = -0.060000;
5198         MY(sizeincrease) = -3;
5199         MY(size_min) = 5;
5200         MY(size_max) = 7;
5201         MY(tex_min) = 48;
5202         MY(tex_max) = 55;
5203         MY(trailspacing) = 4;
5204         MY(type) = "smoke";
5205         MY(velocityjitter) = '3.0 3.0 3.0';
5206 }
5207 // smoke
5208 SUB(firemine) {
5209         MY(airfriction) = 1;
5210         MY(alpha_min) = 256;
5211         MY(alpha_max) = 256;
5212         MY(alpha_fade) = 90;
5213         MY(color_min) = "0x000000";
5214         MY(color_max) = "0x111111";
5215         MY(count) = 0.500000;
5216         MY(originjitter) = '2.0 2.0 2.0';
5217         MY(sizeincrease) = 1;
5218         MY(size_min) = 1;
5219         MY(size_max) = 4;
5220         MY(tex_max) = 8;
5221         MY(trailspacing) = 8;
5222         MY(type) = "alphastatic";
5223         MY(velocityoffset) = '0.0 0.0 3.0';
5224 }
5225 // fastfire
5226 SUB(firemine) {
5227         MY(airfriction) = 1.200000;
5228         MY(alpha_min) = 50;
5229         MY(alpha_max) = 256;
5230         MY(alpha_fade) = 1600;
5231         MY(bounce) = 1.500000;
5232         MY(color_min) = "0x8f0d00";
5233         MY(color_max) = "0xff5a00";
5234         MY(count) = 0.500000;
5235         MY(size_min) = 12;
5236         MY(size_max) = 12;
5237         MY(tex_min) = 48;
5238         MY(tex_max) = 55;
5239         MY(trailspacing) = 1;
5240         MY(type) = "smoke";
5241 }
5242 // light only
5243 SUB(firemine) {
5244         MY(lightcolor) = '2.7 2.7 0.6';
5245         MY(lightradiusfade) = 50000;
5246         MY(lightradius) = 50;
5247         MY(trailspacing) = 16;
5248 }
5249
5250 DEF(fireball);
5251 SUB(fireball) {
5252         MY(airfriction) = 1.200000;
5253         MY(alpha_min) = 50;
5254         MY(alpha_max) = 256;
5255         MY(alpha_fade) = 250;
5256         MY(bounce) = 1.500000;
5257         MY(color_min) = "0x8f0d00";
5258         MY(color_max) = "0xff5a00";
5259         MY(count) = 0.500000;
5260         MY(gravity) = -0.060000;
5261         MY(sizeincrease) = 20;
5262         MY(size_min) = 5;
5263         MY(size_max) = 5;
5264         MY(tex_min) = 48;
5265         MY(tex_max) = 55;
5266         MY(trailspacing) = 2;
5267         MY(type) = "smoke";
5268         MY(velocityjitter) = '40.0 40.0 11.0';
5269 }
5270 // slow fire
5271 SUB(fireball) {
5272         MY(airfriction) = 1.200000;
5273         MY(alpha_min) = 50;
5274         MY(alpha_max) = 256;
5275         MY(alpha_fade) = 200;
5276         MY(bounce) = 1.500000;
5277         MY(color_min) = "0x8f0d00";
5278         MY(color_max) = "0xff5a00";
5279         MY(count) = 0.500000;
5280         MY(gravity) = -0.060000;
5281         MY(sizeincrease) = 20;
5282         MY(size_min) = 5;
5283         MY(size_max) = 5;
5284         MY(tex_min) = 48;
5285         MY(tex_max) = 55;
5286         MY(trailspacing) = 2;
5287         MY(type) = "smoke";
5288         MY(velocityjitter) = '40.0 40.0 40.0';
5289 }
5290 // very slow and small fire
5291 SUB(fireball) {
5292         MY(airfriction) = 0.300000;
5293         MY(alpha_min) = 50;
5294         MY(alpha_max) = 256;
5295         MY(alpha_fade) = 200;
5296         MY(bounce) = 1.500000;
5297         MY(color_min) = "0x8f0d00";
5298         MY(color_max) = "0xff5a00";
5299         MY(count) = 0.500000;
5300         MY(gravity) = -0.060000;
5301         MY(sizeincrease) = 10;
5302         MY(size_min) = 5;
5303         MY(size_max) = 5;
5304         MY(tex_min) = 48;
5305         MY(tex_max) = 55;
5306         MY(trailspacing) = 4;
5307         MY(type) = "smoke";
5308         MY(velocityjitter) = '30.0 30.0 30.0';
5309 }
5310 // decreasing fire
5311 SUB(fireball) {
5312         MY(airfriction) = 0.300000;
5313         MY(alpha_min) = 50;
5314         MY(alpha_max) = 256;
5315         MY(alpha_fade) = 200;
5316         MY(bounce) = 1.500000;
5317         MY(color_min) = "0x8f0d00";
5318         MY(color_max) = "0xff5a00";
5319         MY(count) = 0.500000;
5320         MY(gravity) = -0.060000;
5321         MY(sizeincrease) = -10;
5322         MY(size_min) = 20;
5323         MY(size_max) = 30;
5324         MY(tex_min) = 48;
5325         MY(tex_max) = 55;
5326         MY(trailspacing) = 4;
5327         MY(type) = "smoke";
5328         MY(velocityjitter) = '10.0 10.0 10.0';
5329 }
5330 // smoke
5331 SUB(fireball) {
5332         MY(airfriction) = 1;
5333         MY(alpha_min) = 256;
5334         MY(alpha_max) = 256;
5335         MY(alpha_fade) = 90;
5336         MY(color_min) = "0x000000";
5337         MY(color_max) = "0x111111";
5338         MY(count) = 0.500000;
5339         MY(originjitter) = '10.0 10.0 10.0';
5340         MY(sizeincrease) = 7;
5341         MY(size_min) = 5;
5342         MY(size_max) = 15;
5343         MY(tex_max) = 8;
5344         MY(trailspacing) = 8;
5345         MY(type) = "alphastatic";
5346         MY(velocityoffset) = '0.0 0.0 10.0';
5347 }
5348 // fast fire
5349 SUB(fireball) {
5350         MY(airfriction) = 1.200000;
5351         MY(alpha_min) = 50;
5352         MY(alpha_max) = 256;
5353         MY(alpha_fade) = 1600;
5354         MY(bounce) = 1.500000;
5355         MY(color_min) = "0x8f0d00";
5356         MY(color_max) = "0xff5a00";
5357         MY(count) = 0.500000;
5358         MY(size_min) = 48;
5359         MY(size_max) = 48;
5360         MY(tex_min) = 48;
5361         MY(tex_max) = 55;
5362         MY(trailspacing) = 1;
5363         MY(type) = "smoke";
5364 }
5365 // light only
5366 SUB(fireball) {
5367         MY(lightcolor) = '2.7 2.7 0.6';
5368         MY(lightradiusfade) = 3000;
5369         MY(lightradius) = 300;
5370         MY(trailspacing) = 16;
5371 }
5372
5373 DEF(fireball_laser);
5374 SUB(fireball_laser) {
5375         MY(alpha_min) = 192;
5376         MY(alpha_max) = 256;
5377         MY(alpha_fade) = 2560;
5378         MY(color_min) = "0x800000";
5379         MY(color_max) = "0xFF8020";
5380         MY(count) = 10;
5381         MY(size_min) = 1;
5382         MY(size_max) = 1;
5383         MY(stretchfactor) = 0.700000;
5384         MY(type) = "spark";
5385         MY(velocityjitter) = '1.0 1.0 1.0';
5386         MY(velocitymultiplier) = 10;
5387 }
5388
5389 // rocket explosion (bigger than mortar and hagar)
5390 DEF(fireball_explode);
5391 // decal
5392 SUB(fireball_explode) {
5393         MY(alpha_min) = 256;
5394         MY(alpha_max) = 256;
5395         MY(countabsolute) = 1;
5396         MY(lightcolor) = '4.0 2.0 0.5';
5397         MY(lightradiusfade) = 500;
5398         MY(lightradius) = 500;
5399         MY(originjitter) = '56.0 56.0 56.0';
5400         MY(size_min) = 72;
5401         MY(size_max) = 72;
5402         MY(tex_min) = 8;
5403         MY(tex_max) = 16;
5404         MY(type) = "decal";
5405 }
5406 // flare effect
5407 SUB(fireball_explode) {
5408         MY(alpha_min) = 192;
5409         MY(alpha_max) = 192;
5410         MY(alpha_fade) = 64;
5411         MY(color_min) = "0x404040";
5412         MY(color_max) = "0x404040";
5413         MY(countabsolute) = 1;
5414         MY(size_min) = 72;
5415         MY(size_max) = 72;
5416         MY(tex_min) = 35;
5417         MY(tex_max) = 37;
5418         MY(type) = "static";
5419 }
5420 // fire effect
5421 SUB(fireball_explode) {
5422         MY(airfriction) = 4;
5423         MY(alpha_min) = 128;
5424         MY(alpha_max) = 128;
5425         MY(alpha_fade) = 256;
5426         MY(bounce) = 1.500000;
5427         MY(color_min) = "0x902010";
5428         MY(color_max) = "0xFFD080";
5429         MY(count) = 128;
5430         MY(liquidfriction) = 4;
5431         MY(notunderwater) = true;
5432         MY(originjitter) = '8.0 8.0 8.0';
5433         MY(size_min) = 16;
5434         MY(size_max) = 16;
5435         MY(tex_min) = 48;
5436         MY(tex_max) = 55;
5437         MY(type) = "static";
5438         MY(velocityjitter) = '512.0 512.0 512.0';
5439 }
5440 // underwater bubbles
5441 SUB(fireball_explode) {
5442         MY(alpha_min) = 128;
5443         MY(alpha_max) = 256;
5444         MY(alpha_fade) = 64;
5445         MY(bounce) = 1.500000;
5446         MY(color_min) = "0x404040";
5447         MY(color_max) = "0x808080";
5448         MY(count) = 32;
5449         MY(gravity) = -0.125000;
5450         MY(liquidfriction) = 0.250000;
5451         MY(originjitter) = '16.0 16.0 16.0';
5452         MY(size_min) = 3;
5453         MY(size_max) = 3;
5454         MY(tex_min) = 62;
5455         MY(tex_max) = 62;
5456         MY(type) = "bubble";
5457         MY(underwater) = true;
5458         MY(velocityjitter) = '144.0 144.0 144.0';
5459 }
5460 // bouncing sparks
5461 SUB(fireball_explode) {
5462         MY(airfriction) = 0.200000;
5463         MY(alpha_min) = 256;
5464         MY(alpha_max) = 256;
5465         MY(alpha_fade) = 384;
5466         MY(bounce) = 1.500000;
5467         MY(color_min) = "0x903010";
5468         MY(color_max) = "0xFFD030";
5469         MY(count) = 64;
5470         MY(gravity) = 1;
5471         MY(liquidfriction) = 0.800000;
5472         MY(notunderwater) = true;
5473         MY(size_min) = 2;
5474         MY(size_max) = 2;
5475         MY(type) = "spark";
5476         MY(velocityjitter) = '384.0 384.0 384.0';
5477         MY(velocityoffset) = '0.0 0.0 80.0';
5478 }
5479
5480 DEF(fireball_muzzleflash);
5481 SUB(fireball_muzzleflash) {
5482         MY(alpha_min) = 256;
5483         MY(alpha_max) = 256;
5484         MY(alpha_fade) = 512;
5485         MY(color_min) = "0x202020";
5486         MY(color_max) = "0x404040";
5487         MY(count) = 2;
5488         MY(lightcolor) = '2.0 1.5 0.2';
5489         MY(lightradiusfade) = 2000;
5490         MY(lightradius) = 200;
5491         MY(originjitter) = '1.5 1.5 1.5';
5492         MY(size_min) = 5;
5493         MY(size_max) = 5;
5494         MY(tex_max) = 8;
5495         MY(type) = "smoke";
5496         MY(velocityjitter) = '6.0 6.0 6.0';
5497         MY(velocitymultiplier) = 0.010000;
5498 }
5499 SUB(fireball_muzzleflash) {
5500         MY(airfriction) = 12;
5501         MY(alpha_max) = 128;
5502         MY(alpha_fade) = 1024;
5503         MY(color_min) = "0xFFFDD9";
5504         MY(color_max) = "0xFFFDD9";
5505         MY(count) = 15;
5506         MY(originjitter) = '1.0 1.0 1.0';
5507         MY(size_min) = 3;
5508         MY(size_max) = 3;
5509         MY(tex_min) = 40;
5510         MY(tex_max) = 40;
5511         MY(type) = "spark";
5512         MY(velocityjitter) = '300.0 300.0 300.0';
5513         MY(velocitymultiplier) = 0.500000;
5514 }
5515
5516 DEF(fireball_preattack_muzzleflash);
5517 SUB(fireball_preattack_muzzleflash) {
5518         MY(alpha_min) = 256;
5519         MY(alpha_max) = 256;
5520         MY(alpha_fade) = 512;
5521         MY(color_min) = "0x202020";
5522         MY(color_max) = "0x404040";
5523         MY(count) = 2;
5524         MY(lightcolor) = '2.0 1.5 0.2';
5525         MY(lightradiusfade) = 2000;
5526         MY(lightradius) = 200;
5527         MY(originjitter) = '1.5 1.5 1.5';
5528         MY(size_min) = 5;
5529         MY(size_max) = 5;
5530         MY(tex_max) = 8;
5531         MY(type) = "smoke";
5532         MY(velocityjitter) = '6.0 6.0 6.0';
5533         MY(velocitymultiplier) = 0.010000;
5534 }
5535 SUB(fireball_preattack_muzzleflash) {
5536         MY(airfriction) = 12;
5537         MY(alpha_max) = 128;
5538         MY(alpha_fade) = 1024;
5539         MY(color_min) = "0xFFFDD9";
5540         MY(color_max) = "0xFFFDD9";
5541         MY(count) = 15;
5542         MY(originjitter) = '1.0 1.0 1.0';
5543         MY(size_min) = 3;
5544         MY(size_max) = 3;
5545         MY(tex_min) = 40;
5546         MY(tex_max) = 40;
5547         MY(type) = "spark";
5548         MY(velocityjitter) = '300.0 300.0 300.0';
5549         MY(velocitymultiplier) = 0.500000;
5550 }
5551
5552 DEF(fireball_bfgdamage);
5553 SUB(fireball_bfgdamage) {
5554         MY(alpha_min) = 256;
5555         MY(alpha_max) = 256;
5556         MY(alpha_fade) = 512;
5557         MY(color_min) = "0x202020";
5558         MY(color_max) = "0x404040";
5559         MY(count) = 2;
5560         MY(lightcolor) = '2.0 1.5 0.2';
5561         MY(lightradiusfade) = 2000;
5562         MY(lightradius) = 200;
5563         MY(originjitter) = '1.5 1.5 1.5';
5564         MY(size_min) = 5;
5565         MY(size_max) = 5;
5566         MY(tex_max) = 8;
5567         MY(type) = "smoke";
5568         MY(velocityjitter) = '6.0 6.0 6.0';
5569         MY(velocitymultiplier) = 0.010000;
5570 }
5571 SUB(fireball_bfgdamage) {
5572         MY(airfriction) = 12;
5573         MY(alpha_max) = 128;
5574         MY(alpha_fade) = 1024;
5575         MY(color_min) = "0xFFFDD9";
5576         MY(color_max) = "0xFFFDD9";
5577         MY(count) = 15;
5578         MY(originjitter) = '1.0 1.0 1.0';
5579         MY(size_min) = 3;
5580         MY(size_max) = 3;
5581         MY(tex_min) = 40;
5582         MY(tex_max) = 40;
5583         MY(type) = "spark";
5584         MY(velocityjitter) = '300.0 300.0 300.0';
5585         MY(velocitymultiplier) = 0.500000;
5586 }
5587
5588 DEF(EF_FLAME);
5589 // fire
5590 SUB(EF_FLAME) {
5591         MY(alpha_min) = 200;
5592         MY(alpha_max) = 356;
5593         MY(alpha_fade) = 512;
5594         MY(bounce) = 2;
5595         MY(color_min) = "0x8f0d00";
5596         MY(color_max) = "0xff5a00";
5597         MY(count) = 100;
5598         MY(gravity) = -0.500000;
5599         MY(originjitter) = '12.0 12.0 34.0';
5600         MY(originoffset) = '0.0 0.0 10.0';
5601         MY(sizeincrease) = -1;
5602         MY(size_min) = 5;
5603         MY(size_max) = 21;
5604         MY(tex_min) = 48;
5605         MY(tex_max) = 55;
5606         MY(type) = "smoke";
5607         MY(velocityjitter) = '22.0 22.0 50.0';
5608 }
5609 // smoke
5610 SUB(EF_FLAME) {
5611         MY(alpha_min) = 200;
5612         MY(alpha_max) = 256;
5613         MY(alpha_fade) = 200;
5614         MY(bounce) = 2;
5615         MY(color_min) = "0x000000";
5616         MY(color_max) = "0x111111";
5617         MY(count) = 50;
5618         MY(gravity) = -0.300000;
5619         MY(originjitter) = '12.0 12.0 34.0';
5620         MY(originoffset) = '0.0 0.0 10.0';
5621         MY(sizeincrease) = 6;
5622         MY(size_min) = 11;
5623         MY(size_max) = 15;
5624         MY(tex_max) = 8;
5625         MY(type) = "alphastatic";
5626         MY(velocityjitter) = '11.0 11.0 50.0';
5627 }
5628 SUB(EF_FLAME) {
5629         MY(count) = 0.500000;
5630         MY(lightcolor) = '0.9 0.9 0.2';
5631         MY(lightradiusfade) = 10000;
5632         MY(lightradius) = 200;
5633 }
5634
5635 // rifle bullet trail (somewhat like a tracer)
5636 DEF(tr_rifle);
5637 SUB(tr_rifle) {
5638         MY(alpha_min) = 256;
5639         MY(alpha_max) = 256;
5640         MY(alpha_fade) = 2560;
5641         MY(color_min) = "0x800000";
5642         MY(color_max) = "0xFF8020";
5643         MY(size_min) = 1.500000;
5644         MY(size_max) = 1.500000;
5645         MY(stretchfactor) = 1;
5646         MY(trailspacing) = 128;
5647         MY(type) = "spark";
5648         MY(velocitymultiplier) = 0.700000;
5649 }
5650 SUB(tr_rifle) {
5651         MY(airfriction) = -4;
5652         MY(alpha_min) = 256;
5653         MY(alpha_max) = 256;
5654         MY(alpha_fade) = 256;
5655         MY(color_min) = "0x202020";
5656         MY(color_max) = "0x404040";
5657         MY(notunderwater) = true;
5658         MY(sizeincrease) = 0.400000;
5659         MY(size_min) = 4;
5660         MY(size_max) = 4;
5661         MY(tex_max) = 8;
5662         MY(trailspacing) = 8;
5663         MY(type) = "smoke";
5664         MY(velocityjitter) = '4.0 4.0 4.0';
5665 }
5666 SUB(tr_rifle) {
5667         MY(alpha_min) = 256;
5668         MY(alpha_max) = 256;
5669         MY(alpha_fade) = 128;
5670         MY(bounce) = 1.500000;
5671         MY(color_min) = "0x404040";
5672         MY(color_max) = "0x808080";
5673         MY(gravity) = -0.125000;
5674         MY(liquidfriction) = 4;
5675         MY(size_min) = 2;
5676         MY(size_max) = 2;
5677         MY(tex_min) = 62;
5678         MY(tex_max) = 62;
5679         MY(trailspacing) = 32;
5680         MY(type) = "bubble";
5681         MY(underwater) = true;
5682         MY(velocityjitter) = '16.0 16.0 16.0';
5683 }
5684
5685 // rocket guiding start
5686 DEF(rocket_guide);
5687 // underwater bubbles
5688 SUB(rocket_guide) {
5689         MY(alpha_min) = 128;
5690         MY(alpha_max) = 256;
5691         MY(alpha_fade) = 64;
5692         MY(bounce) = 1.500000;
5693         MY(color_min) = "0x404040";
5694         MY(color_max) = "0x808080";
5695         MY(count) = 2;
5696         MY(gravity) = -0.125000;
5697         MY(liquidfriction) = 0.250000;
5698         MY(originjitter) = '8.0 8.0 8.0';
5699         MY(size_min) = 1.500000;
5700         MY(size_max) = 1.500000;
5701         MY(tex_min) = 62;
5702         MY(tex_max) = 62;
5703         MY(type) = "bubble";
5704         MY(underwater) = true;
5705         MY(velocityjitter) = '48.0 48.0 48.0';
5706         MY(velocitymultiplier) = -0.100000;
5707 }
5708 // bouncing sparks
5709 SUB(rocket_guide) {
5710         MY(airfriction) = 0.200000;
5711         MY(alpha_min) = 256;
5712         MY(alpha_max) = 256;
5713         MY(alpha_fade) = 984;
5714         MY(bounce) = 1.500000;
5715         MY(color_min) = "0x903010";
5716         MY(color_max) = "0xFFD030";
5717         MY(count) = 8;
5718         MY(gravity) = 1;
5719         MY(liquidfriction) = 0.800000;
5720         MY(notunderwater) = true;
5721         MY(size_min) = 0.300000;
5722         MY(size_max) = 0.700000;
5723         MY(stretchfactor) = 0.400000;
5724         MY(tex_min) = 40;
5725         MY(tex_max) = 40;
5726         MY(type) = "spark";
5727         MY(velocityjitter) = '156.0 156.0 156.0';
5728         MY(velocitymultiplier) = -0.300000;
5729         MY(velocityoffset) = '0.0 0.0 80.0';
5730 }
5731 SUB(rocket_guide) {
5732         MY(alpha_min) = 100;
5733         MY(alpha_max) = 100;
5734         MY(alpha_fade) = 500;
5735         MY(color_min) = "0x903010";
5736         MY(color_max) = "0xFFD030";
5737         MY(countabsolute) = 1;
5738         MY(sizeincrease) = 300;
5739         MY(size_min) = 10;
5740         MY(size_max) = 10;
5741         MY(tex_min) = 65;
5742         MY(tex_max) = 65;
5743         MY(type) = "smoke";
5744 }
5745
5746 // gauntlet laser
5747 DEF(laser_gauntlet);
5748 SUB(laser_gauntlet) {
5749         MY(airfriction) = 10;
5750         MY(alpha_min) = 128;
5751         MY(alpha_max) = 512;
5752         MY(alpha_fade) = 6280;
5753         MY(color_min) = "0xb44215";
5754         MY(color_max) = "0x880000";
5755         MY(count) = 3;
5756         MY(originjitter) = '2.0 2.0 2.0';
5757         MY(startangle_min) = -180;
5758         MY(startangle_max) = 180;
5759         MY(spin_min) = 4000;
5760         MY(spin_max) = -4000;
5761         MY(sizeincrease) = -100;
5762         MY(size_min) = 7;
5763         MY(size_max) = 10;
5764         MY(stretchfactor) = 2.300000;
5765         MY(tex_min) = 43;
5766         MY(tex_max) = 43;
5767         MY(type) = "spark";
5768         MY(velocityjitter) = '150.0 150.0 150.0';
5769         MY(velocitymultiplier) = 0.200000;
5770 }
5771 SUB(laser_gauntlet) {
5772         MY(airfriction) = 12;
5773         MY(alpha_min) = 256;
5774         MY(alpha_max) = 512;
5775         MY(alpha_fade) = 6280;
5776         MY(color_min) = "0xff4200";
5777         MY(color_max) = "0xff0000";
5778         MY(count) = 6;
5779         MY(originjitter) = '2.0 2.0 2.0';
5780         MY(sizeincrease) = -100;
5781         MY(size_min) = 7;
5782         MY(size_max) = 9;
5783         MY(stretchfactor) = 2;
5784         MY(tex_min) = 8;
5785         MY(tex_max) = 15;
5786         MY(type) = "spark";
5787         MY(velocityjitter) = '100.0 100.0 100.0';
5788         MY(velocitymultiplier) = 0.200000;
5789 }
5790
5791 DEF(laser_gauntletmuzzleflash);
5792 // glow and light
5793 SUB(laser_gauntletmuzzleflash) {
5794         MY(airfriction) = 10;
5795         MY(alpha_min) = 256;
5796         MY(alpha_max) = 512;
5797         MY(alpha_fade) = 6280;
5798         MY(color_min) = "0x220000";
5799         MY(color_max) = "0x880000";
5800         MY(countabsolute) = 1;
5801         MY(lightcolor) = '3.0 0.1 0.1';
5802         MY(lightradiusfade) = 500;
5803         MY(lightradius) = 150;
5804         MY(sizeincrease) = -100;
5805         MY(size_min) = 10;
5806         MY(size_max) = 15;
5807         MY(stretchfactor) = 2;
5808         MY(tex_min) = 65;
5809         MY(tex_max) = 65;
5810         MY(type) = "smoke";
5811 }
5812 // electricity
5813 SUB(laser_gauntletmuzzleflash) {
5814         MY(airfriction) = 10;
5815         MY(alpha_min) = 128;
5816         MY(alpha_max) = 512;
5817         MY(alpha_fade) = 6280;
5818         MY(color_min) = "0xb44215";
5819         MY(color_max) = "0x880000";
5820         MY(count) = 3;
5821         MY(originjitter) = '2.0 2.0 2.0';
5822         MY(startangle_min) = -180;
5823         MY(startangle_max) = 180;
5824         MY(spin_min) = 4000;
5825         MY(spin_max) = -4000;
5826         MY(sizeincrease) = -100;
5827         MY(size_min) = 7;
5828         MY(size_max) = 10;
5829         MY(stretchfactor) = 2.300000;
5830         MY(tex_min) = 43;
5831         MY(tex_max) = 43;
5832         MY(type) = "spark";
5833         MY(velocityjitter) = '150.0 150.0 150.0';
5834         MY(velocitymultiplier) = 0.200000;
5835 }
5836 // fire
5837 SUB(laser_gauntletmuzzleflash) {
5838         MY(airfriction) = 12;
5839         MY(alpha_min) = 256;
5840         MY(alpha_max) = 512;
5841         MY(alpha_fade) = 6280;
5842         MY(color_min) = "0xff4200";
5843         MY(color_max) = "0xff0000";
5844         MY(count) = 6;
5845         MY(originjitter) = '2.0 2.0 2.0';
5846         MY(sizeincrease) = -100;
5847         MY(size_min) = 7;
5848         MY(size_max) = 9;
5849         MY(stretchfactor) = 2;
5850         MY(tex_min) = 8;
5851         MY(tex_max) = 15;
5852         MY(type) = "spark";
5853         MY(velocityjitter) = '100.0 100.0 100.0';
5854         MY(velocitymultiplier) = 0.200000;
5855 }
5856
5857 // torch flame, spawn it as fast as you can  20 times per second or more, supports direction but not required
5858 DEF(torchflame);
5859 // fast fire
5860 SUB(torchflame) {
5861         MY(airfriction) = 1.200000;
5862         MY(alpha_min) = 50;
5863         MY(alpha_max) = 256;
5864         MY(alpha_fade) = 250;
5865         MY(color_min) = "0x8f0d00";
5866         MY(color_max) = "0xff5a00";
5867         MY(count) = 3;
5868         MY(gravity) = -0.060000;
5869         MY(sizeincrease) = 20;
5870         MY(size_min) = 5;
5871         MY(size_max) = 5;
5872         MY(tex_min) = 48;
5873         MY(tex_max) = 55;
5874         MY(type) = "smoke";
5875         MY(velocityjitter) = '40.0 40.0 11.0';
5876         MY(velocitymultiplier) = 30;
5877 }
5878 // slow fire
5879 SUB(torchflame) {
5880         MY(airfriction) = 1.200000;
5881         MY(alpha_min) = 50;
5882         MY(alpha_max) = 256;
5883         MY(alpha_fade) = 200;
5884         MY(color_min) = "0x8f0d00";
5885         MY(color_max) = "0xff5a00";
5886         MY(count) = 2.500000;
5887         MY(gravity) = -0.060000;
5888         MY(sizeincrease) = 20;
5889         MY(size_min) = 5;
5890         MY(size_max) = 5;
5891         MY(tex_min) = 48;
5892         MY(tex_max) = 55;
5893         MY(type) = "smoke";
5894         MY(velocityjitter) = '40.0 40.0 40.0';
5895         MY(velocitymultiplier) = 20;
5896 }
5897 // very slow and small fire
5898 SUB(torchflame) {
5899         MY(airfriction) = 0.300000;
5900         MY(alpha_min) = 50;
5901         MY(alpha_max) = 256;
5902         MY(alpha_fade) = 200;
5903         MY(color_min) = "0x8f0d00";
5904         MY(color_max) = "0xff5a00";
5905         MY(count) = 1.500000;
5906         MY(gravity) = -0.060000;
5907         MY(sizeincrease) = 10;
5908         MY(size_min) = 5;
5909         MY(size_max) = 5;
5910         MY(tex_min) = 48;
5911         MY(tex_max) = 55;
5912         MY(type) = "smoke";
5913         MY(velocityjitter) = '30.0 30.0 30.0';
5914         MY(velocitymultiplier) = 10;
5915 }
5916 // decreasing fire
5917 SUB(torchflame) {
5918         MY(airfriction) = 0.300000;
5919         MY(alpha_min) = 50;
5920         MY(alpha_max) = 256;
5921         MY(alpha_fade) = 200;
5922         MY(color_min) = "0x8f0d00";
5923         MY(color_max) = "0xff5a00";
5924         MY(count) = 2;
5925         MY(gravity) = -0.060000;
5926         MY(sizeincrease) = -10;
5927         MY(size_min) = 20;
5928         MY(size_max) = 30;
5929         MY(tex_min) = 48;
5930         MY(tex_max) = 55;
5931         MY(type) = "smoke";
5932         MY(velocityjitter) = '10.0 10.0 10.0';
5933         MY(velocitymultiplier) = 15;
5934 }
5935 // smoke
5936 SUB(torchflame) {
5937         MY(airfriction) = 1;
5938         MY(alpha_min) = 256;
5939         MY(alpha_max) = 256;
5940         MY(alpha_fade) = 90;
5941         MY(color_min) = "0x000000";
5942         MY(color_max) = "0x111111";
5943         MY(count) = 0.500000;
5944         MY(originjitter) = '10.0 10.0 10.0';
5945         MY(sizeincrease) = 7;
5946         MY(size_min) = 5;
5947         MY(size_max) = 15;
5948         MY(tex_max) = 8;
5949         MY(type) = "alphastatic";
5950         MY(velocitymultiplier) = 20;
5951         MY(velocityoffset) = '0.0 0.0 10.0';
5952 }
5953
5954 #include "effectinfo_gentle_happy.inc"
5955
5956 DEF(electro_lightning);
5957 SUB(electro_lightning) {
5958         MY(alpha_min) = 256;
5959         MY(alpha_max) = 256;
5960         MY(countabsolute) = 1;
5961         MY(lightcolor) = '3.1 4.4 10.0';
5962         MY(lightradiusfade) = 500;
5963         MY(lightradius) = 50;
5964         MY(originjitter) = '2.0 2.0 2.0';
5965         MY(size_min) = 16;
5966         MY(size_max) = 16;
5967         MY(tex_min) = 59;
5968         MY(tex_max) = 59;
5969         MY(type) = "decal";
5970 }
5971 SUB(electro_lightning) {
5972         MY(alpha_min) = 100;
5973         MY(alpha_max) = 206;
5974         MY(alpha_fade) = 1724;
5975         MY(color_min) = "0x2030FF";
5976         MY(color_max) = "0x80C0FF";
5977         MY(count) = 300;
5978         MY(originjitter) = '1.5 1.5 1.5';
5979         MY(sizeincrease) = 10;
5980         MY(size_min) = 6;
5981         MY(size_max) = 6;
5982         MY(tex_min) = 65;
5983         MY(tex_max) = 65;
5984         MY(type) = "spark";
5985         MY(velocityjitter) = '6.0 6.0 6.0';
5986         MY(velocitymultiplier) = 2000;
5987 }
5988 SUB(electro_lightning) {
5989         MY(airfriction) = 2;
5990         MY(alpha_min) = 110;
5991         MY(alpha_max) = 170;
5992         MY(alpha_fade) = 1500;
5993         MY(color_min) = "0xDDFDFF";
5994         MY(color_max) = "0xFDFDFF";
5995         MY(count) = 30;
5996         MY(originjitter) = '1.0 1.0 1.0';
5997         MY(size_min) = 2;
5998         MY(size_max) = 5;
5999         MY(stretchfactor) = 1.500000;
6000         MY(tex_min) = 8;
6001         MY(tex_max) = 15;
6002         MY(type) = "spark";
6003         MY(velocityjitter) = '150.0 150.0 150.0';
6004         MY(velocitymultiplier) = 0.500000;
6005 }
6006 SUB(electro_lightning) {
6007         MY(airfriction) = 8;
6008         MY(alpha_min) = 110;
6009         MY(alpha_max) = 170;
6010         MY(alpha_fade) = 1500;
6011         MY(color_min) = "0xFDFDFF";
6012         MY(color_max) = "0xF9FDFF";
6013         MY(count) = 50;
6014         MY(gravity) = 1.300000;
6015         MY(originjitter) = '1.0 1.0 1.0';
6016         MY(size_min) = 2;
6017         MY(size_max) = 3;
6018         MY(stretchfactor) = 0.100000;
6019         MY(tex_min) = 41;
6020         MY(tex_max) = 41;
6021         MY(type) = "spark";
6022         MY(velocityjitter) = '350.0 350.0 350.0';
6023         MY(velocitymultiplier) = 2.500000;
6024 }
6025
6026 DEF(gauntlet_lightning);
6027 SUB(gauntlet_lightning) {
6028         MY(alpha_min) = 256;
6029         MY(alpha_max) = 256;
6030         MY(alpha_fade) = 1024;
6031         MY(color_min) = "0x280000";
6032         MY(color_max) = "0x280000";
6033         MY(count) = 300;
6034         MY(originjitter) = '1.5 1.5 1.5';
6035         MY(sizeincrease) = 15;
6036         MY(size_min) = 3;
6037         MY(size_max) = 3;
6038         MY(tex_min) = 65;
6039         MY(tex_max) = 65;
6040         MY(type) = "spark";
6041         MY(velocityjitter) = '6.0 6.0 6.0';
6042         MY(velocitymultiplier) = 2000;
6043 }
6044 SUB(gauntlet_lightning) {
6045         MY(airfriction) = 2;
6046         MY(alpha_min) = 110;
6047         MY(alpha_max) = 228;
6048         MY(alpha_fade) = 1024;
6049         MY(color_min) = "0xDD0000";
6050         MY(color_max) = "0xFD0000";
6051         MY(count) = 30;
6052         MY(originjitter) = '1.0 1.0 1.0';
6053         MY(size_min) = 2;
6054         MY(size_max) = 5;
6055         MY(stretchfactor) = 1.500000;
6056         MY(tex_min) = 8;
6057         MY(tex_max) = 15;
6058         MY(type) = "spark";
6059         MY(velocityjitter) = '150.0 150.0 150.0';
6060         MY(velocitymultiplier) = 0.500000;
6061 }
6062 SUB(gauntlet_lightning) {
6063         MY(airfriction) = 8;
6064         MY(alpha_min) = 110;
6065         MY(alpha_max) = 228;
6066         MY(alpha_fade) = 600;
6067         MY(color_min) = "0xFD0000";
6068         MY(color_max) = "0xF90000";
6069         MY(count) = 50;
6070         MY(gravity) = 1.300000;
6071         MY(originjitter) = '1.0 1.0 1.0';
6072         MY(size_min) = 2;
6073         MY(size_max) = 3;
6074         MY(stretchfactor) = 0.100000;
6075         MY(tex_min) = 41;
6076         MY(tex_max) = 41;
6077         MY(type) = "spark";
6078         MY(velocityjitter) = '350.0 350.0 350.0';
6079         MY(velocitymultiplier) = 2.500000;
6080 }
6081
6082 DEF(crylink_joinexplode);
6083 // decal
6084 SUB(crylink_joinexplode) {
6085         MY(alpha_min) = 256;
6086         MY(alpha_max) = 256;
6087         MY(countabsolute) = 1;
6088         MY(originjitter) = '12.0 12.0 12.0';
6089         MY(size_min) = 24;
6090         MY(size_max) = 24;
6091         MY(tex_min) = 47;
6092         MY(tex_max) = 47;
6093         MY(type) = "decal";
6094 }
6095 // purple flare effect
6096 SUB(crylink_joinexplode) {
6097         MY(alpha_min) = 256;
6098         MY(alpha_max) = 256;
6099         MY(alpha_fade) = 512;
6100         MY(color_min) = "0x504060";
6101         MY(color_max) = "0x504060";
6102         MY(countabsolute) = 1;
6103         MY(size_min) = 24;
6104         MY(size_max) = 24;
6105         MY(tex_min) = 39;
6106         MY(tex_max) = 39;
6107         MY(type) = "static";
6108 }
6109 // purple sparks
6110 SUB(crylink_joinexplode) {
6111         MY(alpha_min) = 256;
6112         MY(alpha_max) = 256;
6113         MY(alpha_fade) = 1024;
6114         MY(bounce) = 2;
6115         MY(color_min) = "0xA040C0";
6116         MY(color_max) = "0xA040C0";
6117         MY(count) = 40;
6118         MY(size_min) = 6;
6119         MY(size_max) = 6;
6120         MY(tex_min) = 41;
6121         MY(tex_max) = 41;
6122         MY(type) = "spark";
6123         MY(velocityjitter) = '512.0 512.0 512.0';
6124 }
6125 // purple splash
6126 SUB(crylink_joinexplode) {
6127         MY(alpha_min) = 256;
6128         MY(alpha_max) = 256;
6129         MY(alpha_fade) = 512;
6130         MY(color_min) = "0xE070FF";
6131         MY(color_max) = "0xE070FF";
6132         MY(count) = 1.500000;
6133         MY(size_min) = 16;
6134         MY(size_max) = 16;
6135         MY(type) = "static";
6136         MY(velocityjitter) = '32.0 32.0 32.0';
6137 }
6138 // purple splash
6139 SUB(crylink_joinexplode) {
6140         MY(alpha_min) = 256;
6141         MY(alpha_max) = 256;
6142         MY(alpha_fade) = 1024;
6143         MY(color_min) = "0xE070FF";
6144         MY(color_max) = "0xE070FF";
6145         MY(count) = 3;
6146         MY(size_min) = 16;
6147         MY(size_max) = 16;
6148         MY(type) = "static";
6149         MY(velocityjitter) = '256.0 256.0 256.0';
6150 }
6151
6152 // sparks for keepaway ball touch
6153 DEF(kaball_sparks);
6154 SUB(kaball_sparks) {
6155         MY(airfriction) = 3;
6156         MY(alpha_max) = 256;
6157         MY(alpha_fade) = 556;
6158         MY(bounce) = 1.500000;
6159         MY(color_min) = "0xa9cacf";
6160         MY(color_max) = "0x0054ff";
6161         MY(count) = 35;
6162         MY(gravity) = 1;
6163         MY(originjitter) = '1.0 1.0 1.0';
6164         MY(size_min) = 1;
6165         MY(size_max) = 3;
6166         MY(tex_min) = 40;
6167         MY(tex_max) = 40;
6168         MY(type) = "spark";
6169         MY(velocityjitter) = '300.0 300.0 300.0';
6170         MY(velocitymultiplier) = 0.500000;
6171 }
6172
6173 // weak rifle bullet trail (somewhat like a tracer)
6174 DEF(tr_rifle_weak);
6175 SUB(tr_rifle_weak) {
6176         MY(alpha_min) = 256;
6177         MY(alpha_max) = 256;
6178         MY(alpha_fade) = 2560;
6179         MY(color_min) = "0x800000";
6180         MY(color_max) = "0xFF8020";
6181         MY(size_min) = 1.500000;
6182         MY(size_max) = 1.500000;
6183         MY(stretchfactor) = 1;
6184         MY(trailspacing) = 128;
6185         MY(type) = "spark";
6186         MY(velocitymultiplier) = 0.700000;
6187 }
6188 SUB(tr_rifle_weak) {
6189         MY(airfriction) = -4;
6190         MY(alpha_min) = 256;
6191         MY(alpha_max) = 256;
6192         MY(alpha_fade) = 256;
6193         MY(color_min) = "0x202020";
6194         MY(color_max) = "0x404040";
6195         MY(notunderwater) = true;
6196         MY(sizeincrease) = 0.400000;
6197         MY(size_min) = 4;
6198         MY(size_max) = 4;
6199         MY(tex_max) = 8;
6200         MY(trailspacing) = 48;
6201         MY(type) = "smoke";
6202         MY(velocityjitter) = '4.0 4.0 4.0';
6203 }
6204 SUB(tr_rifle_weak) {
6205         MY(alpha_min) = 256;
6206         MY(alpha_max) = 256;
6207         MY(alpha_fade) = 128;
6208         MY(bounce) = 1.500000;
6209         MY(color_min) = "0x404040";
6210         MY(color_max) = "0x808080";
6211         MY(gravity) = -0.125000;
6212         MY(liquidfriction) = 4;
6213         MY(size_min) = 2;
6214         MY(size_max) = 2;
6215         MY(tex_min) = 62;
6216         MY(tex_max) = 62;
6217         MY(trailspacing) = 192;
6218         MY(type) = "bubble";
6219         MY(underwater) = true;
6220         MY(velocityjitter) = '16.0 16.0 16.0';
6221 }
6222
6223 // red smoke emiter
6224 DEF(red_smoke);
6225 SUB(red_smoke) {
6226         MY(airfriction) = -1;
6227         MY(alpha_min) = 32;
6228         MY(alpha_max) = 64;
6229         MY(alpha_fade) = 32;
6230         MY(color_min) = "0xff8866";
6231         MY(color_max) = "0x331100";
6232         MY(count) = 2;
6233         MY(gravity) = -0.007000;
6234         MY(startangle_max) = 360;
6235         MY(spin_min) = -30;
6236         MY(spin_max) = 30;
6237         MY(size_min) = 60;
6238         MY(size_max) = 120;
6239         MY(tex_max) = 8;
6240         MY(type) = "smoke";
6241         MY(velocitymultiplier) = 5;
6242 }
6243
6244 // pipe smoke emiter
6245 DEF(pipe_smoke);
6246 SUB(pipe_smoke) {
6247         MY(airfriction) = -1;
6248         MY(alpha_min) = 32;
6249         MY(alpha_max) = 64;
6250         MY(alpha_fade) = 48;
6251         MY(color_min) = "0x999999";
6252         MY(color_max) = "0x555555";
6253         MY(count) = 2;
6254         MY(gravity) = -0.015000;
6255         MY(startangle_max) = 360;
6256         MY(spin_min) = -180;
6257         MY(spin_max) = 180;
6258         MY(sizeincrease) = 35;
6259         MY(size_min) = 5;
6260         MY(size_max) = 10;
6261         MY(tex_max) = 8;
6262         MY(type) = "smoke";
6263         MY(velocityjitter) = '0.0 0.0 5.0';
6264         MY(velocitymultiplier) = 15;
6265 }
6266
6267 // seeker missile trail
6268 DEF(TR_SEEKER);
6269 SUB(TR_SEEKER) {
6270         MY(alpha_min) = 200;
6271         MY(alpha_max) = 300;
6272         MY(alpha_fade) = 200;
6273         MY(bounce) = 1;
6274         MY(color_min) = "0x000000";
6275         MY(color_max) = "0x666666";
6276         MY(lightcolor) = '6.0 3.0 1.0';
6277         MY(lightradius) = 100;
6278         MY(notunderwater) = true;
6279         MY(originjitter) = '2.0 2.0 2.0';
6280         MY(startangle_min) = -180;
6281         MY(startangle_max) = 180;
6282         MY(spin_min) = -30;
6283         MY(spin_max) = 30;
6284         MY(sizeincrease) = 11;
6285         MY(size_min) = 2;
6286         MY(size_max) = 2;
6287         MY(tex_max) = 8;
6288         MY(trailspacing) = 10;
6289         MY(type) = "smoke";
6290         MY(velocityjitter) = '3.0 3.0 3.0';
6291         MY(velocitymultiplier) = -0.020000;
6292 }
6293 // fire
6294 SUB(TR_SEEKER) {
6295         MY(airfriction) = 8;
6296         MY(alpha_min) = 100;
6297         MY(alpha_max) = 144;
6298         MY(alpha_fade) = 588;
6299         MY(color_min) = "0xffdf72";
6300         MY(color_max) = "0x811200";
6301         MY(sizeincrease) = -30;
6302         MY(size_min) = 5;
6303         MY(size_max) = 5;
6304         MY(tex_min) = 48;
6305         MY(tex_max) = 55;
6306         MY(trailspacing) = 4;
6307         MY(type) = "static";
6308         MY(velocityjitter) = '32.0 32.0 32.0';
6309         MY(velocitymultiplier) = -1.500000;
6310 }
6311 // bubbles
6312 SUB(TR_SEEKER) {
6313         MY(alpha_min) = 256;
6314         MY(alpha_max) = 256;
6315         MY(alpha_fade) = 256;
6316         MY(bounce) = 1.500000;
6317         MY(gravity) = -0.125000;
6318         MY(liquidfriction) = 4;
6319         MY(size_min) = 1;
6320         MY(size_max) = 2;
6321         MY(tex_min) = 62;
6322         MY(tex_max) = 62;
6323         MY(trailspacing) = 16;
6324         MY(type) = "bubble";
6325         MY(underwater) = true;
6326         MY(velocityjitter) = '16.0 16.0 16.0';
6327         MY(velocitymultiplier) = -0.310000;
6328 }
6329 // sparks
6330 SUB(TR_SEEKER) {
6331         MY(airfriction) = 5;
6332         MY(alpha_min) = 444;
6333         MY(alpha_max) = 512;
6334         MY(alpha_fade) = 1866;
6335         MY(bounce) = 1;
6336         MY(color_min) = "0xFFFDD9";
6337         MY(color_max) = "0xFFFDD9";
6338         MY(notunderwater) = true;
6339         MY(originjitter) = '1.0 1.0 1.0';
6340         MY(size_min) = 0.500000;
6341         MY(size_max) = 0.500000;
6342         MY(stretchfactor) = 0.300000;
6343         MY(tex_min) = 40;
6344         MY(tex_max) = 40;
6345         MY(trailspacing) = 20;
6346         MY(type) = "spark";
6347         MY(velocityjitter) = '100.0 100.0 100.0';
6348         MY(velocitymultiplier) = -0.310000;
6349 }
6350
6351 #include "effectinfo_vehicles.inc"
6352
6353 // generic explosion size:big (biggest explosion ever)
6354 DEF(explosion_big);
6355 // decal
6356 SUB(explosion_big) {
6357         MY(alpha_min) = 256;
6358         MY(alpha_max) = 256;
6359         MY(countabsolute) = 1;
6360         MY(lightcolor) = '8.0 4.0 0.0';
6361         MY(lightradiusfade) = 1750;
6362         MY(lightradius) = 600;
6363         MY(originjitter) = '23.0 23.0 23.0';
6364         MY(size_min) = 172;
6365         MY(size_max) = 172;
6366         MY(tex_min) = 8;
6367         MY(tex_max) = 16;
6368         MY(type) = "decal";
6369 }
6370 // shockwave
6371 SUB(explosion_big) {
6372         MY(alpha_min) = 56;
6373         MY(alpha_max) = 56;
6374         MY(alpha_fade) = 330;
6375         MY(color_min) = "0x8f0d00";
6376         MY(color_max) = "0xff5a00";
6377         MY(countabsolute) = 1;
6378         MY(sizeincrease) = 4400;
6379         MY(size_min) = 72;
6380         MY(size_max) = 72;
6381         MY(tex_min) = 33;
6382         MY(tex_max) = 33;
6383         MY(type) = "static";
6384 }
6385 // fire effect
6386 SUB(explosion_big) {
6387         MY(airfriction) = 8;
6388         MY(alpha_min) = 200;
6389         MY(alpha_max) = 256;
6390         MY(alpha_fade) = 712;
6391         MY(color_min) = "0x8f0d00";
6392         MY(color_max) = "0xff5a00";
6393         MY(count) = 64;
6394         MY(liquidfriction) = 8;
6395         MY(notunderwater) = true;
6396         MY(originjitter) = '80.0 80.0 80.0';
6397         MY(sizeincrease) = 45;
6398         MY(size_min) = 133;
6399         MY(size_max) = 144;
6400         MY(tex_min) = 48;
6401         MY(tex_max) = 55;
6402         MY(type) = "static";
6403         MY(velocityjitter) = '2512.0 2512.0 2512.0';
6404 }
6405 // fire rays
6406 SUB(explosion_big) {
6407         MY(airfriction) = -5;
6408         MY(alpha_min) = 200;
6409         MY(alpha_max) = 256;
6410         MY(alpha_fade) = 800;
6411         MY(color_min) = "0x8f0d00";
6412         MY(color_max) = "0xff5a00";
6413         MY(count) = 64;
6414         MY(liquidfriction) = 8;
6415         MY(notunderwater) = true;
6416         MY(originjitter) = '40.0 40.0 40.0';
6417         MY(sizeincrease) = 45;
6418         MY(size_min) = 133;
6419         MY(size_max) = 144;
6420         MY(stretchfactor) = 10;
6421         MY(tex_min) = 48;
6422         MY(tex_max) = 55;
6423         MY(type) = "spark";
6424         MY(velocityjitter) = '512.0 512.0 512.0';
6425 }
6426 // smoke
6427 SUB(explosion_big) {
6428         MY(airfriction) = 8;
6429         MY(alpha_min) = 300;
6430         MY(alpha_max) = 650;
6431         MY(alpha_fade) = 456;
6432         MY(color_min) = "0x4F4B46";
6433         MY(color_max) = "0x000000";
6434         MY(count) = 32;
6435         MY(notunderwater) = true;
6436         MY(sizeincrease) = 244;
6437         MY(size_min) = 50;
6438         MY(size_max) = 100;
6439         MY(tex_max) = 8;
6440         MY(type) = "alphastatic";
6441         MY(velocityjitter) = '3444.0 3444.0 3444.0';
6442 }
6443 // bouncing sparks
6444 SUB(explosion_big) {
6445         MY(airfriction) = 1;
6446         MY(alpha_min) = 644;
6447         MY(alpha_max) = 956;
6448         MY(alpha_fade) = 1284;
6449         MY(color_min) = "0xffa35b";
6450         MY(color_max) = "0xfff2be";
6451         MY(count) = 34;
6452         MY(gravity) = 1;
6453         MY(liquidfriction) = 0.800000;
6454         MY(notunderwater) = true;
6455         MY(originjitter) = '160.0 160.0 160.0';
6456         MY(size_min) = 3;
6457         MY(size_max) = 4;
6458         MY(stretchfactor) = 0.700000;
6459         MY(tex_min) = 40;
6460         MY(tex_max) = 40;
6461         MY(type) = "spark";
6462         MY(velocityjitter) = '924.0 924.0 924.0';
6463         MY(velocityoffset) = '0.0 0.0 370.0';
6464 }
6465 // debris
6466 SUB(explosion_big) {
6467         MY(airfriction) = 0.500000;
6468         MY(alpha_min) = 444;
6469         MY(alpha_max) = 1356;
6470         MY(alpha_fade) = 1184;
6471         MY(color_min) = "0xFFFFFF";
6472         MY(color_max) = "0xcac5b4";
6473         MY(count) = 16;
6474         MY(gravity) = 2.300000;
6475         MY(notunderwater) = true;
6476         MY(startangle_min) = -180;
6477         MY(startangle_max) = 180;
6478         MY(spin_min) = -1000;
6479         MY(spin_max) = 1000;
6480         MY(sizeincrease) = -5;
6481         MY(size_min) = 10;
6482         MY(size_max) = 16;
6483         MY(tex_min) = 66;
6484         MY(tex_max) = 68;
6485         MY(type) = "alphastatic";
6486         MY(velocityjitter) = '1800.0 1800.0 1800.0';
6487         MY(velocityoffset) = '0.0 0.0 970.0';
6488 }
6489 // underwater bubbles
6490 SUB(explosion_big) {
6491         MY(alpha_min) = 128;
6492         MY(alpha_max) = 256;
6493         MY(alpha_fade) = 64;
6494         MY(bounce) = 1.500000;
6495         MY(color_min) = "0x404040";
6496         MY(color_max) = "0x808080";
6497         MY(count) = 32;
6498         MY(gravity) = -0.125000;
6499         MY(liquidfriction) = 0.250000;
6500         MY(originjitter) = '160.0 160.0 160.0';
6501         MY(size_min) = 3;
6502         MY(size_max) = 3;
6503         MY(tex_min) = 62;
6504         MY(tex_max) = 62;
6505         MY(type) = "bubble";
6506         MY(underwater) = true;
6507         MY(velocityjitter) = '444.0 444.0 444.0';
6508 }
6509 // underwatershockwave
6510 SUB(explosion_big) {
6511         MY(alpha_min) = 40;
6512         MY(alpha_max) = 40;
6513         MY(alpha_fade) = 300;
6514         MY(countabsolute) = 1;
6515         MY(sizeincrease) = 2900;
6516         MY(size_min) = 30;
6517         MY(size_max) = 30;
6518         MY(tex_min) = 33;
6519         MY(tex_max) = 33;
6520         MY(type) = "smoke";
6521         MY(underwater) = true;
6522         MY(velocitymultiplier) = 0.300000;
6523 }
6524
6525 // generic explosion size:medium (it leaves rising smoke for a longer time)
6526 DEF(explosion_medium);
6527 // shockwave
6528 SUB(explosion_medium) {
6529         MY(alpha_min) = 56;
6530         MY(alpha_max) = 56;
6531         MY(alpha_fade) = 330;
6532         MY(color_min) = "0x8f0d00";
6533         MY(color_max) = "0xff5a00";
6534         MY(countabsolute) = 1;
6535         MY(sizeincrease) = 2400;
6536         MY(size_min) = 72;
6537         MY(size_max) = 72;
6538         MY(tex_min) = 33;
6539         MY(tex_max) = 33;
6540         MY(type) = "static";
6541 }
6542 // fire effect
6543 SUB(explosion_medium) {
6544         MY(airfriction) = 8;
6545         MY(alpha_min) = 200;
6546         MY(alpha_max) = 256;
6547         MY(alpha_fade) = 712;
6548         MY(color_min) = "0x8f0d00";
6549         MY(color_max) = "0xff5a00";
6550         MY(count) = 32;
6551         MY(liquidfriction) = 8;
6552         MY(notunderwater) = true;
6553         MY(originjitter) = '30.0 30.0 30.0';
6554         MY(startangle_min) = -180;
6555         MY(startangle_max) = 180;
6556         MY(spin_min) = -500;
6557         MY(spin_max) = 500;
6558         MY(sizeincrease) = 45;
6559         MY(size_min) = 133;
6560         MY(size_max) = 144;
6561         MY(tex_min) = 48;
6562         MY(tex_max) = 55;
6563         MY(type) = "static";
6564         MY(velocityjitter) = '1512.0 1512.0 1512.0';
6565 }
6566 // fire effect 2
6567 SUB(explosion_medium) {
6568         MY(airfriction) = 8;
6569         MY(alpha_min) = 200;
6570         MY(alpha_max) = 256;
6571         MY(alpha_fade) = 612;
6572         MY(color_min) = "0x8f0d00";
6573         MY(color_max) = "0xff5a00";
6574         MY(count) = 32;
6575         MY(gravity) = -2;
6576         MY(liquidfriction) = 8;
6577         MY(notunderwater) = true;
6578         MY(originjitter) = '30.0 30.0 30.0';
6579         MY(startangle_min) = -180;
6580         MY(startangle_max) = 180;
6581         MY(spin_min) = -150;
6582         MY(spin_max) = 150;
6583         MY(sizeincrease) = 40;
6584         MY(size_min) = 73;
6585         MY(size_max) = 94;
6586         MY(tex_min) = 48;
6587         MY(tex_max) = 55;
6588         MY(type) = "static";
6589         MY(velocityjitter) = '1512.0 1512.0 1512.0';
6590 }
6591 // fire rays
6592 SUB(explosion_medium) {
6593         MY(airfriction) = -3;
6594         MY(alpha_min) = 200;
6595         MY(alpha_max) = 256;
6596         MY(alpha_fade) = 800;
6597         MY(color_min) = "0x8f0d00";
6598         MY(color_max) = "0xff5a00";
6599         MY(count) = 14;
6600         MY(liquidfriction) = 8;
6601         MY(notunderwater) = true;
6602         MY(originjitter) = '40.0 40.0 40.0';
6603         MY(sizeincrease) = 40;
6604         MY(size_min) = 43;
6605         MY(size_max) = 74;
6606         MY(stretchfactor) = 8;
6607         MY(tex_min) = 48;
6608         MY(tex_max) = 55;
6609         MY(type) = "spark";
6610         MY(velocityjitter) = '512.0 512.0 512.0';
6611 }
6612 // smoke
6613 SUB(explosion_medium) {
6614         MY(airfriction) = 3;
6615         MY(alpha_min) = 300;
6616         MY(alpha_max) = 650;
6617         MY(alpha_fade) = 756;
6618         MY(color_min) = "0x4F4B46";
6619         MY(color_max) = "0x000000";
6620         MY(count) = 5;
6621         MY(notunderwater) = true;
6622         MY(originjitter) = '100.0 100.0 100.0';
6623         MY(startangle_min) = -180;
6624         MY(startangle_max) = 180;
6625         MY(spin_min) = -20;
6626         MY(spin_max) = 20;
6627         MY(sizeincrease) = -30;
6628         MY(size_min) = 250;
6629         MY(size_max) = 300;
6630         MY(tex_max) = 8;
6631         MY(type) = "alphastatic";
6632         MY(velocityjitter) = '200.0 200.0 200.0';
6633 }
6634 // smoke 2
6635 SUB(explosion_medium) {
6636         MY(airfriction) = 3;
6637         MY(alpha_min) = 300;
6638         MY(alpha_max) = 650;
6639         MY(alpha_fade) = 256;
6640         MY(color_min) = "0x4F4B46";
6641         MY(color_max) = "0x000000";
6642         MY(count) = 10;
6643         MY(gravity) = -0.300000;
6644         MY(notunderwater) = true;
6645         MY(originjitter) = '100.0 100.0 100.0';
6646         MY(startangle_min) = -180;
6647         MY(startangle_max) = 180;
6648         MY(spin_min) = -20;
6649         MY(spin_max) = 20;
6650         MY(sizeincrease) = 50;
6651         MY(size_min) = 50;
6652         MY(size_max) = 100;
6653         MY(tex_max) = 8;
6654         MY(type) = "alphastatic";
6655         MY(velocityjitter) = '500.0 500.0 500.0';
6656         MY(velocityoffset) = '0.0 0.0 200.0';
6657 }
6658 // smoke rays
6659 SUB(explosion_medium) {
6660         MY(alpha_min) = 140;
6661         MY(alpha_max) = 255;
6662         MY(alpha_fade) = 350;
6663         MY(color_min) = "0x4F4B46";
6664         MY(color_max) = "0x000000";
6665         MY(count) = 13;
6666         MY(notunderwater) = true;
6667         MY(originjitter) = '40.0 40.0 40.0';
6668         MY(sizeincrease) = 100;
6669         MY(size_min) = 150;
6670         MY(size_max) = 200;
6671         MY(stretchfactor) = 50;
6672         MY(tex_max) = 8;
6673         MY(type) = "spark";
6674         MY(velocityjitter) = '250.0 250.0 250.0';
6675 }
6676 // bouncing sparks
6677 SUB(explosion_medium) {
6678         MY(airfriction) = 1;
6679         MY(alpha_min) = 644;
6680         MY(alpha_max) = 956;
6681         MY(alpha_fade) = 984;
6682         MY(color_min) = "0xffa35b";
6683         MY(color_max) = "0xfff2be";
6684         MY(count) = 14;
6685         MY(gravity) = 1;
6686         MY(liquidfriction) = 0.800000;
6687         MY(notunderwater) = true;
6688         MY(originjitter) = '100.0 100.0 100.0';
6689         MY(size_min) = 2;
6690         MY(size_max) = 3;
6691         MY(stretchfactor) = 0.700000;
6692         MY(tex_min) = 40;
6693         MY(tex_max) = 40;
6694         MY(type) = "spark";
6695         MY(velocityjitter) = '624.0 624.0 624.0';
6696         MY(velocityoffset) = '0.0 0.0 370.0';
6697 }
6698 // underwater bubbles
6699 SUB(explosion_medium) {
6700         MY(alpha_min) = 128;
6701         MY(alpha_max) = 256;
6702         MY(alpha_fade) = 64;
6703         MY(bounce) = 1.500000;
6704         MY(color_min) = "0x404040";
6705         MY(color_max) = "0x808080";
6706         MY(count) = 32;
6707         MY(gravity) = -0.125000;
6708         MY(liquidfriction) = 0.250000;
6709         MY(originjitter) = '160.0 160.0 160.0';
6710         MY(size_min) = 3;
6711         MY(size_max) = 3;
6712         MY(tex_min) = 62;
6713         MY(tex_max) = 62;
6714         MY(type) = "bubble";
6715         MY(underwater) = true;
6716         MY(velocityjitter) = '444.0 444.0 444.0';
6717 }
6718 // underwatershockwave
6719 SUB(explosion_medium) {
6720         MY(alpha_min) = 40;
6721         MY(alpha_max) = 40;
6722         MY(alpha_fade) = 300;
6723         MY(countabsolute) = 1;
6724         MY(sizeincrease) = 2900;
6725         MY(size_min) = 30;
6726         MY(size_max) = 30;
6727         MY(tex_min) = 33;
6728         MY(tex_max) = 33;
6729         MY(type) = "smoke";
6730         MY(underwater) = true;
6731         MY(velocitymultiplier) = 0.300000;
6732 }
6733
6734 // generic explosion size:small (its fire only, made to support other explosions)
6735 DEF(explosion_small);
6736 // shockwave
6737 SUB(explosion_small) {
6738         MY(alpha_min) = 56;
6739         MY(alpha_max) = 56;
6740         MY(alpha_fade) = 330;
6741         MY(color_min) = "0x8f0d00";
6742         MY(color_max) = "0xff5a00";
6743         MY(countabsolute) = 1;
6744         MY(sizeincrease) = 2400;
6745         MY(size_min) = 22;
6746         MY(size_max) = 22;
6747         MY(tex_min) = 33;
6748         MY(tex_max) = 33;
6749         MY(type) = "static";
6750 }
6751 // fire effect
6752 SUB(explosion_small) {
6753         MY(airfriction) = 5;
6754         MY(alpha_min) = 200;
6755         MY(alpha_max) = 256;
6756         MY(alpha_fade) = 1212;
6757         MY(color_min) = "0x8f0d00";
6758         MY(color_max) = "0xff5a00";
6759         MY(count) = 16;
6760         MY(liquidfriction) = 8;
6761         MY(notunderwater) = true;
6762         MY(startangle_min) = -180;
6763         MY(startangle_max) = 180;
6764         MY(spin_min) = -500;
6765         MY(spin_max) = 500;
6766         MY(sizeincrease) = 45;
6767         MY(size_min) = 1;
6768         MY(size_max) = 44;
6769         MY(tex_min) = 48;
6770         MY(tex_max) = 55;
6771         MY(type) = "static";
6772         MY(velocityjitter) = '512.0 512.0 512.0';
6773 }
6774 // fire effect 2
6775 SUB(explosion_small) {
6776         MY(airfriction) = 8;
6777         MY(alpha_min) = 200;
6778         MY(alpha_max) = 256;
6779         MY(alpha_fade) = 812;
6780         MY(color_min) = "0x8f0d00";
6781         MY(color_max) = "0xff5a00";
6782         MY(count) = 16;
6783         MY(liquidfriction) = 8;
6784         MY(notunderwater) = true;
6785         MY(startangle_min) = -180;
6786         MY(startangle_max) = 180;
6787         MY(spin_min) = -150;
6788         MY(spin_max) = 150;
6789         MY(sizeincrease) = 40;
6790         MY(size_min) = 73;
6791         MY(size_max) = 94;
6792         MY(tex_min) = 48;
6793         MY(tex_max) = 55;
6794         MY(type) = "static";
6795         MY(velocityjitter) = '912.0 912.0 912.0';
6796 }
6797 // fire rays
6798 SUB(explosion_small) {
6799         MY(airfriction) = -3;
6800         MY(alpha_min) = 200;
6801         MY(alpha_max) = 256;
6802         MY(alpha_fade) = 1300;
6803         MY(color_min) = "0x8f0d00";
6804         MY(color_max) = "0xff5a00";
6805         MY(count) = 14;
6806         MY(liquidfriction) = 8;
6807         MY(notunderwater) = true;
6808         MY(originjitter) = '40.0 40.0 40.0';
6809         MY(sizeincrease) = 30;
6810         MY(size_min) = 13;
6811         MY(size_max) = 54;
6812         MY(stretchfactor) = 8;
6813         MY(tex_min) = 48;
6814         MY(tex_max) = 55;
6815         MY(type) = "spark";
6816         MY(velocityjitter) = '512.0 512.0 512.0';
6817 }
6818 // underwater bubbles
6819 SUB(explosion_small) {
6820         MY(alpha_min) = 128;
6821         MY(alpha_max) = 256;
6822         MY(alpha_fade) = 64;
6823         MY(bounce) = 1.500000;
6824         MY(color_min) = "0x404040";
6825         MY(color_max) = "0x808080";
6826         MY(count) = 32;
6827         MY(gravity) = -0.125000;
6828         MY(liquidfriction) = 0.250000;
6829         MY(originjitter) = '160.0 160.0 160.0';
6830         MY(size_min) = 1;
6831         MY(size_max) = 3;
6832         MY(tex_min) = 62;
6833         MY(tex_max) = 62;
6834         MY(type) = "bubble";
6835         MY(underwater) = true;
6836         MY(velocityjitter) = '144.0 144.0 144.0';
6837 }
6838 // underwatershockwave
6839 SUB(explosion_small) {
6840         MY(alpha_min) = 40;
6841         MY(alpha_max) = 40;
6842         MY(alpha_fade) = 300;
6843         MY(countabsolute) = 1;
6844         MY(sizeincrease) = 1200;
6845         MY(size_min) = 30;
6846         MY(size_max) = 30;
6847         MY(tex_min) = 33;
6848         MY(tex_max) = 33;
6849         MY(type) = "smoke";
6850         MY(underwater) = true;
6851 }
6852
6853 // big smoke ( for spamming on damaged stuff )
6854 DEF(smoke_big);
6855 SUB(smoke_big) {
6856         MY(airfriction) = 4;
6857         MY(alpha_min) = 200;
6858         MY(alpha_max) = 750;
6859         MY(alpha_fade) = 200;
6860         MY(color_min) = "0x4F4B46";
6861         MY(color_max) = "0x000000";
6862         MY(count) = 3;
6863         MY(gravity) = -0.500000;
6864         MY(notunderwater) = true;
6865         MY(originjitter) = '55.0 55.0 55.0';
6866         MY(startangle_min) = -180;
6867         MY(startangle_max) = 180;
6868         MY(spin_min) = -20;
6869         MY(spin_max) = 20;
6870         MY(sizeincrease) = 15;
6871         MY(size_min) = 30;
6872         MY(size_max) = 60;
6873         MY(tex_max) = 8;
6874         MY(type) = "alphastatic";
6875         MY(velocityjitter) = '140.0 140.0 200.0';
6876         MY(velocityoffset) = '0.0 0.0 200.0';
6877 }
6878
6879 // small smoke ( more precise than big one, for spamming on damaged parts like raptors spinner )
6880 DEF(smoke_small);
6881 SUB(smoke_small) {
6882         MY(airfriction) = 4;
6883         MY(alpha_min) = 200;
6884         MY(alpha_max) = 750;
6885         MY(alpha_fade) = 200;
6886         MY(color_min) = "0x4F4B46";
6887         MY(color_max) = "0x000000";
6888         MY(count) = 3;
6889         MY(gravity) = -0.500000;
6890         MY(notunderwater) = true;
6891         MY(startangle_min) = -180;
6892         MY(startangle_max) = 180;
6893         MY(spin_min) = -20;
6894         MY(spin_max) = 20;
6895         MY(sizeincrease) = -10;
6896         MY(size_min) = 60;
6897         MY(size_max) = 100;
6898         MY(tex_max) = 8;
6899         MY(type) = "alphastatic";
6900         MY(velocityjitter) = '40.0 40.0 400.0';
6901         MY(velocityoffset) = '0.0 0.0 200.0';
6902 }
6903
6904 // metal impact effect
6905 DEF(impact_metal);
6906 SUB(impact_metal) {
6907         MY(alpha_min) = 25;
6908         MY(alpha_max) = 64;
6909         MY(alpha_fade) = 50;
6910         MY(color_min) = "0x000000";
6911         MY(color_max) = "0x886666";
6912         MY(count) = 1;
6913         MY(gravity) = -0.010000;
6914         MY(originjitter) = '20.0 20.0 5.0';
6915         MY(sizeincrease) = 10;
6916         MY(size_min) = 3;
6917         MY(size_max) = 6;
6918         MY(tex_max) = 8;
6919         MY(type) = "alphastatic";
6920 }
6921 // sparks
6922 SUB(impact_metal) {
6923         MY(airfriction) = 2;
6924         MY(alpha_min) = 255;
6925         MY(alpha_max) = 255;
6926         MY(alpha_fade) = 112;
6927         MY(bounce) = 1.800000;
6928         MY(color_min) = "0xFFCC22";
6929         MY(color_max) = "0xFF4422";
6930         MY(count) = 2;
6931         MY(gravity) = 1;
6932         MY(size_min) = 2;
6933         MY(size_max) = 2;
6934         MY(stretchfactor) = 0.500000;
6935         MY(tex_min) = 41;
6936         MY(tex_max) = 41;
6937         MY(type) = "spark";
6938         MY(velocityjitter) = '200.0 200.0 300.0';
6939         MY(velocitymultiplier) = 2;
6940 }
6941
6942 // stone impact effect
6943 DEF(impact_stone);
6944 SUB(impact_stone) {
6945         MY(alpha_min) = 50;
6946         MY(alpha_max) = 128;
6947         MY(alpha_fade) = 75;
6948         MY(color_min) = "0x000000";
6949         MY(color_max) = "0xcc9966";
6950         MY(count) = 1;
6951         MY(gravity) = -0.010000;
6952         MY(originjitter) = '20.0 20.0 5.0';
6953         MY(sizeincrease) = 15;
6954         MY(size_min) = 3;
6955         MY(size_max) = 6;
6956         MY(tex_max) = 8;
6957         MY(type) = "alphastatic";
6958 }
6959 // debris
6960 SUB(impact_stone) {
6961         MY(airfriction) = 0.500000;
6962         MY(alpha_min) = 450;
6963         MY(alpha_max) = 750;
6964         MY(alpha_fade) = 300;
6965         MY(bounce) = 1.200000;
6966         MY(color_min) = "0x000000";
6967         MY(color_max) = "0x886644";
6968         MY(count) = 1;
6969         MY(gravity) = 1.300000;
6970         MY(notunderwater) = true;
6971         MY(startangle_min) = -180;
6972         MY(startangle_max) = 180;
6973         MY(spin_min) = -1000;
6974         MY(spin_max) = 1000;
6975         MY(size_min) = 1;
6976         MY(size_max) = 2;
6977         MY(tex_min) = 66;
6978         MY(tex_max) = 68;
6979         MY(type) = "alphastatic";
6980         MY(velocityjitter) = '124.0 124.0 324.0';
6981 }
6982
6983 // wood impact effect
6984 DEF(impact_wood);
6985 SUB(impact_wood) {
6986         MY(alpha_min) = 50;
6987         MY(alpha_max) = 128;
6988         MY(alpha_fade) = 75;
6989         MY(color_min) = "0x000000";
6990         MY(color_max) = "0xcc9966";
6991         MY(count) = 1;
6992         MY(gravity) = -0.010000;
6993         MY(originjitter) = '20.0 20.0 5.0';
6994         MY(sizeincrease) = 10;
6995         MY(size_min) = 3;
6996         MY(size_max) = 6;
6997         MY(tex_max) = 8;
6998         MY(type) = "alphastatic";
6999 }
7000 // sparks
7001 SUB(impact_wood) {
7002         MY(airfriction) = 2;
7003         MY(alpha_min) = 255;
7004         MY(alpha_max) = 255;
7005         MY(alpha_fade) = 75;
7006         MY(bounce) = 1.500000;
7007         MY(color_min) = "0x221100";
7008         MY(color_max) = "0x221100";
7009         MY(count) = 2;
7010         MY(gravity) = 1;
7011         MY(size_min) = 1;
7012         MY(size_max) = 8;
7013         MY(tex_min) = 41;
7014         MY(tex_max) = 41;
7015         MY(type) = "spark";
7016         MY(velocityjitter) = '180.0 180.0 260.0';
7017         MY(velocitymultiplier) = 2;
7018 }
7019
7020 // flesh impact effect
7021 DEF(impact_flesh);
7022 SUB(impact_flesh) {
7023         MY(alpha_min) = 100;
7024         MY(alpha_max) = 256;
7025         MY(alpha_fade) = 400;
7026         MY(color_min) = "0x000000";
7027         MY(color_max) = "0x420000";
7028         MY(count) = 0.500000;
7029         MY(originjitter) = '11.0 11.0 11.0';
7030         MY(size_min) = 8;
7031         MY(size_max) = 12;
7032         MY(tex_max) = 8;
7033         MY(type) = "alphastatic";
7034 }
7035 // blood splash
7036 SUB(impact_flesh) {
7037         MY(airfriction) = 1;
7038         MY(alpha_min) = 256;
7039         MY(alpha_max) = 256;
7040         MY(alpha_fade) = 64;
7041         MY(bounce) = -1;
7042         MY(color_min) = "0xA8FFFF";
7043         MY(color_max) = "0xA8FFFFF";
7044         MY(count) = 0.300000;
7045         MY(liquidfriction) = 4;
7046         MY(size_min) = 2;
7047         MY(size_max) = 6;
7048         MY(staincolor_min) = "0x808080";
7049         MY(staincolor_max) = "0x808080";
7050         MY(staintex_min) = 16;
7051         MY(staintex_max) = 24;
7052         MY(tex_min) = 24;
7053         MY(tex_max) = 32;
7054         MY(type) = "blood";
7055         MY(velocityjitter) = '96.0 96.0 96.0';
7056         MY(velocitymultiplier) = 5;
7057 }
7058
7059 // hagar trail
7060 DEF(tr_hagar);
7061 // smoke
7062 SUB(tr_hagar) {
7063         MY(alpha_min) = 300;
7064         MY(alpha_max) = 400;
7065         MY(alpha_fade) = 780;
7066         MY(bounce) = 1;
7067         MY(color_min) = "0x101010";
7068         MY(color_max) = "0x000000";
7069         MY(originjitter) = '1.0 1.0 1.0';
7070         MY(sizeincrease) = 10;
7071         MY(size_min) = 3;
7072         MY(size_max) = 2;
7073         MY(tex_max) = 8;
7074         MY(trailspacing) = 4;
7075         MY(type) = "smoke";
7076         MY(velocityjitter) = '1.0 1.0 1.0';
7077         MY(velocitymultiplier) = -0.020000;
7078 }
7079 // fire
7080 SUB(tr_hagar) {
7081         MY(airfriction) = 8;
7082         MY(alpha_min) = 100;
7083         MY(alpha_max) = 144;
7084         MY(alpha_fade) = 988;
7085         MY(color_min) = "0xffdf72";
7086         MY(color_max) = "0x811200";
7087         MY(notunderwater) = true;
7088         MY(sizeincrease) = -15;
7089         MY(size_min) = 5;
7090         MY(size_max) = 2;
7091         MY(tex_min) = 48;
7092         MY(tex_max) = 55;
7093         MY(trailspacing) = 4;
7094         MY(type) = "static";
7095         MY(velocityjitter) = '32.0 32.0 32.0';
7096         MY(velocitymultiplier) = -1;
7097 }
7098 // bubbles
7099 SUB(tr_hagar) {
7100         MY(alpha_min) = 256;
7101         MY(alpha_max) = 256;
7102         MY(alpha_fade) = 256;
7103         MY(bounce) = 1.500000;
7104         MY(color_min) = "0x404040";
7105         MY(color_max) = "0x808080";
7106         MY(gravity) = -0.125000;
7107         MY(liquidfriction) = 4;
7108         MY(size_min) = 1;
7109         MY(size_max) = 1;
7110         MY(tex_min) = 62;
7111         MY(tex_max) = 62;
7112         MY(trailspacing) = 16;
7113         MY(type) = "bubble";
7114         MY(underwater) = true;
7115         MY(velocityjitter) = '16.0 16.0 16.0';
7116 }
7117
7118 // laser damage effect
7119 DEF(damage_laser);
7120 SUB(damage_laser) {
7121         MY(airfriction) = -0.350000;
7122         MY(alpha_min) = 128;
7123         MY(alpha_max) = 16;
7124         MY(alpha_fade) = 128;
7125         MY(color_min) = "0x880000";
7126         MY(color_max) = "0xff4400";
7127         MY(count) = 3;
7128         MY(notunderwater) = true;
7129         MY(originjitter) = '2.0 2.0 2.0';
7130         MY(startangle_max) = 180;
7131         MY(spin_min) = -30;
7132         MY(spin_max) = 30;
7133         MY(sizeincrease) = 8;
7134         MY(size_min) = 2;
7135         MY(size_max) = 4;
7136         MY(tex_max) = 8;
7137         MY(type) = "smoke";
7138         MY(velocityjitter) = '0.4 0.4 0.6';
7139 }
7140
7141 // shotgun damage effect, normal blood
7142 DEF(damage_shotgun);
7143 SUB(damage_shotgun) {
7144         MY(airfriction) = 1;
7145         MY(alpha_min) = 256;
7146         MY(alpha_max) = 256;
7147         MY(alpha_fade) = 64;
7148         MY(bounce) = -1;
7149         MY(color_min) = "0xA8FFFF";
7150         MY(color_max) = "0xA8FFFFF";
7151         MY(count) = 0.600000;
7152         MY(liquidfriction) = 4;
7153         MY(size_min) = 2;
7154         MY(size_max) = 4;
7155         MY(staincolor_min) = "0x808080";
7156         MY(staincolor_max) = "0x808080";
7157         MY(staintex_min) = 16;
7158         MY(staintex_max) = 24;
7159         MY(tex_min) = 24;
7160         MY(tex_max) = 32;
7161         MY(type) = "blood";
7162         MY(velocityjitter) = '64.0 64.0 64.0';
7163         MY(velocitymultiplier) = 5;
7164 }
7165 // blood mist
7166 SUB(damage_shotgun) {
7167         MY(alpha_min) = 100;
7168         MY(alpha_max) = 256;
7169         MY(alpha_fade) = 400;
7170         MY(color_min) = "0x000000";
7171         MY(color_max) = "0x420000";
7172         MY(count) = 1;
7173         MY(originjitter) = '1.0 1.0 1.0';
7174         MY(size_min) = 8;
7175         MY(size_max) = 16;
7176         MY(tex_max) = 8;
7177         MY(type) = "alphastatic";
7178 }
7179
7180 // shotgun damage effect, alien blood
7181 DEF(damage_shotgun_alien);
7182 SUB(damage_shotgun_alien) {
7183         MY(airfriction) = 1;
7184         MY(alpha_min) = 256;
7185         MY(alpha_max) = 256;
7186         MY(alpha_fade) = 64;
7187         MY(bounce) = -1;
7188         MY(color_min) = "0xDC9BCD";
7189         MY(color_max) = "0xDC9BCD";
7190         MY(count) = 0.600000;
7191         MY(liquidfriction) = 4;
7192         MY(size_min) = 2;
7193         MY(size_max) = 4;
7194         MY(staincolor_min) = "0x808080";
7195         MY(staincolor_max) = "0x808080";
7196         MY(staintex_min) = 16;
7197         MY(staintex_max) = 24;
7198         MY(tex_min) = 24;
7199         MY(tex_max) = 32;
7200         MY(type) = "blood";
7201         MY(velocityjitter) = '64.0 64.0 64.0';
7202         MY(velocitymultiplier) = 5;
7203 }
7204 // blood mist
7205 SUB(damage_shotgun_alien) {
7206         MY(alpha_min) = 100;
7207         MY(alpha_max) = 256;
7208         MY(alpha_fade) = 400;
7209         MY(color_min) = "0x000000";
7210         MY(color_max) = "0x204010";
7211         MY(count) = 1;
7212         MY(originjitter) = '1.0 1.0 1.0';
7213         MY(size_min) = 8;
7214         MY(size_max) = 16;
7215         MY(tex_max) = 8;
7216         MY(type) = "alphastatic";
7217 }
7218
7219 // shotgun damage effect, robot blood
7220 DEF(damage_shotgun_robot);
7221 SUB(damage_shotgun_robot) {
7222         MY(airfriction) = 1;
7223         MY(alpha_min) = 256;
7224         MY(alpha_max) = 256;
7225         MY(alpha_fade) = 64;
7226         MY(bounce) = -1;
7227         MY(color_min) = "0xC0D890";
7228         MY(color_max) = "0xC0D890";
7229         MY(count) = 0.600000;
7230         MY(liquidfriction) = 4;
7231         MY(size_min) = 2;
7232         MY(size_max) = 4;
7233         MY(staincolor_min) = "0x808080";
7234         MY(staincolor_max) = "0x808080";
7235         MY(staintex_min) = 16;
7236         MY(staintex_max) = 24;
7237         MY(tex_min) = 24;
7238         MY(tex_max) = 32;
7239         MY(type) = "blood";
7240         MY(velocityjitter) = '64.0 64.0 64.0';
7241         MY(velocitymultiplier) = 5;
7242 }
7243 // blood mist
7244 SUB(damage_shotgun_robot) {
7245         MY(alpha_min) = 100;
7246         MY(alpha_max) = 256;
7247         MY(alpha_fade) = 400;
7248         MY(color_min) = "0x000000";
7249         MY(color_max) = "0x301860";
7250         MY(count) = 1;
7251         MY(originjitter) = '1.0 1.0 1.0';
7252         MY(size_min) = 8;
7253         MY(size_max) = 16;
7254         MY(tex_max) = 8;
7255         MY(type) = "alphastatic";
7256 }
7257
7258 // machinegun damage effect, normal blood
7259 DEF(damage_uzi);
7260 SUB(damage_uzi) {
7261         MY(airfriction) = 1;
7262         MY(alpha_min) = 256;
7263         MY(alpha_max) = 256;
7264         MY(alpha_fade) = 64;
7265         MY(bounce) = -1;
7266         MY(color_min) = "0xA8FFFF";
7267         MY(color_max) = "0xA8FFFFF";
7268         MY(count) = 0.300000;
7269         MY(liquidfriction) = 4;
7270         MY(size_min) = 2;
7271         MY(size_max) = 4;
7272         MY(staincolor_min) = "0x808080";
7273         MY(staincolor_max) = "0x808080";
7274         MY(staintex_min) = 16;
7275         MY(staintex_max) = 24;
7276         MY(tex_min) = 24;
7277         MY(tex_max) = 32;
7278         MY(type) = "blood";
7279         MY(velocityjitter) = '32.0 32.0 32.0';
7280         MY(velocitymultiplier) = 5;
7281 }
7282 // blood mist
7283 SUB(damage_uzi) {
7284         MY(alpha_min) = 100;
7285         MY(alpha_max) = 256;
7286         MY(alpha_fade) = 400;
7287         MY(color_min) = "0x000000";
7288         MY(color_max) = "0x420000";
7289         MY(count) = 1;
7290         MY(size_min) = 6;
7291         MY(size_max) = 12;
7292         MY(tex_max) = 8;
7293         MY(type) = "alphastatic";
7294 }
7295
7296 // machinegun damage effect, alien blood
7297 DEF(damage_uzi_alien);
7298 SUB(damage_uzi_alien) {
7299         MY(airfriction) = 1;
7300         MY(alpha_min) = 256;
7301         MY(alpha_max) = 256;
7302         MY(alpha_fade) = 64;
7303         MY(bounce) = -1;
7304         MY(color_min) = "0xDC9BCD";
7305         MY(color_max) = "0xDC9BCD";
7306         MY(count) = 0.300000;
7307         MY(liquidfriction) = 4;
7308         MY(size_min) = 2;
7309         MY(size_max) = 4;
7310         MY(staincolor_min) = "0x808080";
7311         MY(staincolor_max) = "0x808080";
7312         MY(staintex_min) = 16;
7313         MY(staintex_max) = 24;
7314         MY(tex_min) = 24;
7315         MY(tex_max) = 32;
7316         MY(type) = "blood";
7317         MY(velocityjitter) = '32.0 32.0 32.0';
7318         MY(velocitymultiplier) = 5;
7319 }
7320 // blood mist
7321 SUB(damage_uzi_alien) {
7322         MY(alpha_min) = 100;
7323         MY(alpha_max) = 256;
7324         MY(alpha_fade) = 400;
7325         MY(color_min) = "0x000000";
7326         MY(color_max) = "0x204010";
7327         MY(count) = 1;
7328         MY(size_min) = 6;
7329         MY(size_max) = 12;
7330         MY(tex_max) = 8;
7331         MY(type) = "alphastatic";
7332 }
7333
7334 // machinegun damage effect, robot blood
7335 DEF(damage_uzi_robot);
7336 SUB(damage_uzi_robot) {
7337         MY(airfriction) = 1;
7338         MY(alpha_min) = 256;
7339         MY(alpha_max) = 256;
7340         MY(alpha_fade) = 64;
7341         MY(bounce) = -1;
7342         MY(color_min) = "0xC0D890";
7343         MY(color_max) = "0xC0D890";
7344         MY(count) = 0.300000;
7345         MY(liquidfriction) = 4;
7346         MY(size_min) = 2;
7347         MY(size_max) = 4;
7348         MY(staincolor_min) = "0x808080";
7349         MY(staincolor_max) = "0x808080";
7350         MY(staintex_min) = 16;
7351         MY(staintex_max) = 24;
7352         MY(tex_min) = 24;
7353         MY(tex_max) = 32;
7354         MY(type) = "blood";
7355         MY(velocityjitter) = '32.0 32.0 32.0';
7356         MY(velocitymultiplier) = 5;
7357 }
7358 // blood mist
7359 SUB(damage_uzi_robot) {
7360         MY(alpha_min) = 100;
7361         MY(alpha_max) = 256;
7362         MY(alpha_fade) = 400;
7363         MY(color_min) = "0x000000";
7364         MY(color_max) = "0x301860";
7365         MY(count) = 1;
7366         MY(size_min) = 6;
7367         MY(size_max) = 12;
7368         MY(tex_max) = 8;
7369         MY(type) = "alphastatic";
7370 }
7371
7372 // minelayer damage effect
7373 DEF(damage_minelayer);
7374 SUB(damage_minelayer) {
7375         MY(alpha_min) = 512;
7376         MY(alpha_max) = 64;
7377         MY(alpha_fade) = 1024;
7378         MY(color_min) = "0x8f0d00";
7379         MY(color_max) = "0xff5a00";
7380         MY(count) = 3;
7381         MY(gravity) = -0.500000;
7382         MY(notunderwater) = true;
7383         MY(originjitter) = '2.0 2.0 2.0';
7384         MY(sizeincrease) = -15;
7385         MY(size_min) = 4;
7386         MY(size_max) = 8;
7387         MY(tex_min) = 48;
7388         MY(tex_max) = 55;
7389         MY(type) = "smoke";
7390         MY(velocityjitter) = '22.0 22.0 50.0';
7391 }
7392 // smoke
7393 SUB(damage_minelayer) {
7394         MY(alpha_min) = 128;
7395         MY(alpha_max) = 32;
7396         MY(alpha_fade) = 128;
7397         MY(color_min) = "0x000000";
7398         MY(color_max) = "0x111111";
7399         MY(count) = 2;
7400         MY(gravity) = -0.300000;
7401         MY(notunderwater) = true;
7402         MY(originjitter) = '4.0 4.0 4.0';
7403         MY(sizeincrease) = 5;
7404         MY(size_min) = 4;
7405         MY(size_max) = 8;
7406         MY(tex_max) = 8;
7407         MY(type) = "alphastatic";
7408         MY(velocityjitter) = '11.0 11.0 50.0';
7409 }
7410
7411 // mortar damage effect
7412 DEF(damage_grenadelauncher);
7413 SUB(damage_grenadelauncher) {
7414         MY(alpha_min) = 512;
7415         MY(alpha_max) = 64;
7416         MY(alpha_fade) = 1024;
7417         MY(color_min) = "0x8f0d00";
7418         MY(color_max) = "0xff5a00";
7419         MY(count) = 3;
7420         MY(gravity) = -0.500000;
7421         MY(notunderwater) = true;
7422         MY(originjitter) = '2.0 2.0 2.0';
7423         MY(sizeincrease) = -15;
7424         MY(size_min) = 4;
7425         MY(size_max) = 8;
7426         MY(tex_min) = 48;
7427         MY(tex_max) = 55;
7428         MY(type) = "smoke";
7429         MY(velocityjitter) = '22.0 22.0 50.0';
7430 }
7431 // smoke
7432 SUB(damage_grenadelauncher) {
7433         MY(alpha_min) = 128;
7434         MY(alpha_max) = 32;
7435         MY(alpha_fade) = 128;
7436         MY(color_min) = "0x000000";
7437         MY(color_max) = "0x111111";
7438         MY(count) = 2;
7439         MY(gravity) = -0.300000;
7440         MY(notunderwater) = true;
7441         MY(originjitter) = '4.0 4.0 4.0';
7442         MY(sizeincrease) = 5;
7443         MY(size_min) = 4;
7444         MY(size_max) = 8;
7445         MY(tex_max) = 8;
7446         MY(type) = "alphastatic";
7447         MY(velocityjitter) = '11.0 11.0 50.0';
7448 }
7449
7450 // electro damage effect
7451 DEF(damage_electro);
7452 SUB(damage_electro) {
7453         MY(airfriction) = -0.500000;
7454         MY(alpha_min) = 48;
7455         MY(alpha_max) = 8;
7456         MY(alpha_fade) = 48;
7457         MY(color_min) = "0x66ffff";
7458         MY(color_max) = "0x2288ff";
7459         MY(count) = 2;
7460         MY(gravity) = -0.000100;
7461         MY(liquidfriction) = 0.800000;
7462         MY(notunderwater) = true;
7463         MY(originjitter) = '3.0 3.0 3.0';
7464         MY(startangle_min) = 180;
7465         MY(startangle_max) = 360;
7466         MY(spin_min) = -30;
7467         MY(spin_max) = 30;
7468         MY(sizeincrease) = -14;
7469         MY(size_min) = 6;
7470         MY(size_max) = 10;
7471         MY(tex_min) = 47;
7472         MY(tex_max) = 47;
7473         MY(type) = "static";
7474         MY(velocityjitter) = '8.0 8.0 16.0';
7475 }
7476 // plasma smoke
7477 SUB(damage_electro) {
7478         MY(airfriction) = -0.350000;
7479         MY(alpha_min) = 64;
7480         MY(alpha_max) = 16;
7481         MY(alpha_fade) = 64;
7482         MY(color_min) = "0x2244ff";
7483         MY(color_max) = "0x002266";
7484         MY(count) = 4;
7485         MY(notunderwater) = true;
7486         MY(originjitter) = '4.0 4.0 4.0';
7487         MY(startangle_max) = 180;
7488         MY(spin_min) = -30;
7489         MY(spin_max) = 30;
7490         MY(sizeincrease) = 10;
7491         MY(size_min) = 4;
7492         MY(size_max) = 8;
7493         MY(tex_max) = 8;
7494         MY(type) = "smoke";
7495         MY(velocityjitter) = '0.4 0.4 0.6';
7496 }
7497 // bouncing sparks
7498 SUB(damage_electro) {
7499         MY(airfriction) = 1;
7500         MY(alpha_min) = 768;
7501         MY(alpha_max) = 64;
7502         MY(alpha_fade) = 256;
7503         MY(bounce) = 1.500000;
7504         MY(color_min) = "0x003090";
7505         MY(color_max) = "0x00CCFF";
7506         MY(count) = 0.500000;
7507         MY(gravity) = 0.200000;
7508         MY(liquidfriction) = 0.800000;
7509         MY(size_min) = 1;
7510         MY(size_max) = 1;
7511         MY(tex_min) = 66;
7512         MY(tex_max) = 68;
7513         MY(type) = "spark";
7514         MY(velocityjitter) = '32.0 32.0 32.0';
7515 }
7516
7517 // crylink damage effect
7518 DEF(damage_crylink);
7519 SUB(damage_crylink) {
7520         MY(airfriction) = -0.500000;
7521         MY(alpha_min) = 48;
7522         MY(alpha_max) = 16;
7523         MY(alpha_fade) = 48;
7524         MY(color_min) = "0xff44ff";
7525         MY(color_max) = "0x9966ff";
7526         MY(count) = 2;
7527         MY(gravity) = -0.000100;
7528         MY(liquidfriction) = 0.800000;
7529         MY(notunderwater) = true;
7530         MY(originjitter) = '3.0 3.0 3.0';
7531         MY(startangle_min) = 180;
7532         MY(startangle_max) = 360;
7533         MY(spin_min) = -30;
7534         MY(spin_max) = 30;
7535         MY(sizeincrease) = -8;
7536         MY(size_min) = 0.500000;
7537         MY(size_max) = 1;
7538         MY(tex_min) = 38;
7539         MY(tex_max) = 38;
7540         MY(type) = "static";
7541         MY(velocityjitter) = '10.0 10.0 20.0';
7542 }
7543 // plasma smoke
7544 SUB(damage_crylink) {
7545         MY(airfriction) = -0.350000;
7546         MY(alpha_min) = 64;
7547         MY(alpha_max) = 16;
7548         MY(alpha_fade) = 64;
7549         MY(color_min) = "0x8844ff";
7550         MY(color_max) = "0x662244";
7551         MY(count) = 4;
7552         MY(gravity) = 0.001000;
7553         MY(notunderwater) = true;
7554         MY(originjitter) = '4.0 4.0 4.0';
7555         MY(startangle_max) = 180;
7556         MY(spin_min) = -30;
7557         MY(spin_max) = 30;
7558         MY(sizeincrease) = 6;
7559         MY(size_min) = 5;
7560         MY(size_max) = 10;
7561         MY(tex_max) = 8;
7562         MY(type) = "smoke";
7563         MY(velocityjitter) = '0.4 0.4 0.6';
7564 }
7565 // floating sparks
7566 SUB(damage_crylink) {
7567         MY(airfriction) = 0.200000;
7568         MY(alpha_min) = 192;
7569         MY(alpha_max) = 192;
7570         MY(alpha_fade) = 128;
7571         MY(color_min) = "0x903090";
7572         MY(color_max) = "0xFFD0FF";
7573         MY(count) = 0.300000;
7574         MY(liquidfriction) = 0.800000;
7575         MY(sizeincrease) = -5;
7576         MY(size_min) = 0.500000;
7577         MY(size_max) = 0.500000;
7578         MY(type) = "spark";
7579         MY(velocityjitter) = '12.0 12.0 12.0';
7580 }
7581
7582 // hlac damage effect
7583 DEF(damage_hlac);
7584 SUB(damage_hlac) {
7585         MY(airfriction) = -0.350000;
7586         MY(alpha_min) = 128;
7587         MY(alpha_max) = 16;
7588         MY(alpha_fade) = 128;
7589         MY(color_min) = "0x880000";
7590         MY(color_max) = "0xff4400";
7591         MY(count) = 3;
7592         MY(notunderwater) = true;
7593         MY(originjitter) = '4.0 4.0 4.0';
7594         MY(startangle_max) = 180;
7595         MY(spin_min) = -30;
7596         MY(spin_max) = 30;
7597         MY(sizeincrease) = 10;
7598         MY(size_min) = 2;
7599         MY(size_max) = 4;
7600         MY(tex_max) = 8;
7601         MY(type) = "smoke";
7602         MY(velocityjitter) = '0.4 0.4 0.6';
7603 }
7604
7605 // vortex damage effect
7606 DEF(damage_nex);
7607 SUB(damage_nex) {
7608         MY(airfriction) = -0.500000;
7609         MY(alpha_min) = 64;
7610         MY(alpha_max) = 8;
7611         MY(alpha_fade) = 64;
7612         MY(color_min) = "0xffffff";
7613         MY(color_max) = "0x88ffff";
7614         MY(count) = 1;
7615         MY(gravity) = -0.000100;
7616         MY(liquidfriction) = 0.600000;
7617         MY(originjitter) = '4.0 4.0 4.0';
7618         MY(startangle_min) = 180;
7619         MY(startangle_max) = 360;
7620         MY(spin_min) = -30;
7621         MY(spin_max) = 30;
7622         MY(sizeincrease) = -14;
7623         MY(size_min) = 5;
7624         MY(size_max) = 10;
7625         MY(tex_min) = 47;
7626         MY(tex_max) = 47;
7627         MY(type) = "static";
7628         MY(velocityjitter) = '8.0 8.0 16.0';
7629 }
7630 // plasma smoke
7631 SUB(damage_nex) {
7632         MY(airfriction) = -0.350000;
7633         MY(alpha_min) = 64;
7634         MY(alpha_max) = 16;
7635         MY(alpha_fade) = 64;
7636         MY(color_min) = "0x6688ff";
7637         MY(color_max) = "0x226688";
7638         MY(count) = 2;
7639         MY(originjitter) = '2.0 2.0 2.0';
7640         MY(startangle_max) = 180;
7641         MY(spin_min) = -30;
7642         MY(spin_max) = 30;
7643         MY(sizeincrease) = 8;
7644         MY(size_min) = 4;
7645         MY(size_max) = 8;
7646         MY(tex_max) = 8;
7647         MY(type) = "smoke";
7648         MY(velocityjitter) = '0.5 0.5 0.8';
7649 }
7650 // bouncing sparks
7651 SUB(damage_nex) {
7652         MY(airfriction) = 2;
7653         MY(alpha_min) = 255;
7654         MY(alpha_max) = 255;
7655         MY(alpha_fade) = 112;
7656         MY(bounce) = 1.600000;
7657         MY(color_min) = "0xD9FDFF";
7658         MY(color_max) = "0xD9FDFF";
7659         MY(count) = 0.200000;
7660         MY(gravity) = 1;
7661         MY(size_min) = 1;
7662         MY(size_max) = 1;
7663         MY(stretchfactor) = 0.700000;
7664         MY(tex_min) = 41;
7665         MY(tex_max) = 41;
7666         MY(type) = "spark";
7667         MY(velocityjitter) = '100.0 100.0 300.0';
7668         MY(velocitymultiplier) = 3;
7669 }
7670
7671 // vaporizer damage effect
7672 DEF(damage_minstanex);
7673 SUB(damage_minstanex) {
7674         MY(airfriction) = -0.500000;
7675         MY(alpha_min) = 64;
7676         MY(alpha_max) = 8;
7677         MY(alpha_fade) = 64;
7678         MY(color_min) = "0xffffff";
7679         MY(color_max) = "0x88ffff";
7680         MY(count) = 2;
7681         MY(gravity) = -0.000100;
7682         MY(liquidfriction) = 0.600000;
7683         MY(originjitter) = '4.0 4.0 4.0';
7684         MY(startangle_min) = 180;
7685         MY(startangle_max) = 360;
7686         MY(spin_min) = -30;
7687         MY(spin_max) = 30;
7688         MY(sizeincrease) = -14;
7689         MY(size_min) = 5;
7690         MY(size_max) = 10;
7691         MY(tex_min) = 47;
7692         MY(tex_max) = 47;
7693         MY(type) = "static";
7694         MY(velocityjitter) = '8.0 8.0 16.0';
7695 }
7696 // plasma smoke
7697 SUB(damage_minstanex) {
7698         MY(airfriction) = -0.350000;
7699         MY(alpha_min) = 64;
7700         MY(alpha_max) = 16;
7701         MY(alpha_fade) = 64;
7702         MY(color_min) = "0x6688ff";
7703         MY(color_max) = "0x226688";
7704         MY(count) = 4;
7705         MY(originjitter) = '2.0 2.0 2.0';
7706         MY(startangle_max) = 180;
7707         MY(spin_min) = -30;
7708         MY(spin_max) = 30;
7709         MY(sizeincrease) = 8;
7710         MY(size_min) = 4;
7711         MY(size_max) = 8;
7712         MY(tex_max) = 8;
7713         MY(type) = "smoke";
7714         MY(velocityjitter) = '0.5 0.5 0.8';
7715 }
7716 // bouncing sparks
7717 SUB(damage_minstanex) {
7718         MY(airfriction) = 2;
7719         MY(alpha_min) = 255;
7720         MY(alpha_max) = 255;
7721         MY(alpha_fade) = 112;
7722         MY(bounce) = 1.600000;
7723         MY(color_min) = "0xD9FDFF";
7724         MY(color_max) = "0xD9FDFF";
7725         MY(count) = 0.200000;
7726         MY(gravity) = 1;
7727         MY(size_min) = 1;
7728         MY(size_max) = 1;
7729         MY(stretchfactor) = 0.700000;
7730         MY(tex_min) = 41;
7731         MY(tex_max) = 41;
7732         MY(type) = "spark";
7733         MY(velocityjitter) = '100.0 100.0 300.0';
7734         MY(velocitymultiplier) = 3;
7735 }
7736
7737 // rifle damage effect, normal blood
7738 DEF(damage_rifle);
7739 SUB(damage_rifle) {
7740         MY(airfriction) = 1;
7741         MY(alpha_min) = 256;
7742         MY(alpha_max) = 256;
7743         MY(alpha_fade) = 64;
7744         MY(bounce) = -1;
7745         MY(color_min) = "0xA8FFFF";
7746         MY(color_max) = "0xA8FFFFF";
7747         MY(count) = 0.300000;
7748         MY(liquidfriction) = 4;
7749         MY(size_min) = 2;
7750         MY(size_max) = 4;
7751         MY(staincolor_min) = "0x808080";
7752         MY(staincolor_max) = "0x808080";
7753         MY(staintex_min) = 16;
7754         MY(staintex_max) = 24;
7755         MY(tex_min) = 24;
7756         MY(tex_max) = 32;
7757         MY(type) = "blood";
7758         MY(velocityjitter) = '32.0 32.0 32.0';
7759         MY(velocitymultiplier) = 5;
7760 }
7761 // blood mist
7762 SUB(damage_rifle) {
7763         MY(alpha_min) = 100;
7764         MY(alpha_max) = 256;
7765         MY(alpha_fade) = 400;
7766         MY(color_min) = "0x000000";
7767         MY(color_max) = "0x420000";
7768         MY(count) = 1;
7769         MY(size_min) = 6;
7770         MY(size_max) = 12;
7771         MY(tex_max) = 8;
7772         MY(type) = "alphastatic";
7773 }
7774
7775 // rifle damage effect, alien blood
7776 DEF(damage_rifle_alien);
7777 SUB(damage_rifle_alien) {
7778         MY(airfriction) = 1;
7779         MY(alpha_min) = 256;
7780         MY(alpha_max) = 256;
7781         MY(alpha_fade) = 64;
7782         MY(bounce) = -1;
7783         MY(color_min) = "0xDC9BCD";
7784         MY(color_max) = "0xDC9BCD";
7785         MY(count) = 0.300000;
7786         MY(liquidfriction) = 4;
7787         MY(size_min) = 2;
7788         MY(size_max) = 4;
7789         MY(staincolor_min) = "0x808080";
7790         MY(staincolor_max) = "0x808080";
7791         MY(staintex_min) = 16;
7792         MY(staintex_max) = 24;
7793         MY(tex_min) = 24;
7794         MY(tex_max) = 32;
7795         MY(type) = "blood";
7796         MY(velocityjitter) = '32.0 32.0 32.0';
7797         MY(velocitymultiplier) = 5;
7798 }
7799 // blood mist
7800 SUB(damage_rifle_alien) {
7801         MY(alpha_min) = 100;
7802         MY(alpha_max) = 256;
7803         MY(alpha_fade) = 400;
7804         MY(color_min) = "0x000000";
7805         MY(color_max) = "0x204010";
7806         MY(count) = 1;
7807         MY(size_min) = 6;
7808         MY(size_max) = 12;
7809         MY(tex_max) = 8;
7810         MY(type) = "alphastatic";
7811 }
7812
7813 // rifle damage effect, robot blood
7814 DEF(damage_rifle_robot);
7815 SUB(damage_rifle_robot) {
7816         MY(airfriction) = 1;
7817         MY(alpha_min) = 256;
7818         MY(alpha_max) = 256;
7819         MY(alpha_fade) = 64;
7820         MY(bounce) = -1;
7821         MY(color_min) = "0xC0D890";
7822         MY(color_max) = "0xC0D890";
7823         MY(count) = 0.300000;
7824         MY(liquidfriction) = 4;
7825         MY(size_min) = 2;
7826         MY(size_max) = 4;
7827         MY(staincolor_min) = "0x808080";
7828         MY(staincolor_max) = "0x808080";
7829         MY(staintex_min) = 16;
7830         MY(staintex_max) = 24;
7831         MY(tex_min) = 24;
7832         MY(tex_max) = 32;
7833         MY(type) = "blood";
7834         MY(velocityjitter) = '32.0 32.0 32.0';
7835         MY(velocitymultiplier) = 5;
7836 }
7837 // blood mist
7838 SUB(damage_rifle_robot) {
7839         MY(alpha_min) = 100;
7840         MY(alpha_max) = 256;
7841         MY(alpha_fade) = 400;
7842         MY(color_min) = "0x000000";
7843         MY(color_max) = "0x301860";
7844         MY(count) = 1;
7845         MY(size_min) = 6;
7846         MY(size_max) = 12;
7847         MY(tex_max) = 8;
7848         MY(type) = "alphastatic";
7849 }
7850
7851 // seeker damage effect
7852 DEF(damage_seeker);
7853 SUB(damage_seeker) {
7854         MY(alpha_min) = 512;
7855         MY(alpha_max) = 32;
7856         MY(alpha_fade) = 1024;
7857         MY(color_min) = "0x8f0c00";
7858         MY(color_max) = "0xff2200";
7859         MY(count) = 3;
7860         MY(gravity) = -0.300000;
7861         MY(notunderwater) = true;
7862         MY(originjitter) = '2.0 2.0 2.0';
7863         MY(sizeincrease) = -10;
7864         MY(size_min) = 4;
7865         MY(size_max) = 8;
7866         MY(tex_min) = 48;
7867         MY(tex_max) = 55;
7868         MY(type) = "smoke";
7869         MY(velocityjitter) = '22.0 22.0 50.0';
7870 }
7871 // smoke
7872 SUB(damage_seeker) {
7873         MY(alpha_min) = 128;
7874         MY(alpha_max) = 32;
7875         MY(alpha_fade) = 128;
7876         MY(color_min) = "0x000000";
7877         MY(color_max) = "0x111111";
7878         MY(count) = 2;
7879         MY(gravity) = -0.300000;
7880         MY(notunderwater) = true;
7881         MY(originjitter) = '4.0 4.0 4.0';
7882         MY(sizeincrease) = 10;
7883         MY(size_min) = 2;
7884         MY(size_max) = 4;
7885         MY(tex_max) = 8;
7886         MY(type) = "alphastatic";
7887         MY(velocityjitter) = '11.0 11.0 50.0';
7888 }
7889
7890 // hagar damage effect
7891 DEF(damage_hagar);
7892 SUB(damage_hagar) {
7893         MY(alpha_min) = 512;
7894         MY(alpha_max) = 32;
7895         MY(alpha_fade) = 1024;
7896         MY(color_min) = "0x8f0c00";
7897         MY(color_max) = "0xff3a00";
7898         MY(count) = 3;
7899         MY(gravity) = -0.300000;
7900         MY(notunderwater) = true;
7901         MY(originjitter) = '2.0 2.0 2.0';
7902         MY(sizeincrease) = -10;
7903         MY(size_min) = 4;
7904         MY(size_max) = 8;
7905         MY(tex_min) = 48;
7906         MY(tex_max) = 55;
7907         MY(type) = "smoke";
7908         MY(velocityjitter) = '22.0 22.0 50.0';
7909 }
7910 // smoke
7911 SUB(damage_hagar) {
7912         MY(alpha_min) = 128;
7913         MY(alpha_max) = 32;
7914         MY(alpha_fade) = 128;
7915         MY(color_min) = "0x000000";
7916         MY(color_max) = "0x111111";
7917         MY(count) = 2;
7918         MY(gravity) = -0.300000;
7919         MY(notunderwater) = true;
7920         MY(originjitter) = '4.0 4.0 4.0';
7921         MY(sizeincrease) = 10;
7922         MY(size_min) = 2;
7923         MY(size_max) = 4;
7924         MY(tex_max) = 8;
7925         MY(type) = "alphastatic";
7926         MY(velocityjitter) = '11.0 11.0 50.0';
7927 }
7928
7929 // fireball damage effect
7930 DEF(damage_fireball);
7931 SUB(damage_fireball) {
7932         MY(alpha_min) = 256;
7933         MY(alpha_max) = 16;
7934         MY(alpha_fade) = 512;
7935         MY(color_min) = "0x8f0d00";
7936         MY(color_max) = "0xff5a00";
7937         MY(count) = 4;
7938         MY(gravity) = -0.500000;
7939         MY(notunderwater) = true;
7940         MY(originjitter) = '8.0 8.0 8.0';
7941         MY(sizeincrease) = -10;
7942         MY(size_min) = 5;
7943         MY(size_max) = 10;
7944         MY(tex_min) = 48;
7945         MY(tex_max) = 55;
7946         MY(type) = "smoke";
7947         MY(velocityjitter) = '22.0 22.0 50.0';
7948 }
7949 // smoke
7950 SUB(damage_fireball) {
7951         MY(alpha_min) = 128;
7952         MY(alpha_max) = 32;
7953         MY(alpha_fade) = 128;
7954         MY(color_min) = "0x000000";
7955         MY(color_max) = "0x111111";
7956         MY(count) = 4;
7957         MY(gravity) = -0.300000;
7958         MY(notunderwater) = true;
7959         MY(originjitter) = '6.0 6.0 6.0';
7960         MY(sizeincrease) = 10;
7961         MY(size_min) = 4;
7962         MY(size_max) = 8;
7963         MY(tex_max) = 8;
7964         MY(type) = "alphastatic";
7965         MY(velocityjitter) = '11.0 11.0 50.0';
7966 }
7967
7968 // rocketlauncher damage effect
7969 DEF(damage_rocketlauncher);
7970 SUB(damage_rocketlauncher) {
7971         MY(alpha_min) = 512;
7972         MY(alpha_max) = 64;
7973         MY(alpha_fade) = 1024;
7974         MY(color_min) = "0x8f0c00";
7975         MY(color_max) = "0xff2a00";
7976         MY(count) = 3;
7977         MY(gravity) = -0.700000;
7978         MY(notunderwater) = true;
7979         MY(originjitter) = '4.0 4.0 4.0';
7980         MY(sizeincrease) = -10;
7981         MY(size_min) = 5;
7982         MY(size_max) = 10;
7983         MY(tex_min) = 48;
7984         MY(tex_max) = 55;
7985         MY(type) = "smoke";
7986         MY(velocityjitter) = '22.0 22.0 30.0';
7987 }
7988 // smoke
7989 SUB(damage_rocketlauncher) {
7990         MY(alpha_min) = 128;
7991         MY(alpha_max) = 32;
7992         MY(alpha_fade) = 128;
7993         MY(color_min) = "0x000000";
7994         MY(color_max) = "0x111111";
7995         MY(count) = 3;
7996         MY(gravity) = -0.300000;
7997         MY(notunderwater) = true;
7998         MY(originjitter) = '4.0 4.0 4.0';
7999         MY(sizeincrease) = 10;
8000         MY(size_min) = 4;
8001         MY(size_max) = 8;
8002         MY(tex_max) = 8;
8003         MY(type) = "alphastatic";
8004         MY(velocityjitter) = '11.0 11.0 50.0';
8005 }
8006
8007 // fireflies
8008 DEF(fireflies);
8009 SUB(fireflies) {
8010         MY(airfriction) = 5;
8011         MY(alpha_min) = 256;
8012         MY(alpha_max) = 256;
8013         MY(alpha_fade) = 70;
8014         MY(bounce) = -1;
8015         MY(color_min) = "0xff9600";
8016         MY(color_max) = "0xffefb8";
8017         MY(count) = 1;
8018         MY(originjitter) = '32.0 32.0 32.0';
8019         MY(originoffset) = '8.0 8.0 8.0';
8020         MY(sizeincrease) = -0.300000;
8021         MY(size_min) = 2;
8022         MY(size_max) = 3;
8023         MY(tex_min) = 38;
8024         MY(tex_max) = 38;
8025         MY(time_min) = 1;
8026         MY(time_max) = 2;
8027         MY(type) = "static";
8028         MY(velocityjitter) = '64.0 64.0 64.0';
8029         MY(velocityoffset) = '2.0 2.0 2.0';
8030 }
8031
8032 DEF(healray_muzzleflash);
8033 SUB(healray_muzzleflash) {
8034         MY(alpha_min) = 256;
8035         MY(alpha_max) = 256;
8036         MY(alpha_fade) = 512;
8037         MY(color_min) = "0x283880";
8038         MY(color_max) = "0x283880";
8039         MY(countabsolute) = 1;
8040         MY(lightcolor) = '1.5 3.0 6.0';
8041         MY(lightradiusfade) = 2000;
8042         MY(lightradius) = 200;
8043         MY(originjitter) = '1.5 1.5 1.5';
8044         MY(sizeincrease) = -10;
8045         MY(size_min) = 20;
8046         MY(size_max) = 20;
8047         MY(tex_min) = 65;
8048         MY(tex_max) = 65;
8049         MY(type) = "smoke";
8050         MY(velocityjitter) = '6.0 6.0 6.0';
8051         MY(velocitymultiplier) = 0.010000;
8052 }
8053 SUB(healray_muzzleflash) {
8054         MY(airfriction) = 5;
8055         MY(alpha_min) = 50;
8056         MY(alpha_max) = 150;
8057         MY(alpha_fade) = 1924;
8058         MY(color_min) = "0xD9FDFF";
8059         MY(color_max) = "0x00f0ff";
8060         MY(count) = 22;
8061         MY(originjitter) = '1.0 1.0 1.0';
8062         MY(sizeincrease) = 3;
8063         MY(size_min) = 1;
8064         MY(size_max) = 15;
8065         MY(stretchfactor) = 3.900000;
8066         MY(tex_min) = 71;
8067         MY(tex_max) = 73;
8068         MY(type) = "spark";
8069         MY(velocityjitter) = '150.0 150.0 150.0';
8070         MY(velocitymultiplier) = 0.400000;
8071 }
8072 SUB(healray_muzzleflash) {
8073         MY(alpha_min) = 110;
8074         MY(alpha_max) = 228;
8075         MY(alpha_fade) = 4024;
8076         MY(color_min) = "0xD9FDFF";
8077         MY(color_max) = "0x00f0ff";
8078         MY(count) = 4;
8079         MY(originjitter) = '1.0 1.0 1.0';
8080         MY(size_min) = 1;
8081         MY(size_max) = 1;
8082         MY(stretchfactor) = 0.200000;
8083         MY(tex_min) = 70;
8084         MY(tex_max) = 70;
8085         MY(type) = "spark";
8086         MY(velocityjitter) = '650.0 650.0 650.0';
8087         MY(velocitymultiplier) = 1.100000;
8088 }
8089
8090 DEF(healray_impact);
8091 SUB(healray_impact) {
8092         MY(alpha_min) = 256;
8093         MY(alpha_max) = 256;
8094         MY(color_min) = "0xd800ff";
8095         MY(color_max) = "0xd800ff";
8096         MY(countabsolute) = 1;
8097         MY(lightcolor) = '0.0 4.4 0.0';
8098         MY(lightradiusfade) = 450;
8099         MY(lightradius) = 125;
8100         MY(originjitter) = '17.0 17.0 17.0';
8101         MY(size_min) = 32;
8102         MY(size_max) = 32;
8103         MY(tex_min) = 59;
8104         MY(tex_max) = 59;
8105         MY(type) = "decal";
8106 }
8107 // shockwave
8108 SUB(healray_impact) {
8109         MY(alpha_min) = 40;
8110         MY(alpha_max) = 40;
8111         MY(alpha_fade) = 350;
8112         MY(color_min) = "0x00ff00";
8113         MY(color_max) = "0x84c52f";
8114         MY(countabsolute) = 1;
8115         MY(sizeincrease) = 1400;
8116         MY(size_min) = 32;
8117         MY(size_max) = 32;
8118         MY(tex_min) = 33;
8119         MY(tex_max) = 33;
8120         MY(type) = "smoke";
8121         MY(velocitymultiplier) = 44;
8122 }
8123 // cloud of bouncing sparks
8124 SUB(healray_impact) {
8125         MY(airfriction) = 6;
8126         MY(alpha_min) = 156;
8127         MY(alpha_max) = 300;
8128         MY(alpha_fade) = 1024;
8129         MY(color_min) = "0x00ff00";
8130         MY(color_max) = "0x84c52f";
8131         MY(count) = 30;
8132         MY(gravity) = 2;
8133         MY(originjitter) = '1.0 1.0 1.0';
8134         MY(size_min) = 1;
8135         MY(size_max) = 2;
8136         MY(tex_min) = 70;
8137         MY(tex_max) = 70;
8138         MY(type) = "spark";
8139         MY(velocityjitter) = '1112.0 1112.0 1112.0';
8140 }
8141 // inner cloud of smoke
8142 SUB(healray_impact) {
8143         MY(airfriction) = 3;
8144         MY(alpha_min) = 200;
8145         MY(alpha_max) = 456;
8146         MY(alpha_fade) = 512;
8147         MY(color_min) = "0x00ff00";
8148         MY(color_max) = "0x84c52f";
8149         MY(count) = 15;
8150         MY(gravity) = -2;
8151         MY(startangle_min) = -180;
8152         MY(startangle_max) = 180;
8153         MY(spin_min) = -90;
8154         MY(spin_max) = 90;
8155         MY(size_min) = 2;
8156         MY(size_max) = 3;
8157         MY(tex_min) = 40;
8158         MY(tex_max) = 40;
8159         MY(type) = "smoke";
8160         MY(velocityjitter) = '120.0 120.0 420.0';
8161 }
8162
8163 DEF(bigplasma_muzzleflash);
8164 SUB(bigplasma_muzzleflash) {
8165         MY(alpha_min) = 256;
8166         MY(alpha_max) = 256;
8167         MY(alpha_fade) = 812;
8168         MY(color_min) = "0x283880";
8169         MY(color_max) = "0x283880";
8170         MY(countabsolute) = 1;
8171         MY(lightcolor) = '1.5 3.0 6.0';
8172         MY(lightradiusfade) = 2000;
8173         MY(lightradius) = 200;
8174         MY(originjitter) = '1.5 1.5 1.5';
8175         MY(sizeincrease) = -10;
8176         MY(size_min) = 50;
8177         MY(size_max) = 50;
8178         MY(tex_min) = 65;
8179         MY(tex_max) = 65;
8180         MY(type) = "smoke";
8181         MY(velocityjitter) = '6.0 6.0 6.0';
8182         MY(velocitymultiplier) = 0.010000;
8183 }
8184 SUB(bigplasma_muzzleflash) {
8185         MY(alpha_min) = 56;
8186         MY(alpha_max) = 56;
8187         MY(alpha_fade) = 1112;
8188         MY(color_min) = "0x00f0ff";
8189         MY(color_max) = "0x00f0ff";
8190         MY(countabsolute) = 1;
8191         MY(sizeincrease) = 300;
8192         MY(size_min) = 20;
8193         MY(size_max) = 20;
8194         MY(tex_min) = 74;
8195         MY(tex_max) = 74;
8196         MY(type) = "smoke";
8197 }
8198 SUB(bigplasma_muzzleflash) {
8199         MY(airfriction) = 5;
8200         MY(alpha_min) = 50;
8201         MY(alpha_max) = 150;
8202         MY(alpha_fade) = 1924;
8203         MY(color_min) = "0xD9FDFF";
8204         MY(color_max) = "0x00f0ff";
8205         MY(count) = 14;
8206         MY(originjitter) = '1.0 1.0 1.0';
8207         MY(sizeincrease) = 135;
8208         MY(size_min) = 5;
8209         MY(size_max) = 10;
8210         MY(stretchfactor) = 1.900000;
8211         MY(tex_min) = 51;
8212         MY(tex_max) = 55;
8213         MY(type) = "spark";
8214         MY(velocityjitter) = '350.0 350.0 350.0';
8215         MY(velocitymultiplier) = 0.400000;
8216 }
8217 SUB(bigplasma_muzzleflash) {
8218         MY(alpha_min) = 110;
8219         MY(alpha_max) = 228;
8220         MY(alpha_fade) = 4024;
8221         MY(color_min) = "0xD9FDFF";
8222         MY(color_max) = "0x00f0ff";
8223         MY(count) = 4;
8224         MY(originjitter) = '1.0 1.0 1.0';
8225         MY(size_min) = 20;
8226         MY(size_max) = 20;
8227         MY(stretchfactor) = 0.200000;
8228         MY(tex_min) = 70;
8229         MY(tex_max) = 70;
8230         MY(type) = "spark";
8231         MY(velocityjitter) = '650.0 650.0 650.0';
8232         MY(velocitymultiplier) = 1.100000;
8233 }
8234
8235 DEF(bigplasma_impact);
8236 SUB(bigplasma_impact) {
8237         MY(alpha_min) = 256;
8238         MY(alpha_max) = 256;
8239         MY(countabsolute) = 1;
8240         MY(lightcolor) = '3.1 4.4 10.0';
8241         MY(lightradiusfade) = 450;
8242         MY(lightradius) = 125;
8243         MY(originjitter) = '17.0 17.0 17.0';
8244         MY(size_min) = 32;
8245         MY(size_max) = 32;
8246         MY(tex_min) = 59;
8247         MY(tex_max) = 59;
8248         MY(type) = "decal";
8249 }
8250 // shockwave
8251 SUB(bigplasma_impact) {
8252         MY(alpha_min) = 40;
8253         MY(alpha_max) = 40;
8254         MY(alpha_fade) = 350;
8255         MY(color_min) = "0x80C0FF";
8256         MY(color_max) = "0x80C0FF";
8257         MY(countabsolute) = 1;
8258         MY(sizeincrease) = 1400;
8259         MY(size_min) = 32;
8260         MY(size_max) = 32;
8261         MY(tex_min) = 33;
8262         MY(tex_max) = 33;
8263         MY(type) = "smoke";
8264         MY(velocitymultiplier) = 44;
8265 }
8266 // cloud of bouncing sparks
8267 SUB(bigplasma_impact) {
8268         MY(airfriction) = 6;
8269         MY(alpha_min) = 156;
8270         MY(alpha_max) = 300;
8271         MY(alpha_fade) = 1024;
8272         MY(color_min) = "0x629dff";
8273         MY(color_max) = "0x0018ff";
8274         MY(count) = 30;
8275         MY(gravity) = 2;
8276         MY(originjitter) = '1.0 1.0 1.0';
8277         MY(size_min) = 1;
8278         MY(size_max) = 2;
8279         MY(tex_min) = 70;
8280         MY(tex_max) = 70;
8281         MY(type) = "spark";
8282         MY(velocityjitter) = '1512.0 1512.0 1512.0';
8283 }
8284 // inner cloud of smoke
8285 SUB(bigplasma_impact) {
8286         MY(airfriction) = 30;
8287         MY(alpha_min) = 200;
8288         MY(alpha_max) = 456;
8289         MY(alpha_fade) = 1512;
8290         MY(color_min) = "0x629dff";
8291         MY(color_max) = "0x0018ff";
8292         MY(count) = 15;
8293         MY(originjitter) = '20.0 20.0 20.0';
8294         MY(startangle_min) = -180;
8295         MY(startangle_max) = 180;
8296         MY(spin_min) = -9;
8297         MY(spin_max) = 9;
8298         MY(sizeincrease) = 555;
8299         MY(size_min) = 20;
8300         MY(size_max) = 24;
8301         MY(tex_min) = 48;
8302         MY(tex_max) = 55;
8303         MY(type) = "smoke";
8304         MY(velocityjitter) = '320.0 320.0 320.0';
8305 }
8306 // smoke
8307 SUB(bigplasma_impact) {
8308         MY(airfriction) = 0.040000;
8309         MY(alpha_min) = 128;
8310         MY(alpha_max) = 328;
8311         MY(alpha_fade) = 390;
8312         MY(blend) = "alpha";
8313         MY(color_min) = "0x222222";
8314         MY(color_max) = "0x000000";
8315         MY(count) = 16;
8316         MY(gravity) = 0.400000;
8317         MY(originjitter) = '80.0 80.0 10.0';
8318         MY(startangle_min) = -180;
8319         MY(startangle_max) = 180;
8320         MY(spin_min) = 2;
8321         MY(spin_max) = -2;
8322         MY(sizeincrease) = 30;
8323         MY(size_min) = 60;
8324         MY(size_max) = 30;
8325         MY(tex_max) = 7;
8326         MY(type) = "smoke";
8327         MY(velocityjitter) = '100.0 100.0 200.0';
8328         MY(velocityoffset) = '0.0 0.0 180.0';
8329 }
8330 // smoke in the middle
8331 SUB(bigplasma_impact) {
8332         MY(airfriction) = 0.040000;
8333         MY(alpha_min) = 128;
8334         MY(alpha_max) = 328;
8335         MY(alpha_fade) = 310;
8336         MY(color_min) = "0x222222";
8337         MY(color_max) = "0x000000";
8338         MY(count) = 10;
8339         MY(gravity) = -0.200000;
8340         MY(originjitter) = '80.0 80.0 80.0';
8341         MY(startangle_min) = -180;
8342         MY(startangle_max) = 180;
8343         MY(spin_min) = 20;
8344         MY(spin_max) = -20;
8345         MY(sizeincrease) = -10;
8346         MY(size_min) = 60;
8347         MY(size_max) = 70;
8348         MY(tex_max) = 7;
8349         MY(type) = "alphastatic";
8350         MY(velocityjitter) = '10.0 10.0 10.0';
8351 }
8352
8353 #include "effectinfo_ctf.inc"
8354
8355 // spawn_point -- team idle spawn point effect
8356 #define spawn_point(name, color) \
8357         DEF(spawn_point_##name); \
8358         SUB(spawn_point_##name) { \
8359                 MY(airfriction) = 0.200000; \
8360                 MY(alpha_min) = 64; \
8361                 MY(alpha_max) = 128; \
8362                 MY(alpha_fade) = 128; \
8363                 MY(color_min) = color; \
8364                 MY(color_max) = color; \
8365                 MY(count) = 37.500000; \
8366                 MY(gravity) = -0.100000; \
8367                 MY(liquidfriction) = 0.800000; \
8368                 MY(originjitter) = '16.0 16.0 64.0'; \
8369                 MY(size_min) = 1; \
8370                 MY(size_max) = 2; \
8371                 MY(type) = "static"; \
8372                 MY(velocityjitter) = '32.0 32.0 0.0'; \
8373         }
8374
8375 spawn_point(red,                "0xFF0F0F")
8376 spawn_point(blue,               "0x0F0FFF")
8377 spawn_point(yellow,     "0xFFFF0F")
8378 spawn_point(pink,               "0xFF0FFF")
8379 spawn_point(neutral,    "0xFFFFFF")
8380 #undef spawn_point
8381
8382 // spawn_event -- team spawning effect
8383 #define spawn_event(name, color) \
8384         DEF(spawn_event_##name); \
8385         SUB(spawn_event_##name) { \
8386                 MY(airfriction) = 2; \
8387                 MY(alpha_max) = 256; \
8388                 MY(alpha_fade) = 256; \
8389                 MY(bounce) = 1; \
8390                 MY(color_min) = color; \
8391                 MY(color_max) = color; \
8392                 MY(count) = 100; \
8393                 MY(originjitter) = '1.0 1.0 1.0'; \
8394                 MY(size_min) = 1; \
8395                 MY(size_max) = 1; \
8396                 MY(stretchfactor) = 0.600000; \
8397                 MY(tex_min) = 64; \
8398                 MY(tex_max) = 64; \
8399                 MY(type) = "spark"; \
8400                 MY(velocityjitter) = '500.0 500.0 500.0'; \
8401                 MY(velocitymultiplier) = 0.100000; \
8402         } \
8403         SUB(spawn_event_##name) { \
8404                 MY(alpha_min) = 190; \
8405                 MY(alpha_max) = 190; \
8406                 MY(alpha_fade) = 180; \
8407                 MY(color_min) = color; \
8408                 MY(color_max) = color; \
8409                 MY(countabsolute) = 1; \
8410                 MY(sizeincrease) = -80; \
8411                 MY(size_min) = 100; \
8412                 MY(size_max) = 100; \
8413                 MY(tex_min) = 65; \
8414                 MY(tex_max) = 65; \
8415                 MY(type) = "smoke"; \
8416         } \
8417         /**/
8418
8419 spawn_event(red,                "0xFF0F0F")
8420 spawn_event(blue,               "0x0F0FFF")
8421 spawn_event(yellow,     "0xFFFF0F")
8422 spawn_event(pink,               "0xFF0FFF")
8423 spawn_event(neutral,    "0xFFFFFF")
8424 #undef spawn_event
8425
8426 #include "effectinfo_nades.inc"
8427
8428 DEF(shockwave_attack);
8429 // electricity
8430 SUB(shockwave_attack) {
8431         MY(airfriction) = 1;
8432         MY(alpha_min) = 4096;
8433         MY(alpha_max) = 4096;
8434         MY(alpha_fade) = 20000;
8435         MY(color_min) = "0xb44215";
8436         MY(color_max) = "0xff0000";
8437         MY(count) = 1;
8438         MY(originjitter) = '2.0 2.0 2.0';
8439         MY(startangle_min) = -180;
8440         MY(startangle_max) = 180;
8441         MY(spin_min) = 4000;
8442         MY(spin_max) = -4000;
8443         MY(sizeincrease) = 1.500000;
8444         MY(size_min) = 5;
8445         MY(size_max) = 7;
8446         MY(stretchfactor) = 2.300000;
8447         MY(tex_min) = 43;
8448         MY(tex_max) = 43;
8449         MY(type) = "spark";
8450         MY(velocityjitter) = '10.0 10.0 10.0';
8451         MY(velocitymultiplier) = 10;
8452 }
8453 // fire
8454 SUB(shockwave_attack) {
8455         MY(airfriction) = 1;
8456         MY(alpha_min) = 4096;
8457         MY(alpha_max) = 4096;
8458         MY(alpha_fade) = 20000;
8459         MY(color_min) = "0xff4200";
8460         MY(color_max) = "0xff0000";
8461         MY(count) = 1;
8462         MY(originjitter) = '2.0 2.0 2.0';
8463         MY(sizeincrease) = 1.500000;
8464         MY(size_min) = 7;
8465         MY(size_max) = 9;
8466         MY(stretchfactor) = 2;
8467         MY(tex_min) = 8;
8468         MY(tex_max) = 15;
8469         MY(type) = "spark";
8470         MY(velocityjitter) = '10.0 10.0 10.0';
8471         MY(velocitymultiplier) = 10;
8472 }
8473
8474 DEF(arc_lightning);
8475 // impact decal
8476 SUB(arc_lightning) {
8477         MY(alpha_min) = 32;
8478         MY(alpha_max) = 32;
8479         MY(countabsolute) = 1;
8480         MY(lightcolor) = '3.1 4.4 10.0';
8481         MY(lightradiusfade) = 200;
8482         MY(lightradius) = 50;
8483         MY(originjitter) = '2.0 2.0 2.0';
8484         MY(size_min) = 16;
8485         MY(size_max) = 16;
8486         MY(tex_min) = 16;
8487         MY(tex_max) = 32;
8488         MY(type) = "decal";
8489 }
8490 // impact sparks
8491 SUB(arc_lightning) {
8492         MY(airfriction) = 110;
8493         MY(alpha_min) = 256;
8494         MY(alpha_max) = 256;
8495         MY(alpha_fade) = 512;
8496         MY(color_min) = "0xDDFDFF";
8497         MY(color_max) = "0xFDFDFF";
8498         MY(count) = 100;
8499         MY(originjitter) = '20.0 20.0 20.0';
8500         MY(startangle_max) = 360;
8501         MY(spin_min) = -36000;
8502         MY(spin_max) = 36000;
8503         MY(sizeincrease) = -5;
8504         MY(size_max) = 5;
8505         MY(stretchfactor) = 1;
8506         MY(tex_min) = 71;
8507         MY(tex_max) = 74;
8508         MY(type) = "static";
8509         MY(velocityjitter) = '250.0 250.0 250.0';
8510         MY(velocitymultiplier) = 100;
8511 }
8512 // impact sparks (underwater)
8513 SUB(arc_lightning) {
8514         MY(airfriction) = 5;
8515         MY(alpha_min) = 256;
8516         MY(alpha_max) = 256;
8517         MY(alpha_fade) = 512;
8518         MY(color_min) = "0xDDFDFF";
8519         MY(color_max) = "0xFDFDFF";
8520         MY(count) = 100;
8521         MY(liquidfriction) = 5;
8522         MY(orientation) = "spark";
8523         MY(originjitter) = '20.0 20.0 20.0';
8524         MY(startangle_max) = 360;
8525         MY(spin_min) = -36000;
8526         MY(spin_max) = 36000;
8527         MY(sizeincrease) = -5;
8528         MY(size_max) = 5;
8529         MY(stretchfactor) = 1;
8530         MY(tex_min) = 71;
8531         MY(tex_max) = 74;
8532         MY(type) = "static";
8533         MY(underwater) = true;
8534         MY(velocityjitter) = '250.0 250.0 250.0';
8535         MY(velocitymultiplier) = 20;
8536 }
8537
8538 DEF(arc_beam);
8539 // sparks on beam
8540 SUB(arc_beam) {
8541         MY(airfriction) = -10;
8542         MY(alpha_min) = 256;
8543         MY(alpha_max) = 256;
8544         MY(alpha_fade) = 16384;
8545         MY(color_min) = "0xfafad2";
8546         MY(color_max) = "0xffffff";
8547         MY(originjitter) = '3.0 3.0 3.0';
8548         MY(relativeoriginoffset) = '10.0 0.0 0.0';
8549         MY(startangle_max) = 360;
8550         MY(spin_min) = 360;
8551         MY(spin_max) = 1000;
8552         MY(stretchfactor) = 1;
8553         MY(tex_min) = 71;
8554         MY(tex_max) = 74;
8555         MY(time_min) = 0.050000;
8556         MY(time_max) = 0.050000;
8557         MY(trailspacing) = 10;
8558         MY(type) = "spark";
8559         MY(velocityjitter) = '100.0 100.0 100.0';
8560         MY(velocitymultiplier) = 200;
8561 }
8562 // sparks on beam (underwater)
8563 SUB(arc_beam) {
8564         MY(alpha_min) = 256;
8565         MY(alpha_max) = 256;
8566         MY(alpha_fade) = 16384;
8567         MY(color_min) = "0xfafad2";
8568         MY(color_max) = "0xffffff";
8569         MY(liquidfriction) = -10;
8570         MY(originjitter) = '30.0 30.0 30.0';
8571         MY(relativeoriginoffset) = '10.0 0.0 0.0';
8572         MY(startangle_max) = 360;
8573         MY(spin_min) = 360;
8574         MY(spin_max) = 1000;
8575         MY(stretchfactor) = 1;
8576         MY(tex_min) = 71;
8577         MY(tex_max) = 74;
8578         MY(time_min) = 0.001000;
8579         MY(time_max) = 0.001000;
8580         MY(trailspacing) = 10;
8581         MY(type) = "spark";
8582         MY(underwater) = true;
8583         MY(velocityjitter) = '100.0 100.0 100.0';
8584         MY(velocitymultiplier) = 200;
8585 }
8586
8587 DEF(arc_beam_heal);
8588 // bubble this...
8589 SUB(arc_beam_heal) {
8590         MY(airfriction) = -20;
8591         MY(alpha_min) = 2048;
8592         MY(alpha_max) = 2048;
8593         MY(alpha_fade) = 256;
8594         MY(color_min) = "0x20FF20";
8595         MY(color_max) = "0x40FF40";
8596         MY(relativeoriginoffset) = '5.0 0.0 0.0';
8597         MY(relativevelocityoffset) = '100.0 0.0 0.0';
8598         MY(sizeincrease) = 20;
8599         MY(size_min) = 0.100000;
8600         MY(size_max) = 0.100000;
8601         MY(tex_min) = 74;
8602         MY(tex_max) = 74;
8603         MY(trailspacing) = 1500;
8604         MY(type) = "smoke";
8605         MY(velocityjitter) = '3.0 3.0 3.0';
8606         MY(velocitymultiplier) = 200;
8607 }
8608
8609 DEF(arc_beam_healimpact);
8610 // healing "aura"
8611 SUB(arc_beam_healimpact) {
8612         MY(alpha_min) = 40;
8613         MY(alpha_max) = 40;
8614         MY(alpha_fade) = 350;
8615         MY(color_min) = "0x00ff00";
8616         MY(color_max) = "0x84c52f";
8617         MY(countabsolute) = 1;
8618         MY(lightcolor) = '0.0 4.4 0.0';
8619         MY(lightradiusfade) = 150;
8620         MY(lightradius) = 20;
8621         MY(sizeincrease) = -1000;
8622         MY(size_min) = 32;
8623         MY(size_max) = 32;
8624         MY(tex_min) = 33;
8625         MY(tex_max) = 33;
8626         MY(type) = "smoke";
8627         MY(velocitymultiplier) = 44;
8628 }
8629 // rising "smoke"
8630 SUB(arc_beam_healimpact) {
8631         MY(airfriction) = 3;
8632         MY(alpha_min) = 200;
8633         MY(alpha_max) = 456;
8634         MY(alpha_fade) = 512;
8635         MY(color_min) = "0x00ff00";
8636         MY(color_max) = "0x84c52f";
8637         MY(count) = 15;
8638         MY(gravity) = -2;
8639         MY(startangle_min) = -180;
8640         MY(startangle_max) = 180;
8641         MY(spin_min) = -90;
8642         MY(spin_max) = 90;
8643         MY(size_min) = 0.500000;
8644         MY(size_max) = 1;
8645         MY(tex_min) = 40;
8646         MY(tex_max) = 40;
8647         MY(type) = "smoke";
8648         MY(velocityjitter) = '120.0 120.0 420.0';
8649 }
8650
8651 DEF(arc_smoke);
8652 // arc heat smoke  (notunderwater)
8653 SUB(arc_smoke) {
8654         MY(airfriction) = 1;
8655         MY(alpha_min) = 32;
8656         MY(alpha_max) = 64;
8657         MY(alpha_fade) = 48;
8658         MY(color_min) = "0x4c453f";
8659         MY(color_max) = "0x2a241f";
8660         MY(count) = 2;
8661         MY(gravity) = -0.125000;
8662         MY(notunderwater) = true;
8663         MY(startangle_max) = 360;
8664         MY(spin_min) = -180;
8665         MY(spin_max) = 180;
8666         MY(sizeincrease) = 10;
8667         MY(size_min) = 5;
8668         MY(size_max) = 10;
8669         MY(tex_max) = 8;
8670         MY(type) = "smoke";
8671         MY(velocityjitter) = '0.0 0.0 16.0';
8672 }
8673 // arc heat bubbles  (underwater)
8674 SUB(arc_smoke) {
8675         MY(alpha_min) = 170;
8676         MY(alpha_max) = 256;
8677         MY(alpha_fade) = 64;
8678         MY(bounce) = 1.500000;
8679         MY(color_min) = "0x404040";
8680         MY(color_max) = "0x808080";
8681         MY(count) = 2;
8682         MY(gravity) = -0.125000;
8683         MY(liquidfriction) = 0.250000;
8684         MY(originjitter) = '6.0 6.0 6.0';
8685         MY(size_min) = 0.100000;
8686         MY(size_max) = 1;
8687         MY(tex_min) = 62;
8688         MY(tex_max) = 62;
8689         MY(type) = "bubble";
8690         MY(underwater) = true;
8691         MY(velocityjitter) = '16.0 16.0 16.0';
8692 }
8693
8694 DEF(arc_overheat);
8695 // arc overheat electric bolts
8696 SUB(arc_overheat) {
8697         MY(airfriction) = 5;
8698         MY(alpha_min) = 128;
8699         MY(alpha_max) = 128;
8700         MY(alpha_fade) = 292;
8701         MY(color_min) = "0xffffff";
8702         MY(color_max) = "0x9271fb";
8703         MY(count) = 24;
8704         MY(gravity) = -0.400000;
8705         MY(liquidfriction) = 10;
8706         MY(originjitter) = '10.0 10.0 10.0';
8707         MY(sizeincrease) = -24;
8708         MY(size_min) = 6;
8709         MY(size_max) = 12;
8710         MY(tex_min) = 43;
8711         MY(tex_max) = 43;
8712         MY(type) = "spark";
8713         MY(velocityjitter) = '256.0 256.0 256.0';
8714 }
8715
8716 DEF(arc_overheat_fire);
8717 // arc overheat bouncing sparks
8718 SUB(arc_overheat_fire) {
8719         MY(alpha_max) = 256;
8720         MY(alpha_fade) = 640;
8721         MY(bounce) = 1.500000;
8722         MY(color_min) = "0x4444ff";
8723         MY(color_max) = "0xeeeeff";
8724         MY(count) = 1;
8725         MY(gravity) = 1;
8726         MY(liquidfriction) = 5;
8727         MY(originjitter) = '6.0 6.0 6.0';
8728         MY(size_min) = 0.400000;
8729         MY(size_max) = 1;
8730         MY(type) = "spark";
8731         MY(velocityjitter) = '92.0 92.0 92.0';
8732         MY(velocitymultiplier) = 80;
8733         MY(velocityoffset) = '0.0 0.0 80.0';
8734 }
8735
8736 #include "effectinfo_buffs.inc"
8737
8738 #include "effectinfo_instagib.inc"
8739
8740 DEF(arc_muzzleflash);
8741 SUB(arc_muzzleflash) {
8742         MY(alpha_min) = 256;
8743         MY(alpha_max) = 256;
8744         MY(alpha_fade) = 512;
8745         MY(color_min) = "0x00ff00";
8746         MY(color_max) = "0x8f4333";
8747         MY(count) = 2;
8748         MY(lightcolor) = '0.3 2.0 0.2';
8749         MY(lightradiusfade) = 2000;
8750         MY(lightradius) = 200;
8751         MY(originjitter) = '1.5 1.5 1.5';
8752         MY(size_min) = 5;
8753         MY(size_max) = 5;
8754         MY(tex_max) = 8;
8755         MY(type) = "smoke";
8756         MY(velocityjitter) = '6.0 6.0 6.0';
8757         MY(velocitymultiplier) = 0.010000;
8758 }
8759 SUB(arc_muzzleflash) {
8760         MY(airfriction) = 12;
8761         MY(alpha_max) = 128;
8762         MY(alpha_fade) = 1024;
8763         MY(color_min) = "0x00ff00";
8764         MY(color_max) = "0x8f4333";
8765         MY(count) = 15;
8766         MY(originjitter) = '1.0 1.0 1.0';
8767         MY(startangle_min) = -180;
8768         MY(startangle_max) = 180;
8769         MY(spin_min) = -400;
8770         MY(spin_max) = 400;
8771         MY(size_min) = 5;
8772         MY(size_max) = 10;
8773         MY(stretchfactor) = 2;
8774         MY(tex_min) = 48;
8775         MY(tex_max) = 55;
8776         MY(type) = "spark";
8777         MY(velocityjitter) = '200.0 200.0 200.0';
8778         MY(velocitymultiplier) = 0.500000;
8779 }
8780
8781 DEF(arc_bolt_explode);
8782 // decal
8783 SUB(arc_bolt_explode) {
8784         MY(alpha_min) = 256;
8785         MY(alpha_max) = 256;
8786         MY(countabsolute) = 1;
8787         MY(lightcolor) = '8.0 4.0 1.0';
8788         MY(lightradiusfade) = 400;
8789         MY(lightradius) = 120;
8790         MY(originjitter) = '14.0 14.0 14.0';
8791         MY(size_min) = 28;
8792         MY(size_max) = 38;
8793         MY(tex_min) = 8;
8794         MY(tex_max) = 16;
8795         MY(type) = "decal";
8796 }
8797 // fire effect which make bright dot inside
8798 SUB(arc_bolt_explode) {
8799         MY(airfriction) = 8;
8800         MY(alpha_min) = 80;
8801         MY(alpha_max) = 200;
8802         MY(alpha_fade) = 356;
8803         MY(bounce) = 1.500000;
8804         MY(color_min) = "0x00ffff";
8805         MY(color_max) = "0x00ffff";
8806         MY(count) = 3.500000;
8807         MY(liquidfriction) = 8;
8808         MY(notunderwater) = true;
8809         MY(originjitter) = '8.0 8.0 8.0';
8810         MY(sizeincrease) = 5;
8811         MY(size_min) = 16;
8812         MY(size_max) = 26;
8813         MY(tex_min) = 48;
8814         MY(tex_max) = 55;
8815         MY(type) = "smoke";
8816         MY(velocityjitter) = '156.0 156.0 156.0';
8817 }
8818 // fire effect which expands then slows
8819 SUB(arc_bolt_explode) {
8820         MY(airfriction) = 12;
8821         MY(alpha_min) = 128;
8822         MY(alpha_max) = 256;
8823         MY(alpha_fade) = 456;
8824         MY(bounce) = 1.500000;
8825         MY(color_min) = "0x00ff00";
8826         MY(color_max) = "0x8f4333";
8827         MY(count) = 12;
8828         MY(liquidfriction) = 8;
8829         MY(notunderwater) = true;
8830         MY(originjitter) = '8.0 8.0 8.0';
8831         MY(sizeincrease) = 15;
8832         MY(size_min) = 20;
8833         MY(size_max) = 26;
8834         MY(tex_min) = 48;
8835         MY(tex_max) = 55;
8836         MY(type) = "static";
8837         MY(velocityjitter) = '286.0 286.0 286.0';
8838 }
8839 // underwater bubbles
8840 SUB(arc_bolt_explode) {
8841         MY(alpha_min) = 128;
8842         MY(alpha_max) = 256;
8843         MY(alpha_fade) = 64;
8844         MY(bounce) = 1.500000;
8845         MY(color_min) = "0x404040";
8846         MY(color_max) = "0x808080";
8847         MY(count) = 16;
8848         MY(gravity) = -0.125000;
8849         MY(liquidfriction) = 0.250000;
8850         MY(originjitter) = '16.0 16.0 16.0';
8851         MY(size_min) = 3;
8852         MY(size_max) = 3;
8853         MY(tex_min) = 62;
8854         MY(tex_max) = 62;
8855         MY(type) = "bubble";
8856         MY(underwater) = true;
8857         MY(velocityjitter) = '96.0 96.0 96.0';
8858 }
8859 // bouncing sparks
8860 SUB(arc_bolt_explode) {
8861         MY(airfriction) = 1;
8862         MY(alpha_min) = 644;
8863         MY(alpha_max) = 956;
8864         MY(alpha_fade) = 684;
8865         MY(bounce) = 1.600000;
8866         MY(color_min) = "0x00ff00";
8867         MY(color_max) = "0x8f4333";
8868         MY(count) = 16;
8869         MY(gravity) = 1;
8870         MY(liquidfriction) = 0.800000;
8871         MY(notunderwater) = true;
8872         MY(originjitter) = '16.0 16.0 16.0';
8873         MY(size_min) = 1;
8874         MY(size_max) = 0.100000;
8875         MY(tex_min) = 40;
8876         MY(tex_max) = 40;
8877         MY(type) = "spark";
8878         MY(velocityjitter) = '224.0 224.0 224.0';
8879         MY(velocityoffset) = '0.0 0.0 80.0';
8880 }