]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Implement linear damage scaling for Electro damage over time combos
authorMario <mario.mario@y7mail.com>
Wed, 30 Sep 2020 15:22:05 +0000 (01:22 +1000)
committerMario <mario.mario@y7mail.com>
Wed, 30 Sep 2020 15:22:05 +0000 (01:22 +1000)
bal-wep-mario.cfg
bal-wep-nexuiz25.cfg
bal-wep-samual.cfg
bal-wep-xdf.cfg
bal-wep-xonotic.cfg
qcsrc/common/weapons/weapon/electro.qc
qcsrc/common/weapons/weapon/electro.qh
testing.cfg

index 8bfabc37381affe93c9fc40f67355c3993baf1c6..69c9f08f11b734b99574923a4fff7da40d86fad1 100644 (file)
@@ -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
index acdd6a2ac2b5880f69c36eb97ee2e8329b624ec3..c1518d90641a8803544789eed28aeb4e0ecac576 100644 (file)
@@ -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
index a2391e559a728f04a3e62f8b32234da5843b9e59..5fede29644d92168b6525689fd36bfb0490a830f 100644 (file)
@@ -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
index f58233f3ea4429dea59486a670f4105a447421d0..95c186f35b5a13bf7d8cf6554dc4e4e5a6d2ae20 100644 (file)
@@ -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
index 19281a3cd269905290e6ed671dc0776b62e2a1b8..8585aab4e91ea4e0edb7a051231e86c61e2fd3af 100644 (file)
@@ -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
index e650138289aea9b3eee2364cf897d45db62fc37e..fa25513f13e5c787711316a6e48188916eb83fc5 100644 (file)
@@ -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);
index c9298acaa6e8e4bdfe073ea240a8a332a548030a..eb697c3eff5af746674278daeedf80397d2cd5de 100644 (file)
@@ -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;
index f64bff94b9116eb179856cd34d4a0c5df8dfe56f..711b57534c5677a20049effdd24341dd7664b2dc 100644 (file)
@@ -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"