From 2999eef9c2f1d1839511b17f15c5c6ac0b4bfaa3 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 1 Oct 2020 01:22:05 +1000 Subject: [PATCH] Implement linear damage scaling for Electro damage over time combos --- bal-wep-mario.cfg | 1 + bal-wep-nexuiz25.cfg | 1 + bal-wep-samual.cfg | 1 + bal-wep-xdf.cfg | 1 + bal-wep-xonotic.cfg | 1 + qcsrc/common/weapons/weapon/electro.qc | 5 ++++- qcsrc/common/weapons/weapon/electro.qh | 2 ++ testing.cfg | 2 +- 8 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bal-wep-mario.cfg b/bal-wep-mario.cfg index 8bfabc373..69c9f08f1 100644 --- a/bal-wep-mario.cfg +++ b/bal-wep-mario.cfg @@ -180,6 +180,7 @@ set g_balance_electro_combo_comboradius 300 set g_balance_electro_combo_comboradius_thruwall 200 set g_balance_electro_combo_damage 50 set g_balance_electro_combo_damage_interval 0.05 +set g_balance_electro_combo_damage_linear 0 set g_balance_electro_combo_duration 1.5 set g_balance_electro_combo_edgedamage 45 set g_balance_electro_combo_force -100 diff --git a/bal-wep-nexuiz25.cfg b/bal-wep-nexuiz25.cfg index acdd6a2ac..c1518d906 100644 --- a/bal-wep-nexuiz25.cfg +++ b/bal-wep-nexuiz25.cfg @@ -180,6 +180,7 @@ set g_balance_electro_combo_comboradius 0 set g_balance_electro_combo_comboradius_thruwall 0 set g_balance_electro_combo_damage 80 set g_balance_electro_combo_damage_interval 0.05 +set g_balance_electro_combo_damage_linear 0 set g_balance_electro_combo_duration 0 set g_balance_electro_combo_edgedamage 0 set g_balance_electro_combo_force 200 diff --git a/bal-wep-samual.cfg b/bal-wep-samual.cfg index a2391e559..5fede2964 100644 --- a/bal-wep-samual.cfg +++ b/bal-wep-samual.cfg @@ -180,6 +180,7 @@ set g_balance_electro_combo_comboradius 300 set g_balance_electro_combo_comboradius_thruwall 200 set g_balance_electro_combo_damage 50 set g_balance_electro_combo_damage_interval 0.05 +set g_balance_electro_combo_damage_linear 0 set g_balance_electro_combo_duration 0 set g_balance_electro_combo_edgedamage 25 set g_balance_electro_combo_force 120 diff --git a/bal-wep-xdf.cfg b/bal-wep-xdf.cfg index f58233f3e..95c186f35 100644 --- a/bal-wep-xdf.cfg +++ b/bal-wep-xdf.cfg @@ -180,6 +180,7 @@ set g_balance_electro_combo_comboradius 275 set g_balance_electro_combo_comboradius_thruwall 200 set g_balance_electro_combo_damage 50 set g_balance_electro_combo_damage_interval 0.05 +set g_balance_electro_combo_damage_linear 0 set g_balance_electro_combo_duration 0 set g_balance_electro_combo_edgedamage 25 set g_balance_electro_combo_force 120 diff --git a/bal-wep-xonotic.cfg b/bal-wep-xonotic.cfg index 19281a3cd..8585aab4e 100644 --- a/bal-wep-xonotic.cfg +++ b/bal-wep-xonotic.cfg @@ -180,6 +180,7 @@ set g_balance_electro_combo_comboradius 300 set g_balance_electro_combo_comboradius_thruwall 200 set g_balance_electro_combo_damage 50 set g_balance_electro_combo_damage_interval 0.05 +set g_balance_electro_combo_damage_linear 0 set g_balance_electro_combo_duration 0 set g_balance_electro_combo_edgedamage 25 set g_balance_electro_combo_force 120 diff --git a/qcsrc/common/weapons/weapon/electro.qc b/qcsrc/common/weapons/weapon/electro.qc index e65013828..fa25513f1 100644 --- a/qcsrc/common/weapons/weapon/electro.qc +++ b/qcsrc/common/weapons/weapon/electro.qc @@ -57,7 +57,9 @@ void W_Electro_ExplodeComboThink(entity this) float f = this.dmg_last - dmg_remaining_next; this.dmg_last = dmg_remaining_next; - RadiusDamage(this, this.realowner, this.dmg * f, this.dmg_edge * f, this.dmg_radius, NULL, NULL, this.dmg_force * f, this.projectiledeathtype, this.weaponentity_fld, NULL); + float dmg_scale = ((this.dmg_linear) ? this.dmg_interval : f); + + RadiusDamage(this, this.realowner, this.dmg * dmg_scale, this.dmg_edge * dmg_scale, this.dmg_radius, NULL, NULL, this.dmg_force * f, this.projectiledeathtype, this.weaponentity_fld, NULL); this.projectiledeathtype |= HITTYPE_BOUNCE; // ensure it doesn't spam its effect if(dt < this.dmg_duration) @@ -88,6 +90,7 @@ void W_Electro_ExplodeCombo(entity this) this.dmg_power = WEP_CVAR(electro, combo_power); this.dmg_duration = WEP_CVAR(electro, combo_duration); this.dmg_interval = WEP_CVAR(electro, combo_damage_interval); + this.dmg_linear = WEP_CVAR(electro, combo_damage_linear); this.teleport_time = time; this.dmg_last = 1; set_movetype(this, MOVETYPE_NONE); diff --git a/qcsrc/common/weapons/weapon/electro.qh b/qcsrc/common/weapons/weapon/electro.qh index c9298acaa..eb697c3ef 100644 --- a/qcsrc/common/weapons/weapon/electro.qh +++ b/qcsrc/common/weapons/weapon/electro.qh @@ -30,6 +30,7 @@ CLASS(Electro, Weapon) P(class, prefix, combo_comboradius_thruwall, float, NONE) \ P(class, prefix, combo_damage, float, NONE) \ P(class, prefix, combo_damage_interval, float, NONE) \ + P(class, prefix, combo_damage_linear, float, NONE) \ P(class, prefix, combo_duration, float, NONE) \ P(class, prefix, combo_edgedamage, float, NONE) \ P(class, prefix, combo_force, float, NONE) \ @@ -87,6 +88,7 @@ SPAWNFUNC_WEAPON(weapon_electro, WEP_ELECTRO) .float dmg_duration; .float dmg_last; .float dmg_interval; +.float dmg_linear; .float electro_count; .float electro_secondarytime; diff --git a/testing.cfg b/testing.cfg index f64bff94b..711b57534 100644 --- a/testing.cfg +++ b/testing.cfg @@ -11,7 +11,7 @@ alias test_rocket_flying "settemp g_balance_devastator_remote_jump 1" alias test_ctf_stalemate90 "settemp g_ctf_stalemate_time 90" alias test_ctf_stalemate120 "settemp g_ctf_stalemate_time 120" -alias test_electro_combo_over_time "settemp g_balance_electro_combo_damage_interval 0.05 ; settemp g_balance_electro_combo_duration 1.5 ; settemp g_balance_electro_combo_power 3" +alias test_electro_combo_over_time "settemp g_balance_electro_combo_damage_interval 0.05 ; settemp g_balance_electro_combo_duration 1.5 ; settemp g_balance_electro_combo_power 3 ; settemp g_balance_electro_combo_damage_linear 1" alias testing_enable "addvote test_blaster_switch ; addvote test_crylink_sec_horizontal ; addvote test_rocket_flying ; addvote test_ctf_stalemate90 ; addvote test_ctf_stalemate120 ; addvote test_electro_combo_over_time" alias testing_disable "delvote test_blaster_switch ; delvote test_crylink_sec_horizontal ; delvote test_rocket_flying ; delvote test_ctf_stalemate90 ; delvote test_ctf_stalemate120 ; delvote test_electro_combo_over_time" -- 2.39.2