]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/effects/effectinfo.inc
Merge branch 'master' into Mario/csqc_muzzleflash
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / effects / effectinfo.inc
index c8273ecb2e2057c68fd357399486535b1aae4236..80c6bbacf96f9ec6426913aa227862bc2c90bf64 100644 (file)
@@ -1,7 +1,12 @@
 // 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, the first is inclusive, second exclusive
+// always add new effects to the bottom of the list
+
+// `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);
@@ -4415,20 +4420,50 @@ SUB(flac_explode) {
 
 // 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
@@ -7116,8 +7151,8 @@ SUB(tr_hagar) {
 }
 
 // laser damage effect
-DEF(damage_laser);
-SUB(damage_laser) {
+DEF(damage_blaster);
+SUB(damage_blaster) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 128;
        MY(alpha_max) = 16;
@@ -7178,8 +7213,8 @@ SUB(damage_shotgun) {
 }
 
 // shotgun damage effect, alien blood
-DEF(damage_shotgun_alien);
-SUB(damage_shotgun_alien) {
+DEF(alien_damage_shotgun);
+SUB(alien_damage_shotgun) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7202,7 +7237,7 @@ SUB(damage_shotgun_alien) {
        MY(velocitymultiplier) = 5;
 }
 // blood mist
-SUB(damage_shotgun_alien) {
+SUB(alien_damage_shotgun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 400;
@@ -7217,8 +7252,8 @@ SUB(damage_shotgun_alien) {
 }
 
 // shotgun damage effect, robot blood
-DEF(damage_shotgun_robot);
-SUB(damage_shotgun_robot) {
+DEF(robot_damage_shotgun);
+SUB(robot_damage_shotgun) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7241,7 +7276,7 @@ SUB(damage_shotgun_robot) {
        MY(velocitymultiplier) = 5;
 }
 // blood mist
-SUB(damage_shotgun_robot) {
+SUB(robot_damage_shotgun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 400;
@@ -7256,8 +7291,8 @@ SUB(damage_shotgun_robot) {
 }
 
 // machinegun damage effect, normal blood
-DEF(damage_uzi);
-SUB(damage_uzi) {
+DEF(damage_machinegun);
+SUB(damage_machinegun) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7280,7 +7315,7 @@ SUB(damage_uzi) {
        MY(velocitymultiplier) = 5;
 }
 // blood mist
-SUB(damage_uzi) {
+SUB(damage_machinegun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 400;
@@ -7294,8 +7329,8 @@ SUB(damage_uzi) {
 }
 
 // machinegun damage effect, alien blood
-DEF(damage_uzi_alien);
-SUB(damage_uzi_alien) {
+DEF(alien_damage_machinegun);
+SUB(alien_damage_machinegun) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7318,7 +7353,7 @@ SUB(damage_uzi_alien) {
        MY(velocitymultiplier) = 5;
 }
 // blood mist
-SUB(damage_uzi_alien) {
+SUB(alien_damage_machinegun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 400;
@@ -7332,8 +7367,8 @@ SUB(damage_uzi_alien) {
 }
 
 // machinegun damage effect, robot blood
-DEF(damage_uzi_robot);
-SUB(damage_uzi_robot) {
+DEF(robot_damage_machinegun);
+SUB(robot_damage_machinegun) {
        MY(airfriction) = 1;
        MY(alpha_min) = 256;
        MY(alpha_max) = 256;
@@ -7356,7 +7391,7 @@ SUB(damage_uzi_robot) {
        MY(velocitymultiplier) = 5;
 }
 // blood mist
-SUB(damage_uzi_robot) {
+SUB(robot_damage_machinegun) {
        MY(alpha_min) = 100;
        MY(alpha_max) = 256;
        MY(alpha_fade) = 400;
@@ -7409,8 +7444,8 @@ SUB(damage_minelayer) {
 }
 
 // mortar damage effect
-DEF(damage_grenadelauncher);
-SUB(damage_grenadelauncher) {
+DEF(damage_mortar);
+SUB(damage_mortar) {
        MY(alpha_min) = 512;
        MY(alpha_max) = 64;
        MY(alpha_fade) = 1024;
@@ -7429,7 +7464,7 @@ SUB(damage_grenadelauncher) {
        MY(velocityjitter) = '22.0 22.0 50.0';
 }
 // smoke
-SUB(damage_grenadelauncher) {
+SUB(damage_mortar) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
        MY(alpha_fade) = 128;
@@ -7447,6 +7482,73 @@ SUB(damage_grenadelauncher) {
        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(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_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '0.3 0.3 0.5';
+}
+// bouncing sparks
+SUB(damage_arc) {
+       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.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) {
@@ -7603,8 +7705,8 @@ SUB(damage_hlac) {
 }
 
 // vortex damage effect
-DEF(damage_nex);
-SUB(damage_nex) {
+DEF(damage_vortex);
+SUB(damage_vortex) {
        MY(airfriction) = -0.500000;
        MY(alpha_min) = 64;
        MY(alpha_max) = 8;
@@ -7628,7 +7730,7 @@ SUB(damage_nex) {
        MY(velocityjitter) = '8.0 8.0 16.0';
 }
 // plasma smoke
-SUB(damage_nex) {
+SUB(damage_vortex) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
        MY(alpha_max) = 16;
@@ -7648,7 +7750,7 @@ SUB(damage_nex) {
        MY(velocityjitter) = '0.5 0.5 0.8';
 }
 // bouncing sparks
-SUB(damage_nex) {
+SUB(damage_vortex) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -7669,8 +7771,8 @@ SUB(damage_nex) {
 }
 
 // vaporizer damage effect
-DEF(damage_minstanex);
-SUB(damage_minstanex) {
+DEF(damage_vaporizer);
+SUB(damage_vaporizer) {
        MY(airfriction) = -0.500000;
        MY(alpha_min) = 64;
        MY(alpha_max) = 8;
@@ -7694,7 +7796,7 @@ SUB(damage_minstanex) {
        MY(velocityjitter) = '8.0 8.0 16.0';
 }
 // plasma smoke
-SUB(damage_minstanex) {
+SUB(damage_vaporizer) {
        MY(airfriction) = -0.350000;
        MY(alpha_min) = 64;
        MY(alpha_max) = 16;
@@ -7714,7 +7816,7 @@ SUB(damage_minstanex) {
        MY(velocityjitter) = '0.5 0.5 0.8';
 }
 // bouncing sparks
-SUB(damage_minstanex) {
+SUB(damage_vaporizer) {
        MY(airfriction) = 2;
        MY(alpha_min) = 255;
        MY(alpha_max) = 255;
@@ -7966,8 +8068,8 @@ SUB(damage_fireball) {
 }
 
 // rocketlauncher damage effect
-DEF(damage_rocketlauncher);
-SUB(damage_rocketlauncher) {
+DEF(damage_devastator);
+SUB(damage_devastator) {
        MY(alpha_min) = 512;
        MY(alpha_max) = 64;
        MY(alpha_fade) = 1024;
@@ -7986,7 +8088,7 @@ SUB(damage_rocketlauncher) {
        MY(velocityjitter) = '22.0 22.0 30.0';
 }
 // smoke
-SUB(damage_rocketlauncher) {
+SUB(damage_devastator) {
        MY(alpha_min) = 128;
        MY(alpha_max) = 32;
        MY(alpha_fade) = 128;
@@ -8894,3 +8996,115 @@ SUB(arc_bolt_explode) {
        MY(velocityjitter) = '224.0 224.0 224.0';
        MY(velocityoffset) = '0.0 0.0 80.0';
 }
+
+// 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) = 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';
+}
+
+// Vaporizer hit effect
+DEF(TE_TEI_G3_HIT);
+SUB(TE_TEI_G3_HIT) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 128;
+       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";
+}
+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) = '2.0 2.0 2.0';
+}
+SUB(TE_TEI_G3_HIT) {
+       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) = -6;
+       MY(size_min) = 10;
+       MY(size_max) = 10;
+       MY(trailspacing) = 40;
+       MY(type) = "smoke";
+}
+
+// respawn ghosts effect
+DEF(RESPAWN_GHOST);
+SUB(RESPAWN_GHOST) {
+       MY(count) = 75;
+       MY(type) = "static";
+       MY(color_min) = "0xA0A0A0";
+       MY(color_max) = "0xFFFFFF";
+       MY(size_min) = 2;
+       MY(size_max) = 2;
+       MY(alpha_min) = 32;
+       MY(alpha_max) = 64;
+       MY(alpha_fade) = 128;
+       MY(airfriction) = 1;
+       MY(liquidfriction) = 4;
+       MY(originoffset) = '0 0 -8';
+       MY(originjitter) = '28 28 16';
+       MY(velocityjitter) = '0 0 256';
+}
+
+// always add new effects to the bottom of the list. And keep this comment in the bottom line of this file!