]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/effects/effectinfo_nades.inc
New features: Ammo and Darkness nades. Improve nades. Fix turrets target and when...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / effectinfo_nades.inc
1 #define nade(name, colormin1, colormax1, colormin2, colormax2) \
2     DEF(nade_##name); \
3     SUB(nade_##name) { \
4         MY(alpha_min) = 100; \
5         MY(alpha_max) = 100; \
6         MY(alpha_fade) = 250; \
7         MY(color_min) = colormin1; \
8         MY(color_max) = colormax1; \
9         MY(sizeincrease) = -1; \
10         MY(size_min) = 3; \
11         MY(size_max) = 3; \
12         MY(tex_min) = 65; \
13         MY(tex_max) = 65; \
14         MY(trailspacing) = 1; \
15         MY(type) = "smoke"; \
16     } \
17     SUB(nade_##name) /* fire */ { \
18         MY(alpha_min) = 30; \
19         MY(alpha_max) = 30; \
20         MY(alpha_fade) = 150; \
21         MY(color_min) = colormin2; \
22         MY(color_max) = colormax2; \
23         MY(notunderwater) = true; \
24         MY(sizeincrease) = -10; \
25         MY(size_min) = 15; \
26         MY(size_max) = 25; \
27         MY(tex_min) = 65; \
28         MY(tex_max) = 65; \
29         MY(trailspacing) = 8; \
30         MY(type) = "smoke"; \
31     } \
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; \
41         MY(size_min) = 1; \
42         MY(size_max) = 1; \
43         MY(tex_min) = 62; \
44         MY(tex_max) = 62; \
45         MY(trailspacing) = 16; \
46         MY(type) = "bubble"; \
47         MY(underwater) = true; \
48         MY(velocityjitter) = '16.0 16.0 16.0'; \
49     } \
50     /**/
51
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")
60 #undef nade
61
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; \
71         MY(size_min) = 5; \
72         MY(size_max) = 5; \
73         MY(tex_min) = 65; \
74         MY(tex_max) = 65; \
75         MY(trailspacing) = 1; \
76         MY(type) = "smoke"; \
77     } \
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; \
86         MY(size_min) = 45; \
87         MY(size_max) = 25; \
88         MY(tex_min) = 65; \
89         MY(tex_max) = 65; \
90         MY(trailspacing) = 64; \
91         MY(type) = "smoke"; \
92     } \
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; \
102         MY(size_min) = 1; \
103         MY(size_max) = 1; \
104         MY(tex_min) = 62; \
105         MY(tex_max) = 62; \
106         MY(trailspacing) = 16; \
107         MY(type) = "bubble"; \
108         MY(underwater) = true; \
109         MY(velocityjitter) = '16.0 16.0 16.0'; \
110     } \
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; \
120         MY(spin_min) = 20; \
121         MY(spin_max) = -20; \
122         MY(sizeincrease) = -40; \
123         MY(size_min) = 15; \
124         MY(size_max) = 25; \
125         MY(tex_min) = 71; \
126         MY(tex_max) = 73; \
127         MY(trailspacing) = 16; \
128         MY(type) = "smoke"; \
129         MY(velocityjitter) = '10.0 10.0 10.0'; \
130     } \
131     /**/
132
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")
141 #undef nade_burn
142
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'; \
153         MY(size_min) = 88; \
154         MY(size_max) = 88; \
155         MY(tex_min) = 8; \
156         MY(tex_max) = 16; \
157         MY(type) = "decal"; \
158     } \
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; \
167         MY(size_min) = 32; \
168         MY(size_max) = 32; \
169         MY(tex_min) = 33; \
170         MY(tex_max) = 33; \
171         MY(type) = "smoke"; \
172         MY(velocitymultiplier) = 44; \
173     } \
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; \
181         MY(count) = 16; \
182         MY(notunderwater) = true; \
183         MY(originjitter) = '50.0 50.0 50.0'; \
184         MY(startangle_min) = -180; \
185         MY(startangle_max) = 180; \
186         MY(spin_min) = -9; \
187         MY(spin_max) = 9; \
188         MY(sizeincrease) = 555; \
189         MY(size_min) = 20; \
190         MY(size_max) = 24; \
191         MY(tex_min) = 48; \
192         MY(tex_max) = 55; \
193         MY(type) = "smoke"; \
194         MY(velocityjitter) = '320.0 320.0 320.0'; \
195     } \
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; \
203         MY(count) = 8; \
204         MY(sizeincrease) = 40; \
205         MY(size_min) = 60; \
206         MY(size_max) = 90; \
207         MY(stretchfactor) = 80; \
208         MY(tex_min) = 48; \
209         MY(tex_max) = 55; \
210         MY(type) = "spark"; \
211         MY(velocityjitter) = '30.0 30.0 30.0'; \
212     } \
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"; \
221         MY(count) = 32; \
222         MY(gravity) = 0.400000; \
223         MY(originjitter) = '50.0 50.0 10.0'; \
224         MY(startangle_min) = -180; \
225         MY(startangle_max) = 180; \
226         MY(spin_min) = 2; \
227         MY(spin_max) = -2; \
228         MY(sizeincrease) = 50; \
229         MY(size_min) = 60; \
230         MY(size_max) = 30; \
231         MY(tex_max) = 7; \
232         MY(type) = "smoke"; \
233         MY(velocityjitter) = '200.0 200.0 200.0'; \
234         MY(velocityoffset) = '0.0 0.0 180.0'; \
235     } \
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"; \
243         MY(count) = 32; \
244         MY(gravity) = -0.125000; \
245         MY(liquidfriction) = 0.250000; \
246         MY(originjitter) = '16.0 16.0 16.0'; \
247         MY(size_min) = 3; \
248         MY(size_max) = 6; \
249         MY(tex_min) = 62; \
250         MY(tex_max) = 62; \
251         MY(type) = "bubble"; \
252         MY(underwater) = true; \
253         MY(velocityjitter) = '196.0 196.0 196.0'; \
254     } \
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; \
263         MY(count) = 8; \
264         MY(gravity) = 1; \
265         MY(liquidfriction) = 0.800000; \
266         MY(notunderwater) = true; \
267         MY(originjitter) = '16.0 16.0 16.0'; \
268         MY(size_min) = 1; \
269         MY(size_max) = 2; \
270         MY(tex_min) = 40; \
271         MY(tex_max) = 40; \
272         MY(type) = "spark"; \
273         MY(velocityjitter) = '424.0 424.0 624.0'; \
274         MY(velocityoffset) = '0.0 0.0 80.0'; \
275     } \
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; \
283         MY(count) = 16; \
284         MY(gravity) = 0.500000; \
285         MY(liquidfriction) = 0.800000; \
286         MY(originjitter) = '16.0 16.0 16.0'; \
287         MY(size_min) = 1; \
288         MY(size_max) = 2; \
289         MY(tex_min) = 40; \
290         MY(tex_max) = 40; \
291         MY(type) = "spark"; \
292         MY(velocityjitter) = '424.0 424.0 624.0'; \
293         MY(velocityoffset) = '0.0 0.0 80.0'; \
294     } \
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; \
301         MY(count) = 8; \
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; \
308         MY(size_min) = 20; \
309         MY(size_max) = 40; \
310         MY(tex_min) = 71; \
311         MY(tex_max) = 73; \
312         MY(type) = "smoke"; \
313         MY(velocityjitter) = '324.0 324.0 324.0'; \
314     } \
315     /**/
316
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")
325 #undef nade_explode