From 07f6d249ddf07afe5bda8ca6dca9586dce18f44c Mon Sep 17 00:00:00 2001 From: Mario Date: Sun, 8 Dec 2013 17:41:48 +1100 Subject: [PATCH] Midair combos --- balanceXonotic.cfg | 1 + qcsrc/common/weapons/w_electro.qc | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index e01b2e41b..fa56aaa67 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -428,6 +428,7 @@ set g_balance_electro_primary_force 200 set g_balance_electro_primary_force_up 0 set g_balance_electro_primary_radius 100 set g_balance_electro_primary_comboradius 300 +set g_balance_electro_primary_midaircombo_interval 0.3 set g_balance_electro_primary_speed 2500 set g_balance_electro_primary_spread 0 set g_balance_electro_primary_lifetime 5 diff --git a/qcsrc/common/weapons/w_electro.qc b/qcsrc/common/weapons/w_electro.qc index 2f16f8a11..af9a54291 100644 --- a/qcsrc/common/weapons/w_electro.qc +++ b/qcsrc/common/weapons/w_electro.qc @@ -23,6 +23,7 @@ REGISTER_WEAPON( w_cvar(WEP_ELECTRO, electro, MO_BOTH, spread) \ w_cvar(WEP_ELECTRO, electro, MO_BOTH, lifetime) \ w_cvar(WEP_ELECTRO, electro, MO_PRI, comboradius) \ + w_cvar(WEP_ELECTRO, electro, MO_PRI, midaircombo_interval) \ w_cvar(WEP_ELECTRO, electro, MO_SEC, bouncefactor) \ w_cvar(WEP_ELECTRO, electro, MO_SEC, bouncestop) \ w_cvar(WEP_ELECTRO, electro, MO_SEC, count) \ @@ -212,6 +213,19 @@ void W_Plasma_Damage(entity inflictor, entity attacker, float damage, float deat } } +void W_Plasma_Think() +{ + self.nextthink = time + WEP_CVAR_PRI(electro, midaircombo_interval); + + if(time >= self.ltime) + { + self.use(); + return; + } + + W_Plasma_TriggerCombo(self.origin, WEP_CVAR_PRI(electro, comboradius), self.realowner); +} + void W_Electro_Attack_Bolt(void) { entity proj; @@ -228,8 +242,9 @@ void W_Electro_Attack_Bolt(void) proj.bot_dodge = TRUE; proj.bot_dodgerating = WEP_CVAR_PRI(electro, damage); proj.use = W_Plasma_Explode; - proj.think = adaptor_think2use_hittype_splash; - proj.nextthink = time + WEP_CVAR_PRI(electro, lifetime); + proj.think = W_Plasma_Think; + proj.nextthink = time; + proj.ltime = time + WEP_CVAR_PRI(electro, lifetime); PROJECTILE_MAKETRIGGER(proj); proj.projectiledeathtype = WEP_ELECTRO; setorigin(proj, w_shotorg); -- 2.39.2