]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/effectinfo.inc
Fix legacy vaporizer beam effect appearing invisible in free for all gamemodes
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / effectinfo.inc
index e4abcebe8d14eb6986ed5c8b406f0c0462d98d65..7c2dde1ed7a98ac2a061d53bb18339d92de963ca 100644 (file)
@@ -1,4 +1,15 @@
+// docs: https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/
+// use `cl_particles_reloadeffects` to reload effects without restarting engine
+// use `chase_active 1` and `cl_lockview 1` to see effects from different perspectives
+// `dumpeffectinfo` currently doesn't work so edit effectinfo.txt manually, just try to keep the files in sync
+
+// `tex` are indices into particles/particlefont.tga (see particles/particlefont-template.tga for numbers)
+// the first index is inclusive, second exclusive (so `tex 0 8` will use images 0 though 7)
+// unless they're equal (`tex 69 69` is the same as `tex 69 70`)
+
+// item respawn effect
 DEF(TE_WIZSPIKE);
+// flare particle and light
 SUB(TE_WIZSPIKE) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -13,6 +24,7 @@ SUB(TE_WIZSPIKE) {
        MY(size_max) = 20;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(TE_WIZSPIKE) {
        MY(airfriction) = 2;
        MY(alpha_min) = 64;
@@ -29,7 +41,9 @@ SUB(TE_WIZSPIKE) {
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
 
+// laser impact
 DEF(TE_KNIGHTSPIKE);
+// decal
 SUB(TE_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -44,6 +58,7 @@ SUB(TE_KNIGHTSPIKE) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -57,6 +72,7 @@ SUB(TE_KNIGHTSPIKE) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
 SUB(TE_KNIGHTSPIKE) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -72,7 +88,9 @@ SUB(TE_KNIGHTSPIKE) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
+// machinegun bullet impact
 DEF(TE_SPIKE);
+// bullet impact decal
 SUB(TE_SPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -84,6 +102,7 @@ SUB(TE_SPIKE) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -98,6 +117,7 @@ SUB(TE_SPIKE) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -111,6 +131,7 @@ SUB(TE_SPIKE) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// bouncing sparks
 SUB(TE_SPIKE) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 256;
@@ -126,7 +147,9 @@ SUB(TE_SPIKE) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// electro combo explosion
 DEF(TE_SPIKEQUAD);
+// decal
 SUB(TE_SPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -141,6 +164,7 @@ SUB(TE_SPIKEQUAD) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_SPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -154,6 +178,7 @@ SUB(TE_SPIKEQUAD) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// large sparks
 SUB(TE_SPIKEQUAD) {
        MY(airfriction) = 4;
        MY(alpha_min) = 256;
@@ -170,7 +195,9 @@ SUB(TE_SPIKEQUAD) {
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
 
+// quake effect
 DEF(TE_SUPERSPIKE);
+// decal
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -182,6 +209,7 @@ SUB(TE_SUPERSPIKE) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -196,6 +224,7 @@ SUB(TE_SUPERSPIKE) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -209,6 +238,7 @@ SUB(TE_SUPERSPIKE) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// sparks that disappear on impact
 SUB(TE_SUPERSPIKE) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 768;
@@ -224,7 +254,9 @@ SUB(TE_SUPERSPIKE) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_SUPERSPIKEQUAD);
+// decal
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -239,6 +271,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -253,6 +286,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -266,6 +300,7 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// sparks that disappear on impact
 SUB(TE_SUPERSPIKEQUAD) {
        MY(alpha_max) = 256;
        MY(alpha_fade) = 768;
@@ -281,7 +316,9 @@ SUB(TE_SUPERSPIKEQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// shotgun pellet impact
 DEF(TE_GUNSHOT);
+// decal
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -293,6 +330,7 @@ SUB(TE_GUNSHOT) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -307,6 +345,7 @@ SUB(TE_GUNSHOT) {
        MY(type) = "smoke";
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
+// dust/smoke staying at the impact
 SUB(TE_GUNSHOT) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -320,6 +359,7 @@ SUB(TE_GUNSHOT) {
        MY(tex_max) = 8;
        MY(type) = "smoke";
 }
+// bouncing sparks
 SUB(TE_GUNSHOT) {
        MY(alpha_max) = 64;
        MY(alpha_fade) = 64;
@@ -335,7 +375,9 @@ SUB(TE_GUNSHOT) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// crylink impact effect
 DEF(TE_GUNSHOTQUAD);
+// decal
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -347,6 +389,7 @@ SUB(TE_GUNSHOTQUAD) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -360,6 +403,7 @@ SUB(TE_GUNSHOTQUAD) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(TE_GUNSHOTQUAD) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -376,7 +420,9 @@ SUB(TE_GUNSHOTQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// mortar/hagar explosion (smaller than rocket)
 DEF(TE_EXPLOSION);
+// decal
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -391,6 +437,7 @@ SUB(TE_EXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 192;
        MY(alpha_max) = 192;
@@ -404,6 +451,7 @@ SUB(TE_EXPLOSION) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// fire effect which expands then slows
 SUB(TE_EXPLOSION) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -423,6 +471,7 @@ SUB(TE_EXPLOSION) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// underwater bubbles
 SUB(TE_EXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -442,6 +491,7 @@ SUB(TE_EXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(TE_EXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -461,7 +511,9 @@ SUB(TE_EXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_EXPLOSIONQUAD);
+// decal
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -476,6 +528,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// smoke cloud
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 32;
        MY(alpha_max) = 32;
@@ -490,6 +543,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(type) = "smoke";
        MY(velocityjitter) = '48.0 48.0 48.0';
 }
+// underwater bubbles
 SUB(TE_EXPLOSIONQUAD) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -509,6 +563,7 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// sparks which go through walls
 SUB(TE_EXPLOSIONQUAD) {
        MY(airfriction) = 0.200000;
        MY(alpha_max) = 256;
@@ -526,7 +581,9 @@ SUB(TE_EXPLOSIONQUAD) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// quake effect
 DEF(TE_TAREXPLOSION);
+// decal
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -541,6 +598,7 @@ SUB(TE_TAREXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// smoke cloud
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 32;
        MY(alpha_max) = 32;
@@ -555,6 +613,7 @@ SUB(TE_TAREXPLOSION) {
        MY(type) = "smoke";
        MY(velocityjitter) = '48.0 48.0 48.0';
 }
+// underwater bubbles
 SUB(TE_TAREXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -574,6 +633,7 @@ SUB(TE_TAREXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// sparks which go through walls
 SUB(TE_TAREXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_max) = 256;
@@ -591,6 +651,7 @@ SUB(TE_TAREXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// bloody impact effect indicating damage
 DEF(TE_BLOOD);
 SUB(TE_BLOOD) {
        MY(airfriction) = 1;
@@ -613,6 +674,7 @@ SUB(TE_BLOOD) {
        MY(velocitymultiplier) = 1;
 }
 
+// sparks (quake effect)
 DEF(TE_SPARK);
 SUB(TE_SPARK) {
        MY(alpha_min) = 64;
@@ -633,7 +695,9 @@ SUB(TE_SPARK) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// vortex impact
 DEF(TE_PLASMABURN);
+// decal
 SUB(TE_PLASMABURN) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -648,6 +712,7 @@ SUB(TE_PLASMABURN) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_PLASMABURN) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -661,6 +726,7 @@ SUB(TE_PLASMABURN) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// small sparks which form a sphere as they slow down
 SUB(TE_PLASMABURN) {
        MY(airfriction) = 8;
        MY(alpha_min) = 256;
@@ -677,6 +743,7 @@ SUB(TE_PLASMABURN) {
        MY(velocityjitter) = '128.0 128.0 128.0';
 }
 
+// quake effect
 DEF(TE_SMALLFLASH);
 SUB(TE_SMALLFLASH) {
        MY(lightcolor) = '2.0 2.0 2.0';
@@ -684,6 +751,7 @@ SUB(TE_SMALLFLASH) {
        MY(lightradius) = 200;
 }
 
+// quake effect
 DEF(TE_FLAMEJET);
 SUB(TE_FLAMEJET) {
        MY(airfriction) = 1;
@@ -703,6 +771,7 @@ SUB(TE_FLAMEJET) {
        MY(velocitymultiplier) = 1;
 }
 
+// quake effect
 DEF(TE_LAVASPLASH);
 SUB(TE_LAVASPLASH) {
        MY(alpha_min) = 256;
@@ -721,6 +790,7 @@ SUB(TE_LAVASPLASH) {
        MY(velocityoffset) = '0.0 0.0 256.0';
 }
 
+// player teleport effect
 DEF(TE_TELEPORT);
 SUB(TE_TELEPORT) {
        MY(airfriction) = 1;
@@ -739,6 +809,7 @@ SUB(TE_TELEPORT) {
        MY(velocityjitter) = '0.0 0.0 256.0';
 }
 
+// vortex beam
 DEF(TE_TEI_G3);
 SUB(TE_TEI_G3) {
        MY(alpha_min) = 128;
@@ -767,6 +838,7 @@ SUB(TE_TEI_G3) {
        MY(velocityjitter) = '8.0 8.0 8.0';
 }
 
+// smoke effect
 DEF(TE_TEI_SMOKE);
 SUB(TE_TEI_SMOKE) {
        MY(alpha_min) = 256;
@@ -784,7 +856,9 @@ SUB(TE_TEI_SMOKE) {
        MY(velocitymultiplier) = 1;
 }
 
+// rocket explosion (bigger than mortar and hagar)
 DEF(TE_TEI_BIGEXPLOSION);
+// decal
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -799,6 +873,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 192;
        MY(alpha_max) = 192;
@@ -812,6 +887,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// fire effect
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -831,6 +907,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// underwater bubbles
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -850,6 +927,7 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// bouncing sparks
 SUB(TE_TEI_BIGEXPLOSION) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -869,7 +947,9 @@ SUB(TE_TEI_BIGEXPLOSION) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// electro explosion
 DEF(TE_TEI_PLASMAHIT);
+// decal
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -884,6 +964,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -897,6 +978,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(TE_TEI_PLASMAHIT) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -911,6 +993,7 @@ SUB(TE_TEI_PLASMAHIT) {
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
 
+// bloody impact effect indicating damage
 DEF(blood);
 SUB(blood) {
        MY(airfriction) = 0.400000;
@@ -937,6 +1020,7 @@ SUB(blood) {
        MY(type) = "spark";
        MY(velocityjitter) = '99.0 99.0 55.0';
 }
+//blood mist
 SUB(blood) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
@@ -954,6 +1038,7 @@ SUB(blood) {
        MY(type) = "alphastatic";
 }
 
+// player teleport effect
 DEF(teleport);
 SUB(teleport) {
        MY(airfriction) = 2;
@@ -988,6 +1073,7 @@ SUB(teleport) {
        MY(type) = "smoke";
 }
 
+// normal super gory blood trail (used by gibs)
 DEF(TR_BLOOD);
 SUB(TR_BLOOD) {
        MY(airfriction) = -2;
@@ -1017,6 +1103,7 @@ SUB(TR_BLOOD) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = -0.100000;
 }
+// splash around gib
 SUB(TR_BLOOD) {
        MY(alpha_min) = 684;
        MY(alpha_max) = 684;
@@ -1032,6 +1119,7 @@ SUB(TR_BLOOD) {
        MY(type) = "blood";
 }
 
+// thinner blood trail (used by quake zombies)
 DEF(TR_SLIGHTBLOOD);
 SUB(TR_SLIGHTBLOOD) {
        MY(airfriction) = 1;
@@ -1056,6 +1144,7 @@ SUB(TR_SLIGHTBLOOD) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// func_stardust effect, used in some maps to indicate teleporters
 DEF(EF_STARDUST);
 SUB(EF_STARDUST) {
        MY(airfriction) = 0.200000;
@@ -1074,6 +1163,7 @@ SUB(EF_STARDUST) {
        MY(velocityjitter) = '32.0 32.0 0.0';
 }
 
+// flare particle and light
 DEF(item_respawn);
 SUB(item_respawn) {
        MY(alpha_min) = 128;
@@ -1086,6 +1176,7 @@ SUB(item_respawn) {
        MY(size_max) = 32;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(item_respawn) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1109,6 +1200,7 @@ SUB(jumppad_activate) {
 }
 
 DEF(laser_muzzleflash);
+// glow and light
 SUB(laser_muzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 256;
@@ -1128,6 +1220,7 @@ SUB(laser_muzzleflash) {
        MY(tex_max) = 65;
        MY(type) = "smoke";
 }
+// electricity
 SUB(laser_muzzleflash) {
        MY(airfriction) = 10;
        MY(alpha_min) = 256;
@@ -1151,6 +1244,7 @@ SUB(laser_muzzleflash) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// fire
 SUB(laser_muzzleflash) {
        MY(airfriction) = 12;
        MY(alpha_min) = 256;
@@ -1172,6 +1266,7 @@ SUB(laser_muzzleflash) {
 }
 
 DEF(laser_impact);
+// decal
 SUB(laser_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1186,6 +1281,7 @@ SUB(laser_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// flare effect
 SUB(laser_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1199,6 +1295,7 @@ SUB(laser_impact) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// sparks that rapidly expand and rapidly slow down to form an interesting spherical effect
 SUB(laser_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -1269,7 +1366,9 @@ SUB(shotgun_muzzleflash) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// shotgun pellet impact
 DEF(shotgun_impact);
+// decal
 SUB(shotgun_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1281,6 +1380,7 @@ SUB(shotgun_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(shotgun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1301,6 +1401,7 @@ SUB(shotgun_impact) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// dust/smoke staying at the impact
 SUB(shotgun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -1323,6 +1424,7 @@ SUB(shotgun_impact) {
        MY(velocityjitter) = '11.0 11.0 11.0';
        MY(velocitymultiplier) = 0.030000;
 }
+// sparks
 SUB(shotgun_impact) {
        MY(airfriction) = 1.100000;
        MY(alpha_max) = 356;
@@ -1382,6 +1484,7 @@ SUB(uzi_muzzleflash) {
 }
 
 DEF(machinegun_impact);
+// decal
 SUB(machinegun_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1396,6 +1499,7 @@ SUB(machinegun_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(machinegun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1416,6 +1520,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.100000;
 }
+// dust/smoke staying at the impact
 SUB(machinegun_impact) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -1438,6 +1543,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '11.0 11.0 11.0';
        MY(velocitymultiplier) = 0.030000;
 }
+// debris
 SUB(machinegun_impact) {
        MY(airfriction) = 1;
        MY(alpha_min) = 300;
@@ -1460,6 +1566,7 @@ SUB(machinegun_impact) {
        MY(velocityjitter) = '350.0 350.0 350.0';
        MY(velocitymultiplier) = 0.200000;
 }
+// sparks
 SUB(machinegun_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 256;
@@ -1519,7 +1626,9 @@ SUB(grenadelauncher_muzzleflash) {
        MY(velocitymultiplier) = 0.500000;
 }
 
+// mortar trail
 DEF(TR_GRENADE);
+// smoke
 SUB(TR_GRENADE) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 400;
@@ -1537,6 +1646,7 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '1.0 1.0 1.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(TR_GRENADE) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -1555,6 +1665,7 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1;
 }
+// bubbles
 SUB(TR_GRENADE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1574,7 +1685,9 @@ SUB(TR_GRENADE) {
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
+// hookbomb trail
 DEF(TR_KNIGHTSPIKE);
+// smoke
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 300;
        MY(alpha_max) = 400;
@@ -1594,6 +1707,7 @@ SUB(TR_KNIGHTSPIKE) {
        MY(velocityjitter) = '3.0 3.0 3.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// marker
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1608,6 +1722,7 @@ SUB(TR_KNIGHTSPIKE) {
        MY(trailspacing) = 2;
        MY(type) = "alphastatic";
 }
+// bubbles
 SUB(TR_KNIGHTSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1628,6 +1743,7 @@ SUB(TR_KNIGHTSPIKE) {
 }
 
 DEF(grenade_explode);
+// decal
 SUB(grenade_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1642,6 +1758,7 @@ SUB(grenade_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which expands then slows
 SUB(grenade_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 128;
@@ -1662,6 +1779,7 @@ SUB(grenade_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// fire effect which make bright dot inside
 SUB(grenade_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 228;
@@ -1682,6 +1800,7 @@ SUB(grenade_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// smoke
 SUB(grenade_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 300;
@@ -1699,6 +1818,7 @@ SUB(grenade_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// underwater bubbles
 SUB(grenade_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -1718,6 +1838,7 @@ SUB(grenade_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '196.0 196.0 196.0';
 }
+// underwatershockwave
 SUB(grenade_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -1732,6 +1853,7 @@ SUB(grenade_explode) {
        MY(underwater) = true;
        MY(velocitymultiplier) = 0.300000;
 }
+// bouncing sparks
 SUB(grenade_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -1753,6 +1875,7 @@ SUB(grenade_explode) {
        MY(velocityjitter) = '424.0 424.0 624.0';
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
+// debris
 SUB(grenade_explode) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 644;
@@ -1835,7 +1958,9 @@ SUB(electro_muzzleflash) {
        MY(velocitymultiplier) = 2.500000;
 }
 
+// electro trail
 DEF(TR_NEXUIZPLASMA);
+// glowing vapor trail
 SUB(TR_NEXUIZPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1852,6 +1977,7 @@ SUB(TR_NEXUIZPLASMA) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_NEXUIZPLASMA) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -1874,6 +2000,7 @@ SUB(TR_NEXUIZPLASMA) {
 }
 
 DEF(electro_impact);
+// decal
 SUB(electro_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1888,6 +2015,7 @@ SUB(electro_impact) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// shockwave
 SUB(electro_impact) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -1903,6 +2031,7 @@ SUB(electro_impact) {
        MY(type) = "smoke";
        MY(velocitymultiplier) = 44;
 }
+// flare effect
 SUB(electro_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1916,6 +2045,7 @@ SUB(electro_impact) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(electro_impact) {
        MY(airfriction) = 6;
        MY(alpha_min) = 256;
@@ -1939,6 +2069,7 @@ SUB(electro_impact) {
        MY(type) = "smoke";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// inner cloud of smoke
 SUB(electro_impact) {
        MY(airfriction) = 30;
        MY(alpha_min) = 200;
@@ -1957,6 +2088,7 @@ SUB(electro_impact) {
 }
 
 DEF(electro_ballexplode);
+// decal
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1971,6 +2103,7 @@ SUB(electro_ballexplode) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -1984,6 +2117,7 @@ SUB(electro_ballexplode) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// cloud of bouncing sparks
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2001,6 +2135,7 @@ SUB(electro_ballexplode) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// inner cloud of smoke
 SUB(electro_ballexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2017,6 +2152,7 @@ SUB(electro_ballexplode) {
 }
 
 DEF(electro_combo);
+// decal
 SUB(electro_combo) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2031,6 +2167,7 @@ SUB(electro_combo) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// flare effect
 SUB(electro_combo) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
@@ -2044,6 +2181,7 @@ SUB(electro_combo) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// large sparks
 SUB(electro_combo) {
        MY(airfriction) = 6;
        MY(alpha_min) = 156;
@@ -2080,6 +2218,7 @@ SUB(electro_combo) {
        MY(velocityjitter) = '312.0 312.0 312.0';
        MY(velocitymultiplier) = 3;
 }
+// inner cloud of smoke
 SUB(electro_combo) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2094,6 +2233,7 @@ SUB(electro_combo) {
        MY(type) = "smoke";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// shockwave
 SUB(electro_combo) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -2147,6 +2287,7 @@ SUB(crylink_muzzleflash) {
 }
 
 DEF(crylink_impact);
+// decal
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2158,6 +2299,7 @@ SUB(crylink_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2171,6 +2313,7 @@ SUB(crylink_impact) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2186,6 +2329,7 @@ SUB(crylink_impact) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// purple splash
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2198,6 +2342,7 @@ SUB(crylink_impact) {
        MY(type) = "static";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// purple splash
 SUB(crylink_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2251,6 +2396,7 @@ SUB(nex_muzzleflash) {
        MY(velocitymultiplier) = 1.500000;
 }
 
+// vortex beam
 DEF(nex_beam);
 SUB(nex_beam) {
        MY(airfriction) = 5;
@@ -2267,6 +2413,7 @@ SUB(nex_beam) {
        MY(trailspacing) = 64;
        MY(type) = "static";
 }
+// drifting smoke
 SUB(nex_beam) {
        MY(airfriction) = 9;
        MY(alpha_min) = 32;
@@ -2282,6 +2429,7 @@ SUB(nex_beam) {
        MY(type) = "static";
        MY(velocityjitter) = '64.0 64.0 64.0';
 }
+// bright core
 SUB(nex_beam) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2293,6 +2441,7 @@ SUB(nex_beam) {
        MY(trailspacing) = 12;
        MY(type) = "static";
 }
+// sparks
 SUB(nex_beam) {
        MY(airfriction) = 5;
        MY(alpha_min) = 64;
@@ -2310,6 +2459,7 @@ SUB(nex_beam) {
 }
 
 DEF(nex_impact);
+// decal
 SUB(nex_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2326,6 +2476,7 @@ SUB(nex_impact) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// rotating something
 SUB(nex_impact) {
        MY(alpha_min) = 55;
        MY(alpha_max) = 55;
@@ -2344,6 +2495,7 @@ SUB(nex_impact) {
        MY(tex_max) = 46;
        MY(type) = "smoke";
 }
+// shockwave
 SUB(nex_impact) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 50;
@@ -2358,6 +2510,7 @@ SUB(nex_impact) {
        MY(tex_max) = 33;
        MY(type) = "static";
 }
+// shockwave2
 SUB(nex_impact) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 50;
@@ -2372,6 +2525,7 @@ SUB(nex_impact) {
        MY(tex_max) = 65;
        MY(type) = "static";
 }
+// flare effect
 SUB(nex_impact) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2385,6 +2539,7 @@ SUB(nex_impact) {
        MY(tex_max) = 37;
        MY(type) = "static";
 }
+// small sparks which glow brightly but live briefly
 SUB(nex_impact) {
        MY(airfriction) = 9;
        MY(alpha_max) = 128;
@@ -2402,6 +2557,7 @@ SUB(nex_impact) {
        MY(velocityjitter) = '600.0 600.0 600.0';
        MY(velocitymultiplier) = 0.500000;
 }
+// small sparks that live longer
 SUB(nex_impact) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
@@ -2502,6 +2658,7 @@ SUB(hagar_bounce) {
 }
 
 DEF(hagar_explode);
+// decal
 SUB(hagar_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2516,6 +2673,7 @@ SUB(hagar_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which make bright dot inside
 SUB(hagar_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 80;
@@ -2536,6 +2694,7 @@ SUB(hagar_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '156.0 156.0 156.0';
 }
+// fire effect which expands then slows
 SUB(hagar_explode) {
        MY(airfriction) = 12;
        MY(alpha_min) = 128;
@@ -2556,6 +2715,7 @@ SUB(hagar_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '286.0 286.0 286.0';
 }
+// smoke
 SUB(hagar_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -2573,6 +2733,7 @@ SUB(hagar_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '244.0 244.0 244.0';
 }
+// underwater bubbles
 SUB(hagar_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -2592,6 +2753,7 @@ SUB(hagar_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(hagar_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -2655,7 +2817,9 @@ SUB(rocketlauncher_muzzleflash) {
        MY(velocitymultiplier) = 0.300000;
 }
 
+// rocket trail
 DEF(TR_ROCKET);
+// smoke
 SUB(TR_ROCKET) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 300;
@@ -2680,6 +2844,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '3.0 3.0 3.0';
        MY(velocitymultiplier) = -0.020000;
 }
+// fire
 SUB(TR_ROCKET) {
        MY(airfriction) = 8;
        MY(alpha_min) = 100;
@@ -2697,6 +2862,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '32.0 32.0 32.0';
        MY(velocitymultiplier) = -1.500000;
 }
+// bubbles
 SUB(TR_ROCKET) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -2714,6 +2880,7 @@ SUB(TR_ROCKET) {
        MY(velocityjitter) = '16.0 16.0 16.0';
        MY(velocitymultiplier) = -0.310000;
 }
+// sparks
 SUB(TR_ROCKET) {
        MY(airfriction) = 5;
        MY(alpha_min) = 444;
@@ -2735,6 +2902,7 @@ SUB(TR_ROCKET) {
        MY(velocitymultiplier) = -0.310000;
 }
 
+// rocket explosion (bigger than mortar and hagar)
 DEF(rocket_explode);
 SUB(rocket_explode) {
        MY(alpha_min) = 256;
@@ -2750,6 +2918,7 @@ SUB(rocket_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect
 SUB(rocket_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 200;
@@ -2770,6 +2939,7 @@ SUB(rocket_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// fire effect 2
 SUB(rocket_explode) {
        MY(airfriction) = 19;
        MY(alpha_min) = 200;
@@ -2790,6 +2960,7 @@ SUB(rocket_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '912.0 912.0 912.0';
 }
+// smoke
 SUB(rocket_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 200;
@@ -2807,6 +2978,7 @@ SUB(rocket_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '444.0 444.0 444.0';
 }
+// underwater bubbles
 SUB(rocket_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -2826,6 +2998,7 @@ SUB(rocket_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '144.0 144.0 144.0';
 }
+// underwatershockwave
 SUB(rocket_explode) {
        MY(alpha_min) = 40;
        MY(alpha_max) = 40;
@@ -2840,6 +3013,7 @@ SUB(rocket_explode) {
        MY(underwater) = true;
        MY(velocitymultiplier) = 0.300000;
 }
+// bouncing sparks
 SUB(rocket_explode) {
        MY(airfriction) = 1;
        MY(alpha_min) = 644;
@@ -2861,6 +3035,7 @@ SUB(rocket_explode) {
        MY(velocityjitter) = '424.0 424.0 624.0';
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
+// debris
 SUB(rocket_explode) {
        MY(airfriction) = 0.500000;
        MY(alpha_min) = 644;
@@ -3228,7 +3403,9 @@ SUB(nex242_misc_laser_orange_beam_end) {
        MY(velocitymultiplier) = 100;
 }
 
+// bigger crylink impact effect
 DEF(crylink_impactbig);
+// decal
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3240,6 +3417,7 @@ SUB(crylink_impactbig) {
        MY(tex_max) = 47;
        MY(type) = "decal";
 }
+// purple flare effect
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3253,6 +3431,7 @@ SUB(crylink_impactbig) {
        MY(tex_max) = 39;
        MY(type) = "static";
 }
+// purple sparks
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3268,6 +3447,7 @@ SUB(crylink_impactbig) {
        MY(type) = "spark";
        MY(velocityjitter) = '512.0 512.0 512.0';
 }
+// purple splash
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3280,6 +3460,7 @@ SUB(crylink_impactbig) {
        MY(type) = "static";
        MY(velocityjitter) = '32.0 32.0 32.0';
 }
+// purple splash
 SUB(crylink_impactbig) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3293,125 +3474,10 @@ SUB(crylink_impactbig) {
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
-DEF(damage_hit);
-SUB(damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x00FFFF";
-       MY(color_max) = "0xFF00FF";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -24;
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '256.0 256.0 256.0';
-}
-SUB(damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFFFF00";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -24;
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '256.0 256.0 256.0';
-}
-SUB(damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF00";
-       MY(color_max) = "0x00FFFF";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -24;
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '256.0 256.0 256.0';
-}
-
-DEF(damage_dissolve);
-SUB(damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 128;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x00FFFF";
-       MY(color_max) = "0xFF00FF";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 128;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFFFF00";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 128;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF00";
-       MY(color_max) = "0x00FFFF";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
+#include "effectinfo_gentle.inc"
 
 DEF(laser_deadly);
+// decal
 SUB(laser_deadly) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3423,6 +3489,7 @@ SUB(laser_deadly) {
        MY(tex_max) = 59;
        MY(type) = "decal";
 }
+// dust/smoke drifting away from the impact
 SUB(laser_deadly) {
        MY(airfriction) = 7;
        MY(alpha_max) = 64;
@@ -3441,6 +3508,7 @@ SUB(laser_deadly) {
        MY(velocityjitter) = '15.0 15.0 15.0';
        MY(velocitymultiplier) = 20;
 }
+// sparks
 SUB(laser_deadly) {
        MY(airfriction) = 5;
        MY(alpha_min) = 256;
@@ -3463,6 +3531,7 @@ SUB(laser_deadly) {
 }
 
 DEF(torch_small);
+// fire
 SUB(torch_small) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3480,6 +3549,7 @@ SUB(torch_small) {
        MY(type) = "smoke";
        MY(velocityjitter) = '1.0 1.0 50.0';
 }
+// smoke
 SUB(torch_small) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3517,6 +3587,7 @@ SUB(fountain01) {
 }
 
 DEF(hookbomb_explode);
+// decal
 SUB(hookbomb_explode) {
        MY(airfriction) = 10;
        MY(alpha_max) = 256;
@@ -3534,6 +3605,7 @@ SUB(hookbomb_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '550.0 550.0 550.0';
 }
+// decal in the air
 SUB(hookbomb_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 265;
@@ -3549,6 +3621,7 @@ SUB(hookbomb_explode) {
        MY(tex_max) = 38;
        MY(type) = "static";
 }
+// decal on the ground
 SUB(hookbomb_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3560,6 +3633,7 @@ SUB(hookbomb_explode) {
        MY(tex_max) = 39;
        MY(type) = "decal";
 }
+// some sparks
 SUB(hookbomb_explode) {
        MY(airfriction) = 2;
        MY(alpha_min) = 256;
@@ -3582,6 +3656,7 @@ SUB(hookbomb_explode) {
 }
 
 DEF(EF_MGTURRETTRAIL);
+// smoke
 SUB(EF_MGTURRETTRAIL) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 196;
@@ -3597,6 +3672,7 @@ SUB(EF_MGTURRETTRAIL) {
        MY(trailspacing) = 10;
        MY(type) = "smoke";
 }
+// bubbles
 SUB(EF_MGTURRETTRAIL) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -3617,6 +3693,7 @@ SUB(EF_MGTURRETTRAIL) {
 }
 
 DEF(fire_big);
+// fire
 SUB(fire_big) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 356;
@@ -3635,6 +3712,7 @@ SUB(fire_big) {
        MY(type) = "smoke";
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
+// smoke
 SUB(fire_big) {
        MY(alpha_min) = 200;
        MY(alpha_max) = 256;
@@ -3655,7 +3733,7 @@ SUB(fire_big) {
 
 #define flare(name, colormin, colormax) \
        DEF(name##_flare); \
-       SUB(name##_flare) { \
+       SUB(name##_flare) /* smoke */ { \
                MY(alpha_min) = 200; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 160; \
@@ -3678,6 +3756,7 @@ flare(blue, "0x0000ff", "0x7194dc")
 #undef flare
 
 DEF(smoke_ring);
+// smoke
 SUB(smoke_ring) {
        MY(airfriction) = 3;
        MY(alpha_min) = 100;
@@ -3698,6 +3777,7 @@ SUB(smoke_ring) {
 }
 
 DEF(smoke_large);
+// smoke
 SUB(smoke_large) {
        MY(airfriction) = 7;
        MY(alpha_min) = 140;
@@ -3798,6 +3878,7 @@ SUB(smoking) {
        MY(velocityjitter) = '5.0 5.0 20.0';
 }
 
+// golden dust (create it once per second to cover large area in small yellow particles)
 DEF(goldendust);
 SUB(goldendust) {
        MY(alpha_min) = 256;
@@ -3880,6 +3961,7 @@ SUB(ammoregen_fx) {
        MY(velocityjitter) = '50.0 50.0 0.0';
 }
 
+// red-yellow flame like fx
 DEF(rage);
 SUB(rage) {
        MY(airfriction) = 2;
@@ -3900,6 +3982,7 @@ SUB(rage) {
        MY(velocityjitter) = '25.0 25.0 25.0';
 }
 
+// pieces of glass or ice falling on the floor
 DEF(iceorglass);
 SUB(iceorglass) {
        MY(airfriction) = 3;
@@ -3921,6 +4004,7 @@ SUB(iceorglass) {
        MY(velocityjitter) = '100.0 100.0 100.0';
 }
 
+// cover small area in poison gas, spawn it once per second
 DEF(poisonfield);
 SUB(poisonfield) {
        MY(airfriction) = 1;
@@ -3941,6 +4025,7 @@ SUB(poisonfield) {
        MY(velocityjitter) = '5.0 5.0 5.0';
 }
 
+// cover small area in icy mist, spawn it once per second
 DEF(icefield);
 SUB(icefield) {
        MY(airfriction) = 1;
@@ -3977,7 +4062,9 @@ SUB(icefield) {
        MY(type) = "smoke";
 }
 
+// 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 )
 DEF(firefield);
+// flames that go up
 SUB(firefield) {
        MY(airfriction) = 1;
        MY(alpha_min) = 50;
@@ -3997,6 +4084,7 @@ SUB(firefield) {
        MY(type) = "smoke";
        MY(velocityjitter) = '5.0 5.0 30.0';
 }
+// flames that stay on the ground
 SUB(firefield) {
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
@@ -4012,6 +4100,7 @@ SUB(firefield) {
        MY(tex_max) = 55;
        MY(type) = "smoke";
 }
+// smoke
 SUB(firefield) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4028,7 +4117,9 @@ SUB(firefield) {
        MY(type) = "alphastatic";
 }
 
+// flamethrower, spawn it as fast as you can  20 times per second or more, it needs direction
 DEF(flamethrower);
+// fast fire
 SUB(flamethrower) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -4048,6 +4139,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '40.0 40.0 11.0';
        MY(velocitymultiplier) = 30;
 }
+// slow fire
 SUB(flamethrower) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
@@ -4067,6 +4159,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '40.0 40.0 40.0';
        MY(velocitymultiplier) = 20;
 }
+// very slow and small fire
 SUB(flamethrower) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -4086,6 +4179,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '30.0 30.0 30.0';
        MY(velocitymultiplier) = 10;
 }
+// decreasing fire
 SUB(flamethrower) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
@@ -4105,6 +4199,7 @@ SUB(flamethrower) {
        MY(velocityjitter) = '10.0 10.0 10.0';
        MY(velocitymultiplier) = 15;
 }
+// smoke
 SUB(flamethrower) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
@@ -4123,7 +4218,9 @@ SUB(flamethrower) {
        MY(velocityoffset) = '0.0 0.0 10.0';
 }
 
+// port-o-launch trail
 DEF(TR_WIZSPIKE);
+// glowing vapor trail
 SUB(TR_WIZSPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4140,6 +4237,7 @@ SUB(TR_WIZSPIKE) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_WIZSPIKE) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -4161,7 +4259,9 @@ SUB(TR_WIZSPIKE) {
        MY(velocityoffset) = '0.0 0.0 15.0';
 }
 
+// TAG trail
 DEF(TR_VORESPIKE);
+// glowing vapor trail
 SUB(TR_VORESPIKE) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4178,6 +4278,7 @@ SUB(TR_VORESPIKE) {
        MY(type) = "static";
        MY(velocitymultiplier) = -0.100000;
 }
+// bright sparks
 SUB(TR_VORESPIKE) {
        MY(airfriction) = 12;
        MY(alpha_min) = 444;
@@ -4214,6 +4315,7 @@ SUB(flac_explode) {
        MY(tex_max) = 16;
        MY(type) = "decal";
 }
+// fire effect which make bright dot inside
 SUB(flac_explode) {
        MY(airfriction) = 8;
        MY(alpha_min) = 128;
@@ -4234,6 +4336,7 @@ SUB(flac_explode) {
        MY(type) = "smoke";
        MY(velocityjitter) = '156.0 156.0 156.0';
 }
+// fire effect which expands then slows
 SUB(flac_explode) {
        MY(airfriction) = 12;
        MY(alpha_min) = 128;
@@ -4254,6 +4357,7 @@ SUB(flac_explode) {
        MY(type) = "static";
        MY(velocityjitter) = '256.0 256.0 256.0';
 }
+// smoke
 SUB(flac_explode) {
        MY(airfriction) = 5;
        MY(alpha_min) = 500;
@@ -4271,6 +4375,7 @@ SUB(flac_explode) {
        MY(type) = "alphastatic";
        MY(velocityjitter) = '244.0 244.0 244.0';
 }
+// underwater bubbles
 SUB(flac_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
@@ -4290,6 +4395,7 @@ SUB(flac_explode) {
        MY(underwater) = true;
        MY(velocityjitter) = '96.0 96.0 96.0';
 }
+// bouncing sparks
 SUB(flac_explode) {
        MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
@@ -4311,23 +4417,55 @@ SUB(flac_explode) {
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
+// bullet trail (somewhat like a tracer)
 DEF(tr_bullet);
+SUB(tr_bullet) {
+       MY(alpha) = '500 600 10000';
+       MY(color_min) = "0xf03000";
+       MY(color_max) = "0xff6010";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = -3;
+       MY(size_min) = 0.6;
+       MY(size_max) = 0.8;
+       my(tex_min) = 200;
+       my(tex_max) = 200;
+       MY(type) = "beam";
+}
+SUB(tr_bullet) {
+       MY(airfriction) = -4;
+       MY(alpha) = '256 256 350';
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(notunderwater) = true;
+       MY(sizeincrease) = 0.4;
+       MY(size_min) = 1;
+       MY(size_max) = 2;
+       MY(tex_min) = 0;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 16;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '4 4 4';
+}
 SUB(tr_bullet) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 2560;
-       MY(color_min) = "0xff8960";
-       MY(color_max) = "0xff8533";
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(stretchfactor) = 0.200000;
-       MY(tex_min) = 70;
-       MY(tex_max) = 70;
-       MY(trailspacing) = 750;
-       MY(type) = "spark";
-       MY(velocitymultiplier) = 3;
+       MY(alpha_fade) = 128;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(gravity) = -0.125000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 0.5;
+       MY(size_max) = 0.6;
+       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';
 }
 
+// smoke emitter for small pipes
 DEF(smoking_smallemitter);
 SUB(smoking_smallemitter) {
        MY(airfriction) = -1;
@@ -4347,7 +4485,9 @@ SUB(smoking_smallemitter) {
        MY(velocityjitter) = '5.0 5.0 20.0';
 }
 
+// crylink trail
 DEF(TR_CRYLINKPLASMA);
+// plasma smoke
 SUB(TR_CRYLINKPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4364,6 +4504,7 @@ SUB(TR_CRYLINKPLASMA) {
        MY(velocityjitter) = '8.0 8.0 8.0';
        MY(velocitymultiplier) = -0.010000;
 }
+// crylink main trail
 SUB(TR_CRYLINKPLASMA) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4428,6 +4569,7 @@ SUB(alien_blood) {
        MY(type) = "spark";
        MY(velocityjitter) = '99.0 99.0 55.0';
 }
+// blood mist
 SUB(alien_blood) {
        MY(alpha_min) = 3000;
        MY(alpha_max) = 5560;
@@ -4465,6 +4607,7 @@ SUB(robot_blood) {
        MY(velocityjitter) = '264.0 264.0 264.0';
        MY(velocityoffset) = '0.0 0.0 100.0';
 }
+// shockwave
 SUB(robot_blood) {
        MY(alpha_max) = 90;
        MY(alpha_fade) = 1000;
@@ -4479,6 +4622,7 @@ SUB(robot_blood) {
        MY(tex_max) = 74;
        MY(type) = "smoke";
 }
+// electo sparks
 SUB(robot_blood) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4528,6 +4672,7 @@ SUB(alien_TR_BLOOD) {
        MY(velocitymultiplier) = -0.100000;
 }
 
+// splash around gib
 SUB(TR_BLOOD) {
        MY(alpha_min) = 684;
        MY(alpha_max) = 684;
@@ -4572,6 +4717,7 @@ SUB(robot_TR_BLOOD) {
        MY(velocityjitter) = '64.0 64.0 64.0';
        MY(velocitymultiplier) = -0.300000;
 }
+// fire
 SUB(robot_TR_BLOOD) {
        MY(airfriction) = 4;
        MY(alpha_min) = 128;
@@ -4592,6 +4738,7 @@ SUB(robot_TR_BLOOD) {
        MY(type) = "spark";
        MY(velocityjitter) = '44.0 44.0 44.0';
 }
+// arcs
 SUB(robot_TR_BLOOD) {
        MY(alpha_min) = 1128;
        MY(alpha_max) = 1256;
@@ -4660,6 +4807,7 @@ SUB(robot_TR_SLIGHTBLOOD) {
 }
 
 DEF(item_pickup);
+// flare particle and light
 SUB(item_pickup) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 64;
@@ -4671,6 +4819,7 @@ SUB(item_pickup) {
        MY(size_max) = 16;
        MY(type) = "static";
 }
+// cloud of particles which expand rapidly and then slow to form a ball
 SUB(item_pickup) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -4712,6 +4861,7 @@ SUB(bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
+// center blood
 SUB(bloodshower) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 656;
@@ -4755,7 +4905,7 @@ SUB(alien_bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
-
+// center blood
 SUB(bloodshower) {
        MY(alpha_min) = 156;
        MY(alpha_max) = 656;
@@ -4799,7 +4949,7 @@ SUB(robot_bloodshower) {
        MY(type) = "spark";
        MY(velocityjitter) = '764.0 764.0 764.0';
 }
-
+// arc
 SUB(robot_bloodshower) {
        MY(alpha_min) = 1128;
        MY(alpha_max) = 1256;
@@ -4819,6 +4969,7 @@ SUB(robot_bloodshower) {
        MY(type) = "smoke";
        MY(velocityjitter) = '44.0 44.0 44.0';
 }
+// shockwave
 SUB(robot_bloodshower) {
        MY(alpha_min) = 11;
        MY(alpha_max) = 125;
@@ -4836,7 +4987,7 @@ SUB(robot_bloodshower) {
 
 #define ground_quake(name, colormin, colormax) \
        DEF(name##_ground_quake); \
-       SUB(name##_ground_quake) { \
+       SUB(name##_ground_quake) /* smoke */ { \
                MY(airfriction) = 3; \
                MY(alpha_min) = 100; \
                MY(alpha_max) = 126; \
@@ -4896,7 +5047,7 @@ SUB(robot_bloodshower) {
                MY(type) = "smoke"; \
                MY(velocityjitter) = '22.0 22.0 50.0'; \
        } \
-       SUB(name##_ground_quake) { \
+       SUB(name##_ground_quake) /* smoke */ { \
                MY(alpha_min) = 200; \
                MY(alpha_max) = 256; \
                MY(alpha_fade) = 200; \
@@ -4921,921 +5072,945 @@ ground_quake(red,     "0x9E6A64", "0x91302D")
 ground_quake(blue,     "0x64679E", "0x2D4C91")
 #undef ground_quake
 
-DEF(morphed_damage_hit);
-SUB(morphed_damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 292;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -24;
-       MY(size_min) = 14;
-       MY(size_max) = 24;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
-       MY(type) = "spark";
-       MY(velocityjitter) = '356.0 356.0 456.0';
-}
-SUB(morphed_damage_hit) {
-       MY(airfriction) = 5;
+#include "effectinfo_gentle_morphed.inc"
+
+// Team / hit vaporizer effects
+#define TE_TEI_G3(name, colormin1, colormax1, colormin2, colormax2) \
+       DEF(TE_TEI_G3##name); \
+       SUB(TE_TEI_G3##name) { \
+               MY(alpha_min) = 128; \
+               MY(alpha_max) = 128; \
+               MY(alpha_fade) = 256; \
+               MY(color_min) = colormin1; \
+               MY(color_max) = colormax1; \
+               MY(countabsolute) = 1; \
+               MY(size_min) = 4; \
+               MY(size_max) = 4; \
+               MY(tex_min) = 200; \
+               MY(tex_max) = 200; \
+               MY(type) = "beam"; \
+       } \
+       SUB(TE_TEI_G3##name) { \
+               MY(airfriction) = -4; \
+               MY(alpha_min) = 256; \
+               MY(alpha_max) = 256; \
+               MY(alpha_fade) = 512; \
+               MY(color_min) = colormin2; \
+               MY(color_max) = colormax2; \
+               MY(sizeincrease) = 3; \
+               MY(size_min) = 0.300000; \
+               MY(size_max) = 0.300000; \
+               MY(tex_min) = 46; \
+               MY(tex_max) = 46; \
+               MY(trailspacing) = 8; \
+               MY(type) = "smoke"; \
+               MY(velocityjitter) = '3.0 3.0 3.0'; \
+       } \
+       DEF(TE_TEI_G3##name##_HIT); \
+       SUB(TE_TEI_G3##name##_HIT) { \
+               MY(alpha_min) = 128; \
+               MY(alpha_max) = 128; \
+               MY(alpha_fade) = 256; \
+               MY(color_min) = colormin1; \
+               MY(color_max) = colormax1; \
+               MY(countabsolute) = 1; \
+               MY(size_min) = 8; \
+               MY(size_max) = 8; \
+               MY(tex_min) = 200; \
+               MY(tex_max) = 200; \
+               MY(type) = "beam"; \
+       } \
+       SUB(TE_TEI_G3##name##_HIT) /* rings */ { \
+               MY(airfriction) = -4; \
+               MY(alpha_min) = 256; \
+               MY(alpha_max) = 256; \
+               MY(alpha_fade) = 512; \
+               MY(color_min) = "0xFFFFFF"; \
+               MY(color_max) = colormax1; \
+               MY(sizeincrease) = -2; \
+               MY(size_min) = 2; \
+               MY(size_max) = 2; \
+               MY(trailspacing) = 20; \
+               MY(type) = "smoke"; \
+               MY(velocityjitter) = '2.0 2.0 2.0'; \
+       } \
+       SUB(TE_TEI_G3##name##_HIT) { \
+               MY(airfriction) = -4; \
+               MY(alpha_min) = 256; \
+               MY(alpha_max) = 256; \
+               MY(alpha_fade) = 512; \
+               MY(color_min) = colormin1; \
+               MY(color_max) = colormax1; \
+               MY(sizeincrease) = -6; \
+               MY(size_min) = 10; \
+               MY(size_max) = 10; \
+               MY(trailspacing) = 40; \
+               MY(type) = "smoke"; \
+       } \
+       /**/
+TE_TEI_G3(RED, "0xFF0000", "0xFF0011", "0x200000", "0x400000")
+TE_TEI_G3(BLUE, "0x0000FF", "0x1100FF", "0x000020", "0x000040")
+TE_TEI_G3(YELLOW, "0xffff00", "0xffff11", "0x202000", "0x404000")
+TE_TEI_G3(PINK, "0xFF00FF", "0xFF11FF", "0x200020", "0x400040")
+#undef TE_TEI_G3
+
+// Vaporizer hit effect
+DEF(TE_TEI_G3_HIT);
+SUB(TE_TEI_G3_HIT) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
-       MY(alpha_fade) = 292;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 0.500000;
-       MY(liquidfriction) = 10;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(sizeincrease) = -24;
-       MY(size_min) = 24;
-       MY(size_max) = 24;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
+       MY(alpha_fade) = 256;
+       MY(color_min) = "0xFFFFFF";
+       MY(color_max) = "0xFFFFFF";
+       MY(countabsolute) = 1;
+       MY(size_min) = 8;
+       MY(size_max) = 8;
+       MY(tex_min) = 200;
+       MY(tex_max) = 200;
+       MY(type) = "beam";
 }
-
-DEF(morphed_damage_dissolve);
-SUB(morphed_damage_dissolve) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 456;
-       MY(alpha_max) = 456;
-       MY(alpha_fade) = 1828;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 10;
-       MY(gravity) = -1.900000;
-       MY(liquidfriction) = 6;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -399;
-       MY(spin_max) = -99;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 40;
-       MY(size_max) = 40;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
+SUB(TE_TEI_G3_HIT) /* rings */ {
+       MY(airfriction) = -4;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0xFFFFFF";
+       MY(color_max) = "0xFFFFFF";
+       MY(sizeincrease) = -2;
+       MY(size_min) = 2;
+       MY(size_max) = 2;
+       MY(trailspacing) = 20;
        MY(type) = "smoke";
-       MY(velocityjitter) = '256.0 256.0 512.0';
+       MY(velocityjitter) = '2.0 2.0 2.0';
 }
-SUB(morphed_damage_dissolve) {
-       MY(airfriction) = 9;
+SUB(TE_TEI_G3_HIT) {
+       MY(airfriction) = -4;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 628;
-       MY(color_min) = "0x7bdbff";
-       MY(color_max) = "0xbed2ff";
-       MY(count) = 2.500000;
-       MY(gravity) = -0.800000;
-       MY(liquidfriction) = 6;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 40;
-       MY(size_max) = 40;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0xFFFFFF";
+       MY(color_max) = "0xFFFFFF";
+       MY(sizeincrease) = -6;
+       MY(size_min) = 10;
+       MY(size_max) = 10;
+       MY(trailspacing) = 40;
        MY(type) = "smoke";
-       MY(velocityjitter) = '256.0 256.0 512.0';
 }
-SUB(morphed_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 156;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 5;
-       MY(liquidfriction) = 6;
-       MY(originjitter) = '22.0 22.0 76.0';
-       MY(sizeincrease) = -16;
-       MY(size_min) = 44;
-       MY(size_max) = 44;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
+
+#include "effectinfo_gentle_particlegibs.inc"
+
+#include "effectinfo_onslaught.inc"
+
+DEF(firemine);
+SUB(firemine) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 250;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 5;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 2;
        MY(type) = "smoke";
+       MY(velocityjitter) = '10.0 10.0 2.0';
 }
-SUB(morphed_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 128;
+// slowfire
+SUB(firemine) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 200;
        MY(bounce) = 1.500000;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 15;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 6;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 999;
-       MY(spin_max) = -999;
-       MY(sizeincrease) = -16;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 46;
-       MY(tex_max) = 46;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 5;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 2;
        MY(type) = "smoke";
-       MY(velocityjitter) = '400.0 400.0 0.0';
-}
-
-DEF(TE_TEI_G3RED);
-SUB(TE_TEI_G3RED) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xFF0000";
-       MY(color_max) = "0xFF0000";
-       MY(countabsolute) = 1;
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+       MY(velocityjitter) = '10.0 10.0 10.0';
 }
-SUB(TE_TEI_G3RED) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// very slow and small fire
+SUB(firemine) {
+       MY(airfriction) = 0.300000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x200000";
-       MY(color_max) = "0x400000";
-       MY(sizeincrease) = 3;
-       MY(size_min) = 0.300000;
-       MY(size_max) = 0.300000;
-       MY(tex_min) = 46;
-       MY(tex_max) = 46;
-       MY(trailspacing) = 8;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 2;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 4;
        MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
-}
-
-DEF(TE_TEI_G3RED_HIT);
-SUB(TE_TEI_G3RED_HIT) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xFF0000";
-       MY(color_max) = "0xFF0000";
-       MY(countabsolute) = 1;
-       MY(size_min) = 8;
-       MY(size_max) = 8;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+       MY(velocityjitter) = '8.0 8.0 8.0';
 }
-SUB(TE_TEI_G3RED_HIT) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// decreasing fire
+SUB(firemine) {
+       MY(airfriction) = 0.300000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFF0011";
-       MY(sizeincrease) = -2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(trailspacing) = 20;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = -3;
+       MY(size_min) = 5;
+       MY(size_max) = 7;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 4;
        MY(type) = "smoke";
-       MY(velocityjitter) = '2.0 2.0 2.0';
+       MY(velocityjitter) = '3.0 3.0 3.0';
 }
-SUB(TE_TEI_G3RED_HIT) {
-       MY(airfriction) = -4;
+// smoke
+SUB(firemine) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFF0000";
-       MY(color_max) = "0xFF0011";
-       MY(sizeincrease) = -6;
-       MY(size_min) = 10;
-       MY(size_max) = 10;
-       MY(trailspacing) = 40;
-       MY(type) = "smoke";
-}
-
-DEF(TE_TEI_G3BLUE);
-SUB(TE_TEI_G3BLUE) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x0000FF";
-       MY(color_max) = "0x1100FF";
-       MY(countabsolute) = 1;
-       MY(size_min) = 4;
+       MY(alpha_fade) = 90;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 0.500000;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = 1;
+       MY(size_min) = 1;
        MY(size_max) = 4;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+       MY(tex_max) = 8;
+       MY(trailspacing) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityoffset) = '0.0 0.0 3.0';
 }
-SUB(TE_TEI_G3BLUE) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// fastfire
+SUB(firemine) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x000020";
-       MY(color_max) = "0x000040";
-       MY(sizeincrease) = 3;
-       MY(size_min) = 0.300000;
-       MY(size_max) = 0.300000;
-       MY(tex_min) = 46;
-       MY(tex_max) = 46;
-       MY(trailspacing) = 8;
+       MY(alpha_fade) = 1600;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(size_min) = 12;
+       MY(size_max) = 12;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 1;
        MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
 }
-
-DEF(TE_TEI_G3BLUE_HIT);
-SUB(TE_TEI_G3BLUE_HIT) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x0000FF";
-       MY(color_max) = "0x1100FF";
-       MY(countabsolute) = 1;
-       MY(size_min) = 8;
-       MY(size_max) = 8;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+// light only
+SUB(firemine) {
+       MY(lightcolor) = '2.7 2.7 0.6';
+       MY(lightradiusfade) = 50000;
+       MY(lightradius) = 50;
+       MY(trailspacing) = 16;
 }
-SUB(TE_TEI_G3BLUE_HIT) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+
+DEF(fireball);
+SUB(fireball) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0x100FF";
-       MY(sizeincrease) = -2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(trailspacing) = 20;
+       MY(alpha_fade) = 250;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 20;
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 2;
        MY(type) = "smoke";
-       MY(velocityjitter) = '2.0 2.0 2.0';
+       MY(velocityjitter) = '40.0 40.0 11.0';
 }
-SUB(TE_TEI_G3BLUE_HIT) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// slow fire
+SUB(fireball) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x0000FF";
-       MY(color_max) = "0x1100FF";
-       MY(sizeincrease) = -6;
-       MY(size_min) = 10;
-       MY(size_max) = 10;
-       MY(trailspacing) = 40;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 20;
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 2;
        MY(type) = "smoke";
+       MY(velocityjitter) = '40.0 40.0 40.0';
 }
-
-DEF(TE_TEI_G3YELLOW);
-SUB(TE_TEI_G3YELLOW) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xffff00";
-       MY(color_max) = "0xffff11";
-       MY(countabsolute) = 1;
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
-}
-SUB(TE_TEI_G3YELLOW) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// very slow and small fire
+SUB(fireball) {
+       MY(airfriction) = 0.300000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x202000";
-       MY(color_max) = "0x404000";
-       MY(sizeincrease) = 3;
-       MY(size_min) = 0.300000;
-       MY(size_max) = 0.300000;
-       MY(tex_min) = 46;
-       MY(tex_max) = 46;
-       MY(trailspacing) = 8;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = 10;
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 4;
        MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
-}
-
-DEF(TE_TEI_G3YELLOW_HIT);
-SUB(TE_TEI_G3YELLOW_HIT) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xffff00";
-       MY(color_max) = "0xffff11";
-       MY(countabsolute) = 1;
-       MY(size_min) = 8;
-       MY(size_max) = 8;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+       MY(velocityjitter) = '30.0 30.0 30.0';
 }
-SUB(TE_TEI_G3YELLOW_HIT) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
+// decreasing fire
+SUB(fireball) {
+       MY(airfriction) = 0.300000;
+       MY(alpha_min) = 50;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xffff10";
-       MY(sizeincrease) = -2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(trailspacing) = 20;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(gravity) = -0.060000;
+       MY(sizeincrease) = -10;
+       MY(size_min) = 20;
+       MY(size_max) = 30;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 4;
        MY(type) = "smoke";
-       MY(velocityjitter) = '2.0 2.0 2.0';
+       MY(velocityjitter) = '10.0 10.0 10.0';
 }
-SUB(TE_TEI_G3YELLOW_HIT) {
-       MY(airfriction) = -4;
+// smoke
+SUB(fireball) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xffff00";
-       MY(color_max) = "0xffff11";
-       MY(sizeincrease) = -6;
-       MY(size_min) = 10;
-       MY(size_max) = 10;
-       MY(trailspacing) = 40;
+       MY(alpha_fade) = 90;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 0.500000;
+       MY(originjitter) = '10.0 10.0 10.0';
+       MY(sizeincrease) = 7;
+       MY(size_min) = 5;
+       MY(size_max) = 15;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityoffset) = '0.0 0.0 10.0';
+}
+// fast fire
+SUB(fireball) {
+       MY(airfriction) = 1.200000;
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 1600;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 0.500000;
+       MY(size_min) = 48;
+       MY(size_max) = 48;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 1;
        MY(type) = "smoke";
 }
+// light only
+SUB(fireball) {
+       MY(lightcolor) = '2.7 2.7 0.6';
+       MY(lightradiusfade) = 3000;
+       MY(lightradius) = 300;
+       MY(trailspacing) = 16;
+}
 
-DEF(TE_TEI_G3PINK);
-SUB(TE_TEI_G3PINK) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFF11FF";
-       MY(countabsolute) = 1;
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+DEF(fireball_laser);
+SUB(fireball_laser) {
+       MY(alpha_min) = 192;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 2560;
+       MY(color_min) = "0x800000";
+       MY(color_max) = "0xFF8020";
+       MY(count) = 10;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(stretchfactor) = 0.700000;
+       MY(type) = "spark";
+       MY(velocityjitter) = '1.0 1.0 1.0';
+       MY(velocitymultiplier) = 10;
 }
-SUB(TE_TEI_G3PINK) {
-       MY(airfriction) = -4;
+
+// rocket explosion (bigger than mortar and hagar)
+DEF(fireball_explode);
+// decal
+SUB(fireball_explode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x200020";
-       MY(color_max) = "0x400040";
-       MY(sizeincrease) = 3;
-       MY(size_min) = 0.300000;
-       MY(size_max) = 0.300000;
-       MY(tex_min) = 46;
-       MY(tex_max) = 46;
-       MY(trailspacing) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '4.0 2.0 0.5';
+       MY(lightradiusfade) = 500;
+       MY(lightradius) = 500;
+       MY(originjitter) = '56.0 56.0 56.0';
+       MY(size_min) = 72;
+       MY(size_max) = 72;
+       MY(tex_min) = 8;
+       MY(tex_max) = 16;
+       MY(type) = "decal";
 }
-
-DEF(TE_TEI_G3PINK_HIT);
-SUB(TE_TEI_G3PINK_HIT) {
+// flare effect
+SUB(fireball_explode) {
+       MY(alpha_min) = 192;
+       MY(alpha_max) = 192;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x404040";
+       MY(countabsolute) = 1;
+       MY(size_min) = 72;
+       MY(size_max) = 72;
+       MY(tex_min) = 35;
+       MY(tex_max) = 37;
+       MY(type) = "static";
+}
+// fire effect
+SUB(fireball_explode) {
+       MY(airfriction) = 4;
        MY(alpha_min) = 128;
        MY(alpha_max) = 128;
        MY(alpha_fade) = 256;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFF11FF";
-       MY(countabsolute) = 1;
-       MY(size_min) = 8;
-       MY(size_max) = 8;
-       MY(tex_min) = 200;
-       MY(tex_max) = 200;
-       MY(type) = "beam";
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x902010";
+       MY(color_max) = "0xFFD080";
+       MY(count) = 128;
+       MY(liquidfriction) = 4;
+       MY(notunderwater) = true;
+       MY(originjitter) = '8.0 8.0 8.0';
+       MY(size_min) = 16;
+       MY(size_max) = 16;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "static";
+       MY(velocityjitter) = '512.0 512.0 512.0';
 }
-SUB(TE_TEI_G3PINK_HIT) {
-       MY(airfriction) = -4;
+// underwater bubbles
+SUB(fireball_explode) {
+       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) = 3;
+       MY(tex_min) = 62;
+       MY(tex_max) = 62;
+       MY(type) = "bubble";
+       MY(underwater) = true;
+       MY(velocityjitter) = '144.0 144.0 144.0';
+}
+// bouncing sparks
+SUB(fireball_explode) {
+       MY(airfriction) = 0.200000;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFF10FF";
-       MY(sizeincrease) = -2;
+       MY(alpha_fade) = 384;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x903010";
+       MY(color_max) = "0xFFD030";
+       MY(count) = 64;
+       MY(gravity) = 1;
+       MY(liquidfriction) = 0.800000;
+       MY(notunderwater) = true;
        MY(size_min) = 2;
        MY(size_max) = 2;
-       MY(trailspacing) = 20;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '2.0 2.0 2.0';
+       MY(type) = "spark";
+       MY(velocityjitter) = '384.0 384.0 384.0';
+       MY(velocityoffset) = '0.0 0.0 80.0';
 }
-SUB(TE_TEI_G3PINK_HIT) {
-       MY(airfriction) = -4;
+
+DEF(fireball_muzzleflash);
+SUB(fireball_muzzleflash) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 512;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFF11FF";
-       MY(sizeincrease) = -6;
-       MY(size_min) = 10;
-       MY(size_max) = 10;
-       MY(trailspacing) = 40;
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(count) = 2;
+       MY(lightcolor) = '2.0 1.5 0.2';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_max) = 8;
        MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
 }
-
-DEF(particlegibs_damage_hit);
-SUB(particlegibs_damage_hit) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 428;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.500000;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 6;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_max) = 8;
-       MY(type) = "blood";
-       MY(velocityjitter) = '156.0 156.0 212.0';
-}
-SUB(particlegibs_damage_hit) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.100000;
-       MY(gravity) = 0.500000;
-       MY(liquidfriction) = 3;
-       MY(sizeincrease) = -15;
-       MY(size_min) = 10;
-       MY(size_max) = 20;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '6.0 6.0 30.0';
-       MY(velocitymultiplier) = -1;
-}
-SUB(particlegibs_damage_hit) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.100000;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 3;
-       MY(originjitter) = '3.0 3.0 3.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 5;
-       MY(size_max) = 15;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '26.0 26.0 112.0';
-       MY(velocitymultiplier) = 2;
+SUB(fireball_muzzleflash) {
+       MY(airfriction) = 12;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0xFFFDD9";
+       MY(color_max) = "0xFFFDD9";
+       MY(count) = 15;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '300.0 300.0 300.0';
+       MY(velocitymultiplier) = 0.500000;
 }
 
-DEF(particlegibs_damage_dissolve);
-SUB(particlegibs_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(color_min) = "0x00ffff";
-       MY(color_max) = "0x82ffff";
-       MY(count) = 32;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 6;
-       MY(originjitter) = '10.0 10.0 25.0';
-       MY(size_min) = 15;
-       MY(size_max) = 20;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_max) = 8;
-       MY(type) = "blood";
-       MY(velocityjitter) = '256.0 256.0 312.0';
-}
-SUB(particlegibs_damage_dissolve) {
-       MY(airfriction) = 2;
+DEF(fireball_preattack_muzzleflash);
+SUB(fireball_preattack_muzzleflash) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 528;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 12;
-       MY(gravity) = 2;
-       MY(liquidfriction) = 6;
-       MY(originjitter) = '10.0 10.0 25.0';
-       MY(size_min) = 20;
-       MY(size_max) = 40;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(count) = 2;
+       MY(lightcolor) = '2.0 1.5 0.2';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(size_min) = 5;
+       MY(size_max) = 5;
        MY(tex_max) = 8;
-       MY(type) = "blood";
-       MY(velocityjitter) = '356.0 356.0 412.0';
+       MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
 }
-SUB(particlegibs_damage_dissolve) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 32;
-       MY(gravity) = 0.500000;
-       MY(liquidfriction) = 3;
-       MY(originjitter) = '5.0 5.0 10.0';
-       MY(sizeincrease) = -15;
-       MY(size_min) = 10;
-       MY(size_max) = 20;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '56.0 56.0 212.0';
-       MY(velocitymultiplier) = -0.300000;
+SUB(fireball_preattack_muzzleflash) {
+       MY(airfriction) = 12;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0xFFFDD9";
+       MY(color_max) = "0xFFFDD9";
+       MY(count) = 15;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '300.0 300.0 300.0';
+       MY(velocitymultiplier) = 0.500000;
 }
-SUB(particlegibs_damage_dissolve) {
-       MY(airfriction) = 1;
+
+DEF(fireball_bfgdamage);
+SUB(fireball_bfgdamage) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 32;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 3;
-       MY(originjitter) = '5.0 5.0 10.0';
-       MY(sizeincrease) = 10;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(count) = 2;
+       MY(lightcolor) = '2.0 1.5 0.2';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
        MY(size_min) = 5;
-       MY(size_max) = 15;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '56.0 56.0 212.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(size_max) = 5;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
 }
-SUB(particlegibs_damage_dissolve) {
-       MY(airfriction) = 1.500000;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 328;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 75;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 3;
-       MY(originjitter) = '10.0 10.0 25.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '656.0 656.0 912.0';
+SUB(fireball_bfgdamage) {
+       MY(airfriction) = 12;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0xFFFDD9";
+       MY(color_max) = "0xFFFDD9";
+       MY(count) = 15;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '300.0 300.0 300.0';
+       MY(velocitymultiplier) = 0.500000;
 }
 
-DEF(onslaught_generator_gib_explode);
-SUB(onslaught_generator_gib_explode) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 356;
-       MY(bounce) = 1.500000;
+DEF(EF_FLAME);
+// fire
+SUB(EF_FLAME) {
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 356;
+       MY(alpha_fade) = 512;
+       MY(bounce) = 2;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 17;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '8.0 8.0 8.0';
-       MY(sizeincrease) = 45;
-       MY(size_min) = 20;
-       MY(size_max) = 26;
+       MY(count) = 100;
+       MY(gravity) = -0.500000;
+       MY(originjitter) = '12.0 12.0 34.0';
+       MY(originoffset) = '0.0 0.0 10.0';
+       MY(sizeincrease) = -1;
+       MY(size_min) = 5;
+       MY(size_max) = 21;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '286.0 286.0 286.0';
+       MY(type) = "smoke";
+       MY(velocityjitter) = '22.0 22.0 50.0';
 }
-SUB(onslaught_generator_gib_explode) {
-       MY(airfriction) = 5;
+// smoke
+SUB(EF_FLAME) {
        MY(alpha_min) = 200;
-       MY(alpha_max) = 500;
-       MY(alpha_fade) = 600;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 200;
        MY(bounce) = 2;
        MY(color_min) = "0x000000";
        MY(color_max) = "0x111111";
-       MY(count) = 6;
+       MY(count) = 50;
        MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 90;
-       MY(size_min) = 1;
-       MY(size_max) = 10;
+       MY(originjitter) = '12.0 12.0 34.0';
+       MY(originoffset) = '0.0 0.0 10.0';
+       MY(sizeincrease) = 6;
+       MY(size_min) = 11;
+       MY(size_max) = 15;
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
-       MY(velocityjitter) = '244.0 244.0 244.0';
+       MY(velocityjitter) = '11.0 11.0 50.0';
 }
-SUB(onslaught_generator_gib_explode) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
+SUB(EF_FLAME) {
+       MY(count) = 0.500000;
+       MY(lightcolor) = '0.9 0.9 0.2';
+       MY(lightradiusfade) = 10000;
+       MY(lightradius) = 200;
+}
+
+// rifle bullet trail (somewhat like a tracer)
+DEF(tr_rifle);
+SUB(tr_rifle) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 2560;
+       MY(color_min) = "0x800000";
+       MY(color_max) = "0xFF8020";
+       MY(size_min) = 1.500000;
+       MY(size_max) = 1.500000;
+       MY(stretchfactor) = 1;
+       MY(trailspacing) = 128;
+       MY(type) = "spark";
+       MY(velocitymultiplier) = 0.700000;
+}
+SUB(tr_rifle) {
+       MY(airfriction) = -4;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 256;
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(notunderwater) = true;
+       MY(sizeincrease) = 0.400000;
+       MY(size_min) = 4;
+       MY(size_max) = 4;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '4.0 4.0 4.0';
+}
+SUB(tr_rifle) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 128;
        MY(bounce) = 1.500000;
        MY(color_min) = "0x404040";
        MY(color_max) = "0x808080";
-       MY(count) = 16;
        MY(gravity) = -0.125000;
-       MY(liquidfriction) = 0.250000;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 2;
        MY(tex_min) = 62;
        MY(tex_max) = 62;
+       MY(trailspacing) = 32;
        MY(type) = "bubble";
        MY(underwater) = true;
-       MY(velocityjitter) = '96.0 96.0 96.0';
+       MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
-DEF(onslaught_generator_gib_flame);
-SUB(onslaught_generator_gib_flame) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 356;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 15;
-       MY(gravity) = -0.500000;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '3.0 3.0 3.0';
-       MY(sizeincrease) = 25;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '86.0 86.0 86.0';
-}
-SUB(onslaught_generator_gib_flame) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 500;
-       MY(alpha_fade) = 600;
-       MY(bounce) = 2;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 1;
-       MY(gravity) = -0.800000;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 30;
-       MY(size_min) = 10;
-       MY(size_max) = 20;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '44.0 44.0 44.0';
-}
-SUB(onslaught_generator_gib_flame) {
+// rocket guiding start
+DEF(rocket_guide);
+// underwater bubbles
+SUB(rocket_guide) {
        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) = 16;
+       MY(count) = 2;
        MY(gravity) = -0.125000;
        MY(liquidfriction) = 0.250000;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
+       MY(originjitter) = '8.0 8.0 8.0';
+       MY(size_min) = 1.500000;
+       MY(size_max) = 1.500000;
        MY(tex_min) = 62;
        MY(tex_max) = 62;
        MY(type) = "bubble";
        MY(underwater) = true;
-       MY(velocityjitter) = '96.0 96.0 96.0';
+       MY(velocityjitter) = '48.0 48.0 48.0';
+       MY(velocitymultiplier) = -0.100000;
+}
+// bouncing sparks
+SUB(rocket_guide) {
+       MY(airfriction) = 0.200000;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 984;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x903010";
+       MY(color_max) = "0xFFD030";
+       MY(count) = 8;
+       MY(gravity) = 1;
+       MY(liquidfriction) = 0.800000;
+       MY(notunderwater) = true;
+       MY(size_min) = 0.300000;
+       MY(size_max) = 0.700000;
+       MY(stretchfactor) = 0.400000;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '156.0 156.0 156.0';
+       MY(velocitymultiplier) = -0.300000;
+       MY(velocityoffset) = '0.0 0.0 80.0';
+}
+SUB(rocket_guide) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 100;
+       MY(alpha_fade) = 500;
+       MY(color_min) = "0x903010";
+       MY(color_max) = "0xFFD030";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 300;
+       MY(size_min) = 10;
+       MY(size_max) = 10;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "smoke";
 }
 
-DEF(firemine);
-SUB(firemine) {
+// gauntlet laser
+DEF(laser_gauntlet);
+SUB(laser_gauntlet) {
+       MY(airfriction) = 10;
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0xb44215";
+       MY(color_max) = "0x880000";
+       MY(count) = 3;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = 4000;
+       MY(spin_max) = -4000;
+       MY(sizeincrease) = -100;
+       MY(size_min) = 7;
+       MY(size_max) = 10;
+       MY(stretchfactor) = 2.300000;
+       MY(tex_min) = 43;
+       MY(tex_max) = 43;
+       MY(type) = "spark";
+       MY(velocityjitter) = '150.0 150.0 150.0';
+       MY(velocitymultiplier) = 0.200000;
+}
+SUB(laser_gauntlet) {
+       MY(airfriction) = 12;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0xff4200";
+       MY(color_max) = "0xff0000";
+       MY(count) = 6;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -100;
+       MY(size_min) = 7;
+       MY(size_max) = 9;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 8;
+       MY(tex_max) = 15;
+       MY(type) = "spark";
+       MY(velocityjitter) = '100.0 100.0 100.0';
+       MY(velocitymultiplier) = 0.200000;
+}
+
+DEF(laser_gauntletmuzzleflash);
+// glow and light
+SUB(laser_gauntletmuzzleflash) {
+       MY(airfriction) = 10;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0x220000";
+       MY(color_max) = "0x880000";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '3.0 0.1 0.1';
+       MY(lightradiusfade) = 500;
+       MY(lightradius) = 150;
+       MY(sizeincrease) = -100;
+       MY(size_min) = 10;
+       MY(size_max) = 15;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "smoke";
+}
+// electricity
+SUB(laser_gauntletmuzzleflash) {
+       MY(airfriction) = 10;
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0xb44215";
+       MY(color_max) = "0x880000";
+       MY(count) = 3;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = 4000;
+       MY(spin_max) = -4000;
+       MY(sizeincrease) = -100;
+       MY(size_min) = 7;
+       MY(size_max) = 10;
+       MY(stretchfactor) = 2.300000;
+       MY(tex_min) = 43;
+       MY(tex_max) = 43;
+       MY(type) = "spark";
+       MY(velocityjitter) = '150.0 150.0 150.0';
+       MY(velocitymultiplier) = 0.200000;
+}
+// fire
+SUB(laser_gauntletmuzzleflash) {
+       MY(airfriction) = 12;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 6280;
+       MY(color_min) = "0xff4200";
+       MY(color_max) = "0xff0000";
+       MY(count) = 6;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -100;
+       MY(size_min) = 7;
+       MY(size_max) = 9;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 8;
+       MY(tex_max) = 15;
+       MY(type) = "spark";
+       MY(velocityjitter) = '100.0 100.0 100.0';
+       MY(velocitymultiplier) = 0.200000;
+}
+
+// torch flame, spawn it as fast as you can  20 times per second or more, supports direction but not required
+DEF(torchflame);
+// fast fire
+SUB(torchflame) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 250;
-       MY(bounce) = 1.500000;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
+       MY(count) = 3;
        MY(gravity) = -0.060000;
-       MY(sizeincrease) = 5;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
+       MY(sizeincrease) = 20;
+       MY(size_min) = 5;
+       MY(size_max) = 5;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(trailspacing) = 2;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '10.0 10.0 2.0';
-}
-SUB(firemine) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 5;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 2;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '10.0 10.0 10.0';
-}
-SUB(firemine) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 2;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 4;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '8.0 8.0 8.0';
-}
-SUB(firemine) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = -3;
-       MY(size_min) = 5;
-       MY(size_max) = 7;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 4;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
-}
-SUB(firemine) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 90;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 0.500000;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = 1;
-       MY(size_min) = 1;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityoffset) = '0.0 0.0 3.0';
-}
-SUB(firemine) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(size_min) = 12;
-       MY(size_max) = 12;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 1;
-       MY(type) = "smoke";
-}
-SUB(firemine) {
-       MY(lightcolor) = '2.7 2.7 0.6';
-       MY(lightradiusfade) = 50000;
-       MY(lightradius) = 50;
-       MY(trailspacing) = 16;
-}
-
-DEF(fireball);
-SUB(fireball) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 250;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 2;
        MY(type) = "smoke";
        MY(velocityjitter) = '40.0 40.0 11.0';
+       MY(velocitymultiplier) = 30;
 }
-SUB(fireball) {
+// slow fire
+SUB(torchflame) {
        MY(airfriction) = 1.200000;
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
+       MY(count) = 2.500000;
        MY(gravity) = -0.060000;
        MY(sizeincrease) = 20;
        MY(size_min) = 5;
        MY(size_max) = 5;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(trailspacing) = 2;
        MY(type) = "smoke";
        MY(velocityjitter) = '40.0 40.0 40.0';
+       MY(velocitymultiplier) = 20;
 }
-SUB(fireball) {
+// very slow and small fire
+SUB(torchflame) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
+       MY(count) = 1.500000;
        MY(gravity) = -0.060000;
        MY(sizeincrease) = 10;
        MY(size_min) = 5;
        MY(size_max) = 5;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(trailspacing) = 4;
        MY(type) = "smoke";
        MY(velocityjitter) = '30.0 30.0 30.0';
+       MY(velocitymultiplier) = 10;
 }
-SUB(fireball) {
+// decreasing fire
+SUB(torchflame) {
        MY(airfriction) = 0.300000;
        MY(alpha_min) = 50;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 200;
-       MY(bounce) = 1.500000;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
+       MY(count) = 2;
        MY(gravity) = -0.060000;
        MY(sizeincrease) = -10;
        MY(size_min) = 20;
        MY(size_max) = 30;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(trailspacing) = 4;
        MY(type) = "smoke";
        MY(velocityjitter) = '10.0 10.0 10.0';
+       MY(velocitymultiplier) = 15;
 }
-SUB(fireball) {
+// smoke
+SUB(torchflame) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -5848,234 +6023,222 @@ SUB(fireball) {
        MY(size_min) = 5;
        MY(size_max) = 15;
        MY(tex_max) = 8;
-       MY(trailspacing) = 8;
        MY(type) = "alphastatic";
+       MY(velocitymultiplier) = 20;
        MY(velocityoffset) = '0.0 0.0 10.0';
 }
-SUB(fireball) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 0.500000;
-       MY(size_min) = 48;
-       MY(size_max) = 48;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 1;
-       MY(type) = "smoke";
-}
-SUB(fireball) {
-       MY(lightcolor) = '2.7 2.7 0.6';
-       MY(lightradiusfade) = 3000;
-       MY(lightradius) = 300;
-       MY(trailspacing) = 16;
-}
 
-DEF(fireball_laser);
-SUB(fireball_laser) {
-       MY(alpha_min) = 192;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 2560;
-       MY(color_min) = "0x800000";
-       MY(color_max) = "0xFF8020";
-       MY(count) = 10;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.700000;
-       MY(type) = "spark";
-       MY(velocityjitter) = '1.0 1.0 1.0';
-       MY(velocitymultiplier) = 10;
-}
+#include "effectinfo_gentle_happy.inc"
 
-DEF(fireball_explode);
-SUB(fireball_explode) {
+DEF(electro_lightning);
+SUB(electro_lightning) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(countabsolute) = 1;
-       MY(lightcolor) = '4.0 2.0 0.5';
+       MY(lightcolor) = '3.1 4.4 10.0';
        MY(lightradiusfade) = 500;
-       MY(lightradius) = 500;
-       MY(originjitter) = '56.0 56.0 56.0';
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 8;
-       MY(tex_max) = 16;
-       MY(type) = "decal";
-}
-SUB(fireball_explode) {
-       MY(alpha_min) = 192;
-       MY(alpha_max) = 192;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0x404040";
-       MY(color_max) = "0x404040";
-       MY(countabsolute) = 1;
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 35;
-       MY(tex_max) = 37;
-       MY(type) = "static";
-}
-SUB(fireball_explode) {
-       MY(airfriction) = 4;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x902010";
-       MY(color_max) = "0xFFD080";
-       MY(count) = 128;
-       MY(liquidfriction) = 4;
-       MY(notunderwater) = true;
-       MY(originjitter) = '8.0 8.0 8.0';
+       MY(lightradius) = 50;
+       MY(originjitter) = '2.0 2.0 2.0';
        MY(size_min) = 16;
        MY(size_max) = 16;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(fireball_explode) {
-       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) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '144.0 144.0 144.0';
+       MY(tex_min) = 59;
+       MY(tex_max) = 59;
+       MY(type) = "decal";
 }
-SUB(fireball_explode) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 384;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x903010";
-       MY(color_max) = "0xFFD030";
-       MY(count) = 64;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
+SUB(electro_lightning) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 206;
+       MY(alpha_fade) = 1724;
+       MY(color_min) = "0x2030FF";
+       MY(color_max) = "0x80C0FF";
+       MY(count) = 300;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 6;
+       MY(size_max) = 6;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "spark";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 2000;
+}
+SUB(electro_lightning) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 170;
+       MY(alpha_fade) = 1500;
+       MY(color_min) = "0xDDFDFF";
+       MY(color_max) = "0xFDFDFF";
+       MY(count) = 30;
+       MY(originjitter) = '1.0 1.0 1.0';
        MY(size_min) = 2;
-       MY(size_max) = 2;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 1.500000;
+       MY(tex_min) = 8;
+       MY(tex_max) = 15;
        MY(type) = "spark";
-       MY(velocityjitter) = '384.0 384.0 384.0';
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(velocityjitter) = '150.0 150.0 150.0';
+       MY(velocitymultiplier) = 0.500000;
+}
+SUB(electro_lightning) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 170;
+       MY(alpha_fade) = 1500;
+       MY(color_min) = "0xFDFDFF";
+       MY(color_max) = "0xF9FDFF";
+       MY(count) = 50;
+       MY(gravity) = 1.300000;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 2;
+       MY(size_max) = 3;
+       MY(stretchfactor) = 0.100000;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
+       MY(type) = "spark";
+       MY(velocityjitter) = '350.0 350.0 350.0';
+       MY(velocitymultiplier) = 2.500000;
 }
 
-DEF(fireball_muzzleflash);
-SUB(fireball_muzzleflash) {
+DEF(gauntlet_lightning);
+SUB(gauntlet_lightning) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x202020";
-       MY(color_max) = "0x404040";
-       MY(count) = 2;
-       MY(lightcolor) = '2.0 1.5 0.2';
-       MY(lightradiusfade) = 2000;
-       MY(lightradius) = 200;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x280000";
+       MY(color_max) = "0x280000";
+       MY(count) = 300;
        MY(originjitter) = '1.5 1.5 1.5';
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
+       MY(sizeincrease) = 15;
+       MY(size_min) = 3;
+       MY(size_max) = 3;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "spark";
        MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 0.010000;
+       MY(velocitymultiplier) = 2000;
 }
-SUB(fireball_muzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_max) = 128;
+SUB(gauntlet_lightning) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 228;
        MY(alpha_fade) = 1024;
-       MY(color_min) = "0xFFFDD9";
-       MY(color_max) = "0xFFFDD9";
-       MY(count) = 15;
+       MY(color_min) = "0xDD0000";
+       MY(color_max) = "0xFD0000";
+       MY(count) = 30;
        MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(size_min) = 2;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 1.500000;
+       MY(tex_min) = 8;
+       MY(tex_max) = 15;
        MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
+       MY(velocityjitter) = '150.0 150.0 150.0';
        MY(velocitymultiplier) = 0.500000;
 }
+SUB(gauntlet_lightning) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 228;
+       MY(alpha_fade) = 600;
+       MY(color_min) = "0xFD0000";
+       MY(color_max) = "0xF90000";
+       MY(count) = 50;
+       MY(gravity) = 1.300000;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 2;
+       MY(size_max) = 3;
+       MY(stretchfactor) = 0.100000;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
+       MY(type) = "spark";
+       MY(velocityjitter) = '350.0 350.0 350.0';
+       MY(velocitymultiplier) = 2.500000;
+}
 
-DEF(fireball_preattack_muzzleflash);
-SUB(fireball_preattack_muzzleflash) {
+DEF(crylink_joinexplode);
+// decal
+SUB(crylink_joinexplode) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(countabsolute) = 1;
+       MY(originjitter) = '12.0 12.0 12.0';
+       MY(size_min) = 24;
+       MY(size_max) = 24;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "decal";
+}
+// purple flare effect
+SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 512;
-       MY(color_min) = "0x202020";
-       MY(color_max) = "0x404040";
-       MY(count) = 2;
-       MY(lightcolor) = '2.0 1.5 0.2';
-       MY(lightradiusfade) = 2000;
-       MY(lightradius) = 200;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 0.010000;
+       MY(color_min) = "0x504060";
+       MY(color_max) = "0x504060";
+       MY(countabsolute) = 1;
+       MY(size_min) = 24;
+       MY(size_max) = 24;
+       MY(tex_min) = 39;
+       MY(tex_max) = 39;
+       MY(type) = "static";
 }
-SUB(fireball_preattack_muzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_max) = 128;
+// purple sparks
+SUB(crylink_joinexplode) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
        MY(alpha_fade) = 1024;
-       MY(color_min) = "0xFFFDD9";
-       MY(color_max) = "0xFFFDD9";
-       MY(count) = 15;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(bounce) = 2;
+       MY(color_min) = "0xA040C0";
+       MY(color_max) = "0xA040C0";
+       MY(count) = 40;
+       MY(size_min) = 6;
+       MY(size_max) = 6;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
        MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(velocityjitter) = '512.0 512.0 512.0';
 }
-
-DEF(fireball_bfgdamage);
-SUB(fireball_bfgdamage) {
+// purple splash
+SUB(crylink_joinexplode) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 512;
-       MY(color_min) = "0x202020";
-       MY(color_max) = "0x404040";
-       MY(count) = 2;
-       MY(lightcolor) = '2.0 1.5 0.2';
-       MY(lightradiusfade) = 2000;
-       MY(lightradius) = 200;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 0.010000;
+       MY(color_min) = "0xE070FF";
+       MY(color_max) = "0xE070FF";
+       MY(count) = 1.500000;
+       MY(size_min) = 16;
+       MY(size_max) = 16;
+       MY(type) = "static";
+       MY(velocityjitter) = '32.0 32.0 32.0';
 }
-SUB(fireball_bfgdamage) {
-       MY(airfriction) = 12;
-       MY(alpha_max) = 128;
+// purple splash
+SUB(crylink_joinexplode) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
        MY(alpha_fade) = 1024;
-       MY(color_min) = "0xFFFDD9";
-       MY(color_max) = "0xFFFDD9";
-       MY(count) = 15;
+       MY(color_min) = "0xE070FF";
+       MY(color_max) = "0xE070FF";
+       MY(count) = 3;
+       MY(size_min) = 16;
+       MY(size_max) = 16;
+       MY(type) = "static";
+       MY(velocityjitter) = '256.0 256.0 256.0';
+}
+
+// sparks for keepaway ball touch
+DEF(kaball_sparks);
+SUB(kaball_sparks) {
+       MY(airfriction) = 3;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 556;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0xa9cacf";
+       MY(color_max) = "0x0054ff";
+       MY(count) = 35;
+       MY(gravity) = 1;
        MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 3;
+       MY(size_min) = 1;
        MY(size_max) = 3;
        MY(tex_min) = 40;
        MY(tex_max) = 40;
@@ -6084,53 +6247,9 @@ SUB(fireball_bfgdamage) {
        MY(velocitymultiplier) = 0.500000;
 }
 
-DEF(EF_FLAME);
-SUB(EF_FLAME) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 356;
-       MY(alpha_fade) = 512;
-       MY(bounce) = 2;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 100;
-       MY(gravity) = -0.500000;
-       MY(originjitter) = '12.0 12.0 34.0';
-       MY(originoffset) = '0.0 0.0 10.0';
-       MY(sizeincrease) = -1;
-       MY(size_min) = 5;
-       MY(size_max) = 21;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(EF_FLAME) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
-       MY(bounce) = 2;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 50;
-       MY(gravity) = -0.300000;
-       MY(originjitter) = '12.0 12.0 34.0';
-       MY(originoffset) = '0.0 0.0 10.0';
-       MY(sizeincrease) = 6;
-       MY(size_min) = 11;
-       MY(size_max) = 15;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-SUB(EF_FLAME) {
-       MY(count) = 0.500000;
-       MY(lightcolor) = '0.9 0.9 0.2';
-       MY(lightradiusfade) = 10000;
-       MY(lightradius) = 200;
-}
-
-DEF(tr_rifle);
-SUB(tr_rifle) {
+// weak rifle bullet trail (somewhat like a tracer)
+DEF(tr_rifle_weak);
+SUB(tr_rifle_weak) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 2560;
@@ -6143,7 +6262,7 @@ SUB(tr_rifle) {
        MY(type) = "spark";
        MY(velocitymultiplier) = 0.700000;
 }
-SUB(tr_rifle) {
+SUB(tr_rifle_weak) {
        MY(airfriction) = -4;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -6155,11 +6274,11 @@ SUB(tr_rifle) {
        MY(size_min) = 4;
        MY(size_max) = 4;
        MY(tex_max) = 8;
-       MY(trailspacing) = 8;
+       MY(trailspacing) = 48;
        MY(type) = "smoke";
        MY(velocityjitter) = '4.0 4.0 4.0';
 }
-SUB(tr_rifle) {
+SUB(tr_rifle_weak) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 128;
@@ -6172,4443 +6291,609 @@ SUB(tr_rifle) {
        MY(size_max) = 2;
        MY(tex_min) = 62;
        MY(tex_max) = 62;
-       MY(trailspacing) = 32;
+       MY(trailspacing) = 192;
        MY(type) = "bubble";
        MY(underwater) = true;
        MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
-DEF(rocket_guide);
-SUB(rocket_guide) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x404040";
-       MY(color_max) = "0x808080";
+// red smoke emiter
+DEF(red_smoke);
+SUB(red_smoke) {
+       MY(airfriction) = -1;
+       MY(alpha_min) = 32;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 32;
+       MY(color_min) = "0xff8866";
+       MY(color_max) = "0x331100";
        MY(count) = 2;
-       MY(gravity) = -0.125000;
-       MY(liquidfriction) = 0.250000;
-       MY(originjitter) = '8.0 8.0 8.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '48.0 48.0 48.0';
-       MY(velocitymultiplier) = -0.100000;
-}
-SUB(rocket_guide) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 984;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x903010";
-       MY(color_max) = "0xFFD030";
-       MY(count) = 8;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(size_min) = 0.300000;
-       MY(size_max) = 0.700000;
-       MY(stretchfactor) = 0.400000;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '156.0 156.0 156.0';
-       MY(velocitymultiplier) = -0.300000;
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(gravity) = -0.007000;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(size_min) = 60;
+       MY(size_max) = 120;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocitymultiplier) = 5;
 }
-SUB(rocket_guide) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 500;
-       MY(color_min) = "0x903010";
-       MY(color_max) = "0xFFD030";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 300;
-       MY(size_min) = 10;
+
+// pipe smoke emiter
+DEF(pipe_smoke);
+SUB(pipe_smoke) {
+       MY(airfriction) = -1;
+       MY(alpha_min) = 32;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 48;
+       MY(color_min) = "0x999999";
+       MY(color_max) = "0x555555";
+       MY(count) = 2;
+       MY(gravity) = -0.015000;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -180;
+       MY(spin_max) = 180;
+       MY(sizeincrease) = 35;
+       MY(size_min) = 5;
        MY(size_max) = 10;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
+       MY(tex_max) = 8;
        MY(type) = "smoke";
+       MY(velocityjitter) = '0.0 0.0 5.0';
+       MY(velocitymultiplier) = 15;
 }
 
-DEF(laser_gauntlet);
-SUB(laser_gauntlet) {
-       MY(airfriction) = 10;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xb44215";
-       MY(color_max) = "0x880000";
-       MY(count) = 3;
+// seeker missile trail
+DEF(TR_SEEKER);
+SUB(TR_SEEKER) {
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 300;
+       MY(alpha_fade) = 200;
+       MY(bounce) = 1;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x666666";
+       MY(lightcolor) = '6.0 3.0 1.0';
+       MY(lightradius) = 100;
+       MY(notunderwater) = true;
        MY(originjitter) = '2.0 2.0 2.0';
        MY(startangle_min) = -180;
        MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 7;
-       MY(size_max) = 10;
-       MY(stretchfactor) = 2.300000;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.200000;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 11;
+       MY(size_min) = 2;
+       MY(size_max) = 2;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 10;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '3.0 3.0 3.0';
+       MY(velocitymultiplier) = -0.020000;
 }
-SUB(laser_gauntlet) {
-       MY(airfriction) = 12;
+// fire
+SUB(TR_SEEKER) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 144;
+       MY(alpha_fade) = 588;
+       MY(color_min) = "0xffdf72";
+       MY(color_max) = "0x811200";
+       MY(sizeincrease) = -30;
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(trailspacing) = 4;
+       MY(type) = "static";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = -1.500000;
+}
+// bubbles
+SUB(TR_SEEKER) {
        MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 256;
+       MY(bounce) = 1.500000;
+       MY(gravity) = -0.125000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 1;
+       MY(size_max) = 2;
+       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';
+       MY(velocitymultiplier) = -0.310000;
+}
+// sparks
+SUB(TR_SEEKER) {
+       MY(airfriction) = 5;
+       MY(alpha_min) = 444;
        MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff4200";
-       MY(color_max) = "0xff0000";
-       MY(count) = 6;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -100;
-       MY(size_min) = 7;
-       MY(size_max) = 9;
-       MY(stretchfactor) = 2;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
+       MY(alpha_fade) = 1866;
+       MY(bounce) = 1;
+       MY(color_min) = "0xFFFDD9";
+       MY(color_max) = "0xFFFDD9";
+       MY(notunderwater) = true;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 0.500000;
+       MY(size_max) = 0.500000;
+       MY(stretchfactor) = 0.300000;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(trailspacing) = 20;
        MY(type) = "spark";
        MY(velocityjitter) = '100.0 100.0 100.0';
-       MY(velocitymultiplier) = 0.200000;
+       MY(velocitymultiplier) = -0.310000;
 }
 
-DEF(laser_gauntletmuzzleflash);
-SUB(laser_gauntletmuzzleflash) {
-       MY(airfriction) = 10;
+#include "effectinfo_vehicles.inc"
+
+// generic explosion size:big (biggest explosion ever)
+DEF(explosion_big);
+// decal
+SUB(explosion_big) {
        MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0x220000";
-       MY(color_max) = "0x880000";
+       MY(alpha_max) = 256;
        MY(countabsolute) = 1;
-       MY(lightcolor) = '3.0 0.1 0.1';
-       MY(lightradiusfade) = 500;
-       MY(lightradius) = 150;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 10;
-       MY(size_max) = 15;
-       MY(stretchfactor) = 2;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "smoke";
-}
-SUB(laser_gauntletmuzzleflash) {
-       MY(airfriction) = 10;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xb44215";
-       MY(color_max) = "0x880000";
-       MY(count) = 3;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 7;
-       MY(size_max) = 10;
-       MY(stretchfactor) = 2.300000;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-SUB(laser_gauntletmuzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff4200";
-       MY(color_max) = "0xff0000";
-       MY(count) = 6;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -100;
-       MY(size_min) = 7;
-       MY(size_max) = 9;
-       MY(stretchfactor) = 2;
+       MY(lightcolor) = '8.0 4.0 0.0';
+       MY(lightradiusfade) = 1750;
+       MY(lightradius) = 600;
+       MY(originjitter) = '23.0 23.0 23.0';
+       MY(size_min) = 172;
+       MY(size_max) = 172;
        MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '100.0 100.0 100.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-
-DEF(torchflame);
-SUB(torchflame) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 3;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '40.0 40.0 11.0';
-       MY(velocitymultiplier) = 30;
+       MY(tex_max) = 16;
+       MY(type) = "decal";
 }
-SUB(torchflame) {
-       MY(airfriction) = 1.200000;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
+// shockwave
+SUB(explosion_big) {
+       MY(alpha_min) = 56;
+       MY(alpha_max) = 56;
+       MY(alpha_fade) = 330;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 2.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '40.0 40.0 40.0';
-       MY(velocitymultiplier) = 20;
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 4400;
+       MY(size_min) = 72;
+       MY(size_max) = 72;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "static";
 }
-SUB(torchflame) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 50;
+// fire effect
+SUB(explosion_big) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 200;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
+       MY(alpha_fade) = 712;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 1.500000;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = 10;
-       MY(size_min) = 5;
-       MY(size_max) = 5;
+       MY(count) = 64;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '80.0 80.0 80.0';
+       MY(sizeincrease) = 45;
+       MY(size_min) = 133;
+       MY(size_max) = 144;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '30.0 30.0 30.0';
-       MY(velocitymultiplier) = 10;
+       MY(type) = "static";
+       MY(velocityjitter) = '2512.0 2512.0 2512.0';
 }
-SUB(torchflame) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 50;
+// fire rays
+SUB(explosion_big) {
+       MY(airfriction) = -5;
+       MY(alpha_min) = 200;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 200;
+       MY(alpha_fade) = 800;
        MY(color_min) = "0x8f0d00";
        MY(color_max) = "0xff5a00";
-       MY(count) = 2;
-       MY(gravity) = -0.060000;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 20;
-       MY(size_max) = 30;
+       MY(count) = 64;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '40.0 40.0 40.0';
+       MY(sizeincrease) = 45;
+       MY(size_min) = 133;
+       MY(size_max) = 144;
+       MY(stretchfactor) = 10;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '10.0 10.0 10.0';
-       MY(velocitymultiplier) = 15;
+       MY(type) = "spark";
+       MY(velocityjitter) = '512.0 512.0 512.0';
 }
-SUB(torchflame) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 90;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 0.500000;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(sizeincrease) = 7;
-       MY(size_min) = 5;
-       MY(size_max) = 15;
+// smoke
+SUB(explosion_big) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 300;
+       MY(alpha_max) = 650;
+       MY(alpha_fade) = 456;
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 32;
+       MY(notunderwater) = true;
+       MY(sizeincrease) = 244;
+       MY(size_min) = 50;
+       MY(size_max) = 100;
        MY(tex_max) = 8;
        MY(type) = "alphastatic";
-       MY(velocitymultiplier) = 20;
-       MY(velocityoffset) = '0.0 0.0 10.0';
+       MY(velocityjitter) = '3444.0 3444.0 3444.0';
 }
-
-DEF(happy_damage_dissolve);
-SUB(happy_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 228;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x00FFFF";
-       MY(color_max) = "0xFF00FF";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '312.0 312.0 312.0';
+// bouncing sparks
+SUB(explosion_big) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 644;
+       MY(alpha_max) = 956;
+       MY(alpha_fade) = 1284;
+       MY(color_min) = "0xffa35b";
+       MY(color_max) = "0xfff2be";
+       MY(count) = 34;
+       MY(gravity) = 1;
+       MY(liquidfriction) = 0.800000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '160.0 160.0 160.0';
+       MY(size_min) = 3;
+       MY(size_max) = 4;
+       MY(stretchfactor) = 0.700000;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '924.0 924.0 924.0';
+       MY(velocityoffset) = '0.0 0.0 370.0';
 }
-SUB(happy_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 228;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFFFF00";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
+// debris
+SUB(explosion_big) {
+       MY(airfriction) = 0.500000;
+       MY(alpha_min) = 444;
+       MY(alpha_max) = 1356;
+       MY(alpha_fade) = 1184;
+       MY(color_min) = "0xFFFFFF";
+       MY(color_max) = "0xcac5b4";
+       MY(count) = 16;
+       MY(gravity) = 2.300000;
+       MY(notunderwater) = true;
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -1000;
+       MY(spin_max) = 1000;
+       MY(sizeincrease) = -5;
+       MY(size_min) = 10;
+       MY(size_max) = 16;
+       MY(tex_min) = 66;
+       MY(tex_max) = 68;
        MY(type) = "alphastatic";
-       MY(velocityjitter) = '312.0 312.0 312.0';
+       MY(velocityjitter) = '1800.0 1800.0 1800.0';
+       MY(velocityoffset) = '0.0 0.0 970.0';
 }
-SUB(happy_damage_dissolve) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 256;
+// underwater bubbles
+SUB(explosion_big) {
+       MY(alpha_min) = 128;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 228;
+       MY(alpha_fade) = 64;
        MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF00";
-       MY(color_max) = "0x00FFFF";
-       MY(count) = 15;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 6;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '312.0 312.0 312.0';
-}
-
-DEF(happy_damage_hit);
-SUB(happy_damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x00FFFF";
-       MY(color_max) = "0xFF00FF";
-       MY(count) = 0.100000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -28;
-       MY(size_min) = 26;
-       MY(size_max) = 26;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '156.0 156.0 156.0';
-}
-SUB(happy_damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF00FF";
-       MY(color_max) = "0xFFFF00";
-       MY(count) = 0.100000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -28;
-       MY(size_min) = 26;
-       MY(size_max) = 26;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '156.0 156.0 156.0';
-}
-SUB(happy_damage_hit) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 192;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF00";
-       MY(color_max) = "0x00FFFF";
-       MY(count) = 0.100000;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(sizeincrease) = -28;
-       MY(size_min) = 26;
-       MY(size_max) = 26;
-       MY(tex_min) = 69;
-       MY(tex_max) = 69;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '156.0 156.0 156.0';
-}
-
-DEF(electro_lightning);
-SUB(electro_lightning) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '3.1 4.4 10.0';
-       MY(lightradiusfade) = 500;
-       MY(lightradius) = 50;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(tex_min) = 59;
-       MY(tex_max) = 59;
-       MY(type) = "decal";
-}
-SUB(electro_lightning) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 206;
-       MY(alpha_fade) = 1724;
-       MY(color_min) = "0x2030FF";
-       MY(color_max) = "0x80C0FF";
-       MY(count) = 300;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 6;
-       MY(size_max) = 6;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "spark";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 2000;
-}
-SUB(electro_lightning) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 170;
-       MY(alpha_fade) = 1500;
-       MY(color_min) = "0xDDFDFF";
-       MY(color_max) = "0xFDFDFF";
-       MY(count) = 30;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 2;
-       MY(size_max) = 5;
-       MY(stretchfactor) = 1.500000;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.500000;
-}
-SUB(electro_lightning) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 170;
-       MY(alpha_fade) = 1500;
-       MY(color_min) = "0xFDFDFF";
-       MY(color_max) = "0xF9FDFF";
-       MY(count) = 50;
-       MY(gravity) = 1.300000;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 2;
-       MY(size_max) = 3;
-       MY(stretchfactor) = 0.100000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '350.0 350.0 350.0';
-       MY(velocitymultiplier) = 2.500000;
-}
-
-DEF(gauntlet_lightning);
-SUB(gauntlet_lightning) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x280000";
-       MY(color_max) = "0x280000";
-       MY(count) = 300;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(sizeincrease) = 15;
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "spark";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 2000;
-}
-SUB(gauntlet_lightning) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 228;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0xDD0000";
-       MY(color_max) = "0xFD0000";
-       MY(count) = 30;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 2;
-       MY(size_max) = 5;
-       MY(stretchfactor) = 1.500000;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.500000;
-}
-SUB(gauntlet_lightning) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 228;
-       MY(alpha_fade) = 600;
-       MY(color_min) = "0xFD0000";
-       MY(color_max) = "0xF90000";
-       MY(count) = 50;
-       MY(gravity) = 1.300000;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 2;
-       MY(size_max) = 3;
-       MY(stretchfactor) = 0.100000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '350.0 350.0 350.0';
-       MY(velocitymultiplier) = 2.500000;
-}
-
-DEF(crylink_joinexplode);
-SUB(crylink_joinexplode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(originjitter) = '12.0 12.0 12.0';
-       MY(size_min) = 24;
-       MY(size_max) = 24;
-       MY(tex_min) = 47;
-       MY(tex_max) = 47;
-       MY(type) = "decal";
-}
-SUB(crylink_joinexplode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x504060";
-       MY(color_max) = "0x504060";
-       MY(countabsolute) = 1;
-       MY(size_min) = 24;
-       MY(size_max) = 24;
-       MY(tex_min) = 39;
-       MY(tex_max) = 39;
-       MY(type) = "static";
-}
-SUB(crylink_joinexplode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1024;
-       MY(bounce) = 2;
-       MY(color_min) = "0xA040C0";
-       MY(color_max) = "0xA040C0";
-       MY(count) = 40;
-       MY(size_min) = 6;
-       MY(size_max) = 6;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(crylink_joinexplode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xE070FF";
-       MY(color_max) = "0xE070FF";
-       MY(count) = 1.500000;
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(type) = "static";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-}
-SUB(crylink_joinexplode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0xE070FF";
-       MY(color_max) = "0xE070FF";
-       MY(count) = 3;
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(type) = "static";
-       MY(velocityjitter) = '256.0 256.0 256.0';
-}
-
-DEF(kaball_sparks);
-SUB(kaball_sparks) {
-       MY(airfriction) = 3;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 556;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xa9cacf";
-       MY(color_max) = "0x0054ff";
-       MY(count) = 35;
-       MY(gravity) = 1;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
-       MY(velocitymultiplier) = 0.500000;
-}
-
-DEF(tr_rifle_weak);
-SUB(tr_rifle_weak) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 2560;
-       MY(color_min) = "0x800000";
-       MY(color_max) = "0xFF8020";
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(stretchfactor) = 1;
-       MY(trailspacing) = 128;
-       MY(type) = "spark";
-       MY(velocitymultiplier) = 0.700000;
-}
-SUB(tr_rifle_weak) {
-       MY(airfriction) = -4;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x202020";
-       MY(color_max) = "0x404040";
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 0.400000;
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 48;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '4.0 4.0 4.0';
-}
-SUB(tr_rifle_weak) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 128;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x404040";
-       MY(color_max) = "0x808080";
-       MY(gravity) = -0.125000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(trailspacing) = 192;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '16.0 16.0 16.0';
-}
-
-DEF(red_smoke);
-SUB(red_smoke) {
-       MY(airfriction) = -1;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 32;
-       MY(color_min) = "0xff8866";
-       MY(color_max) = "0x331100";
-       MY(count) = 2;
-       MY(gravity) = -0.007000;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(size_min) = 60;
-       MY(size_max) = 120;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 5;
-}
-
-DEF(pipe_smoke);
-SUB(pipe_smoke) {
-       MY(airfriction) = -1;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 48;
-       MY(color_min) = "0x999999";
-       MY(color_max) = "0x555555";
-       MY(count) = 2;
-       MY(gravity) = -0.015000;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -180;
-       MY(spin_max) = 180;
-       MY(sizeincrease) = 35;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.0 0.0 5.0';
-       MY(velocitymultiplier) = 15;
-}
-
-DEF(TR_SEEKER);
-SUB(TR_SEEKER) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 200;
-       MY(bounce) = 1;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x666666";
-       MY(lightcolor) = '6.0 3.0 1.0';
-       MY(lightradius) = 100;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 11;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 10;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
-       MY(velocitymultiplier) = -0.020000;
-}
-SUB(TR_SEEKER) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 144;
-       MY(alpha_fade) = 588;
-       MY(color_min) = "0xffdf72";
-       MY(color_max) = "0x811200";
-       MY(sizeincrease) = -30;
-       MY(size_min) = 5;
-       MY(size_max) = 5;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 4;
-       MY(type) = "static";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = -1.500000;
-}
-SUB(TR_SEEKER) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(gravity) = -0.125000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       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';
-       MY(velocitymultiplier) = -0.310000;
-}
-SUB(TR_SEEKER) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 444;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 1866;
-       MY(bounce) = 1;
-       MY(color_min) = "0xFFFDD9";
-       MY(color_max) = "0xFFFDD9";
-       MY(notunderwater) = true;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 0.500000;
-       MY(size_max) = 0.500000;
-       MY(stretchfactor) = 0.300000;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(trailspacing) = 20;
-       MY(type) = "spark";
-       MY(velocityjitter) = '100.0 100.0 100.0';
-       MY(velocitymultiplier) = -0.310000;
-}
-
-DEF(spiderbot_minigun_trail);
-SUB(spiderbot_minigun_trail) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 20;
-       MY(alpha_max) = 50;
-       MY(alpha_fade) = 100;
-       MY(color_min) = "0xd0d0a0";
-       MY(color_max) = "0xffffff";
-       MY(gravity) = -0.030000;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 2;
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 10;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '5.0 5.0 5.0';
-}
-
-DEF(spiderbot_minigun_muzzleflash);
-SUB(spiderbot_minigun_muzzleflash) {
-       MY(airfriction) = 10;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff8400";
-       MY(count) = 3;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 10;
-       MY(size_max) = 15;
-       MY(stretchfactor) = 1.300000;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.350000;
-}
-SUB(spiderbot_minigun_muzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff8400";
-       MY(count) = 6;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 5;
-       MY(size_max) = 7;
-       MY(stretchfactor) = 0.800000;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-SUB(spiderbot_minigun_muzzleflash) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6680;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff8400";
-       MY(countabsolute) = 2;
-       MY(lightcolor) = '3.0 3.0 0.0';
-       MY(lightradiusfade) = 8000;
-       MY(lightradius) = 120;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(stretchfactor) = 0.100000;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-}
-
-DEF(spiderbot_minigun_impact);
-SUB(spiderbot_minigun_impact) {
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 1680;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xf6ff00";
-       MY(countabsolute) = 1;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 52;
-       MY(size_max) = 52;
-       MY(stretchfactor) = 0.100000;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "static";
-}
-SUB(spiderbot_minigun_impact) {
-       MY(airfriction) = 6;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff8400";
-       MY(count) = 7;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = 100;
-       MY(size_min) = 9;
-       MY(size_max) = 15;
-       MY(stretchfactor) = 3;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '250.0 250.0 150.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-SUB(spiderbot_minigun_impact) {
-       MY(airfriction) = 10;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 50;
-       MY(alpha_fade) = 190;
-       MY(color_min) = "0xd0d0a0";
-       MY(color_max) = "0xffffff";
-       MY(count) = 6;
-       MY(gravity) = 1.300000;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(sizeincrease) = 80;
-       MY(size_min) = 10;
-       MY(size_max) = 20;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '100.0 100.0 250.0';
-       MY(velocitymultiplier) = 0.490000;
-}
-SUB(spiderbot_minigun_impact) {
-       MY(airfriction) = 6;
-       MY(alpha_min) = 25;
-       MY(alpha_max) = 51;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0xd0d0a0";
-       MY(color_max) = "0xffffff";
-       MY(count) = 7;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = 100;
-       MY(size_min) = 15;
-       MY(size_max) = 19;
-       MY(stretchfactor) = 7.600000;
-       MY(tex_max) = 8;
-       MY(type) = "spark";
-       MY(velocityjitter) = '250.0 250.0 150.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-SUB(spiderbot_minigun_impact) {
-       MY(airfriction) = 0.400000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 756;
-       MY(alpha_fade) = 1484;
-       MY(color_min) = "0x99977D";
-       MY(color_max) = "0xFFFFFF";
-       MY(count) = 3;
-       MY(gravity) = 1.100000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -1000;
-       MY(spin_max) = 1000;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 6;
-       MY(size_max) = 8;
-       MY(tex_min) = 66;
-       MY(tex_max) = 68;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '124.0 124.0 224.0';
-       MY(velocitymultiplier) = 0.150000;
-}
-SUB(spiderbot_minigun_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 20;
-       MY(size_max) = 25;
-       MY(tex_min) = 56;
-       MY(tex_max) = 59;
-       MY(type) = "decal";
-}
-
-DEF(spiderbot_rocket_explode);
-SUB(spiderbot_rocket_explode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '8.0 4.0 0.0';
-       MY(lightradiusfade) = 1750;
-       MY(lightradius) = 300;
-       MY(originjitter) = '23.0 23.0 23.0';
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 8;
-       MY(tex_max) = 16;
-       MY(type) = "decal";
-}
-SUB(spiderbot_rocket_explode) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 230;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2400;
-       MY(size_min) = 22;
-       MY(size_max) = 22;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "static";
-}
-SUB(spiderbot_rocket_explode) {
-       MY(alpha_min) = 156;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 830;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 240;
-       MY(size_min) = 120;
-       MY(size_max) = 120;
-       MY(tex_min) = 64;
-       MY(tex_max) = 64;
-       MY(type) = "static";
-}
-SUB(spiderbot_rocket_explode) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 812;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 32;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -50;
-       MY(spin_max) = 50;
-       MY(sizeincrease) = 495;
-       MY(size_min) = 12;
-       MY(size_max) = 21;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(spiderbot_rocket_explode) {
-       MY(airfriction) = -2;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 912;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 16;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -150;
-       MY(spin_max) = 150;
-       MY(sizeincrease) = 120;
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(stretchfactor) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '412.0 412.0 412.0';
-}
-SUB(spiderbot_rocket_explode) {
-       MY(airfriction) = -3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 10;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 120;
-       MY(size_min) = 13;
-       MY(size_max) = 54;
-       MY(stretchfactor) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '712.0 712.0 712.0';
-}
-SUB(spiderbot_rocket_explode) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 650;
-       MY(alpha_fade) = 756;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 10;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 280;
-       MY(size_min) = 10;
-       MY(size_max) = 15;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-}
-SUB(spiderbot_rocket_explode) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 650;
-       MY(alpha_fade) = 556;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 3;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 30;
-       MY(size_min) = 100;
-       MY(size_max) = 150;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-}
-SUB(spiderbot_rocket_explode) {
-       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) = '160.0 160.0 160.0';
-       MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '144.0 144.0 144.0';
-}
-SUB(spiderbot_rocket_explode) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 300;
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 1200;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(underwater) = true;
-}
-
-DEF(spiderbot_rocket_thrust);
-SUB(spiderbot_rocket_thrust) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 3;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = -40;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(stretchfactor) = 0.900000;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '20.0 20.0 20.0';
-       MY(velocitymultiplier) = -1.400000;
-}
-SUB(spiderbot_rocket_thrust) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 9000;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 4;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -500;
-       MY(spin_max) = 500;
-       MY(sizeincrease) = -3000;
-       MY(size_min) = 25;
-       MY(size_max) = 25;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = -1.400000;
-}
-
-DEF(spiderbot_rocket_launch);
-SUB(spiderbot_rocket_launch) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 60;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 8;
-       MY(gravity) = -0.010000;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = -0.100000;
-}
-SUB(spiderbot_rocket_launch) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 260;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 14;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '160.0 160.0 60.0';
-}
-SUB(spiderbot_rocket_launch) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1960;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 14;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 40;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(stretchfactor) = 3;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = 0.500000;
-}
-SUB(spiderbot_rocket_launch) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 10;
-       MY(notunderwater) = true;
-       MY(size_min) = 1;
-       MY(size_max) = 4;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '160.0 160.0 160.0';
-       MY(velocitymultiplier) = -0.500000;
-}
-
-DEF(wakizashi_gun_impact);
-SUB(wakizashi_gun_impact) {
-       MY(airfriction) = 4;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 1180;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xc03535";
-       MY(count) = 15;
-       MY(gravity) = 3;
-       MY(originjitter) = '40.0 40.0 10.0';
-       MY(size_min) = 4;
-       MY(size_max) = 7;
-       MY(stretchfactor) = 0.900000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '350.0 350.0 550.0';
-       MY(velocityoffset) = '0.0 0.0 700.0';
-}
-SUB(wakizashi_gun_impact) {
-       MY(airfriction) = 4;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 90;
-       MY(alpha_fade) = 150;
-       MY(color_min) = "0xd0d0a0";
-       MY(color_max) = "0xc03535";
-       MY(count) = 24;
-       MY(originjitter) = '40.0 40.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(sizeincrease) = 80;
-       MY(size_min) = 10;
-       MY(size_max) = 20;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '250.0 250.0 450.0';
-       MY(velocityoffset) = '0.0 0.0 600.0';
-}
-SUB(wakizashi_gun_impact) {
-       MY(alpha_min) = 250;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 680;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xc03535";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = -180;
-       MY(size_min) = 82;
-       MY(size_max) = 82;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "smoke";
-}
-SUB(wakizashi_gun_impact) {
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 620;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xc03535";
-       MY(countabsolute) = 1;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 400;
-       MY(spin_max) = -400;
-       MY(sizeincrease) = 900;
-       MY(size_min) = 40;
-       MY(size_max) = 40;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-}
-SUB(wakizashi_gun_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 14;
-       MY(size_max) = 14;
-       MY(tex_min) = 59;
-       MY(tex_max) = 59;
-       MY(type) = "decal";
-}
-
-DEF(wakizashi_gun_muzzleflash);
-SUB(wakizashi_gun_muzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 512;
-       MY(alpha_fade) = 6280;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xc03535";
-       MY(count) = 16;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 5;
-       MY(size_max) = 7;
-       MY(stretchfactor) = 0.700000;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-
-DEF(wakizashi_rocket_explode);
-SUB(wakizashi_rocket_explode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '8.0 4.0 0.0';
-       MY(lightradiusfade) = 1750;
-       MY(lightradius) = 300;
-       MY(originjitter) = '23.0 23.0 23.0';
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 8;
-       MY(tex_max) = 16;
-       MY(type) = "decal";
-}
-SUB(wakizashi_rocket_explode) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 230;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2400;
-       MY(size_min) = 22;
-       MY(size_max) = 22;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "static";
-}
-SUB(wakizashi_rocket_explode) {
-       MY(alpha_min) = 156;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 830;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 240;
-       MY(size_min) = 120;
-       MY(size_max) = 120;
-       MY(tex_min) = 64;
-       MY(tex_max) = 64;
-       MY(type) = "static";
-}
-SUB(wakizashi_rocket_explode) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xFFAE00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 64;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -50;
-       MY(spin_max) = 50;
-       MY(sizeincrease) = 195;
-       MY(size_min) = 12;
-       MY(size_max) = 21;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(wakizashi_rocket_explode) {
-       MY(airfriction) = -3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(color_min) = "0xFFEA00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 10;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 120;
-       MY(size_min) = 43;
-       MY(size_max) = 54;
-       MY(stretchfactor) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(wakizashi_rocket_explode) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 450;
-       MY(alpha_fade) = 556;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 32;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 230;
-       MY(size_min) = 10;
-       MY(size_max) = 15;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-}
-SUB(wakizashi_rocket_explode) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 884;
-       MY(color_min) = "0xffa35b";
-       MY(color_max) = "0xfff2be";
-       MY(count) = 14;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '60.0 60.0 60.0';
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '524.0 524.0 524.0';
-       MY(velocityoffset) = '0.0 0.0 170.0';
-}
-SUB(wakizashi_rocket_explode) {
-       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) = '160.0 160.0 160.0';
-       MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '144.0 144.0 144.0';
-}
-SUB(wakizashi_rocket_explode) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 300;
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 1200;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(underwater) = true;
-}
-
-DEF(wakizashi_rocket_thrust);
-SUB(wakizashi_rocket_thrust) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1600;
-       MY(color_min) = "0x00FFDD";
-       MY(color_max) = "0x6200FF";
-       MY(countabsolute) = 3;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = -2;
-       MY(size_min) = 14;
-       MY(size_max) = 19;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = -1.100000;
-}
-SUB(wakizashi_rocket_thrust) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1900;
-       MY(color_min) = "0xFFFF33";
-       MY(color_max) = "0xFFEE00";
-       MY(countabsolute) = 2;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = -2;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(stretchfactor) = 3;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = -0.300000;
-}
-
-DEF(wakizashi_rocket_launch);
-SUB(wakizashi_rocket_launch) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 60;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 8;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 3;
-       MY(size_max) = 30;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '160.0 160.0 60.0';
-       MY(velocitymultiplier) = -0.100000;
-}
-SUB(wakizashi_rocket_launch) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 156;
-       MY(alpha_fade) = 260;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 14;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 20;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '160.0 160.0 60.0';
-       MY(velocitymultiplier) = 0.400000;
-}
-SUB(wakizashi_rocket_launch) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xD9C4B0";
-       MY(count) = 10;
-       MY(notunderwater) = true;
-       MY(size_min) = 1;
-       MY(size_max) = 4;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '60.0 60.0 60.0';
-       MY(velocitymultiplier) = -1.500000;
-}
-
-DEF(wakizashi_booster_smoke);
-SUB(wakizashi_booster_smoke) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 750;
-       MY(alpha_fade) = 200;
-       MY(color_min) = "0xA69A80";
-       MY(color_max) = "0xB3B39F";
-       MY(count) = 3;
-       MY(gravity) = -0.100000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '60.0 60.0 60.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 10;
-       MY(size_min) = 60;
-       MY(size_max) = 100;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '40.0 40.0 40.0';
-}
-
-DEF(raptor_cannon_impact);
-SUB(raptor_cannon_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 24;
-       MY(size_max) = 24;
-       MY(tex_min) = 47;
-       MY(tex_max) = 47;
-       MY(type) = "decal";
-}
-SUB(raptor_cannon_impact) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 784;
-       MY(color_min) = "0xD400FF";
-       MY(color_max) = "0x571863";
-       MY(count) = 6;
-       MY(gravity) = 1;
-       MY(notunderwater) = true;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '124.0 124.0 524.0';
-       MY(velocityoffset) = '0.0 0.0 150.0';
-}
-SUB(raptor_cannon_impact) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 428;
-       MY(alpha_max) = 428;
-       MY(alpha_fade) = 600;
-       MY(color_min) = "0x646364";
-       MY(color_max) = "0x151515";
-       MY(count) = 4;
-       MY(gravity) = 0.700000;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 50;
-       MY(size_max) = 50;
-       MY(tex_max) = 7;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '200.0 200.0 300.0';
-       MY(velocityoffset) = '0.0 0.0 340.0';
-}
-SUB(raptor_cannon_impact) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 812;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xD400FF";
-       MY(color_max) = "0x571863";
-       MY(count) = 10;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '8.0 8.0 8.0';
-       MY(sizeincrease) = 25;
-       MY(size_min) = 33;
-       MY(size_max) = 44;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '312.0 312.0 312.0';
-}
-
-DEF(raptor_cannon_muzzleflash);
-SUB(raptor_cannon_muzzleflash) {
-       MY(airfriction) = 12;
-       MY(alpha_min) = 1256;
-       MY(alpha_max) = 1512;
-       MY(alpha_fade) = 56280;
-       MY(color_min) = "0xD400FF";
-       MY(color_max) = "0x571863";
-       MY(count) = 16;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 10;
-       MY(size_max) = 17;
-       MY(stretchfactor) = 0.600000;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-       MY(velocitymultiplier) = 0.200000;
-}
-SUB(raptor_cannon_muzzleflash) {
-       MY(alpha_min) = 6056;
-       MY(alpha_max) = 20112;
-       MY(alpha_fade) = 406280;
-       MY(color_min) = "0xD400FF";
-       MY(color_max) = "0x571863";
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '3.0 0.0 6.0';
-       MY(lightradiusfade) = 6000;
-       MY(lightradius) = 150;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = -100;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(stretchfactor) = 0.100000;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-}
-
-DEF(raptor_bomb_impact);
-SUB(raptor_bomb_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 84;
-       MY(size_max) = 84;
-       MY(tex_min) = 8;
-       MY(tex_max) = 16;
-       MY(type) = "decal";
-}
-SUB(raptor_bomb_impact) {
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 600;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff3c00";
-       MY(count) = 3;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(sizeincrease) = 50;
-       MY(size_min) = 20;
-       MY(size_max) = 40;
-       MY(stretchfactor) = 210;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '40.0 40.0 120.0';
-}
-SUB(raptor_bomb_impact) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 500;
-       MY(color_min) = "0xff9c00";
-       MY(color_max) = "0xff3c00";
-       MY(count) = 4;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(sizeincrease) = 230;
-       MY(size_min) = 30;
-       MY(size_max) = 120;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '950.0 950.0 0.0';
-}
-SUB(raptor_bomb_impact) {
-       MY(alpha_min) = 428;
-       MY(alpha_max) = 428;
-       MY(alpha_fade) = 600;
-       MY(blend) = "alpha";
-       MY(color_min) = "0x646364";
-       MY(color_max) = "0x151515";
-       MY(count) = 4;
-       MY(originjitter) = '30.0 30.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(size_min) = 120;
-       MY(size_max) = 180;
-       MY(stretchfactor) = 10;
-       MY(tex_max) = 7;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 280.0';
-       MY(velocityoffset) = '0.0 0.0 280.0';
-}
-SUB(raptor_bomb_impact) {
-       MY(airfriction) = 0.600000;
-       MY(alpha_min) = 328;
-       MY(alpha_max) = 328;
-       MY(alpha_fade) = 350;
-       MY(blend) = "alpha";
-       MY(color_min) = "0x646364";
-       MY(color_max) = "0x151515";
-       MY(count) = 4;
-       MY(gravity) = 2;
-       MY(originjitter) = '30.0 30.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(sizeincrease) = 60;
-       MY(size_min) = 40;
-       MY(size_max) = 100;
-       MY(tex_max) = 7;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 300.0';
-       MY(velocityoffset) = '0.0 0.0 580.0';
-}
-SUB(raptor_bomb_impact) {
-       MY(airfriction) = 0.300000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 984;
-       MY(color_min) = "0xffa35b";
-       MY(color_max) = "0xfff2be";
-       MY(count) = 5;
-       MY(gravity) = 1;
-       MY(notunderwater) = true;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(size_min) = 3;
-       MY(size_max) = 5;
-       MY(stretchfactor) = 2;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '174.0 174.0 924.0';
-       MY(velocityoffset) = '0.0 0.0 350.0';
-}
-
-DEF(raptor_bomb_spread);
-SUB(raptor_bomb_spread) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 1284;
-       MY(color_min) = "0xffa35b";
-       MY(color_max) = "0xfff2be";
-       MY(count) = 34;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '110.0 110.0 110.0';
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '324.0 324.0 324.0';
-}
-
-DEF(explosion_big);
-SUB(explosion_big) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '8.0 4.0 0.0';
-       MY(lightradiusfade) = 1750;
-       MY(lightradius) = 600;
-       MY(originjitter) = '23.0 23.0 23.0';
-       MY(size_min) = 172;
-       MY(size_max) = 172;
-       MY(tex_min) = 8;
-       MY(tex_max) = 16;
-       MY(type) = "decal";
-}
-SUB(explosion_big) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 330;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 4400;
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "static";
-}
-SUB(explosion_big) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 712;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 64;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '80.0 80.0 80.0';
-       MY(sizeincrease) = 45;
-       MY(size_min) = 133;
-       MY(size_max) = 144;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '2512.0 2512.0 2512.0';
-}
-SUB(explosion_big) {
-       MY(airfriction) = -5;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 800;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 64;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 45;
-       MY(size_min) = 133;
-       MY(size_max) = 144;
-       MY(stretchfactor) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(explosion_big) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 650;
-       MY(alpha_fade) = 456;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 32;
-       MY(notunderwater) = true;
-       MY(sizeincrease) = 244;
-       MY(size_min) = 50;
-       MY(size_max) = 100;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '3444.0 3444.0 3444.0';
-}
-SUB(explosion_big) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 1284;
-       MY(color_min) = "0xffa35b";
-       MY(color_max) = "0xfff2be";
-       MY(count) = 34;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '160.0 160.0 160.0';
-       MY(size_min) = 3;
-       MY(size_max) = 4;
-       MY(stretchfactor) = 0.700000;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '924.0 924.0 924.0';
-       MY(velocityoffset) = '0.0 0.0 370.0';
-}
-SUB(explosion_big) {
-       MY(airfriction) = 0.500000;
-       MY(alpha_min) = 444;
-       MY(alpha_max) = 1356;
-       MY(alpha_fade) = 1184;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xcac5b4";
-       MY(count) = 16;
-       MY(gravity) = 2.300000;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -1000;
-       MY(spin_max) = 1000;
-       MY(sizeincrease) = -5;
-       MY(size_min) = 10;
-       MY(size_max) = 16;
-       MY(tex_min) = 66;
-       MY(tex_max) = 68;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '1800.0 1800.0 1800.0';
-       MY(velocityoffset) = '0.0 0.0 970.0';
-}
-SUB(explosion_big) {
-       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) = '160.0 160.0 160.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '444.0 444.0 444.0';
-}
-SUB(explosion_big) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 300;
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2900;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(underwater) = true;
-       MY(velocitymultiplier) = 0.300000;
-}
-
-DEF(explosion_medium);
-SUB(explosion_medium) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 330;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2400;
-       MY(size_min) = 72;
-       MY(size_max) = 72;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "static";
-}
-SUB(explosion_medium) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 712;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 32;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '30.0 30.0 30.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -500;
-       MY(spin_max) = 500;
-       MY(sizeincrease) = 45;
-       MY(size_min) = 133;
-       MY(size_max) = 144;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '1512.0 1512.0 1512.0';
-}
-SUB(explosion_medium) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 612;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 32;
-       MY(gravity) = -2;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '30.0 30.0 30.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -150;
-       MY(spin_max) = 150;
-       MY(sizeincrease) = 40;
-       MY(size_min) = 73;
-       MY(size_max) = 94;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '1512.0 1512.0 1512.0';
-}
-SUB(explosion_medium) {
-       MY(airfriction) = -3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 800;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 14;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 40;
-       MY(size_min) = 43;
-       MY(size_max) = 74;
-       MY(stretchfactor) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(explosion_medium) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 650;
-       MY(alpha_fade) = 756;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 5;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = -30;
-       MY(size_min) = 250;
-       MY(size_max) = 300;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '200.0 200.0 200.0';
-}
-SUB(explosion_medium) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 650;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 10;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 50;
-       MY(size_min) = 50;
-       MY(size_max) = 100;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '500.0 500.0 500.0';
-       MY(velocityoffset) = '0.0 0.0 200.0';
-}
-SUB(explosion_medium) {
-       MY(alpha_min) = 140;
-       MY(alpha_max) = 255;
-       MY(alpha_fade) = 350;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 13;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 100;
-       MY(size_min) = 150;
-       MY(size_max) = 200;
-       MY(stretchfactor) = 50;
-       MY(tex_max) = 8;
-       MY(type) = "spark";
-       MY(velocityjitter) = '250.0 250.0 250.0';
-}
-SUB(explosion_medium) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 984;
-       MY(color_min) = "0xffa35b";
-       MY(color_max) = "0xfff2be";
-       MY(count) = 14;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '100.0 100.0 100.0';
-       MY(size_min) = 2;
-       MY(size_max) = 3;
-       MY(stretchfactor) = 0.700000;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '624.0 624.0 624.0';
-       MY(velocityoffset) = '0.0 0.0 370.0';
-}
-SUB(explosion_medium) {
-       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) = '160.0 160.0 160.0';
-       MY(size_min) = 3;
-       MY(size_max) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '444.0 444.0 444.0';
-}
-SUB(explosion_medium) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 300;
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2900;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(underwater) = true;
-       MY(velocitymultiplier) = 0.300000;
-}
-
-DEF(explosion_small);
-SUB(explosion_small) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 330;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2400;
-       MY(size_min) = 22;
-       MY(size_max) = 22;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "static";
-}
-SUB(explosion_small) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1212;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 16;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -500;
-       MY(spin_max) = 500;
-       MY(sizeincrease) = 45;
-       MY(size_min) = 1;
-       MY(size_max) = 44;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(explosion_small) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 812;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 16;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -150;
-       MY(spin_max) = 150;
-       MY(sizeincrease) = 40;
-       MY(size_min) = 73;
-       MY(size_max) = 94;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "static";
-       MY(velocityjitter) = '912.0 912.0 912.0';
-}
-SUB(explosion_small) {
-       MY(airfriction) = -3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1300;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 14;
-       MY(liquidfriction) = 8;
-       MY(notunderwater) = true;
-       MY(originjitter) = '40.0 40.0 40.0';
-       MY(sizeincrease) = 30;
-       MY(size_min) = 13;
-       MY(size_max) = 54;
-       MY(stretchfactor) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '512.0 512.0 512.0';
-}
-SUB(explosion_small) {
-       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) = '160.0 160.0 160.0';
-       MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '144.0 144.0 144.0';
-}
-SUB(explosion_small) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 300;
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 1200;
-       MY(size_min) = 30;
-       MY(size_max) = 30;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(underwater) = true;
-}
-
-DEF(smoke_big);
-SUB(smoke_big) {
-       MY(airfriction) = 4;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 750;
-       MY(alpha_fade) = 200;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 3;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '55.0 55.0 55.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = 15;
-       MY(size_min) = 30;
-       MY(size_max) = 60;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '140.0 140.0 200.0';
-       MY(velocityoffset) = '0.0 0.0 200.0';
-}
-
-DEF(smoke_small);
-SUB(smoke_small) {
-       MY(airfriction) = 4;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 750;
-       MY(alpha_fade) = 200;
-       MY(color_min) = "0x4F4B46";
-       MY(color_max) = "0x000000";
-       MY(count) = 3;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -20;
-       MY(spin_max) = 20;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 60;
-       MY(size_max) = 100;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '40.0 40.0 400.0';
-       MY(velocityoffset) = '0.0 0.0 200.0';
-}
-
-DEF(impact_metal);
-SUB(impact_metal) {
-       MY(alpha_min) = 25;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 50;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x886666";
-       MY(count) = 1;
-       MY(gravity) = -0.010000;
-       MY(originjitter) = '20.0 20.0 5.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 3;
-       MY(size_max) = 6;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-SUB(impact_metal) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 255;
-       MY(alpha_max) = 255;
-       MY(alpha_fade) = 112;
-       MY(bounce) = 1.800000;
-       MY(color_min) = "0xFFCC22";
-       MY(color_max) = "0xFF4422";
-       MY(count) = 2;
-       MY(gravity) = 1;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(stretchfactor) = 0.500000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '200.0 200.0 300.0';
-       MY(velocitymultiplier) = 2;
-}
-
-DEF(impact_stone);
-SUB(impact_stone) {
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 75;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0xcc9966";
-       MY(count) = 1;
-       MY(gravity) = -0.010000;
-       MY(originjitter) = '20.0 20.0 5.0';
-       MY(sizeincrease) = 15;
-       MY(size_min) = 3;
-       MY(size_max) = 6;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-SUB(impact_stone) {
-       MY(airfriction) = 0.500000;
-       MY(alpha_min) = 450;
-       MY(alpha_max) = 750;
-       MY(alpha_fade) = 300;
-       MY(bounce) = 1.200000;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x886644";
-       MY(count) = 1;
-       MY(gravity) = 1.300000;
-       MY(notunderwater) = true;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -1000;
-       MY(spin_max) = 1000;
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 66;
-       MY(tex_max) = 68;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '124.0 124.0 324.0';
-}
-
-DEF(impact_wood);
-SUB(impact_wood) {
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 75;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0xcc9966";
-       MY(count) = 1;
-       MY(gravity) = -0.010000;
-       MY(originjitter) = '20.0 20.0 5.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 3;
-       MY(size_max) = 6;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-SUB(impact_wood) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 255;
-       MY(alpha_max) = 255;
-       MY(alpha_fade) = 75;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x221100";
-       MY(color_max) = "0x221100";
-       MY(count) = 2;
-       MY(gravity) = 1;
-       MY(size_min) = 1;
-       MY(size_max) = 8;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '180.0 180.0 260.0';
-       MY(velocitymultiplier) = 2;
-}
-
-DEF(impact_flesh);
-SUB(impact_flesh) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x420000";
-       MY(count) = 0.500000;
-       MY(originjitter) = '11.0 11.0 11.0';
-       MY(size_min) = 8;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-SUB(impact_flesh) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 6;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '96.0 96.0 96.0';
-       MY(velocitymultiplier) = 5;
-}
-
-DEF(tr_hagar);
-SUB(tr_hagar) {
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 400;
-       MY(alpha_fade) = 780;
-       MY(bounce) = 1;
-       MY(color_min) = "0x101010";
-       MY(color_max) = "0x000000";
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 3;
-       MY(size_max) = 2;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 4;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '1.0 1.0 1.0';
-       MY(velocitymultiplier) = -0.020000;
-}
-SUB(tr_hagar) {
-       MY(airfriction) = 8;
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 144;
-       MY(alpha_fade) = 988;
-       MY(color_min) = "0xffdf72";
-       MY(color_max) = "0x811200";
-       MY(notunderwater) = true;
-       MY(sizeincrease) = -15;
-       MY(size_min) = 5;
-       MY(size_max) = 2;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(trailspacing) = 4;
-       MY(type) = "static";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = -1;
-}
-SUB(tr_hagar) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x404040";
-       MY(color_max) = "0x808080";
-       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';
-}
-
-DEF(damage_laser);
-SUB(damage_laser) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x880000";
-       MY(color_max) = "0xff4400";
-       MY(count) = 3;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 8;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.4 0.4 0.6';
-}
-
-DEF(damage_shotgun);
-SUB(damage_shotgun) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.600000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '64.0 64.0 64.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_shotgun) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x420000";
-       MY(count) = 1;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 8;
-       MY(size_max) = 16;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_shotgun_alien);
-SUB(damage_shotgun_alien) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xDC9BCD";
-       MY(color_max) = "0xDC9BCD";
-       MY(count) = 0.600000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '64.0 64.0 64.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_shotgun_alien) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x204010";
-       MY(count) = 1;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 8;
-       MY(size_max) = 16;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_shotgun_robot);
-SUB(damage_shotgun_robot) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xC0D890";
-       MY(color_max) = "0xC0D890";
-       MY(count) = 0.600000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '64.0 64.0 64.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_shotgun_robot) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x301860";
-       MY(count) = 1;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 8;
-       MY(size_max) = 16;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_uzi);
-SUB(damage_uzi) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_uzi) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x420000";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_uzi_alien);
-SUB(damage_uzi_alien) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xDC9BCD";
-       MY(color_max) = "0xDC9BCD";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_uzi_alien) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x204010";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_uzi_robot);
-SUB(damage_uzi_robot) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xC0D890";
-       MY(color_max) = "0xC0D890";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_uzi_robot) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x301860";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_minelayer);
-SUB(damage_minelayer) {
-       MY(alpha_min) = 512;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 3;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -15;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(damage_minelayer) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 2;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = 5;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(damage_grenadelauncher);
-SUB(damage_grenadelauncher) {
-       MY(alpha_min) = 512;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 3;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -15;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(damage_grenadelauncher) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 2;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = 5;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(damage_electro);
-SUB(damage_electro) {
-       MY(airfriction) = -0.500000;
-       MY(alpha_min) = 48;
-       MY(alpha_max) = 8;
-       MY(alpha_fade) = 48;
-       MY(color_min) = "0x66ffff";
-       MY(color_max) = "0x2288ff";
-       MY(count) = 2;
-       MY(gravity) = -0.000100;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '3.0 3.0 3.0';
-       MY(startangle_min) = 180;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = -14;
-       MY(size_min) = 6;
-       MY(size_max) = 10;
-       MY(tex_min) = 47;
-       MY(tex_max) = 47;
-       MY(type) = "static";
-       MY(velocityjitter) = '8.0 8.0 16.0';
-}
-SUB(damage_electro) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0x2244ff";
-       MY(color_max) = "0x002266";
-       MY(count) = 4;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 10;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.4 0.4 0.6';
-}
-SUB(damage_electro) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 768;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x003090";
-       MY(color_max) = "0x00CCFF";
-       MY(count) = 0.500000;
-       MY(gravity) = 0.200000;
-       MY(liquidfriction) = 0.800000;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_min) = 66;
-       MY(tex_max) = 68;
-       MY(type) = "spark";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-}
-
-DEF(damage_crylink);
-SUB(damage_crylink) {
-       MY(airfriction) = -0.500000;
-       MY(alpha_min) = 48;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 48;
-       MY(color_min) = "0xff44ff";
-       MY(color_max) = "0x9966ff";
-       MY(count) = 2;
-       MY(gravity) = -0.000100;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '3.0 3.0 3.0';
-       MY(startangle_min) = 180;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = -8;
-       MY(size_min) = 0.500000;
-       MY(size_max) = 1;
-       MY(tex_min) = 38;
-       MY(tex_max) = 38;
-       MY(type) = "static";
-       MY(velocityjitter) = '10.0 10.0 20.0';
-}
-SUB(damage_crylink) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0x8844ff";
-       MY(color_max) = "0x662244";
-       MY(count) = 4;
-       MY(gravity) = 0.001000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 6;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.4 0.4 0.6';
-}
-SUB(damage_crylink) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 192;
-       MY(alpha_max) = 192;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x903090";
-       MY(color_max) = "0xFFD0FF";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 0.800000;
-       MY(sizeincrease) = -5;
-       MY(size_min) = 0.500000;
-       MY(size_max) = 0.500000;
-       MY(type) = "spark";
-       MY(velocityjitter) = '12.0 12.0 12.0';
-}
-
-DEF(damage_hlac);
-SUB(damage_hlac) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x880000";
-       MY(color_max) = "0xff4400";
-       MY(count) = 3;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 10;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.4 0.4 0.6';
-}
-
-DEF(damage_nex);
-SUB(damage_nex) {
-       MY(airfriction) = -0.500000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 8;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x88ffff";
-       MY(count) = 1;
-       MY(gravity) = -0.000100;
-       MY(liquidfriction) = 0.600000;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(startangle_min) = 180;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = -14;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_min) = 47;
-       MY(tex_max) = 47;
-       MY(type) = "static";
-       MY(velocityjitter) = '8.0 8.0 16.0';
-}
-SUB(damage_nex) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0x6688ff";
-       MY(color_max) = "0x226688";
-       MY(count) = 2;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 8;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.5 0.5 0.8';
-}
-SUB(damage_nex) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 255;
-       MY(alpha_max) = 255;
-       MY(alpha_fade) = 112;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0xD9FDFF";
-       MY(count) = 0.200000;
-       MY(gravity) = 1;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.700000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '100.0 100.0 300.0';
-       MY(velocitymultiplier) = 3;
-}
-
-DEF(damage_minstanex);
-SUB(damage_minstanex) {
-       MY(airfriction) = -0.500000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 8;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x88ffff";
-       MY(count) = 2;
-       MY(gravity) = -0.000100;
-       MY(liquidfriction) = 0.600000;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(startangle_min) = 180;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = -14;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_min) = 47;
-       MY(tex_max) = 47;
-       MY(type) = "static";
-       MY(velocityjitter) = '8.0 8.0 16.0';
-}
-SUB(damage_minstanex) {
-       MY(airfriction) = -0.350000;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0x6688ff";
-       MY(color_max) = "0x226688";
-       MY(count) = 4;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_max) = 180;
-       MY(spin_min) = -30;
-       MY(spin_max) = 30;
-       MY(sizeincrease) = 8;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '0.5 0.5 0.8';
-}
-SUB(damage_minstanex) {
-       MY(airfriction) = 2;
-       MY(alpha_min) = 255;
-       MY(alpha_max) = 255;
-       MY(alpha_fade) = 112;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0xD9FDFF";
-       MY(count) = 0.200000;
-       MY(gravity) = 1;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.700000;
-       MY(tex_min) = 41;
-       MY(tex_max) = 41;
-       MY(type) = "spark";
-       MY(velocityjitter) = '100.0 100.0 300.0';
-       MY(velocitymultiplier) = 3;
-}
-
-DEF(damage_rifle);
-SUB(damage_rifle) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xA8FFFF";
-       MY(color_max) = "0xA8FFFFF";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_rifle) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x420000";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_rifle_alien);
-SUB(damage_rifle_alien) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xDC9BCD";
-       MY(color_max) = "0xDC9BCD";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_rifle_alien) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x204010";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_rifle_robot);
-SUB(damage_rifle_robot) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = -1;
-       MY(color_min) = "0xC0D890";
-       MY(color_max) = "0xC0D890";
-       MY(count) = 0.300000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(staincolor_min) = "0x808080";
-       MY(staincolor_max) = "0x808080";
-       MY(staintex_min) = 16;
-       MY(staintex_max) = 24;
-       MY(tex_min) = 24;
-       MY(tex_max) = 32;
-       MY(type) = "blood";
-       MY(velocityjitter) = '32.0 32.0 32.0';
-       MY(velocitymultiplier) = 5;
-}
-SUB(damage_rifle_robot) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 400;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x301860";
-       MY(count) = 1;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-}
-
-DEF(damage_seeker);
-SUB(damage_seeker) {
-       MY(alpha_min) = 512;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x8f0c00";
-       MY(color_max) = "0xff2200";
-       MY(count) = 3;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(damage_seeker) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 2;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(damage_hagar);
-SUB(damage_hagar) {
-       MY(alpha_min) = 512;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x8f0c00";
-       MY(color_max) = "0xff3a00";
-       MY(count) = 3;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(damage_hagar) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 2;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 2;
-       MY(size_max) = 4;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(damage_fireball);
-SUB(damage_fireball) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 16;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x8f0d00";
-       MY(color_max) = "0xff5a00";
-       MY(count) = 4;
-       MY(gravity) = -0.500000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '8.0 8.0 8.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 50.0';
-}
-SUB(damage_fireball) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 4;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '6.0 6.0 6.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(damage_rocketlauncher);
-SUB(damage_rocketlauncher) {
-       MY(alpha_min) = 512;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x8f0c00";
-       MY(color_max) = "0xff2a00";
-       MY(count) = 3;
-       MY(gravity) = -0.700000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(tex_min) = 48;
-       MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '22.0 22.0 30.0';
-}
-SUB(damage_rocketlauncher) {
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 32;
-       MY(alpha_fade) = 128;
-       MY(color_min) = "0x000000";
-       MY(color_max) = "0x111111";
-       MY(count) = 3;
-       MY(gravity) = -0.300000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '4.0 4.0 4.0';
-       MY(sizeincrease) = 10;
-       MY(size_min) = 4;
-       MY(size_max) = 8;
-       MY(tex_max) = 8;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '11.0 11.0 50.0';
-}
-
-DEF(fireflies);
-SUB(fireflies) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 70;
-       MY(bounce) = -1;
-       MY(color_min) = "0xff9600";
-       MY(color_max) = "0xffefb8";
-       MY(count) = 1;
-       MY(originjitter) = '32.0 32.0 32.0';
-       MY(originoffset) = '8.0 8.0 8.0';
-       MY(sizeincrease) = -0.300000;
-       MY(size_min) = 2;
-       MY(size_max) = 3;
-       MY(tex_min) = 38;
-       MY(tex_max) = 38;
-       MY(time_min) = 1;
-       MY(time_max) = 2;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 64.0';
-       MY(velocityoffset) = '2.0 2.0 2.0';
-}
-
-DEF(healray_muzzleflash);
-SUB(healray_muzzleflash) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x283880";
-       MY(color_max) = "0x283880";
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '1.5 3.0 6.0';
-       MY(lightradiusfade) = 2000;
-       MY(lightradius) = 200;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 20;
-       MY(size_max) = 20;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 0.010000;
-}
-SUB(healray_muzzleflash) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 150;
-       MY(alpha_fade) = 1924;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0x00f0ff";
-       MY(count) = 22;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(sizeincrease) = 3;
-       MY(size_min) = 1;
-       MY(size_max) = 15;
-       MY(stretchfactor) = 3.900000;
-       MY(tex_min) = 71;
-       MY(tex_max) = 73;
-       MY(type) = "spark";
-       MY(velocityjitter) = '150.0 150.0 150.0';
-       MY(velocitymultiplier) = 0.400000;
-}
-SUB(healray_muzzleflash) {
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 228;
-       MY(alpha_fade) = 4024;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0x00f0ff";
-       MY(count) = 4;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.200000;
-       MY(tex_min) = 70;
-       MY(tex_max) = 70;
-       MY(type) = "spark";
-       MY(velocityjitter) = '650.0 650.0 650.0';
-       MY(velocitymultiplier) = 1.100000;
-}
-
-DEF(healray_impact);
-SUB(healray_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(color_min) = "0xd800ff";
-       MY(color_max) = "0xd800ff";
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '0.0 4.4 0.0';
-       MY(lightradiusfade) = 450;
-       MY(lightradius) = 125;
-       MY(originjitter) = '17.0 17.0 17.0';
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 59;
-       MY(tex_max) = 59;
-       MY(type) = "decal";
-}
-SUB(healray_impact) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 350;
-       MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x84c52f";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 1400;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
-}
-SUB(healray_impact) {
-       MY(airfriction) = 6;
-       MY(alpha_min) = 156;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x84c52f";
-       MY(count) = 30;
-       MY(gravity) = 2;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 70;
-       MY(tex_max) = 70;
-       MY(type) = "spark";
-       MY(velocityjitter) = '1112.0 1112.0 1112.0';
-}
-SUB(healray_impact) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 456;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x84c52f";
-       MY(count) = 15;
-       MY(gravity) = -2;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -90;
-       MY(spin_max) = 90;
-       MY(size_min) = 2;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '120.0 120.0 420.0';
-}
-
-DEF(bigplasma_muzzleflash);
-SUB(bigplasma_muzzleflash) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 812;
-       MY(color_min) = "0x283880";
-       MY(color_max) = "0x283880";
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '1.5 3.0 6.0';
-       MY(lightradiusfade) = 2000;
-       MY(lightradius) = 200;
-       MY(originjitter) = '1.5 1.5 1.5';
-       MY(sizeincrease) = -10;
-       MY(size_min) = 50;
-       MY(size_max) = 50;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '6.0 6.0 6.0';
-       MY(velocitymultiplier) = 0.010000;
-}
-SUB(bigplasma_muzzleflash) {
-       MY(alpha_min) = 56;
-       MY(alpha_max) = 56;
-       MY(alpha_fade) = 1112;
-       MY(color_min) = "0x00f0ff";
-       MY(color_max) = "0x00f0ff";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 300;
-       MY(size_min) = 20;
-       MY(size_max) = 20;
-       MY(tex_min) = 74;
-       MY(tex_max) = 74;
-       MY(type) = "smoke";
-}
-SUB(bigplasma_muzzleflash) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 50;
-       MY(alpha_max) = 150;
-       MY(alpha_fade) = 1924;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0x00f0ff";
-       MY(count) = 14;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(sizeincrease) = 135;
-       MY(size_min) = 5;
-       MY(size_max) = 10;
-       MY(stretchfactor) = 1.900000;
-       MY(tex_min) = 51;
-       MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '350.0 350.0 350.0';
-       MY(velocitymultiplier) = 0.400000;
-}
-SUB(bigplasma_muzzleflash) {
-       MY(alpha_min) = 110;
-       MY(alpha_max) = 228;
-       MY(alpha_fade) = 4024;
-       MY(color_min) = "0xD9FDFF";
-       MY(color_max) = "0x00f0ff";
-       MY(count) = 4;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 20;
-       MY(size_max) = 20;
-       MY(stretchfactor) = 0.200000;
-       MY(tex_min) = 70;
-       MY(tex_max) = 70;
-       MY(type) = "spark";
-       MY(velocityjitter) = '650.0 650.0 650.0';
-       MY(velocitymultiplier) = 1.100000;
-}
-
-DEF(bigplasma_impact);
-SUB(bigplasma_impact) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '3.1 4.4 10.0';
-       MY(lightradiusfade) = 450;
-       MY(lightradius) = 125;
-       MY(originjitter) = '17.0 17.0 17.0';
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 59;
-       MY(tex_max) = 59;
-       MY(type) = "decal";
-}
-SUB(bigplasma_impact) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 350;
-       MY(color_min) = "0x80C0FF";
-       MY(color_max) = "0x80C0FF";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 1400;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
-}
-SUB(bigplasma_impact) {
-       MY(airfriction) = 6;
-       MY(alpha_min) = 156;
-       MY(alpha_max) = 300;
-       MY(alpha_fade) = 1024;
-       MY(color_min) = "0x629dff";
-       MY(color_max) = "0x0018ff";
-       MY(count) = 30;
-       MY(gravity) = 2;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 70;
-       MY(tex_max) = 70;
-       MY(type) = "spark";
-       MY(velocityjitter) = '1512.0 1512.0 1512.0';
-}
-SUB(bigplasma_impact) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 456;
-       MY(alpha_fade) = 1512;
-       MY(color_min) = "0x629dff";
-       MY(color_max) = "0x0018ff";
-       MY(count) = 15;
-       MY(originjitter) = '20.0 20.0 20.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(bigplasma_impact) {
-       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) = 16;
-       MY(gravity) = 0.400000;
-       MY(originjitter) = '80.0 80.0 10.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 2;
-       MY(spin_max) = -2;
-       MY(sizeincrease) = 30;
-       MY(size_min) = 60;
-       MY(size_max) = 30;
-       MY(tex_max) = 7;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '100.0 100.0 200.0';
-       MY(velocityoffset) = '0.0 0.0 180.0';
-}
-SUB(bigplasma_impact) {
-       MY(airfriction) = 0.040000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 328;
-       MY(alpha_fade) = 310;
-       MY(color_min) = "0x222222";
-       MY(color_max) = "0x000000";
-       MY(count) = 10;
-       MY(gravity) = -0.200000;
-       MY(originjitter) = '80.0 80.0 80.0';
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = 20;
-       MY(spin_max) = -20;
-       MY(sizeincrease) = -10;
-       MY(size_min) = 60;
-       MY(size_max) = 70;
-       MY(tex_max) = 7;
-       MY(type) = "alphastatic";
-       MY(velocityjitter) = '10.0 10.0 10.0';
-}
-
-#define flag_touch(name, colormin, colormax) \
-       DEF(name##flag_touch); \
-       SUB(name##flag_touch) { \
-               MY(airfriction) = 3; \
-               MY(alpha_max) = 256; \
-               MY(alpha_fade) = 556; \
-               MY(bounce) = 1.500000; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(count) = 35; \
-               MY(gravity) = 1; \
-               MY(originjitter) = '1.0 1.0 1.0'; \
-               MY(size_min) = 1; \
-               MY(size_max) = 3; \
-               MY(tex_min) = 40; \
-               MY(tex_max) = 40; \
-               MY(type) = "spark"; \
-               MY(velocityjitter) = '300.0 300.0 300.0'; \
-               MY(velocitymultiplier) = 0.500000; \
-       }
-
-flag_touch(red,        "0xFF0000", "0x970000")
-flag_touch(blue,       "0x0000FF", "0x000097")
-#undef flag_touch
-
-#define pass(name, colormin, colormax) \
-       DEF(name##_pass); \
-       SUB(name##_pass) { \
-               MY(airfriction) = 5; \
-               MY(alpha_min) = 64; \
-               MY(alpha_max) = 128; \
-               MY(alpha_fade) = 64; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(sizeincrease) = 2; \
-               MY(size_min) = 2; \
-               MY(size_max) = 2; \
-               MY(tex_min) = 32; \
-               MY(tex_max) = 32; \
-               MY(trailspacing) = 64; \
-               MY(type) = "static"; \
-       } \
-       SUB(name##_pass) { \
-               MY(airfriction) = 9; \
-               MY(alpha_min) = 32; \
-               MY(alpha_max) = 64; \
-               MY(alpha_fade) = 32; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(sizeincrease) = 8; \
-               MY(size_min) = 1; \
-               MY(size_max) = 1; \
-               MY(tex_max) = 8; \
-               MY(trailspacing) = 12; \
-               MY(type) = "static"; \
-               MY(velocityjitter) = '64.0 64.0 64.0'; \
-       } \
-       SUB(name##_pass) { \
-               MY(alpha_min) = 256; \
-               MY(alpha_max) = 256; \
-               MY(alpha_fade) = 1280; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(size_min) = 4; \
-               MY(size_max) = 4; \
-               MY(trailspacing) = 12; \
-               MY(type) = "static"; \
-       } \
-       /**/
-
-pass(red,      "0xFF0000", "0x970000")
-pass(blue,     "0x0000FF", "0x000097")
-#undef pass
-
-#define cap(name, colormin, colormax) \
-       DEF(name##_cap); \
-       SUB(name##_cap) { \
-               MY(airfriction) = 2; \
-               MY(alpha_max) = 256; \
-               MY(alpha_fade) = 100; \
-               MY(bounce) = 1.500000; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(count) = 500; \
-               MY(originjitter) = '1.0 1.0 1.0'; \
-               MY(size_min) = 1; \
-               MY(size_max) = 1; \
-               MY(stretchfactor) = 0.600000; \
-               MY(tex_min) = 64; \
-               MY(tex_max) = 64; \
-               MY(type) = "spark"; \
-               MY(velocityjitter) = '1000.0 1000.0 1500.0'; \
-               MY(velocitymultiplier) = 0.500000; \
-       } \
-       SUB(name##_cap) { \
-               MY(alpha_min) = 190; \
-               MY(alpha_max) = 190; \
-               MY(alpha_fade) = 180; \
-               MY(color_min) = colormin; \
-               MY(color_max) = colormax; \
-               MY(countabsolute) = 1; \
-               MY(sizeincrease) = -80; \
-               MY(size_min) = 150; \
-               MY(size_max) = 150; \
-               MY(tex_min) = 65; \
-               MY(tex_max) = 65; \
-               MY(type) = "smoke"; \
-       } \
-       /**/
-
-cap(red,       "0xFF0000", "0x970000")
-cap(blue,      "0x0000FF", "0x000097")
-#undef cap
-
-#define spawn_point(name, color) \
-       DEF(spawn_point_##name); \
-       SUB(spawn_point_##name) { \
-               MY(airfriction) = 0.200000; \
-               MY(alpha_min) = 64; \
-               MY(alpha_max) = 128; \
-               MY(alpha_fade) = 128; \
-               MY(color_min) = color; \
-               MY(color_max) = color; \
-               MY(count) = 37.500000; \
-               MY(gravity) = -0.100000; \
-               MY(liquidfriction) = 0.800000; \
-               MY(originjitter) = '16.0 16.0 64.0'; \
-               MY(size_min) = 1; \
-               MY(size_max) = 2; \
-               MY(type) = "static"; \
-               MY(velocityjitter) = '32.0 32.0 0.0'; \
-       }
-
-spawn_point(red,               "0xFF0F0F")
-spawn_point(blue,              "0x0F0FFF")
-spawn_point(yellow,    "0xFFFF0F")
-spawn_point(pink,              "0xFF0FFF")
-spawn_point(neutral,   "0xFFFFFF")
-#undef spawn_point
-
-#define spawn_event(name, color) \
-       DEF(spawn_event_##name); \
-       SUB(spawn_event_##name) { \
-               MY(airfriction) = 2; \
-               MY(alpha_max) = 256; \
-               MY(alpha_fade) = 256; \
-               MY(bounce) = 1; \
-               MY(color_min) = color; \
-               MY(color_max) = color; \
-               MY(count) = 100; \
-               MY(originjitter) = '1.0 1.0 1.0'; \
-               MY(size_min) = 1; \
-               MY(size_max) = 1; \
-               MY(stretchfactor) = 0.600000; \
-               MY(tex_min) = 64; \
-               MY(tex_max) = 64; \
-               MY(type) = "spark"; \
-               MY(velocityjitter) = '500.0 500.0 500.0'; \
-               MY(velocitymultiplier) = 0.100000; \
-       } \
-       SUB(spawn_event_##name) { \
-               MY(alpha_min) = 190; \
-               MY(alpha_max) = 190; \
-               MY(alpha_fade) = 180; \
-               MY(color_min) = color; \
-               MY(color_max) = color; \
-               MY(countabsolute) = 1; \
-               MY(sizeincrease) = -80; \
-               MY(size_min) = 100; \
-               MY(size_max) = 100; \
-               MY(tex_min) = 65; \
-               MY(tex_max) = 65; \
-               MY(type) = "smoke"; \
-       } \
-       /**/
-
-spawn_event(red,               "0xFF0F0F")
-spawn_event(blue,              "0x0F0FFF")
-spawn_event(yellow,    "0xFFFF0F")
-spawn_event(pink,              "0xFF0FFF")
-spawn_event(neutral,   "0xFFFFFF")
-#undef spawn_event
-
-#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) { \
-               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) { \
-               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
-
-DEF(nade_red_burn);
-SUB(nade_red_burn) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff3c00";
-       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_red_burn) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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_red_burn) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff3c00";
-       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_red_burn) {
-       MY(alpha_min) = 300;
-       MY(alpha_max) = 900;
-       MY(alpha_fade) = 1500;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff3c00";
-       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';
-}
-
-DEF(nade_blue_burn);
-SUB(nade_blue_burn) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0x006cff";
-       MY(color_max) = "0x0600ff";
-       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_blue_burn) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0x0600ff";
-       MY(color_max) = "0x9794ff";
-       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_blue_burn) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x006cff";
-       MY(color_max) = "0x0600ff";
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(count) = 32;
        MY(gravity) = -0.125000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
+       MY(liquidfriction) = 0.250000;
+       MY(originjitter) = '160.0 160.0 160.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
        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';
+       MY(velocityjitter) = '444.0 444.0 444.0';
 }
-SUB(nade_blue_burn) {
-       MY(color_min) = "0x006cff";
-       MY(color_max) = "0x0600ff";
-       MY(sizeincrease) = -30;
-       MY(size_min) = 25;
-       MY(size_max) = 25;
+// underwatershockwave
+SUB(explosion_big) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 300;
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 2900;
+       MY(size_min) = 30;
+       MY(size_max) = 30;
        MY(tex_min) = 33;
        MY(tex_max) = 33;
-       MY(trailspacing) = 16;
        MY(type) = "smoke";
+       MY(underwater) = true;
+       MY(velocitymultiplier) = 0.300000;
 }
 
-DEF(nade_yellow_burn);
-SUB(nade_yellow_burn) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       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";
+// generic explosion size:medium (it leaves rising smoke for a longer time)
+DEF(explosion_medium);
+// shockwave
+SUB(explosion_medium) {
+       MY(alpha_min) = 56;
+       MY(alpha_max) = 56;
+       MY(alpha_fade) = 330;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 2400;
+       MY(size_min) = 72;
+       MY(size_max) = 72;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "static";
 }
-SUB(nade_yellow_burn) {
+// fire effect
+SUB(explosion_medium) {
+       MY(airfriction) = 8;
        MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 712;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 32;
+       MY(liquidfriction) = 8;
        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";
+       MY(originjitter) = '30.0 30.0 30.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -500;
+       MY(spin_max) = 500;
+       MY(sizeincrease) = 45;
+       MY(size_min) = 133;
+       MY(size_max) = 144;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "static";
+       MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
-SUB(nade_yellow_burn) {
-       MY(alpha_min) = 256;
+// fire effect 2
+SUB(explosion_medium) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 200;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       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_yellow_burn) {
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(sizeincrease) = -30;
-       MY(size_min) = 25;
-       MY(size_max) = 25;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(trailspacing) = 16;
-       MY(type) = "smoke";
-}
-
-DEF(nade_pink_burn);
-SUB(nade_pink_burn) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       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";
+       MY(alpha_fade) = 612;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 32;
+       MY(gravity) = -2;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '30.0 30.0 30.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -150;
+       MY(spin_max) = 150;
+       MY(sizeincrease) = 40;
+       MY(size_min) = 73;
+       MY(size_max) = 94;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "static";
+       MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
-SUB(nade_pink_burn) {
+// fire rays
+SUB(explosion_medium) {
+       MY(airfriction) = -3;
        MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 800;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 14;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '40.0 40.0 40.0';
+       MY(sizeincrease) = 40;
+       MY(size_min) = 43;
+       MY(size_max) = 74;
+       MY(stretchfactor) = 8;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "spark";
+       MY(velocityjitter) = '512.0 512.0 512.0';
+}
+// smoke
+SUB(explosion_medium) {
+       MY(airfriction) = 3;
+       MY(alpha_min) = 300;
+       MY(alpha_max) = 650;
+       MY(alpha_fade) = 756;
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 5;
        MY(notunderwater) = true;
+       MY(originjitter) = '100.0 100.0 100.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -20;
+       MY(spin_max) = 20;
        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";
+       MY(size_min) = 250;
+       MY(size_max) = 300;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '200.0 200.0 200.0';
 }
-SUB(nade_pink_burn) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
+// smoke 2
+SUB(explosion_medium) {
+       MY(airfriction) = 3;
+       MY(alpha_min) = 300;
+       MY(alpha_max) = 650;
        MY(alpha_fade) = 256;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       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_pink_burn) {
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       MY(sizeincrease) = -30;
-       MY(size_min) = 25;
-       MY(size_max) = 25;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(trailspacing) = 16;
-       MY(type) = "smoke";
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 10;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '100.0 100.0 100.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -20;
+       MY(spin_max) = 20;
+       MY(sizeincrease) = 50;
+       MY(size_min) = 50;
+       MY(size_max) = 100;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '500.0 500.0 500.0';
+       MY(velocityoffset) = '0.0 0.0 200.0';
 }
-
-DEF(nade_neutral_burn);
-SUB(nade_neutral_burn) {
-       MY(alpha_min) = 100;
-       MY(alpha_max) = 100;
-       MY(alpha_fade) = 250;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       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";
+// smoke rays
+SUB(explosion_medium) {
+       MY(alpha_min) = 140;
+       MY(alpha_max) = 255;
+       MY(alpha_fade) = 350;
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 13;
+       MY(notunderwater) = true;
+       MY(originjitter) = '40.0 40.0 40.0';
+       MY(sizeincrease) = 100;
+       MY(size_min) = 150;
+       MY(size_max) = 200;
+       MY(stretchfactor) = 50;
+       MY(tex_max) = 8;
+       MY(type) = "spark";
+       MY(velocityjitter) = '250.0 250.0 250.0';
 }
-SUB(nade_neutral_burn) {
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 200;
-       MY(alpha_fade) = 1000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
+// bouncing sparks
+SUB(explosion_medium) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 644;
+       MY(alpha_max) = 956;
+       MY(alpha_fade) = 984;
+       MY(color_min) = "0xffa35b";
+       MY(color_max) = "0xfff2be";
+       MY(count) = 14;
+       MY(gravity) = 1;
+       MY(liquidfriction) = 0.800000;
        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";
+       MY(originjitter) = '100.0 100.0 100.0';
+       MY(size_min) = 2;
+       MY(size_max) = 3;
+       MY(stretchfactor) = 0.700000;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '624.0 624.0 624.0';
+       MY(velocityoffset) = '0.0 0.0 370.0';
 }
-SUB(nade_neutral_burn) {
-       MY(alpha_min) = 256;
+// underwater bubbles
+SUB(explosion_medium) {
+       MY(alpha_min) = 128;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
+       MY(alpha_fade) = 64;
        MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(count) = 32;
        MY(gravity) = -0.125000;
-       MY(liquidfriction) = 4;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
+       MY(liquidfriction) = 0.250000;
+       MY(originjitter) = '160.0 160.0 160.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
        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';
+       MY(velocityjitter) = '444.0 444.0 444.0';
 }
-SUB(nade_neutral_burn) {
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(sizeincrease) = -30;
-       MY(size_min) = 25;
-       MY(size_max) = 25;
+// underwatershockwave
+SUB(explosion_medium) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 300;
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 2900;
+       MY(size_min) = 30;
+       MY(size_max) = 30;
        MY(tex_min) = 33;
        MY(tex_max) = 33;
-       MY(trailspacing) = 16;
        MY(type) = "smoke";
+       MY(underwater) = true;
+       MY(velocitymultiplier) = 0.300000;
 }
 
-DEF(nade_blue_explode);
-SUB(nade_blue_explode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '20.0 20.0 100.0';
-       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_blue_explode) {
-       MY(alpha_min) = 80;
-       MY(alpha_max) = 80;
-       MY(alpha_fade) = 650;
-       MY(color_min) = "0x80C0FF";
-       MY(color_max) = "0x80C0FF";
+// generic explosion size:small (its fire only, made to support other explosions)
+DEF(explosion_small);
+// shockwave
+SUB(explosion_small) {
+       MY(alpha_min) = 56;
+       MY(alpha_max) = 56;
+       MY(alpha_fade) = 330;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
        MY(countabsolute) = 1;
-       MY(sizeincrease) = 1800;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
+       MY(sizeincrease) = 2400;
+       MY(size_min) = 22;
+       MY(size_max) = 22;
        MY(tex_min) = 33;
        MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
+       MY(type) = "static";
 }
-SUB(nade_blue_explode) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 400;
-       MY(alpha_max) = 656;
-       MY(alpha_fade) = 2000;
-       MY(color_min) = "0x629dff";
-       MY(color_max) = "0x0018ff";
+// fire effect
+SUB(explosion_small) {
+       MY(airfriction) = 5;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 1212;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
        MY(count) = 16;
+       MY(liquidfriction) = 8;
        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(spin_min) = -500;
+       MY(spin_max) = 500;
+       MY(sizeincrease) = 45;
+       MY(size_min) = 1;
+       MY(size_max) = 44;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '320.0 320.0 320.0';
+       MY(type) = "static";
+       MY(velocityjitter) = '512.0 512.0 512.0';
 }
-SUB(nade_blue_explode) {
-       MY(airfriction) = -9;
-       MY(alpha_min) = 1500;
-       MY(alpha_max) = 3000;
-       MY(alpha_fade) = 13000;
-       MY(color_min) = "0x629dff";
-       MY(color_max) = "0x0018ff";
-       MY(count) = 8;
+// fire effect 2
+SUB(explosion_small) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 812;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 16;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -150;
+       MY(spin_max) = 150;
        MY(sizeincrease) = 40;
-       MY(size_min) = 60;
-       MY(size_max) = 90;
-       MY(stretchfactor) = 80;
+       MY(size_min) = 73;
+       MY(size_max) = 94;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '30.0 30.0 30.0';
+       MY(type) = "static";
+       MY(velocityjitter) = '912.0 912.0 912.0';
 }
-SUB(nade_blue_explode) {
-       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';
+// fire rays
+SUB(explosion_small) {
+       MY(airfriction) = -3;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 1300;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 14;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '40.0 40.0 40.0';
+       MY(sizeincrease) = 30;
+       MY(size_min) = 13;
+       MY(size_max) = 54;
+       MY(stretchfactor) = 8;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "spark";
+       MY(velocityjitter) = '512.0 512.0 512.0';
 }
-SUB(nade_blue_explode) {
+// underwater bubbles
+SUB(explosion_small) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 64;
@@ -10618,1666 +6903,2186 @@ SUB(nade_blue_explode) {
        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(originjitter) = '160.0 160.0 160.0';
+       MY(size_min) = 1;
+       MY(size_max) = 3;
        MY(tex_min) = 62;
        MY(tex_max) = 62;
        MY(type) = "bubble";
        MY(underwater) = true;
-       MY(velocityjitter) = '196.0 196.0 196.0';
+       MY(velocityjitter) = '144.0 144.0 144.0';
+}
+// underwatershockwave
+SUB(explosion_small) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 300;
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 1200;
+       MY(size_min) = 30;
+       MY(size_max) = 30;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "smoke";
+       MY(underwater) = true;
+}
+
+// big smoke ( for spamming on damaged stuff )
+DEF(smoke_big);
+SUB(smoke_big) {
+       MY(airfriction) = 4;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 750;
+       MY(alpha_fade) = 200;
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 3;
+       MY(gravity) = -0.500000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '55.0 55.0 55.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -20;
+       MY(spin_max) = 20;
+       MY(sizeincrease) = 15;
+       MY(size_min) = 30;
+       MY(size_max) = 60;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '140.0 140.0 200.0';
+       MY(velocityoffset) = '0.0 0.0 200.0';
+}
+
+// small smoke ( more precise than big one, for spamming on damaged parts like raptors spinner )
+DEF(smoke_small);
+SUB(smoke_small) {
+       MY(airfriction) = 4;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 750;
+       MY(alpha_fade) = 200;
+       MY(color_min) = "0x4F4B46";
+       MY(color_max) = "0x000000";
+       MY(count) = 3;
+       MY(gravity) = -0.500000;
+       MY(notunderwater) = true;
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -20;
+       MY(spin_max) = 20;
+       MY(sizeincrease) = -10;
+       MY(size_min) = 60;
+       MY(size_max) = 100;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '40.0 40.0 400.0';
+       MY(velocityoffset) = '0.0 0.0 200.0';
+}
+
+// metal impact effect
+DEF(impact_metal);
+SUB(impact_metal) {
+       MY(alpha_min) = 25;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 50;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x886666";
+       MY(count) = 1;
+       MY(gravity) = -0.010000;
+       MY(originjitter) = '20.0 20.0 5.0';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 3;
+       MY(size_max) = 6;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_blue_explode) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 484;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0x006cff";
-       MY(color_max) = "0x0600ff";
-       MY(count) = 8;
+// sparks
+SUB(impact_metal) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 255;
+       MY(alpha_max) = 255;
+       MY(alpha_fade) = 112;
+       MY(bounce) = 1.800000;
+       MY(color_min) = "0xFFCC22";
+       MY(color_max) = "0xFF4422";
+       MY(count) = 2;
        MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
-       MY(notunderwater) = true;
-       MY(originjitter) = '16.0 16.0 16.0';
-       MY(size_min) = 1;
+       MY(size_min) = 2;
        MY(size_max) = 2;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(stretchfactor) = 0.500000;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
        MY(type) = "spark";
-       MY(velocityjitter) = '424.0 424.0 624.0';
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(velocityjitter) = '200.0 200.0 300.0';
+       MY(velocitymultiplier) = 2;
 }
-SUB(nade_blue_explode) {
-       MY(airfriction) = 0.700000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(color_min) = "0x006cff";
-       MY(color_max) = "0x0600ff";
-       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';
+
+// stone impact effect
+DEF(impact_stone);
+SUB(impact_stone) {
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 75;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0xcc9966";
+       MY(count) = 1;
+       MY(gravity) = -0.010000;
+       MY(originjitter) = '20.0 20.0 5.0';
+       MY(sizeincrease) = 15;
+       MY(size_min) = 3;
+       MY(size_max) = 6;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_blue_explode) {
+// debris
+SUB(impact_stone) {
        MY(airfriction) = 0.500000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0x6a3d25";
-       MY(color_max) = "0xcac5b4";
-       MY(count) = 12;
+       MY(alpha_min) = 450;
+       MY(alpha_max) = 750;
+       MY(alpha_fade) = 300;
+       MY(bounce) = 1.200000;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x886644";
+       MY(count) = 1;
        MY(gravity) = 1.300000;
        MY(notunderwater) = true;
        MY(startangle_min) = -180;
        MY(startangle_max) = 180;
        MY(spin_min) = -1000;
        MY(spin_max) = 1000;
-       MY(size_min) = 2;
-       MY(size_max) = 6;
+       MY(size_min) = 1;
+       MY(size_max) = 2;
        MY(tex_min) = 66;
        MY(tex_max) = 68;
        MY(type) = "alphastatic";
-       MY(velocityjitter) = '324.0 324.0 524.0';
+       MY(velocityjitter) = '124.0 124.0 324.0';
 }
 
-DEF(nade_red_explode);
-SUB(nade_red_explode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '100.0 20.0 20.0';
-       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_red_explode) {
-       MY(alpha_min) = 80;
-       MY(alpha_max) = 80;
-       MY(alpha_fade) = 650;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2200;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
-}
-SUB(nade_red_explode) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 400;
-       MY(alpha_max) = 656;
-       MY(alpha_fade) = 2000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff4200";
-       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_red_explode) {
-       MY(airfriction) = -9;
-       MY(alpha_min) = 1500;
-       MY(alpha_max) = 3000;
-       MY(alpha_fade) = 13000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff4200";
-       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_red_explode) {
-       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_red_explode) {
-       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';
+// wood impact effect
+DEF(impact_wood);
+SUB(impact_wood) {
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 75;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0xcc9966";
+       MY(count) = 1;
+       MY(gravity) = -0.010000;
+       MY(originjitter) = '20.0 20.0 5.0';
+       MY(sizeincrease) = 10;
        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';
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_red_explode) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 484;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(count) = 8;
+// sparks
+SUB(impact_wood) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 255;
+       MY(alpha_max) = 255;
+       MY(alpha_fade) = 75;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x221100";
+       MY(color_max) = "0x221100";
+       MY(count) = 2;
        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(size_max) = 8;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
        MY(type) = "spark";
-       MY(velocityjitter) = '424.0 424.0 624.0';
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(velocityjitter) = '180.0 180.0 260.0';
+       MY(velocitymultiplier) = 2;
 }
-SUB(nade_red_explode) {
-       MY(airfriction) = 0.700000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+
+// flesh impact effect
+DEF(impact_flesh);
+SUB(impact_flesh) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x420000";
+       MY(count) = 0.500000;
+       MY(originjitter) = '11.0 11.0 11.0';
+       MY(size_min) = 8;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_red_explode) {
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 2500;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+// blood splash
+SUB(impact_flesh) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xA8FFFF";
+       MY(color_max) = "0xA8FFFFF";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 6;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '96.0 96.0 96.0';
+       MY(velocitymultiplier) = 5;
 }
 
-DEF(nade_yellow_explode);
-SUB(nade_yellow_explode) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '100.0 20.0 20.0';
-       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_yellow_explode) {
-       MY(alpha_min) = 80;
-       MY(alpha_max) = 80;
-       MY(alpha_fade) = 650;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2200;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
+// hagar trail
+DEF(tr_hagar);
+// smoke
+SUB(tr_hagar) {
+       MY(alpha_min) = 300;
+       MY(alpha_max) = 400;
+       MY(alpha_fade) = 780;
+       MY(bounce) = 1;
+       MY(color_min) = "0x101010";
+       MY(color_max) = "0x000000";
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 3;
+       MY(size_max) = 2;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 4;
        MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
+       MY(velocityjitter) = '1.0 1.0 1.0';
+       MY(velocitymultiplier) = -0.020000;
 }
-SUB(nade_yellow_explode) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 400;
-       MY(alpha_max) = 656;
-       MY(alpha_fade) = 2000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(count) = 16;
+// fire
+SUB(tr_hagar) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 144;
+       MY(alpha_fade) = 988;
+       MY(color_min) = "0xffdf72";
+       MY(color_max) = "0x811200";
        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_yellow_explode) {
-       MY(airfriction) = -9;
-       MY(alpha_min) = 1500;
-       MY(alpha_max) = 3000;
-       MY(alpha_fade) = 13000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(count) = 8;
-       MY(sizeincrease) = 40;
-       MY(size_min) = 60;
-       MY(size_max) = 90;
-       MY(stretchfactor) = 80;
+       MY(sizeincrease) = -15;
+       MY(size_min) = 5;
+       MY(size_max) = 2;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '30.0 30.0 30.0';
-}
-SUB(nade_yellow_explode) {
-       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';
+       MY(trailspacing) = 4;
+       MY(type) = "static";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = -1;
 }
-SUB(nade_yellow_explode) {
-       MY(alpha_min) = 128;
+// bubbles
+SUB(tr_hagar) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
+       MY(alpha_fade) = 256;
        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(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) = '196.0 196.0 196.0';
+       MY(velocityjitter) = '16.0 16.0 16.0';
 }
-SUB(nade_yellow_explode) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 484;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(count) = 8;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 0.800000;
+
+// laser damage effect
+DEF(damage_blaster);
+SUB(damage_blaster) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x880000";
+       MY(color_max) = "0xff4400";
+       MY(count) = 3;
        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';
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(startangle_max) = 180;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 8;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.4 0.4 0.6';
 }
-SUB(nade_yellow_explode) {
-       MY(airfriction) = 0.700000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+
+// shotgun damage effect, normal blood
+DEF(damage_shotgun);
+SUB(damage_shotgun) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xA8FFFF";
+       MY(color_max) = "0xA8FFFFF";
+       MY(count) = 0.600000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(velocitymultiplier) = 5;
+}
+// blood mist
+SUB(damage_shotgun) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x420000";
+       MY(count) = 1;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 8;
+       MY(size_max) = 16;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+}
+
+// shotgun damage effect, alien blood
+DEF(alien_damage_shotgun);
+SUB(alien_damage_shotgun) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xDC9BCD";
+       MY(color_max) = "0xDC9BCD";
+       MY(count) = 0.600000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(velocitymultiplier) = 5;
+}
+// blood mist
+SUB(alien_damage_shotgun) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x204010";
+       MY(count) = 1;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 8;
+       MY(size_max) = 16;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+}
+
+// shotgun damage effect, robot blood
+DEF(robot_damage_shotgun);
+SUB(robot_damage_shotgun) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xC0D890";
+       MY(color_max) = "0xC0D890";
+       MY(count) = 0.600000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(nade_yellow_explode) {
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 2500;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+// blood mist
+SUB(robot_damage_shotgun) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x301860";
+       MY(count) = 1;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 8;
+       MY(size_max) = 16;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
 
-DEF(nade_pink_explode);
-SUB(nade_pink_explode) {
+// machinegun damage effect, normal blood
+DEF(damage_machinegun);
+SUB(damage_machinegun) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '100.0 20.0 20.0';
-       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_pink_explode) {
-       MY(alpha_min) = 80;
-       MY(alpha_max) = 80;
-       MY(alpha_fade) = 650;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2200;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
-}
-SUB(nade_pink_explode) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 400;
-       MY(alpha_max) = 656;
-       MY(alpha_fade) = 2000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       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_pink_explode) {
-       MY(airfriction) = -9;
-       MY(alpha_min) = 1500;
-       MY(alpha_max) = 3000;
-       MY(alpha_fade) = 13000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       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_pink_explode) {
-       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';
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xA8FFFF";
+       MY(color_max) = "0xA8FFFFF";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(nade_pink_explode) {
-       MY(alpha_min) = 128;
+// blood mist
+SUB(damage_machinegun) {
+       MY(alpha_min) = 100;
        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';
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x420000";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_pink_explode) {
+
+// machinegun damage effect, alien blood
+DEF(alien_damage_machinegun);
+SUB(alien_damage_machinegun) {
        MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 484;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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_pink_explode) {
-       MY(airfriction) = 0.700000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xDC9BCD";
+       MY(color_max) = "0xDC9BCD";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(nade_pink_explode) {
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 2500;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       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';
+// blood mist
+SUB(alien_damage_machinegun) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x204010";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
 
-DEF(nade_neutral_explode);
-SUB(nade_neutral_explode) {
+// machinegun damage effect, robot blood
+DEF(robot_damage_machinegun);
+SUB(robot_damage_machinegun) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '100.0 20.0 20.0';
-       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";
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xC0D890";
+       MY(color_max) = "0xC0D890";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(nade_neutral_explode) {
-       MY(alpha_min) = 80;
-       MY(alpha_max) = 80;
-       MY(alpha_fade) = 650;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = 2200;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
-       MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
+// blood mist
+SUB(robot_damage_machinegun) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x301860";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(nade_neutral_explode) {
-       MY(airfriction) = 30;
-       MY(alpha_min) = 400;
-       MY(alpha_max) = 656;
-       MY(alpha_fade) = 2000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(count) = 16;
+
+// minelayer damage effect
+DEF(damage_minelayer);
+SUB(damage_minelayer) {
+       MY(alpha_min) = 512;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 3;
+       MY(gravity) = -0.500000;
        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(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -15;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
        MY(type) = "smoke";
-       MY(velocityjitter) = '320.0 320.0 320.0';
+       MY(velocityjitter) = '22.0 22.0 50.0';
 }
-SUB(nade_neutral_explode) {
-       MY(airfriction) = -9;
-       MY(alpha_min) = 1500;
-       MY(alpha_max) = 3000;
-       MY(alpha_fade) = 13000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(count) = 8;
-       MY(sizeincrease) = 40;
-       MY(size_min) = 60;
-       MY(size_max) = 90;
-       MY(stretchfactor) = 80;
+// smoke
+SUB(damage_minelayer) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 2;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(sizeincrease) = 5;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
+}
+
+// mortar damage effect
+DEF(damage_mortar);
+SUB(damage_mortar) {
+       MY(alpha_min) = 512;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 3;
+       MY(gravity) = -0.500000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -15;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
        MY(tex_min) = 48;
        MY(tex_max) = 55;
-       MY(type) = "spark";
-       MY(velocityjitter) = '30.0 30.0 30.0';
-}
-SUB(nade_neutral_explode) {
-       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';
+       MY(velocityjitter) = '22.0 22.0 50.0';
 }
-SUB(nade_neutral_explode) {
+// smoke
+SUB(damage_mortar) {
        MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 2;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(sizeincrease) = 5;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
+}
+
+// arc damage effect
+DEF(damage_arc);
+SUB(damage_arc) {
+       MY(airfriction) = -0.650000;
+       MY(alpha_min) = 48;
+       MY(alpha_max) = 8;
+       MY(alpha_fade) = 48;
+       MY(color_min) = "0x66ffff";
+       MY(color_max) = "0x2288ff";
+       MY(count) = 2;
+       MY(gravity) = -0.000100;
+       MY(liquidfriction) = 0.600000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(startangle_min) = 180;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = -14;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "static";
+       MY(velocityjitter) = '6.0 6.0 12.0';
+}
+// plasma smoke
+SUB(damage_arc) {
+       MY(airfriction) = -0.500000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 16;
        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(color_min) = "0x2244ff";
+       MY(color_max) = "0x002266";
+       MY(count) = 4;
+       MY(notunderwater) = true;
+       MY(originjitter) = '3.0 3.0 3.0';
+       MY(startangle_max) = 180;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 10;
        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';
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.3 0.3 0.5';
 }
-SUB(nade_neutral_explode) {
+// bouncing sparks
+SUB(damage_arc) {
        MY(airfriction) = 1;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 484;
-       MY(bounce) = 1.600000;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(count) = 8;
-       MY(gravity) = 1;
+       MY(alpha_min) = 768;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 256;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x003090";
+       MY(color_max) = "0x00CCFF";
+       MY(count) = 0.500000;
+       MY(gravity) = 0.150000;
+       MY(liquidfriction) = 0.600000;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(tex_min) = 66;
+       MY(tex_max) = 68;
+       MY(type) = "spark";
+       MY(velocityjitter) = '24.0 24.0 24.0';
+}
+
+// electro damage effect
+DEF(damage_electro);
+SUB(damage_electro) {
+       MY(airfriction) = -0.500000;
+       MY(alpha_min) = 48;
+       MY(alpha_max) = 8;
+       MY(alpha_fade) = 48;
+       MY(color_min) = "0x66ffff";
+       MY(color_max) = "0x2288ff";
+       MY(count) = 2;
+       MY(gravity) = -0.000100;
        MY(liquidfriction) = 0.800000;
        MY(notunderwater) = true;
-       MY(originjitter) = '16.0 16.0 16.0';
+       MY(originjitter) = '3.0 3.0 3.0';
+       MY(startangle_min) = 180;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = -14;
+       MY(size_min) = 6;
+       MY(size_max) = 10;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "static";
+       MY(velocityjitter) = '8.0 8.0 16.0';
+}
+// plasma smoke
+SUB(damage_electro) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x2244ff";
+       MY(color_max) = "0x002266";
+       MY(count) = 4;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(startangle_max) = 180;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 10;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.4 0.4 0.6';
+}
+// bouncing sparks
+SUB(damage_electro) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 768;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 256;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x003090";
+       MY(color_max) = "0x00CCFF";
+       MY(count) = 0.500000;
+       MY(gravity) = 0.200000;
+       MY(liquidfriction) = 0.800000;
        MY(size_min) = 1;
-       MY(size_max) = 2;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(size_max) = 1;
+       MY(tex_min) = 66;
+       MY(tex_max) = 68;
        MY(type) = "spark";
-       MY(velocityjitter) = '424.0 424.0 624.0';
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(velocityjitter) = '32.0 32.0 32.0';
+}
+
+// crylink damage effect
+DEF(damage_crylink);
+SUB(damage_crylink) {
+       MY(airfriction) = -0.500000;
+       MY(alpha_min) = 48;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 48;
+       MY(color_min) = "0xff44ff";
+       MY(color_max) = "0x9966ff";
+       MY(count) = 2;
+       MY(gravity) = -0.000100;
+       MY(liquidfriction) = 0.800000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '3.0 3.0 3.0';
+       MY(startangle_min) = 180;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = -8;
+       MY(size_min) = 0.500000;
+       MY(size_max) = 1;
+       MY(tex_min) = 38;
+       MY(tex_max) = 38;
+       MY(type) = "static";
+       MY(velocityjitter) = '10.0 10.0 20.0';
+}
+// plasma smoke
+SUB(damage_crylink) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x8844ff";
+       MY(color_max) = "0x662244";
+       MY(count) = 4;
+       MY(gravity) = 0.001000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(startangle_max) = 180;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 6;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.4 0.4 0.6';
 }
-SUB(nade_neutral_explode) {
-       MY(airfriction) = 0.700000;
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 684;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(count) = 16;
-       MY(gravity) = 0.500000;
+// floating sparks
+SUB(damage_crylink) {
+       MY(airfriction) = 0.200000;
+       MY(alpha_min) = 192;
+       MY(alpha_max) = 192;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x903090";
+       MY(color_max) = "0xFFD0FF";
+       MY(count) = 0.300000;
        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(sizeincrease) = -5;
+       MY(size_min) = 0.500000;
+       MY(size_max) = 0.500000;
        MY(type) = "spark";
-       MY(velocityjitter) = '424.0 424.0 624.0';
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(velocityjitter) = '12.0 12.0 12.0';
 }
-SUB(nade_neutral_explode) {
-       MY(alpha_min) = 644;
-       MY(alpha_max) = 956;
-       MY(alpha_fade) = 2500;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xffa2a2";
-       MY(count) = 8;
+
+// hlac damage effect
+DEF(damage_hlac);
+SUB(damage_hlac) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x880000";
+       MY(color_max) = "0xff4400";
+       MY(count) = 3;
        MY(notunderwater) = true;
-       MY(originjitter) = '64.0 64.0 64.0';
-       MY(startangle_min) = -180;
+       MY(originjitter) = '4.0 4.0 4.0';
        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(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 10;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(tex_max) = 8;
        MY(type) = "smoke";
-       MY(velocityjitter) = '324.0 324.0 324.0';
+       MY(velocityjitter) = '0.4 0.4 0.6';
 }
 
-DEF(shockwave_attack);
-SUB(shockwave_attack) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 4096;
-       MY(alpha_max) = 4096;
-       MY(alpha_fade) = 20000;
-       MY(color_min) = "0xb44215";
-       MY(color_max) = "0xff0000";
+// vortex damage effect
+DEF(damage_vortex);
+SUB(damage_vortex) {
+       MY(airfriction) = -0.500000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 8;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0xffffff";
+       MY(color_max) = "0x88ffff";
        MY(count) = 1;
+       MY(gravity) = -0.000100;
+       MY(liquidfriction) = 0.600000;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(startangle_min) = 180;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = -14;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "static";
+       MY(velocityjitter) = '8.0 8.0 16.0';
+}
+// plasma smoke
+SUB(damage_vortex) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x6688ff";
+       MY(color_max) = "0x226688";
+       MY(count) = 2;
        MY(originjitter) = '2.0 2.0 2.0';
-       MY(startangle_min) = -180;
        MY(startangle_max) = 180;
-       MY(spin_min) = 4000;
-       MY(spin_max) = -4000;
-       MY(sizeincrease) = 1.500000;
-       MY(size_min) = 5;
-       MY(size_max) = 7;
-       MY(stretchfactor) = 2.300000;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 8;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.5 0.5 0.8';
+}
+// bouncing sparks
+SUB(damage_vortex) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 255;
+       MY(alpha_max) = 255;
+       MY(alpha_fade) = 112;
+       MY(bounce) = 1.600000;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0xD9FDFF";
+       MY(count) = 0.200000;
+       MY(gravity) = 1;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(stretchfactor) = 0.700000;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
        MY(type) = "spark";
-       MY(velocityjitter) = '10.0 10.0 10.0';
-       MY(velocitymultiplier) = 10;
+       MY(velocityjitter) = '100.0 100.0 300.0';
+       MY(velocitymultiplier) = 3;
 }
-SUB(shockwave_attack) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 4096;
-       MY(alpha_max) = 4096;
-       MY(alpha_fade) = 20000;
-       MY(color_min) = "0xff4200";
-       MY(color_max) = "0xff0000";
-       MY(count) = 1;
+
+// vaporizer damage effect
+DEF(damage_vaporizer);
+SUB(damage_vaporizer) {
+       MY(airfriction) = -0.500000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 8;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0xffffff";
+       MY(color_max) = "0x88ffff";
+       MY(count) = 2;
+       MY(gravity) = -0.000100;
+       MY(liquidfriction) = 0.600000;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(startangle_min) = 180;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = -14;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(tex_min) = 47;
+       MY(tex_max) = 47;
+       MY(type) = "static";
+       MY(velocityjitter) = '8.0 8.0 16.0';
+}
+// plasma smoke
+SUB(damage_vaporizer) {
+       MY(airfriction) = -0.350000;
+       MY(alpha_min) = 64;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x6688ff";
+       MY(color_max) = "0x226688";
+       MY(count) = 4;
        MY(originjitter) = '2.0 2.0 2.0';
-       MY(sizeincrease) = 1.500000;
-       MY(size_min) = 7;
-       MY(size_max) = 9;
-       MY(stretchfactor) = 2;
-       MY(tex_min) = 8;
-       MY(tex_max) = 15;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -30;
+       MY(spin_max) = 30;
+       MY(sizeincrease) = 8;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.5 0.5 0.8';
+}
+// bouncing sparks
+SUB(damage_vaporizer) {
+       MY(airfriction) = 2;
+       MY(alpha_min) = 255;
+       MY(alpha_max) = 255;
+       MY(alpha_fade) = 112;
+       MY(bounce) = 1.600000;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0xD9FDFF";
+       MY(count) = 0.200000;
+       MY(gravity) = 1;
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(stretchfactor) = 0.700000;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
        MY(type) = "spark";
-       MY(velocityjitter) = '10.0 10.0 10.0';
-       MY(velocitymultiplier) = 10;
+       MY(velocityjitter) = '100.0 100.0 300.0';
+       MY(velocitymultiplier) = 3;
 }
 
-DEF(arc_lightning);
-SUB(arc_lightning) {
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 32;
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '3.1 4.4 10.0';
-       MY(lightradiusfade) = 200;
-       MY(lightradius) = 50;
-       MY(originjitter) = '2.0 2.0 2.0';
-       MY(size_min) = 16;
-       MY(size_max) = 16;
-       MY(tex_min) = 16;
+// rifle damage effect, normal blood
+DEF(damage_rifle);
+SUB(damage_rifle) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xA8FFFF";
+       MY(color_max) = "0xA8FFFFF";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
        MY(tex_max) = 32;
-       MY(type) = "decal";
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
+}
+// blood mist
+SUB(damage_rifle) {
+       MY(alpha_min) = 100;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x420000";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
-SUB(arc_lightning) {
-       MY(airfriction) = 110;
+
+// rifle damage effect, alien blood
+DEF(damage_rifle_alien);
+SUB(damage_rifle_alien) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xDDFDFF";
-       MY(color_max) = "0xFDFDFF";
-       MY(count) = 100;
-       MY(originjitter) = '20.0 20.0 20.0';
-       MY(startangle_max) = 360;
-       MY(spin_min) = -36000;
-       MY(spin_max) = 36000;
-       MY(sizeincrease) = -5;
-       MY(size_max) = 5;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 71;
-       MY(tex_max) = 74;
-       MY(type) = "static";
-       MY(velocityjitter) = '250.0 250.0 250.0';
-       MY(velocitymultiplier) = 100;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xDC9BCD";
+       MY(color_max) = "0xDC9BCD";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(arc_lightning) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 256;
+// blood mist
+SUB(damage_rifle_alien) {
+       MY(alpha_min) = 100;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0xDDFDFF";
-       MY(color_max) = "0xFDFDFF";
-       MY(count) = 100;
-       MY(liquidfriction) = 5;
-       MY(orientation) = "spark";
-       MY(originjitter) = '20.0 20.0 20.0';
-       MY(startangle_max) = 360;
-       MY(spin_min) = -36000;
-       MY(spin_max) = 36000;
-       MY(sizeincrease) = -5;
-       MY(size_max) = 5;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 71;
-       MY(tex_max) = 74;
-       MY(type) = "static";
-       MY(underwater) = true;
-       MY(velocityjitter) = '250.0 250.0 250.0';
-       MY(velocitymultiplier) = 20;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x204010";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
 
-DEF(arc_beam);
-SUB(arc_beam) {
-       MY(airfriction) = -10;
+// rifle damage effect, robot blood
+DEF(damage_rifle_robot);
+SUB(damage_rifle_robot) {
+       MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 16384;
-       MY(color_min) = "0xfafad2";
-       MY(color_max) = "0xffffff";
-       MY(originjitter) = '3.0 3.0 3.0';
-       MY(relativeoriginoffset) = '10.0 0.0 0.0';
-       MY(startangle_max) = 360;
-       MY(spin_min) = 360;
-       MY(spin_max) = 1000;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 71;
-       MY(tex_max) = 74;
-       MY(time_min) = 0.050000;
-       MY(time_max) = 0.050000;
-       MY(trailspacing) = 10;
-       MY(type) = "spark";
-       MY(velocityjitter) = '100.0 100.0 100.0';
-       MY(velocitymultiplier) = 200;
+       MY(alpha_fade) = 64;
+       MY(bounce) = -1;
+       MY(color_min) = "0xC0D890";
+       MY(color_max) = "0xC0D890";
+       MY(count) = 0.300000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(staincolor_min) = "0x808080";
+       MY(staincolor_max) = "0x808080";
+       MY(staintex_min) = 16;
+       MY(staintex_max) = 24;
+       MY(tex_min) = 24;
+       MY(tex_max) = 32;
+       MY(type) = "blood";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+       MY(velocitymultiplier) = 5;
 }
-SUB(arc_beam) {
-       MY(alpha_min) = 256;
+// blood mist
+SUB(damage_rifle_robot) {
+       MY(alpha_min) = 100;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 16384;
-       MY(color_min) = "0xfafad2";
-       MY(color_max) = "0xffffff";
-       MY(liquidfriction) = -10;
-       MY(originjitter) = '30.0 30.0 30.0';
-       MY(relativeoriginoffset) = '10.0 0.0 0.0';
-       MY(startangle_max) = 360;
-       MY(spin_min) = 360;
-       MY(spin_max) = 1000;
-       MY(stretchfactor) = 1;
-       MY(tex_min) = 71;
-       MY(tex_max) = 74;
-       MY(time_min) = 0.001000;
-       MY(time_max) = 0.001000;
-       MY(trailspacing) = 10;
-       MY(type) = "spark";
-       MY(underwater) = true;
-       MY(velocityjitter) = '100.0 100.0 100.0';
-       MY(velocitymultiplier) = 200;
-}
-
-DEF(arc_beam_heal);
-SUB(arc_beam_heal) {
-       MY(airfriction) = -20;
-       MY(alpha_min) = 2048;
-       MY(alpha_max) = 2048;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x20FF20";
-       MY(color_max) = "0x40FF40";
-       MY(relativeoriginoffset) = '5.0 0.0 0.0';
-       MY(relativevelocityoffset) = '100.0 0.0 0.0';
-       MY(sizeincrease) = 20;
-       MY(size_min) = 0.100000;
-       MY(size_max) = 0.100000;
-       MY(tex_min) = 74;
-       MY(tex_max) = 74;
-       MY(trailspacing) = 1500;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '3.0 3.0 3.0';
-       MY(velocitymultiplier) = 200;
+       MY(alpha_fade) = 400;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x301860";
+       MY(count) = 1;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
 }
 
-DEF(arc_beam_healimpact);
-SUB(arc_beam_healimpact) {
-       MY(alpha_min) = 40;
-       MY(alpha_max) = 40;
-       MY(alpha_fade) = 350;
-       MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x84c52f";
-       MY(countabsolute) = 1;
-       MY(lightcolor) = '0.0 4.4 0.0';
-       MY(lightradiusfade) = 150;
-       MY(lightradius) = 20;
-       MY(sizeincrease) = -1000;
-       MY(size_min) = 32;
-       MY(size_max) = 32;
-       MY(tex_min) = 33;
-       MY(tex_max) = 33;
+// seeker damage effect
+DEF(damage_seeker);
+SUB(damage_seeker) {
+       MY(alpha_min) = 512;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x8f0c00";
+       MY(color_max) = "0xff2200";
+       MY(count) = 3;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -10;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
        MY(type) = "smoke";
-       MY(velocitymultiplier) = 44;
+       MY(velocityjitter) = '22.0 22.0 50.0';
 }
-SUB(arc_beam_healimpact) {
-       MY(airfriction) = 3;
-       MY(alpha_min) = 200;
-       MY(alpha_max) = 456;
-       MY(alpha_fade) = 512;
-       MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x84c52f";
-       MY(count) = 15;
-       MY(gravity) = -2;
-       MY(startangle_min) = -180;
-       MY(startangle_max) = 180;
-       MY(spin_min) = -90;
-       MY(spin_max) = 90;
-       MY(size_min) = 0.500000;
-       MY(size_max) = 1;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
-       MY(type) = "smoke";
-       MY(velocityjitter) = '120.0 120.0 420.0';
+// smoke
+SUB(damage_seeker) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 2;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
-DEF(arc_smoke);
-SUB(arc_smoke) {
-       MY(airfriction) = 1;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 48;
-       MY(color_min) = "0x4c453f";
-       MY(color_max) = "0x2a241f";
+// hagar damage effect
+DEF(damage_hagar);
+SUB(damage_hagar) {
+       MY(alpha_min) = 512;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x8f0c00";
+       MY(color_max) = "0xff3a00";
+       MY(count) = 3;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = -10;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '22.0 22.0 50.0';
+}
+// smoke
+SUB(damage_hagar) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
        MY(count) = 2;
-       MY(gravity) = -0.125000;
+       MY(gravity) = -0.300000;
        MY(notunderwater) = true;
-       MY(startangle_max) = 360;
-       MY(spin_min) = -180;
-       MY(spin_max) = 180;
+       MY(originjitter) = '4.0 4.0 4.0';
        MY(sizeincrease) = 10;
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
+}
+
+// fireball damage effect
+DEF(damage_fireball);
+SUB(damage_fireball) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 16;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x8f0d00";
+       MY(color_max) = "0xff5a00";
+       MY(count) = 4;
+       MY(gravity) = -0.500000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '8.0 8.0 8.0';
+       MY(sizeincrease) = -10;
        MY(size_min) = 5;
        MY(size_max) = 10;
-       MY(tex_max) = 8;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
        MY(type) = "smoke";
-       MY(velocityjitter) = '0.0 0.0 16.0';
+       MY(velocityjitter) = '22.0 22.0 50.0';
 }
-SUB(arc_smoke) {
-       MY(alpha_min) = 170;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 64;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x404040";
-       MY(color_max) = "0x808080";
-       MY(count) = 2;
-       MY(gravity) = -0.125000;
-       MY(liquidfriction) = 0.250000;
+// smoke
+SUB(damage_fireball) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 4;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
        MY(originjitter) = '6.0 6.0 6.0';
-       MY(size_min) = 0.100000;
-       MY(size_max) = 1;
-       MY(tex_min) = 62;
-       MY(tex_max) = 62;
-       MY(type) = "bubble";
-       MY(underwater) = true;
-       MY(velocityjitter) = '16.0 16.0 16.0';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
-DEF(arc_overheat);
-SUB(arc_overheat) {
-       MY(airfriction) = 5;
+// rocketlauncher damage effect
+DEF(damage_devastator);
+SUB(damage_devastator) {
+       MY(alpha_min) = 512;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x8f0c00";
+       MY(color_max) = "0xff2a00";
+       MY(count) = 3;
+       MY(gravity) = -0.700000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(sizeincrease) = -10;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '22.0 22.0 30.0';
+}
+// smoke
+SUB(damage_devastator) {
        MY(alpha_min) = 128;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 292;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0x9271fb";
-       MY(count) = 24;
-       MY(gravity) = -0.400000;
-       MY(liquidfriction) = 10;
-       MY(originjitter) = '10.0 10.0 10.0';
-       MY(sizeincrease) = -24;
-       MY(size_min) = 6;
-       MY(size_max) = 12;
-       MY(tex_min) = 43;
-       MY(tex_max) = 43;
-       MY(type) = "spark";
-       MY(velocityjitter) = '256.0 256.0 256.0';
+       MY(alpha_max) = 32;
+       MY(alpha_fade) = 128;
+       MY(color_min) = "0x000000";
+       MY(color_max) = "0x111111";
+       MY(count) = 3;
+       MY(gravity) = -0.300000;
+       MY(notunderwater) = true;
+       MY(originjitter) = '4.0 4.0 4.0';
+       MY(sizeincrease) = 10;
+       MY(size_min) = 4;
+       MY(size_max) = 8;
+       MY(tex_max) = 8;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '11.0 11.0 50.0';
 }
 
-DEF(arc_overheat_fire);
-SUB(arc_overheat_fire) {
+// fireflies
+DEF(fireflies);
+SUB(fireflies) {
+       MY(airfriction) = 5;
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 640;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0x4444ff";
-       MY(color_max) = "0xeeeeff";
+       MY(alpha_fade) = 70;
+       MY(bounce) = -1;
+       MY(color_min) = "0xff9600";
+       MY(color_max) = "0xffefb8";
        MY(count) = 1;
-       MY(gravity) = 1;
-       MY(liquidfriction) = 5;
-       MY(originjitter) = '6.0 6.0 6.0';
-       MY(size_min) = 0.400000;
-       MY(size_max) = 1;
-       MY(type) = "spark";
-       MY(velocityjitter) = '92.0 92.0 92.0';
-       MY(velocitymultiplier) = 80;
-       MY(velocityoffset) = '0.0 0.0 80.0';
+       MY(originjitter) = '32.0 32.0 32.0';
+       MY(originoffset) = '8.0 8.0 8.0';
+       MY(sizeincrease) = -0.300000;
+       MY(size_min) = 2;
+       MY(size_max) = 3;
+       MY(tex_min) = 38;
+       MY(tex_max) = 38;
+       MY(time_min) = 1;
+       MY(time_max) = 2;
+       MY(type) = "static";
+       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(velocityoffset) = '2.0 2.0 2.0';
 }
 
-DEF(yellowflag_touch);
-SUB(yellowflag_touch) {
-       MY(airfriction) = 3;
+DEF(healray_muzzleflash);
+SUB(healray_muzzleflash) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 556;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(count) = 35;
-       MY(gravity) = 1;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x283880";
+       MY(color_max) = "0x283880";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '1.5 3.0 6.0';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(sizeincrease) = -10;
+       MY(size_min) = 20;
+       MY(size_max) = 20;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
+}
+SUB(healray_muzzleflash) {
+       MY(airfriction) = 5;
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 150;
+       MY(alpha_fade) = 1924;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0x00f0ff";
+       MY(count) = 22;
        MY(originjitter) = '1.0 1.0 1.0';
+       MY(sizeincrease) = 3;
        MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(size_max) = 15;
+       MY(stretchfactor) = 3.900000;
+       MY(tex_min) = 71;
+       MY(tex_max) = 73;
        MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(velocityjitter) = '150.0 150.0 150.0';
+       MY(velocitymultiplier) = 0.400000;
+}
+SUB(healray_muzzleflash) {
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 228;
+       MY(alpha_fade) = 4024;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0x00f0ff";
+       MY(count) = 4;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 1;
+       MY(size_max) = 1;
+       MY(stretchfactor) = 0.200000;
+       MY(tex_min) = 70;
+       MY(tex_max) = 70;
+       MY(type) = "spark";
+       MY(velocityjitter) = '650.0 650.0 650.0';
+       MY(velocitymultiplier) = 1.100000;
 }
 
-DEF(pinkflag_touch);
-SUB(pinkflag_touch) {
-       MY(airfriction) = 3;
+DEF(healray_impact);
+SUB(healray_impact) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 556;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       MY(count) = 35;
-       MY(gravity) = 1;
+       MY(color_min) = "0xd800ff";
+       MY(color_max) = "0xd800ff";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '0.0 4.4 0.0';
+       MY(lightradiusfade) = 450;
+       MY(lightradius) = 125;
+       MY(originjitter) = '17.0 17.0 17.0';
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_min) = 59;
+       MY(tex_max) = 59;
+       MY(type) = "decal";
+}
+// shockwave
+SUB(healray_impact) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 350;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x84c52f";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 1400;
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "smoke";
+       MY(velocitymultiplier) = 44;
+}
+// cloud of bouncing sparks
+SUB(healray_impact) {
+       MY(airfriction) = 6;
+       MY(alpha_min) = 156;
+       MY(alpha_max) = 300;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x84c52f";
+       MY(count) = 30;
+       MY(gravity) = 2;
        MY(originjitter) = '1.0 1.0 1.0';
        MY(size_min) = 1;
-       MY(size_max) = 3;
-       MY(tex_min) = 40;
-       MY(tex_max) = 40;
+       MY(size_max) = 2;
+       MY(tex_min) = 70;
+       MY(tex_max) = 70;
        MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(velocityjitter) = '1112.0 1112.0 1112.0';
 }
-
-DEF(neutralflag_touch);
-SUB(neutralflag_touch) {
+// inner cloud of smoke
+SUB(healray_impact) {
        MY(airfriction) = 3;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 556;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(count) = 35;
-       MY(gravity) = 1;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 456;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x84c52f";
+       MY(count) = 15;
+       MY(gravity) = -2;
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -90;
+       MY(spin_max) = 90;
+       MY(size_min) = 2;
        MY(size_max) = 3;
        MY(tex_min) = 40;
        MY(tex_max) = 40;
-       MY(type) = "spark";
-       MY(velocityjitter) = '300.0 300.0 300.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '120.0 120.0 420.0';
 }
 
-DEF(yellow_pass);
-SUB(yellow_pass) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(sizeincrease) = 2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(tex_min) = 32;
-       MY(tex_max) = 32;
-       MY(trailspacing) = 64;
-       MY(type) = "static";
-}
-SUB(yellow_pass) {
-       MY(airfriction) = 9;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 32;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(sizeincrease) = 8;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 64.0';
-}
-SUB(yellow_pass) {
+DEF(bigplasma_muzzleflash);
+SUB(bigplasma_muzzleflash) {
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 1280;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
-}
-
-DEF(pink_pass);
-SUB(pink_pass) {
-       MY(airfriction) = 5;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(sizeincrease) = 2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(tex_min) = 32;
-       MY(tex_max) = 32;
-       MY(trailspacing) = 64;
-       MY(type) = "static";
-}
-SUB(pink_pass) {
-       MY(airfriction) = 9;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 32;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(sizeincrease) = 8;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(alpha_fade) = 812;
+       MY(color_min) = "0x283880";
+       MY(color_max) = "0x283880";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '1.5 3.0 6.0';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(sizeincrease) = -10;
+       MY(size_min) = 50;
+       MY(size_max) = 50;
+       MY(tex_min) = 65;
+       MY(tex_max) = 65;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
 }
-SUB(pink_pass) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1280;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
+SUB(bigplasma_muzzleflash) {
+       MY(alpha_min) = 56;
+       MY(alpha_max) = 56;
+       MY(alpha_fade) = 1112;
+       MY(color_min) = "0x00f0ff";
+       MY(color_max) = "0x00f0ff";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 300;
+       MY(size_min) = 20;
+       MY(size_max) = 20;
+       MY(tex_min) = 74;
+       MY(tex_max) = 74;
+       MY(type) = "smoke";
 }
-
-DEF(neutral_pass);
-SUB(neutral_pass) {
+SUB(bigplasma_muzzleflash) {
        MY(airfriction) = 5;
-       MY(alpha_min) = 64;
-       MY(alpha_max) = 128;
-       MY(alpha_fade) = 64;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(sizeincrease) = 2;
-       MY(size_min) = 2;
-       MY(size_max) = 2;
-       MY(tex_min) = 32;
-       MY(tex_max) = 32;
-       MY(trailspacing) = 64;
-       MY(type) = "static";
-}
-SUB(neutral_pass) {
-       MY(airfriction) = 9;
-       MY(alpha_min) = 32;
-       MY(alpha_max) = 64;
-       MY(alpha_fade) = 32;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(sizeincrease) = 8;
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(tex_max) = 8;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 64.0';
+       MY(alpha_min) = 50;
+       MY(alpha_max) = 150;
+       MY(alpha_fade) = 1924;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0x00f0ff";
+       MY(count) = 14;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(sizeincrease) = 135;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(stretchfactor) = 1.900000;
+       MY(tex_min) = 51;
+       MY(tex_max) = 55;
+       MY(type) = "spark";
+       MY(velocityjitter) = '350.0 350.0 350.0';
+       MY(velocitymultiplier) = 0.400000;
 }
-SUB(neutral_pass) {
-       MY(alpha_min) = 256;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 1280;
-       MY(color_min) = "0xFFFFFF";
-       MY(color_max) = "0xFFFFFF";
-       MY(size_min) = 4;
-       MY(size_max) = 4;
-       MY(trailspacing) = 12;
-       MY(type) = "static";
+SUB(bigplasma_muzzleflash) {
+       MY(alpha_min) = 110;
+       MY(alpha_max) = 228;
+       MY(alpha_fade) = 4024;
+       MY(color_min) = "0xD9FDFF";
+       MY(color_max) = "0x00f0ff";
+       MY(count) = 4;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 20;
+       MY(size_max) = 20;
+       MY(stretchfactor) = 0.200000;
+       MY(tex_min) = 70;
+       MY(tex_max) = 70;
+       MY(type) = "spark";
+       MY(velocityjitter) = '650.0 650.0 650.0';
+       MY(velocitymultiplier) = 1.100000;
 }
 
-DEF(yellow_cap);
-SUB(yellow_cap) {
-       MY(airfriction) = 2;
+DEF(bigplasma_impact);
+SUB(bigplasma_impact) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 100;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
-       MY(count) = 500;
-       MY(originjitter) = '1.0 1.0 1.0';
-       MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.600000;
-       MY(tex_min) = 64;
-       MY(tex_max) = 64;
-       MY(type) = "spark";
-       MY(velocityjitter) = '1000.0 1000.0 1500.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '3.1 4.4 10.0';
+       MY(lightradiusfade) = 450;
+       MY(lightradius) = 125;
+       MY(originjitter) = '17.0 17.0 17.0';
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_min) = 59;
+       MY(tex_max) = 59;
+       MY(type) = "decal";
 }
-SUB(yellow_cap) {
-       MY(alpha_min) = 190;
-       MY(alpha_max) = 190;
-       MY(alpha_fade) = 180;
-       MY(color_min) = "0xFFFF0F";
-       MY(color_max) = "0xFFFF0F";
+// shockwave
+SUB(bigplasma_impact) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 350;
+       MY(color_min) = "0x80C0FF";
+       MY(color_max) = "0x80C0FF";
        MY(countabsolute) = 1;
-       MY(sizeincrease) = -80;
-       MY(size_min) = 150;
-       MY(size_max) = 150;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
+       MY(sizeincrease) = 1400;
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
        MY(type) = "smoke";
+       MY(velocitymultiplier) = 44;
 }
-
-DEF(pink_cap);
-SUB(pink_cap) {
-       MY(airfriction) = 2;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 100;
-       MY(bounce) = 1.500000;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       MY(count) = 500;
+// cloud of bouncing sparks
+SUB(bigplasma_impact) {
+       MY(airfriction) = 6;
+       MY(alpha_min) = 156;
+       MY(alpha_max) = 300;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x629dff";
+       MY(color_max) = "0x0018ff";
+       MY(count) = 30;
+       MY(gravity) = 2;
        MY(originjitter) = '1.0 1.0 1.0';
        MY(size_min) = 1;
-       MY(size_max) = 1;
-       MY(stretchfactor) = 0.600000;
-       MY(tex_min) = 64;
-       MY(tex_max) = 64;
+       MY(size_max) = 2;
+       MY(tex_min) = 70;
+       MY(tex_max) = 70;
        MY(type) = "spark";
-       MY(velocityjitter) = '1000.0 1000.0 1500.0';
-       MY(velocitymultiplier) = 0.500000;
+       MY(velocityjitter) = '1512.0 1512.0 1512.0';
 }
-SUB(pink_cap) {
-       MY(alpha_min) = 190;
-       MY(alpha_max) = 190;
-       MY(alpha_fade) = 180;
-       MY(color_min) = "0xFF0FFF";
-       MY(color_max) = "0xFF0FFF";
-       MY(countabsolute) = 1;
-       MY(sizeincrease) = -80;
-       MY(size_min) = 150;
-       MY(size_max) = 150;
-       MY(tex_min) = 65;
-       MY(tex_max) = 65;
+// inner cloud of smoke
+SUB(bigplasma_impact) {
+       MY(airfriction) = 30;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 456;
+       MY(alpha_fade) = 1512;
+       MY(color_min) = "0x629dff";
+       MY(color_max) = "0x0018ff";
+       MY(count) = 15;
+       MY(originjitter) = '20.0 20.0 20.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';
 }
-
-DEF(relic_resistance);
-SUB(relic_resistance) {
-       MY(airfriction) = 0.200000;
+// smoke
+SUB(bigplasma_impact) {
+       MY(airfriction) = 0.040000;
        MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x00ff80";
-       MY(color_max) = "0x00ff80";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_max) = 328;
+       MY(alpha_fade) = 390;
+       MY(blend) = "alpha";
+       MY(color_min) = "0x222222";
+       MY(color_max) = "0x000000";
+       MY(count) = 16;
+       MY(gravity) = 0.400000;
+       MY(originjitter) = '80.0 80.0 10.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = 2;
+       MY(spin_max) = -2;
+       MY(sizeincrease) = 30;
+       MY(size_min) = 60;
+       MY(size_max) = 30;
+       MY(tex_max) = 7;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '100.0 100.0 200.0';
+       MY(velocityoffset) = '0.0 0.0 180.0';
 }
-
-DEF(relic_regeneration);
-SUB(relic_regeneration) {
-       MY(airfriction) = 0.200000;
+// smoke in the middle
+SUB(bigplasma_impact) {
+       MY(airfriction) = 0.040000;
        MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x00ffff";
-       MY(color_max) = "0x00ffff";
+       MY(alpha_max) = 328;
+       MY(alpha_fade) = 310;
+       MY(color_min) = "0x222222";
+       MY(color_max) = "0x000000";
+       MY(count) = 10;
+       MY(gravity) = -0.200000;
+       MY(originjitter) = '80.0 80.0 80.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = 20;
+       MY(spin_max) = -20;
+       MY(sizeincrease) = -10;
+       MY(size_min) = 60;
+       MY(size_max) = 70;
+       MY(tex_max) = 7;
+       MY(type) = "alphastatic";
+       MY(velocityjitter) = '10.0 10.0 10.0';
+}
+
+#include "effectinfo_ctf.inc"
+
+// spawn_point -- team idle spawn point effect
+#define spawn_point(name, color) \
+       DEF(spawn_point_##name); \
+       SUB(spawn_point_##name) { \
+               MY(airfriction) = 0.200000; \
+               MY(alpha_min) = 64; \
+               MY(alpha_max) = 128; \
+               MY(alpha_fade) = 128; \
+               MY(color_min) = color; \
+               MY(color_max) = color; \
+               MY(count) = 37.500000; \
+               MY(gravity) = -0.100000; \
+               MY(liquidfriction) = 0.800000; \
+               MY(originjitter) = '16.0 16.0 64.0'; \
+               MY(size_min) = 1; \
+               MY(size_max) = 2; \
+               MY(type) = "static"; \
+               MY(velocityjitter) = '32.0 32.0 0.0'; \
+       }
+
+spawn_point(red,               "0xFF0F0F")
+spawn_point(blue,              "0x0F0FFF")
+spawn_point(yellow,    "0xFFFF0F")
+spawn_point(pink,              "0xFF0FFF")
+spawn_point(neutral,   "0xFFFFFF")
+#undef spawn_point
+
+// spawn_event -- team spawning effect
+#define spawn_event(name, color) \
+       DEF(spawn_event_##name); \
+       SUB(spawn_event_##name) { \
+               MY(airfriction) = 2; \
+               MY(alpha_max) = 256; \
+               MY(alpha_fade) = 256; \
+               MY(bounce) = 1; \
+               MY(color_min) = color; \
+               MY(color_max) = color; \
+               MY(count) = 100; \
+               MY(originjitter) = '1.0 1.0 1.0'; \
+               MY(size_min) = 1; \
+               MY(size_max) = 1; \
+               MY(stretchfactor) = 0.600000; \
+               MY(tex_min) = 64; \
+               MY(tex_max) = 64; \
+               MY(type) = "spark"; \
+               MY(velocityjitter) = '500.0 500.0 500.0'; \
+               MY(velocitymultiplier) = 0.100000; \
+       } \
+       SUB(spawn_event_##name) { \
+               MY(alpha_min) = 190; \
+               MY(alpha_max) = 190; \
+               MY(alpha_fade) = 180; \
+               MY(color_min) = color; \
+               MY(color_max) = color; \
+               MY(countabsolute) = 1; \
+               MY(sizeincrease) = -80; \
+               MY(size_min) = 100; \
+               MY(size_max) = 100; \
+               MY(tex_min) = 65; \
+               MY(tex_max) = 65; \
+               MY(type) = "smoke"; \
+       } \
+       /**/
+
+spawn_event(red,               "0xFF0F0F")
+spawn_event(blue,              "0x0F0FFF")
+spawn_event(yellow,    "0xFFFF0F")
+spawn_event(pink,              "0xFF0FFF")
+spawn_event(neutral,   "0xFFFFFF")
+#undef spawn_event
+
+#include "effectinfo_nades.inc"
+
+DEF(shockwave_attack);
+// electricity
+SUB(shockwave_attack) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 4096;
+       MY(alpha_max) = 4096;
+       MY(alpha_fade) = 20000;
+       MY(color_min) = "0xb44215";
+       MY(color_max) = "0xff0000";
        MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = 4000;
+       MY(spin_max) = -4000;
+       MY(sizeincrease) = 1.500000;
+       MY(size_min) = 5;
+       MY(size_max) = 7;
+       MY(stretchfactor) = 2.300000;
+       MY(tex_min) = 43;
+       MY(tex_max) = 43;
+       MY(type) = "spark";
+       MY(velocityjitter) = '10.0 10.0 10.0';
+       MY(velocitymultiplier) = 10;
+}
+// fire
+SUB(shockwave_attack) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 4096;
+       MY(alpha_max) = 4096;
+       MY(alpha_fade) = 20000;
+       MY(color_min) = "0xff4200";
+       MY(color_max) = "0xff0000";
+       MY(count) = 1;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(sizeincrease) = 1.500000;
+       MY(size_min) = 7;
+       MY(size_max) = 9;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 8;
+       MY(tex_max) = 15;
+       MY(type) = "spark";
+       MY(velocityjitter) = '10.0 10.0 10.0';
+       MY(velocitymultiplier) = 10;
 }
 
-DEF(relic_vampire);
-SUB(relic_vampire) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xff00ff";
-       MY(color_max) = "0xff00ff";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+DEF(arc_lightning);
+// impact decal
+SUB(arc_lightning) {
+       MY(alpha_min) = 32;
+       MY(alpha_max) = 32;
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '3.1 4.4 10.0';
+       MY(lightradiusfade) = 200;
+       MY(lightradius) = 50;
+       MY(originjitter) = '2.0 2.0 2.0';
+       MY(size_min) = 16;
+       MY(size_max) = 16;
+       MY(tex_min) = 16;
+       MY(tex_max) = 32;
+       MY(type) = "decal";
 }
-
-DEF(relic_ammo);
-SUB(relic_ammo) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+// impact sparks
+SUB(arc_lightning) {
+       MY(airfriction) = 110;
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x80ff00";
-       MY(color_max) = "0x80ff00";
-       MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0xDDFDFF";
+       MY(color_max) = "0xFDFDFF";
+       MY(count) = 100;
+       MY(originjitter) = '20.0 20.0 20.0';
+       MY(startangle_max) = 360;
+       MY(spin_min) = -36000;
+       MY(spin_max) = 36000;
+       MY(sizeincrease) = -5;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 1;
+       MY(tex_min) = 71;
+       MY(tex_max) = 74;
        MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(velocityjitter) = '250.0 250.0 250.0';
+       MY(velocitymultiplier) = 100;
 }
-
-DEF(relic_damage);
-SUB(relic_damage) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+// impact sparks (underwater)
+SUB(arc_lightning) {
+       MY(airfriction) = 5;
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xff0000";
-       MY(color_max) = "0xff0000";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0xDDFDFF";
+       MY(color_max) = "0xFDFDFF";
+       MY(count) = 100;
+       MY(liquidfriction) = 5;
+       MY(orientation) = "spark";
+       MY(originjitter) = '20.0 20.0 20.0';
+       MY(startangle_max) = 360;
+       MY(spin_min) = -36000;
+       MY(spin_max) = 36000;
+       MY(sizeincrease) = -5;
+       MY(size_max) = 5;
+       MY(stretchfactor) = 1;
+       MY(tex_min) = 71;
+       MY(tex_max) = 74;
        MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(underwater) = true;
+       MY(velocityjitter) = '250.0 250.0 250.0';
+       MY(velocitymultiplier) = 20;
+}
+// impact smoke
+SUB(arc_lightning) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 350;
+       MY(color_min) = "0x80C0FF";
+       MY(color_max) = "0x80C0FF";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = 400;
+       MY(size_min) = 4;
+       MY(size_max) = 4;
+       MY(tex_min) = 38;
+       MY(tex_max) = 38;
+       MY(type) = "smoke";
+       MY(velocitymultiplier) = 100;
 }
 
-DEF(relic_ssplashdamage);
-SUB(relic_ssplashdamage) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+DEF(arc_beam);
+// sparks on beam
+SUB(arc_beam) {
+       MY(airfriction) = -10;
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xff8000";
-       MY(color_max) = "0xff8000";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_fade) = 16384;
+       MY(color_min) = "0xfafad2";
+       MY(color_max) = "0xffffff";
+       MY(originjitter) = '3.0 3.0 3.0';
+       MY(relativeoriginoffset) = '10.0 0.0 0.0';
+       MY(startangle_max) = 360;
+       MY(spin_min) = 360;
+       MY(spin_max) = 1000;
+       MY(stretchfactor) = 1;
+       MY(tex_min) = 71;
+       MY(tex_max) = 74;
+       MY(time_min) = 0.050000;
+       MY(time_max) = 0.050000;
+       MY(trailspacing) = 10;
+       MY(type) = "spark";
+       MY(velocityjitter) = '100.0 100.0 100.0';
+       MY(velocitymultiplier) = 200;
 }
-
-DEF(relic_firingspeed);
-SUB(relic_firingspeed) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+// sparks on beam (underwater)
+SUB(arc_beam) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xffff00";
-       MY(color_max) = "0xffff00";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_fade) = 16384;
+       MY(color_min) = "0xfafad2";
+       MY(color_max) = "0xffffff";
+       MY(liquidfriction) = -10;
+       MY(originjitter) = '30.0 30.0 30.0';
+       MY(relativeoriginoffset) = '10.0 0.0 0.0';
+       MY(startangle_max) = 360;
+       MY(spin_min) = 360;
+       MY(spin_max) = 1000;
+       MY(stretchfactor) = 1;
+       MY(tex_min) = 71;
+       MY(tex_max) = 74;
+       MY(time_min) = 0.001000;
+       MY(time_max) = 0.001000;
+       MY(trailspacing) = 10;
+       MY(type) = "spark";
+       MY(underwater) = true;
+       MY(velocityjitter) = '100.0 100.0 100.0';
+       MY(velocitymultiplier) = 200;
 }
 
-DEF(relic_disability);
-SUB(relic_disability) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
+DEF(arc_beam_heal);
+// bubble this...
+SUB(arc_beam_heal) {
+       MY(airfriction) = -20;
+       MY(alpha_min) = 2048;
+       MY(alpha_max) = 2048;
        MY(alpha_fade) = 256;
-       MY(color_min) = "0x0000ff";
-       MY(color_max) = "0x0000ff";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(color_min) = "0x20FF20";
+       MY(color_max) = "0x40FF40";
+       MY(relativeoriginoffset) = '5.0 0.0 0.0';
+       MY(relativevelocityoffset) = '100.0 0.0 0.0';
+       MY(sizeincrease) = 20;
+       MY(size_min) = 0.100000;
+       MY(size_max) = 0.100000;
+       MY(tex_min) = 74;
+       MY(tex_max) = 74;
+       MY(trailspacing) = 1500;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '3.0 3.0 3.0';
+       MY(velocitymultiplier) = 200;
 }
 
-DEF(relic_disability_curse);
-SUB(relic_disability_curse) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x000080";
-       MY(color_max) = "0x000080";
-       MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+DEF(arc_beam_healimpact);
+// healing "aura"
+SUB(arc_beam_healimpact) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 350;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x84c52f";
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '0.0 4.4 0.0';
+       MY(lightradiusfade) = 150;
+       MY(lightradius) = 20;
+       MY(sizeincrease) = -1000;
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "smoke";
+       MY(velocitymultiplier) = 44;
+}
+// rising "smoke"
+SUB(arc_beam_healimpact) {
+       MY(airfriction) = 3;
+       MY(alpha_min) = 200;
+       MY(alpha_max) = 456;
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x84c52f";
+       MY(count) = 15;
+       MY(gravity) = -2;
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -90;
+       MY(spin_max) = 90;
+       MY(size_min) = 0.500000;
+       MY(size_max) = 1;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '120.0 120.0 420.0';
 }
 
-DEF(relic_teamboost);
-SUB(relic_teamboost) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+DEF(arc_smoke);
+// arc heat smoke  (notunderwater)
+SUB(arc_smoke) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 32;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 48;
+       MY(color_min) = "0x4c453f";
+       MY(color_max) = "0x2a241f";
+       MY(count) = 2;
+       MY(gravity) = -0.125000;
+       MY(notunderwater) = true;
+       MY(startangle_max) = 360;
+       MY(spin_min) = -180;
+       MY(spin_max) = 180;
+       MY(sizeincrease) = 10;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.0 0.0 16.0';
+}
+// arc heat bubbles  (underwater)
+SUB(arc_smoke) {
+       MY(alpha_min) = 170;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xffffff";
-       MY(color_max) = "0xffffff";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_fade) = 64;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(count) = 2;
+       MY(gravity) = -0.125000;
+       MY(liquidfriction) = 0.250000;
+       MY(originjitter) = '6.0 6.0 6.0';
+       MY(size_min) = 0.100000;
+       MY(size_max) = 1;
+       MY(tex_min) = 62;
+       MY(tex_max) = 62;
+       MY(type) = "bubble";
+       MY(underwater) = true;
+       MY(velocityjitter) = '16.0 16.0 16.0';
 }
 
-DEF(relic_teamboost_boost);
-SUB(relic_teamboost_boost) {
-       MY(airfriction) = 0.200000;
+DEF(arc_overheat);
+// arc overheat electric bolts
+SUB(arc_overheat) {
+       MY(airfriction) = 5;
        MY(alpha_min) = 128;
-       MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x808080";
-       MY(color_max) = "0x808080";
-       MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 292;
+       MY(color_min) = "0xffffff";
+       MY(color_max) = "0x9271fb";
+       MY(count) = 24;
+       MY(gravity) = -0.400000;
+       MY(liquidfriction) = 10;
+       MY(originjitter) = '10.0 10.0 10.0';
+       MY(sizeincrease) = -24;
+       MY(size_min) = 6;
+       MY(size_max) = 12;
+       MY(tex_min) = 43;
+       MY(tex_max) = 43;
+       MY(type) = "spark";
+       MY(velocityjitter) = '256.0 256.0 256.0';
 }
 
-DEF(relic_speed);
-SUB(relic_speed) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+DEF(arc_overheat_fire);
+// arc overheat bouncing sparks
+SUB(arc_overheat_fire) {
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x80ffff";
-       MY(color_max) = "0x80ffff";
+       MY(alpha_fade) = 640;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x4444ff";
+       MY(color_max) = "0xeeeeff";
        MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(gravity) = 1;
+       MY(liquidfriction) = 5;
+       MY(originjitter) = '6.0 6.0 6.0';
+       MY(size_min) = 0.400000;
+       MY(size_max) = 1;
+       MY(type) = "spark";
+       MY(velocityjitter) = '92.0 92.0 92.0';
+       MY(velocitymultiplier) = 80;
+       MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
-DEF(relic_jump);
-SUB(relic_jump) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+#include "effectinfo_buffs.inc"
+
+#include "effectinfo_instagib.inc"
+
+DEF(arc_muzzleflash);
+SUB(arc_muzzleflash) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xffff80";
-       MY(color_max) = "0xffff80";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_fade) = 512;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x8f4333";
+       MY(count) = 2;
+       MY(lightcolor) = '0.3 2.0 0.2';
+       MY(lightradiusfade) = 2000;
+       MY(lightradius) = 200;
+       MY(originjitter) = '1.5 1.5 1.5';
+       MY(size_min) = 5;
+       MY(size_max) = 5;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '6.0 6.0 6.0';
+       MY(velocitymultiplier) = 0.010000;
+}
+SUB(arc_muzzleflash) {
+       MY(airfriction) = 12;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 1024;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x8f4333";
+       MY(count) = 15;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(startangle_min) = -180;
+       MY(startangle_max) = 180;
+       MY(spin_min) = -400;
+       MY(spin_max) = 400;
+       MY(size_min) = 5;
+       MY(size_max) = 10;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "spark";
+       MY(velocityjitter) = '200.0 200.0 200.0';
+       MY(velocitymultiplier) = 0.500000;
 }
 
-DEF(relic_flight);
-SUB(relic_flight) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+DEF(arc_bolt_explode);
+// decal
+SUB(arc_bolt_explode) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0x8080ff";
-       MY(color_max) = "0x8080ff";
-       MY(count) = 1;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '8.0 4.0 1.0';
+       MY(lightradiusfade) = 400;
+       MY(lightradius) = 120;
+       MY(originjitter) = '14.0 14.0 14.0';
+       MY(size_min) = 28;
+       MY(size_max) = 38;
+       MY(tex_min) = 8;
+       MY(tex_max) = 16;
+       MY(type) = "decal";
 }
-
-DEF(relic_radioactive);
-SUB(relic_radioactive) {
-       MY(airfriction) = 0.200000;
+// fire effect which make bright dot inside
+SUB(arc_bolt_explode) {
+       MY(airfriction) = 8;
+       MY(alpha_min) = 80;
+       MY(alpha_max) = 200;
+       MY(alpha_fade) = 356;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x00ffff";
+       MY(color_max) = "0x00ffff";
+       MY(count) = 3.500000;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '8.0 8.0 8.0';
+       MY(sizeincrease) = 5;
+       MY(size_min) = 16;
+       MY(size_max) = 26;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '156.0 156.0 156.0';
+}
+// fire effect which expands then slows
+SUB(arc_bolt_explode) {
+       MY(airfriction) = 12;
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
+       MY(alpha_fade) = 456;
+       MY(bounce) = 1.500000;
        MY(color_min) = "0x00ff00";
-       MY(color_max) = "0x00ff00";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
+       MY(color_max) = "0x8f4333";
+       MY(count) = 12;
+       MY(liquidfriction) = 8;
+       MY(notunderwater) = true;
+       MY(originjitter) = '8.0 8.0 8.0';
+       MY(sizeincrease) = 15;
+       MY(size_min) = 20;
+       MY(size_max) = 26;
+       MY(tex_min) = 48;
+       MY(tex_max) = 55;
        MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(velocityjitter) = '286.0 286.0 286.0';
 }
-
-DEF(relic_resurrection);
-SUB(relic_resurrection) {
-       MY(airfriction) = 0.200000;
+// underwater bubbles
+SUB(arc_bolt_explode) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xff0080";
-       MY(color_max) = "0xff0080";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
+       MY(alpha_fade) = 64;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(count) = 16;
+       MY(gravity) = -0.125000;
+       MY(liquidfriction) = 0.250000;
+       MY(originjitter) = '16.0 16.0 16.0';
+       MY(size_min) = 3;
+       MY(size_max) = 3;
+       MY(tex_min) = 62;
+       MY(tex_max) = 62;
+       MY(type) = "bubble";
+       MY(underwater) = true;
+       MY(velocityjitter) = '96.0 96.0 96.0';
+}
+// bouncing sparks
+SUB(arc_bolt_explode) {
+       MY(airfriction) = 1;
+       MY(alpha_min) = 644;
+       MY(alpha_max) = 956;
+       MY(alpha_fade) = 684;
+       MY(bounce) = 1.600000;
+       MY(color_min) = "0x00ff00";
+       MY(color_max) = "0x8f4333";
+       MY(count) = 16;
+       MY(gravity) = 1;
        MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(notunderwater) = true;
+       MY(originjitter) = '16.0 16.0 16.0';
+       MY(size_min) = 1;
+       MY(size_max) = 0.100000;
+       MY(tex_min) = 40;
+       MY(tex_max) = 40;
+       MY(type) = "spark";
+       MY(velocityjitter) = '224.0 224.0 224.0';
+       MY(velocityoffset) = '0.0 0.0 80.0';
 }
 
-DEF(relic_vengeance);
-SUB(relic_vengeance) {
-       MY(airfriction) = 0.200000;
-       MY(alpha_min) = 128;
+// weak bullet trail (somewhat like a tracer)
+DEF(tr_bullet_weak);
+SUB(tr_bullet_weak) {
+       MY(alpha) = '75 100 3000';
+       MY(color_min) = "0xf03000";
+       MY(color_max) = "0xff6010";
+       MY(countabsolute) = 1;
+       MY(sizeincrease) = -3;
+       MY(size_min) = 0.6;
+       MY(size_max) = 0.8;
+       my(tex_min) = 200;
+       my(tex_max) = 200;
+       MY(type) = "beam";
+}
+SUB(tr_bullet_weak) {
+       MY(airfriction) = -4;
+       MY(alpha) = '256 256 350';
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(notunderwater) = true;
+       MY(sizeincrease) = 0.4;
+       MY(size_min) = 1;
+       MY(size_max) = 2;
+       MY(tex_min) = 0;
+       MY(tex_max) = 8;
+       MY(trailspacing) = 16;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '4 4 4';
+}
+SUB(tr_bullet_weak) {
+       MY(alpha_min) = 256;
        MY(alpha_max) = 256;
-       MY(alpha_fade) = 256;
-       MY(color_min) = "0xff8080";
-       MY(color_max) = "0xff8080";
-       MY(count) = 20;
-       MY(gravity) = -0.100000;
-       MY(liquidfriction) = 0.800000;
-       MY(originjitter) = '8.0 8.0 32.0';
-       MY(size_min) = 1.500000;
-       MY(size_max) = 1.500000;
-       MY(type) = "static";
-       MY(velocityjitter) = '64.0 64.0 32.0';
+       MY(alpha_fade) = 128;
+       MY(bounce) = 1.500000;
+       MY(color_min) = "0x404040";
+       MY(color_max) = "0x808080";
+       MY(gravity) = -0.125000;
+       MY(liquidfriction) = 4;
+       MY(size_min) = 0.5;
+       MY(size_max) = 0.6;
+       MY(tex_min) = 62;
+       MY(tex_max) = 62;
+       MY(trailspacing) = 32;
+       MY(type) = "bubble";
+       MY(underwater) = true;
+       MY(velocityjitter) = '16.0 16.0 16.0';
 }
-
-#define rocketminsta_laser(name, color) \
-       DEF(rocketminsta_laser_##name); \
-       SUB(rocketminsta_laser_##name) { \
-               MY(alpha_min) = 256; \
-               MY(alpha_max) = 256; \
-               MY(alpha_fade) = 968; \
-               MY(color_min) = color; \
-               MY(color_max) = color; \
-               MY(lightcolor) = '1.5 3.0 6.0'; \
-               MY(lightradius) = 90; \
-               MY(size_min) = 3; \
-               MY(size_max) = 3; \
-               MY(tex_min) = 38; \
-               MY(tex_max) = 38; \
-               MY(trailspacing) = 2; \
-               MY(type) = "static"; \
-               MY(velocitymultiplier) = -0.100000; \
-       } \
-       SUB(rocketminsta_laser_##name) { \
-               MY(airfriction) = 12; \
-               MY(alpha_min) = 444; \
-               MY(alpha_max) = 512; \
-               MY(alpha_fade) = 1866; \
-               MY(bounce) = 1; \
-               MY(color_min) = color; \
-               MY(color_max) = color; \
-               MY(count) = 1.500000; \
-               MY(originjitter) = '1.0 1.0 1.0'; \
-               MY(sizeincrease) = -20; \
-               MY(size_min) = 2; \
-               MY(size_max) = 4; \
-               MY(tex_min) = 42; \
-               MY(tex_max) = 42; \
-               MY(trailspacing) = 12; \
-               MY(type) = "snow"; \
-               MY(velocityjitter) = '50.0 50.0 50.0'; \
-               MY(velocityoffset) = '0.0 0.0 15.0'; \
-       } \
-       /**/
-
-rocketminsta_laser(red,        "0xFF0F0F")
-rocketminsta_laser(blue,       "0x0F0FFF")
-rocketminsta_laser(yellow,     "0xFFFF0F")
-rocketminsta_laser(pink,       "0xFF0FFF")
-rocketminsta_laser(neutral, "0xFFFFFF")
-#undef rocketminsta_laser