1 #define nade(name, colormin1, colormax1, colormin2, colormax2) \
6 MY(alpha_fade) = 250; \
7 MY(color_min) = colormin1; \
8 MY(color_max) = colormax1; \
9 MY(sizeincrease) = -1; \
14 MY(trailspacing) = 1; \
17 SUB(nade_##name) /* fire */ { \
20 MY(alpha_fade) = 150; \
21 MY(color_min) = colormin2; \
22 MY(color_max) = colormax2; \
23 MY(notunderwater) = true; \
24 MY(sizeincrease) = -10; \
29 MY(trailspacing) = 8; \
32 SUB(nade_##name) /* bubbles */ { \
33 MY(alpha_min) = 256; \
34 MY(alpha_max) = 256; \
35 MY(alpha_fade) = 256; \
36 MY(bounce) = 1.500000; \
37 MY(color_min) = colormin1; \
38 MY(color_max) = colormax1; \
39 MY(gravity) = -0.125000; \
40 MY(liquidfriction) = 4; \
45 MY(trailspacing) = 16; \
46 MY(type) = "bubble"; \
47 MY(underwater) = true; \
48 MY(velocityjitter) = '16.0 16.0 16.0'; \
52 nade(blue, "0x006cff", "0x0600ff", "0x0600ff", "0x9794ff")
53 nade(red, "0xff0000", "0xff3c00", "0xff0000", "0xffa2a2")
54 nade(yellow, "0xFFFF0F", "0xFFFF0F", "0xFFFF0F", "0xFFFF0F")
55 nade(pink, "0xFF0FFF", "0xFF0FFF", "0xFF0FFF", "0xFF0FFF")
56 nade(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
57 nade(green, "0x40ff9b", "0x40ff9b", "0x40ff9b", "0xffa2a2")
58 nade(brown, "0xa85400", "0xa85400", "0xa85400", "0xffa2a2")
59 nade(purple, "0x540054", "0x540054", "0x540054", "0xffa2a2")
62 #define nade_burn(name, colormin1, colormax1, colormin2, colormax2) \
63 DEF(nade_##name##_burn); \
64 SUB(nade_##name##_burn) { \
65 MY(alpha_min) = 100; \
66 MY(alpha_max) = 100; \
67 MY(alpha_fade) = 250; \
68 MY(color_min) = colormin1; \
69 MY(color_max) = colormax1; \
70 MY(sizeincrease) = -1; \
75 MY(trailspacing) = 1; \
78 SUB(nade_##name##_burn) /* fire */ { \
79 MY(alpha_min) = 200; \
80 MY(alpha_max) = 200; \
81 MY(alpha_fade) = 1000; \
82 MY(color_min) = colormin2; \
83 MY(color_max) = colormax2; \
84 MY(notunderwater) = true; \
85 MY(sizeincrease) = -30; \
90 MY(trailspacing) = 64; \
93 SUB(nade_##name##_burn) /* bubbles */ { \
94 MY(alpha_min) = 256; \
95 MY(alpha_max) = 256; \
96 MY(alpha_fade) = 256; \
97 MY(bounce) = 1.500000; \
98 MY(color_min) = colormin1; \
99 MY(color_max) = colormax1; \
100 MY(gravity) = -0.125000; \
101 MY(liquidfriction) = 4; \
106 MY(trailspacing) = 16; \
107 MY(type) = "bubble"; \
108 MY(underwater) = true; \
109 MY(velocityjitter) = '16.0 16.0 16.0'; \
111 SUB(nade_##name##_burn) { \
112 MY(alpha_min) = 300; \
113 MY(alpha_max) = 900; \
114 MY(alpha_fade) = 1500; \
115 MY(color_min) = colormin1; \
116 MY(color_max) = colormax1; \
117 MY(originjitter) = '2.0 2.0 2.0'; \
118 MY(startangle_min) = -180; \
119 MY(startangle_max) = 180; \
121 MY(spin_max) = -20; \
122 MY(sizeincrease) = -40; \
127 MY(trailspacing) = 16; \
128 MY(type) = "smoke"; \
129 MY(velocityjitter) = '10.0 10.0 10.0'; \
133 nade_burn(red, "0xff0000", "0xff3c00", "0xff0000", "0xffa2a2")
134 nade_burn(blue, "0x006cff", "0x0600ff", "0x0600ff", "0x9794ff")
135 nade_burn(yellow, "0xFFFF0F", "0xFFFF0F", "0xFFFF0F", "0xFFFF0F")
136 nade_burn(pink, "0xFF0FFF", "0xFF0FFF", "0xFF0FFF", "0xFF0FFF")
137 nade_burn(neutral, "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
138 nade_burn(green, "0x40ff9b", "0x40ff9b", "0x40ff9b", "0xffa2a2")
139 nade_burn(brown, "0xa85400", "0xa85400", "0xa85400", "0xffa2a2")
140 nade_burn(purple, "0x540054", "0x540054", "0x540054", "0xffa2a2")
143 #define nade_explode(name, colorlight, colormin1, colormax1, colormin2, colormax2, colormin3, colormax3) \
144 DEF(nade_##name##_explode); \
145 SUB(nade_##name##_explode) { \
146 MY(alpha_min) = 256; \
147 MY(alpha_max) = 256; \
148 MY(countabsolute) = 1; \
149 MY(lightcolor) = colorlight; \
150 MY(lightradiusfade) = 1500; \
151 MY(lightradius) = 300; \
152 MY(originjitter) = '26.0 26.0 26.0'; \
157 MY(type) = "decal"; \
159 SUB(nade_##name##_explode) /* shockwave */ { \
160 MY(alpha_min) = 80; \
161 MY(alpha_max) = 80; \
162 MY(alpha_fade) = 650; \
163 MY(color_min) = colormin1; \
164 MY(color_max) = colormax1; \
165 MY(countabsolute) = 1; \
166 MY(sizeincrease) = 1800; \
171 MY(type) = "smoke"; \
172 MY(velocitymultiplier) = 44; \
174 SUB(nade_##name##_explode) /* fire */ { \
175 MY(airfriction) = 30; \
176 MY(alpha_min) = 400; \
177 MY(alpha_max) = 656; \
178 MY(alpha_fade) = 2000; \
179 MY(color_min) = colormin2; \
180 MY(color_max) = colormax2; \
182 MY(notunderwater) = true; \
183 MY(originjitter) = '50.0 50.0 50.0'; \
184 MY(startangle_min) = -180; \
185 MY(startangle_max) = 180; \
188 MY(sizeincrease) = 555; \
193 MY(type) = "smoke"; \
194 MY(velocityjitter) = '320.0 320.0 320.0'; \
196 SUB(nade_##name##_explode) /* fire stretched */ { \
197 MY(airfriction) = -9; \
198 MY(alpha_min) = 1500; \
199 MY(alpha_max) = 3000; \
200 MY(alpha_fade) = 13000; \
201 MY(color_min) = colormin2; \
202 MY(color_max) = colormax2; \
204 MY(sizeincrease) = 40; \
207 MY(stretchfactor) = 80; \
210 MY(type) = "spark"; \
211 MY(velocityjitter) = '30.0 30.0 30.0'; \
213 SUB(nade_##name##_explode) /* smoke */ { \
214 MY(airfriction) = 0.040000; \
215 MY(alpha_min) = 128; \
216 MY(alpha_max) = 328; \
217 MY(alpha_fade) = 390; \
218 MY(blend) = "alpha"; \
219 MY(color_min) = "0x222222"; \
220 MY(color_max) = "0x000000"; \
222 MY(gravity) = 0.400000; \
223 MY(originjitter) = '50.0 50.0 10.0'; \
224 MY(startangle_min) = -180; \
225 MY(startangle_max) = 180; \
228 MY(sizeincrease) = 50; \
232 MY(type) = "smoke"; \
233 MY(velocityjitter) = '200.0 200.0 200.0'; \
234 MY(velocityoffset) = '0.0 0.0 180.0'; \
236 SUB(nade_##name##_explode) /* underwater bubbles */ { \
237 MY(alpha_min) = 128; \
238 MY(alpha_max) = 256; \
239 MY(alpha_fade) = 64; \
240 MY(bounce) = 1.500000; \
241 MY(color_min) = "0x404040"; \
242 MY(color_max) = "0x808080"; \
244 MY(gravity) = -0.125000; \
245 MY(liquidfriction) = 0.250000; \
246 MY(originjitter) = '16.0 16.0 16.0'; \
251 MY(type) = "bubble"; \
252 MY(underwater) = true; \
253 MY(velocityjitter) = '196.0 196.0 196.0'; \
255 SUB(nade_##name##_explode) /* bouncing sparks */ { \
256 MY(airfriction) = 1; \
257 MY(alpha_min) = 644; \
258 MY(alpha_max) = 956; \
259 MY(alpha_fade) = 484; \
260 MY(bounce) = 1.600000; \
261 MY(color_min) = colormin3; \
262 MY(color_max) = colormax3; \
265 MY(liquidfriction) = 0.800000; \
266 MY(notunderwater) = true; \
267 MY(originjitter) = '16.0 16.0 16.0'; \
272 MY(type) = "spark"; \
273 MY(velocityjitter) = '424.0 424.0 624.0'; \
274 MY(velocityoffset) = '0.0 0.0 80.0'; \
276 SUB(nade_##name##_explode) /* notbouncing sparks */ { \
277 MY(airfriction) = 0.700000; \
278 MY(alpha_min) = 644; \
279 MY(alpha_max) = 956; \
280 MY(alpha_fade) = 684; \
281 MY(color_min) = colormin3; \
282 MY(color_max) = colormax3; \
284 MY(gravity) = 0.500000; \
285 MY(liquidfriction) = 0.800000; \
286 MY(originjitter) = '16.0 16.0 16.0'; \
291 MY(type) = "spark"; \
292 MY(velocityjitter) = '424.0 424.0 624.0'; \
293 MY(velocityoffset) = '0.0 0.0 80.0'; \
295 SUB(nade_##name##_explode) /* debris */ { \
296 MY(alpha_min) = 644; \
297 MY(alpha_max) = 956; \
298 MY(alpha_fade) = 2500; \
299 MY(color_min) = colormin3; \
300 MY(color_max) = colormax3; \
302 MY(notunderwater) = true; \
303 MY(originjitter) = '64.0 64.0 64.0'; \
304 MY(startangle_min) = -180; \
305 MY(startangle_max) = 180; \
306 MY(spin_min) = -100; \
307 MY(spin_max) = 100; \
312 MY(type) = "smoke"; \
313 MY(velocityjitter) = '324.0 324.0 324.0'; \
317 nade_explode(blue, '20.0 20.0 100.0', "0x80C0FF", "0x80C0FF", "0x629dff", "0x0018ff", "0x006cff", "0x0600ff")
318 nade_explode(red, '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xff0000", "0xff4200", "0xff0000", "0xffa2a2")
319 nade_explode(yellow, '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFFFF0F", "0xFFFF0F", "0xff0000", "0xffa2a2")
320 nade_explode(pink, '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFF0FFF", "0xFF0FFF", "0xff0000", "0xffa2a2")
321 nade_explode(neutral, '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFFFFFF", "0xFFFFFF", "0xff0000", "0xffa2a2")
322 nade_explode(green, '100.0 20.0 20.0', "0x40ff9b", "0xffa2a2", "0x40ff9b", "0x40ff9b", "0xff0000", "0xffa2a2")
323 nade_explode(brown, '100.0 20.0 20.0', "0xa85400", "0xffa2a2", "0xa85400", "0xa85400", "0xff0000", "0xffa2a2")
324 nade_explode(purple, '100.0 20.0 20.0', "0x540054", "0xffa2a2", "0x540054", "0x540054", "0xff0000", "0xffa2a2")