From: Rudolf Polzer Date: Tue, 9 Nov 2010 15:50:18 +0000 (+0100) Subject: g_balance_crylink_*_joinspeed X-Git-Tag: xonotic-v0.1.0preview~178^2~3 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=a73c41d6a3525f42bb3c6850123448ee7faa9c09;ds=sidebyside g_balance_crylink_*_joinspeed --- diff --git a/balance25.cfg b/balance25.cfg index 09e987a5ec..69c508a948 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -394,6 +394,7 @@ set g_balance_crylink_primary_refire 0.4 set g_balance_crylink_primary_animtime 0.3 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.5 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_primary_middle_fadetime 5 @@ -415,6 +416,7 @@ set g_balance_crylink_secondary_refire 0.5 set g_balance_crylink_secondary_animtime 0.3 set g_balance_crylink_secondary_ammo 2 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index 0a24823c91..d917309b30 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -405,6 +405,7 @@ set g_balance_crylink_primary_refire 0.4 set g_balance_crylink_primary_animtime 0.30008 set g_balance_crylink_primary_ammo 3 set g_balance_crylink_primary_bouncedamagefactor 0.2 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 10000 full, fades to 20000 set g_balance_crylink_primary_middle_fadetime 5 @@ -426,6 +427,7 @@ set g_balance_crylink_secondary_refire 0.5 set g_balance_crylink_secondary_animtime 0.3 set g_balance_crylink_secondary_ammo 3 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 10000 full, fades to 10000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balanceNexSVN.cfg b/balanceNexSVN.cfg index 80049f3396..b5e16e3ee3 100644 --- a/balanceNexSVN.cfg +++ b/balanceNexSVN.cfg @@ -393,6 +393,7 @@ set g_balance_crylink_primary_refire 0.4 set g_balance_crylink_primary_animtime 0.3 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.5 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_primary_middle_fadetime 5 @@ -414,6 +415,7 @@ set g_balance_crylink_secondary_refire 0.5 set g_balance_crylink_secondary_animtime 0.3 set g_balance_crylink_secondary_ammo 2 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index f9f04722cb..d212694783 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -394,6 +394,7 @@ set g_balance_crylink_primary_refire 0.4 set g_balance_crylink_primary_animtime 0.3 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.5 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_primary_middle_fadetime 5 @@ -415,6 +416,7 @@ set g_balance_crylink_secondary_refire 0.1 set g_balance_crylink_secondary_animtime 0.1 set g_balance_crylink_secondary_ammo 2 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balanceTest.cfg b/balanceTest.cfg index f312d32d89..de6553c6cb 100644 --- a/balanceTest.cfg +++ b/balanceTest.cfg @@ -394,6 +394,7 @@ set g_balance_crylink_primary_refire 1 set g_balance_crylink_primary_animtime 0.4 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.2 +set g_balance_crylink_primary_joinspeed 1000 set g_balance_crylink_primary_middle_lifetime 5 // range: 10000 full, fades to 20000 set g_balance_crylink_primary_middle_fadetime 5 @@ -415,6 +416,7 @@ set g_balance_crylink_secondary_refire 0.15 set g_balance_crylink_secondary_animtime 0.15 set g_balance_crylink_secondary_ammo 1 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 1000 set g_balance_crylink_secondary_middle_lifetime 5 // range: 10000 full, fades to 10000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index f0f4d856e9..ab7c5d4cee 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -394,6 +394,7 @@ set g_balance_crylink_primary_refire 0.8 set g_balance_crylink_primary_animtime 0.4 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.2 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 10000 full, fades to 20000 set g_balance_crylink_primary_middle_fadetime 5 @@ -415,6 +416,7 @@ set g_balance_crylink_secondary_refire 0.15 set g_balance_crylink_secondary_animtime 0.15 set g_balance_crylink_secondary_ammo 1 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 10000 full, fades to 10000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/balancetZork.cfg b/balancetZork.cfg index 38b77306f2..c868904a28 100644 --- a/balancetZork.cfg +++ b/balancetZork.cfg @@ -395,6 +395,7 @@ set g_balance_crylink_primary_refire 1 set g_balance_crylink_primary_animtime 0.4 set g_balance_crylink_primary_ammo 2 set g_balance_crylink_primary_bouncedamagefactor 0.2 +set g_balance_crylink_primary_joinspeed 0 set g_balance_crylink_primary_middle_lifetime 5 // range: 10000 full, fades to 20000 set g_balance_crylink_primary_middle_fadetime 5 @@ -416,6 +417,7 @@ set g_balance_crylink_secondary_refire 0.15 set g_balance_crylink_secondary_animtime 0.15 set g_balance_crylink_secondary_ammo 1 set g_balance_crylink_secondary_bouncedamagefactor 0.5 +set g_balance_crylink_secondary_joinspeed 0 set g_balance_crylink_secondary_middle_lifetime 5 // range: 10000 full, fades to 10000 set g_balance_crylink_secondary_middle_fadetime 5 diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index 5c0bfbc9ae..e8f252d38d 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -3,7 +3,7 @@ REGISTER_WEAPON(CRYLINK, w_crylink, IT_CELLS, 6, WEP_FLAG_NORMAL | WEP_TYPE_SPLA #else #ifdef SVQC .float gravity; -.float crylink_release; +.float crylink_waitrelease; .entity crylink_lastgroup; .entity queuenext; @@ -28,10 +28,14 @@ void W_Crylink_LinkExplode (entity e, entity e2) float a; a = bound(0, 1 - (time - e.fade_time) * e.fade_rate, 1); + if(e == e.realowner.crylink_lastgroup) + e.realowner.crylink_lastgroup = world; + RadiusDamage (e, e.realowner, cvar("g_balance_crylink_primary_damage") * a, cvar("g_balance_crylink_primary_edgedamage") * a, cvar("g_balance_crylink_primary_radius"), world, cvar("g_balance_crylink_primary_force") * a, e.projectiledeathtype, other); if(e.queuenext != e2) W_Crylink_LinkExplode(e.queuenext, e2); + remove (e); } @@ -401,16 +405,44 @@ float w_crylink(float req) else if (req == WR_THINK) { if (self.BUTTON_ATCK) - if (weapon_prepareattack(0, cvar("g_balance_crylink_primary_refire"))) { - W_Crylink_Attack(); - weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_crylink_primary_animtime"), w_ready); + if (!self.crylink_waitrelease) + if (weapon_prepareattack(0, cvar("g_balance_crylink_primary_refire"))) + { + W_Crylink_Attack(); + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_crylink_primary_animtime"), w_ready); + if(cvar("g_balance_crylink_primary_joinspeed") != 0) + self.crylink_waitrelease = 1; + } } - if (self.BUTTON_ATCK2 && cvar("g_balance_crylink_secondary")) - if (weapon_prepareattack(1, cvar("g_balance_crylink_secondary_refire"))) + else if(self.BUTTON_ATCK2 && cvar("g_balance_crylink_secondary")) + { + if (weapon_prepareattack(1, cvar("g_balance_crylink_secondary_refire"))) + { + W_Crylink_Attack2(); + weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_crylink_secondary_animtime"), w_ready); + if(cvar("g_balance_crylink_secondary_joinspeed") != 0) + self.crylink_waitrelease = 2; + } + } + else { - W_Crylink_Attack2(); - weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_crylink_secondary_animtime"), w_ready); + if (self.crylink_waitrelease) + { + // fired and released now! + if(self.crylink_lastgroup) + { + if(self.crylink_waitrelease == 1) + { + W_Crylink_LinkJoin(self.crylink_lastgroup, cvar("g_balance_crylink_primary_joinspeed")); + } + else + { + W_Crylink_LinkJoin(self.crylink_lastgroup, cvar("g_balance_crylink_secondary_joinspeed")); + } + } + } + self.crylink_waitrelease = 0; } } else if (req == WR_PRECACHE)