]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add a new particle effect for the electro combo over time
authorMario <mario.mario@y7mail.com>
Thu, 16 Jul 2020 17:36:01 +0000 (03:36 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 16 Jul 2020 17:36:01 +0000 (03:36 +1000)
effectinfo.txt
qcsrc/common/effects/all.inc
qcsrc/common/effects/effectinfo.inc
qcsrc/common/weapons/weapon/electro.qc

index 7fc732b7da5037d59c87a0762f85c71f6be3a813..4b488ff95df443b752feeee309ae33fc0ccabdd4 100644 (file)
@@ -8390,3 +8390,62 @@ effect respawn_ghost
        originoffset 0 0 -8
        originjitter 28 28 16
        velocityjitter 0 0 256
+effect electro_combo_long
+       type decal
+       alpha 256 256 0
+       countabsolute 1
+       lightcolor 4 5 6
+       lightradiusfade 300
+       lightradius 400
+       originjitter 17 17 17
+       size 64 64
+       tex 59 59
+effect electro_combo_long
+       type static
+       alpha 128 128 64
+       color 0x80C0FF 0x80C0FF
+       countabsolute 1
+       size 48 48
+       tex 38 38
+effect electro_combo_long
+       type static
+       airfriction 6
+       alpha 156 156 100
+       bounce 2
+       color 0x2030FF 0x80C0FF
+       count 5
+       liquidfriction 16
+       sizeincrease 50
+       size 32 32
+       tex 0 7
+       velocityjitter 512 512 512
+effect electro_combo_long
+       type spark
+       alpha 444 512 500
+       bounce 1.600000
+       color 0xa9cacf 0x0054ff
+       count 32
+       originjitter 1 1 1
+       size 2 4
+       stretchfactor 2
+       tex 41 41
+       velocityjitter 128 128 128
+       velocitymultiplier 0.300000
+       rotate -180 180 4000 -4000
+effect electro_combo_long
+       type smoke
+       alpha 256 256 256
+       color 0x202020 0x404040
+       count 0.125000
+       originjitter 20 20 20
+       size 24 24
+       tex 0 8
+       velocityjitter 32 32 32
+effect electro_combo_long
+       type smoke
+       alpha 40 40 20
+       color 0xa9cacf 0x0054ff
+       countabsolute 1
+       size 120 120
+       tex 33 33
+       velocitymultiplier 0.300000
index 019ae6139cd8ce909ad05c5dd832d776240ca918..3141cb62a69d795d633562f6504d3b07627fc89f 100644 (file)
@@ -40,6 +40,7 @@ EFFECT(0, GRENADE_MUZZLEFLASH,      "grenadelauncher_muzzleflash")
 
 EFFECT(0, ELECTRO_BALLEXPLODE,      "electro_ballexplode")
 EFFECT(0, ELECTRO_COMBO,            "electro_combo")
+EFFECT(0, ELECTRO_COMBO_LONG,       "electro_combo_long")
 EFFECT(0, ELECTRO_IMPACT,           "electro_impact")
 EFFECT(0, ELECTRO_MUZZLEFLASH,      "electro_muzzleflash")
 
index 80c6bbacf96f9ec6426913aa227862bc2c90bf64..3e956c776d6c287954c6e9f16bc61dcfda4b8a87 100644 (file)
@@ -9107,4 +9107,101 @@ SUB(RESPAWN_GHOST) {
        MY(velocityjitter) = '0 0 256';
 }
 
+DEF(electro_combo_long);
+// decal
+SUB(electro_combo_long) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(countabsolute) = 1;
+       MY(lightcolor) = '4.0 5.0 6.0';
+       MY(lightradiusfade) = 300;
+       MY(lightradius) = 400;
+       MY(originjitter) = '17.0 17.0 17.0';
+       MY(size_min) = 64;
+       MY(size_max) = 64;
+       MY(tex_min) = 59;
+       MY(tex_max) = 59;
+       MY(type) = "decal";
+}
+// flare effect
+SUB(electro_combo_long) {
+       MY(alpha_min) = 128;
+       MY(alpha_max) = 128;
+       MY(alpha_fade) = 64;
+       MY(color_min) = "0x80C0FF";
+       MY(color_max) = "0x80C0FF";
+       MY(countabsolute) = 1;
+       MY(size_min) = 48;
+       MY(size_max) = 48;
+       MY(tex_min) = 38;
+       MY(tex_max) = 38;
+       MY(type) = "static";
+}
+// large sparks
+SUB(electro_combo_long) {
+       MY(airfriction) = 6;
+       MY(alpha_min) = 156;
+       MY(alpha_max) = 156;
+       MY(alpha_fade) = 156;
+       MY(bounce) = 2;
+       MY(color_min) = "0x2030FF";
+       MY(color_max) = "0x80C0FF";
+       MY(count) = 5;
+       MY(liquidfriction) = 16;
+       MY(sizeincrease) = 50;
+       MY(size_min) = 32;
+       MY(size_max) = 32;
+       MY(tex_max) = 7;
+       MY(type) = "static";
+       MY(velocityjitter) = '512.0 512.0 512.0';
+}
+SUB(electro_combo_long) {
+       MY(alpha_min) = 444;
+       MY(alpha_max) = 512;
+       MY(alpha_fade) = 500;
+       MY(bounce) = 1.600000;
+       MY(color_min) = "0xa9cacf";
+       MY(color_max) = "0x0054ff";
+       MY(count) = 32;
+       MY(originjitter) = '1.0 1.0 1.0';
+       MY(size_min) = 2;
+       MY(size_max) = 4;
+       MY(stretchfactor) = 2;
+       MY(tex_min) = 41;
+       MY(tex_max) = 41;
+       MY(type) = "spark";
+       MY(velocityjitter) = '128.0 128.0 128.0';
+       MY(velocitymultiplier) = 0.300000;
+}
+// inner cloud of smoke
+SUB(electro_combo_long) {
+       MY(alpha_min) = 256;
+       MY(alpha_max) = 256;
+       MY(alpha_fade) = 256;
+       MY(color_min) = "0x202020";
+       MY(color_max) = "0x404040";
+       MY(count) = 0.125000;
+       MY(originjitter) = '20.0 20.0 20.0';
+       MY(size_min) = 24;
+       MY(size_max) = 24;
+       MY(tex_max) = 8;
+       MY(type) = "smoke";
+       MY(velocityjitter) = '32.0 32.0 32.0';
+}
+// shockwave
+SUB(electro_combo_long) {
+       MY(alpha_min) = 40;
+       MY(alpha_max) = 40;
+       MY(alpha_fade) = 20;
+       MY(color_min) = "0xa9cacf";
+       MY(color_max) = "0x0054ff";
+       MY(countabsolute) = 1;
+       MY(size_min) = 120;
+       MY(size_max) = 120;
+       MY(tex_min) = 33;
+       MY(tex_max) = 33;
+       MY(type) = "smoke";
+       MY(velocitymultiplier) = 0.300000;
+}
+
 // always add new effects to the bottom of the list. And keep this comment in the bottom line of this file!
index 048f06c222e46b678c079e397fc343ba525d97fb..8a89daec9646253a78745267a56b1f7394c962da 100644 (file)
@@ -612,7 +612,10 @@ METHOD(Electro, wr_impacteffect, void(entity thiswep, entity actor))
        if(w_deathtype & HITTYPE_SPLASH)
        {
                org2 = w_org + w_backoff * 2;
-            pointparticles(EFFECT_HOOK_EXPLODE, org2, '0 0 0', 1);
+               if(particleeffectnum(EFFECT_ELECTRO_COMBO_LONG) >= 0)
+               pointparticles(EFFECT_ELECTRO_COMBO_LONG, org2, '0 0 0', 1);
+               else
+               pointparticles(EFFECT_HOOK_EXPLODE, org2, '0 0 0', 1);
             if(!w_issilent)
                 sound(actor, CH_SHOTS, SND_ELECTRO_IMPACT_COMBO, VOL_BASE, ATTEN_NORM);
        }