X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_crylink.qc;h=3866284a4c2007efeb3c0e55c99ec32044a2bc6e;hb=2547369acbe9fc29dd9101a6d93f3a2056ef7368;hp=ae3600de755bf6cfd296b9bf3f20f54406999630;hpb=5856c70f43c3ba91a721260e2d0f3ec162adbb25;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index ae3600de7..3866284a4 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -49,10 +49,20 @@ void W_Crylink_Dequeue(entity e) W_Crylink_Dequeue_Raw(e.realowner, e.queueprev, e, e.queuenext); } +void W_Crylink_Reset(void) +{ + W_Crylink_Dequeue(self); + remove(self); +} + // force projectile to explode void W_Crylink_LinkExplode (entity e, entity e2) { float a; + + if(e == e2) + return; + a = bound(0, 1 - (time - e.fade_time) * e.fade_rate, 1); if(e == e.realowner.crylink_lastgroup) @@ -63,8 +73,7 @@ void W_Crylink_LinkExplode (entity e, entity e2) else RadiusDamage (e, e.realowner, autocvar_g_balance_crylink_primary_damage * a, autocvar_g_balance_crylink_primary_edgedamage * a, autocvar_g_balance_crylink_primary_radius, world, autocvar_g_balance_crylink_primary_force * a, e.projectiledeathtype, other); - if(e.queuenext != e2) - W_Crylink_LinkExplode(e.queuenext, e2); + W_Crylink_LinkExplode(e.queuenext, e2); e.classname = "spike_oktoremove"; remove (e); @@ -330,6 +339,7 @@ void W_Crylink_Attack (void) while (counter < shots) { proj = spawn (); + proj.reset = W_Crylink_Reset; proj.realowner = proj.owner = self; proj.classname = "spike"; proj.bot_dodge = TRUE; @@ -434,6 +444,7 @@ void W_Crylink_Attack2 (void) while (counter < shots) { proj = spawn (); + proj.reset = W_Crylink_Reset; proj.realowner = proj.owner = self; proj.classname = "spike"; proj.bot_dodge = TRUE;