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
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
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
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
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
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)
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);
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) \
.float dmg_duration;
.float dmg_last;
.float dmg_interval;
+.float dmg_linear;
.float electro_count;
.float electro_secondarytime;
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"