From: Mario Date: Sun, 8 Dec 2013 06:41:48 +0000 (+1100) Subject: Midair combos X-Git-Tag: xonotic-v0.8.0~152^2~293 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=07f6d249ddf07afe5bda8ca6dca9586dce18f44c;p=xonotic%2Fxonotic-data.pk3dir.git Midair combos --- 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);