]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/effectinfo_nades.inc
effectinfo: Split into separate files
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / effectinfo_nades.inc
diff --git a/qcsrc/common/effects/effectinfo_nades.inc b/qcsrc/common/effects/effectinfo_nades.inc
new file mode 100644 (file)
index 0000000..9c65557
--- /dev/null
@@ -0,0 +1,316 @@
+#define nade(name, colormin1, colormax1, colormin2, colormax2) \
+    DEF(nade_##name); \
+    SUB(nade_##name) { \
+        MY(alpha_min) = 100; \
+        MY(alpha_max) = 100; \
+        MY(alpha_fade) = 250; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(sizeincrease) = -1; \
+        MY(size_min) = 3; \
+        MY(size_max) = 3; \
+        MY(tex_min) = 65; \
+        MY(tex_max) = 65; \
+        MY(trailspacing) = 1; \
+        MY(type) = "smoke"; \
+    } \
+    SUB(nade_##name) /* fire */ { \
+        MY(alpha_min) = 30; \
+        MY(alpha_max) = 30; \
+        MY(alpha_fade) = 150; \
+        MY(color_min) = colormin2; \
+        MY(color_max) = colormax2; \
+        MY(notunderwater) = true; \
+        MY(sizeincrease) = -10; \
+        MY(size_min) = 15; \
+        MY(size_max) = 25; \
+        MY(tex_min) = 65; \
+        MY(tex_max) = 65; \
+        MY(trailspacing) = 8; \
+        MY(type) = "smoke"; \
+    } \
+    SUB(nade_##name) /* bubbles */ { \
+        MY(alpha_min) = 256; \
+        MY(alpha_max) = 256; \
+        MY(alpha_fade) = 256; \
+        MY(bounce) = 1.500000; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(gravity) = -0.125000; \
+        MY(liquidfriction) = 4; \
+        MY(size_min) = 1; \
+        MY(size_max) = 1; \
+        MY(tex_min) = 62; \
+        MY(tex_max) = 62; \
+        MY(trailspacing) = 16; \
+        MY(type) = "bubble"; \
+        MY(underwater) = true; \
+        MY(velocityjitter) = '16.0 16.0 16.0'; \
+    } \
+    /**/
+
+nade(blue,      "0x006cff", "0x0600ff", "0x0600ff", "0x9794ff")
+nade(red,       "0xff0000", "0xff3c00", "0xff0000", "0xffa2a2")
+nade(yellow,    "0xFFFF0F", "0xFFFF0F", "0xFFFF0F", "0xFFFF0F")
+nade(pink,      "0xFF0FFF", "0xFF0FFF", "0xFF0FFF", "0xFF0FFF")
+nade(neutral,   "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
+#undef nade
+
+#define nade_burn(name, colormin1, colormax1, colormin2, colormax2) \
+    DEF(nade_##name##_burn); \
+    SUB(nade_##name##_burn) { \
+        MY(alpha_min) = 100; \
+        MY(alpha_max) = 100; \
+        MY(alpha_fade) = 250; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(sizeincrease) = -1; \
+        MY(size_min) = 5; \
+        MY(size_max) = 5; \
+        MY(tex_min) = 65; \
+        MY(tex_max) = 65; \
+        MY(trailspacing) = 1; \
+        MY(type) = "smoke"; \
+    } \
+    SUB(nade_##name##_burn) /* fire */ { \
+        MY(alpha_min) = 200; \
+        MY(alpha_max) = 200; \
+        MY(alpha_fade) = 1000; \
+        MY(color_min) = colormin2; \
+        MY(color_max) = colormax2; \
+        MY(notunderwater) = true; \
+        MY(sizeincrease) = -30; \
+        MY(size_min) = 45; \
+        MY(size_max) = 25; \
+        MY(tex_min) = 65; \
+        MY(tex_max) = 65; \
+        MY(trailspacing) = 64; \
+        MY(type) = "smoke"; \
+    } \
+    SUB(nade_##name##_burn) /* bubbles */ { \
+        MY(alpha_min) = 256; \
+        MY(alpha_max) = 256; \
+        MY(alpha_fade) = 256; \
+        MY(bounce) = 1.500000; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(gravity) = -0.125000; \
+        MY(liquidfriction) = 4; \
+        MY(size_min) = 1; \
+        MY(size_max) = 1; \
+        MY(tex_min) = 62; \
+        MY(tex_max) = 62; \
+        MY(trailspacing) = 16; \
+        MY(type) = "bubble"; \
+        MY(underwater) = true; \
+        MY(velocityjitter) = '16.0 16.0 16.0'; \
+    } \
+    SUB(nade_##name##_burn) { \
+        MY(alpha_min) = 300; \
+        MY(alpha_max) = 900; \
+        MY(alpha_fade) = 1500; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(originjitter) = '2.0 2.0 2.0'; \
+        MY(startangle_min) = -180; \
+        MY(startangle_max) = 180; \
+        MY(spin_min) = 20; \
+        MY(spin_max) = -20; \
+        MY(sizeincrease) = -40; \
+        MY(size_min) = 15; \
+        MY(size_max) = 25; \
+        MY(tex_min) = 71; \
+        MY(tex_max) = 73; \
+        MY(trailspacing) = 16; \
+        MY(type) = "smoke"; \
+        MY(velocityjitter) = '10.0 10.0 10.0'; \
+    } \
+    /**/
+
+nade_burn(red,      "0xff0000", "0xff3c00", "0xff0000", "0xffa2a2")
+nade_burn(blue,     "0x006cff", "0x0600ff", "0x0600ff", "0x9794ff")
+nade_burn(yellow,   "0xFFFF0F", "0xFFFF0F", "0xFFFF0F", "0xFFFF0F")
+nade_burn(pink,     "0xFF0FFF", "0xFF0FFF", "0xFF0FFF", "0xFF0FFF")
+nade_burn(neutral,  "0xFFFFFF", "0xFFFFFF", "0xFFFFFF", "0xFFFFFF")
+#undef nade_burn
+
+#define nade_explode(name, colorlight, colormin1, colormax1, colormin2, colormax2, colormin3, colormax3) \
+    DEF(nade_##name##_explode); \
+    SUB(nade_##name##_explode) { \
+        MY(alpha_min) = 256; \
+        MY(alpha_max) = 256; \
+        MY(countabsolute) = 1; \
+        MY(lightcolor) = colorlight; \
+        MY(lightradiusfade) = 1500; \
+        MY(lightradius) = 300; \
+        MY(originjitter) = '26.0 26.0 26.0'; \
+        MY(size_min) = 88; \
+        MY(size_max) = 88; \
+        MY(tex_min) = 8; \
+        MY(tex_max) = 16; \
+        MY(type) = "decal"; \
+    } \
+    SUB(nade_##name##_explode) /* shockwave */ { \
+        MY(alpha_min) = 80; \
+        MY(alpha_max) = 80; \
+        MY(alpha_fade) = 650; \
+        MY(color_min) = colormin1; \
+        MY(color_max) = colormax1; \
+        MY(countabsolute) = 1; \
+        MY(sizeincrease) = 1800; \
+        MY(size_min) = 32; \
+        MY(size_max) = 32; \
+        MY(tex_min) = 33; \
+        MY(tex_max) = 33; \
+        MY(type) = "smoke"; \
+        MY(velocitymultiplier) = 44; \
+    } \
+    SUB(nade_##name##_explode) /* fire */ { \
+        MY(airfriction) = 30; \
+        MY(alpha_min) = 400; \
+        MY(alpha_max) = 656; \
+        MY(alpha_fade) = 2000; \
+        MY(color_min) = colormin2; \
+        MY(color_max) = colormax2; \
+        MY(count) = 16; \
+        MY(notunderwater) = true; \
+        MY(originjitter) = '50.0 50.0 50.0'; \
+        MY(startangle_min) = -180; \
+        MY(startangle_max) = 180; \
+        MY(spin_min) = -9; \
+        MY(spin_max) = 9; \
+        MY(sizeincrease) = 555; \
+        MY(size_min) = 20; \
+        MY(size_max) = 24; \
+        MY(tex_min) = 48; \
+        MY(tex_max) = 55; \
+        MY(type) = "smoke"; \
+        MY(velocityjitter) = '320.0 320.0 320.0'; \
+    } \
+    SUB(nade_##name##_explode) /* fire stretched */ { \
+        MY(airfriction) = -9; \
+        MY(alpha_min) = 1500; \
+        MY(alpha_max) = 3000; \
+        MY(alpha_fade) = 13000; \
+        MY(color_min) = colormin2; \
+        MY(color_max) = colormax2; \
+        MY(count) = 8; \
+        MY(sizeincrease) = 40; \
+        MY(size_min) = 60; \
+        MY(size_max) = 90; \
+        MY(stretchfactor) = 80; \
+        MY(tex_min) = 48; \
+        MY(tex_max) = 55; \
+        MY(type) = "spark"; \
+        MY(velocityjitter) = '30.0 30.0 30.0'; \
+    } \
+    SUB(nade_##name##_explode) /* smoke */ { \
+        MY(airfriction) = 0.040000; \
+        MY(alpha_min) = 128; \
+        MY(alpha_max) = 328; \
+        MY(alpha_fade) = 390; \
+        MY(blend) = "alpha"; \
+        MY(color_min) = "0x222222"; \
+        MY(color_max) = "0x000000"; \
+        MY(count) = 32; \
+        MY(gravity) = 0.400000; \
+        MY(originjitter) = '50.0 50.0 10.0'; \
+        MY(startangle_min) = -180; \
+        MY(startangle_max) = 180; \
+        MY(spin_min) = 2; \
+        MY(spin_max) = -2; \
+        MY(sizeincrease) = 50; \
+        MY(size_min) = 60; \
+        MY(size_max) = 30; \
+        MY(tex_max) = 7; \
+        MY(type) = "smoke"; \
+        MY(velocityjitter) = '200.0 200.0 200.0'; \
+        MY(velocityoffset) = '0.0 0.0 180.0'; \
+    } \
+    SUB(nade_##name##_explode) /* underwater bubbles */ { \
+        MY(alpha_min) = 128; \
+        MY(alpha_max) = 256; \
+        MY(alpha_fade) = 64; \
+        MY(bounce) = 1.500000; \
+        MY(color_min) = "0x404040"; \
+        MY(color_max) = "0x808080"; \
+        MY(count) = 32; \
+        MY(gravity) = -0.125000; \
+        MY(liquidfriction) = 0.250000; \
+        MY(originjitter) = '16.0 16.0 16.0'; \
+        MY(size_min) = 3; \
+        MY(size_max) = 6; \
+        MY(tex_min) = 62; \
+        MY(tex_max) = 62; \
+        MY(type) = "bubble"; \
+        MY(underwater) = true; \
+        MY(velocityjitter) = '196.0 196.0 196.0'; \
+    } \
+    SUB(nade_##name##_explode) /* bouncing sparks */ { \
+        MY(airfriction) = 1; \
+        MY(alpha_min) = 644; \
+        MY(alpha_max) = 956; \
+        MY(alpha_fade) = 484; \
+        MY(bounce) = 1.600000; \
+        MY(color_min) = colormin3; \
+        MY(color_max) = colormax3; \
+        MY(count) = 8; \
+        MY(gravity) = 1; \
+        MY(liquidfriction) = 0.800000; \
+        MY(notunderwater) = true; \
+        MY(originjitter) = '16.0 16.0 16.0'; \
+        MY(size_min) = 1; \
+        MY(size_max) = 2; \
+        MY(tex_min) = 40; \
+        MY(tex_max) = 40; \
+        MY(type) = "spark"; \
+        MY(velocityjitter) = '424.0 424.0 624.0'; \
+        MY(velocityoffset) = '0.0 0.0 80.0'; \
+    } \
+    SUB(nade_##name##_explode) /* notbouncing sparks */ { \
+        MY(airfriction) = 0.700000; \
+        MY(alpha_min) = 644; \
+        MY(alpha_max) = 956; \
+        MY(alpha_fade) = 684; \
+        MY(color_min) = colormin3; \
+        MY(color_max) = colormax3; \
+        MY(count) = 16; \
+        MY(gravity) = 0.500000; \
+        MY(liquidfriction) = 0.800000; \
+        MY(originjitter) = '16.0 16.0 16.0'; \
+        MY(size_min) = 1; \
+        MY(size_max) = 2; \
+        MY(tex_min) = 40; \
+        MY(tex_max) = 40; \
+        MY(type) = "spark"; \
+        MY(velocityjitter) = '424.0 424.0 624.0'; \
+        MY(velocityoffset) = '0.0 0.0 80.0'; \
+    } \
+    SUB(nade_##name##_explode) /* debris */ { \
+        MY(alpha_min) = 644; \
+        MY(alpha_max) = 956; \
+        MY(alpha_fade) = 2500; \
+        MY(color_min) = colormin3; \
+        MY(color_max) = colormax3; \
+        MY(count) = 8; \
+        MY(notunderwater) = true; \
+        MY(originjitter) = '64.0 64.0 64.0'; \
+        MY(startangle_min) = -180; \
+        MY(startangle_max) = 180; \
+        MY(spin_min) = -100; \
+        MY(spin_max) = 100; \
+        MY(size_min) = 20; \
+        MY(size_max) = 40; \
+        MY(tex_min) = 71; \
+        MY(tex_max) = 73; \
+        MY(type) = "smoke"; \
+        MY(velocityjitter) = '324.0 324.0 324.0'; \
+    } \
+    /**/
+
+nade_explode(blue,      '20.0 20.0 100.0', "0x80C0FF", "0x80C0FF", "0x629dff", "0x0018ff", "0x006cff", "0x0600ff")
+nade_explode(red,       '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xff0000", "0xff4200", "0xff0000", "0xffa2a2")
+nade_explode(yellow,    '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFFFF0F", "0xFFFF0F", "0xff0000", "0xffa2a2")
+nade_explode(pink,      '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFF0FFF", "0xFF0FFF", "0xff0000", "0xffa2a2")
+nade_explode(neutral,   '100.0 20.0 20.0', "0xff0000", "0xffa2a2", "0xFFFFFF", "0xFFFFFF", "0xff0000", "0xffa2a2")
+#undef nade_explode