Add a force_zscale setting to weapons that use the blaster secondary
authorMario <mario@smbclan.net>
Thu, 15 Aug 2019 11:36:10 +0000 (21:36 +1000)
committerMario <mario@smbclan.net>
Thu, 15 Aug 2019 11:36:10 +0000 (21:36 +1000)
17 files changed:
bal-wep-mario.cfg
bal-wep-nexuiz25.cfg
bal-wep-overkill-nerfed.cfg
bal-wep-samual.cfg
bal-wep-xdf.cfg
bal-wep-xonotic.cfg
bal-wep-xpm.cfg
qcsrc/common/mutators/mutator/overkill/okhmg.qh
qcsrc/common/mutators/mutator/overkill/okmachinegun.qh
qcsrc/common/mutators/mutator/overkill/oknex.qh
qcsrc/common/mutators/mutator/overkill/okrpc.qh
qcsrc/common/mutators/mutator/overkill/okshotgun.qh
qcsrc/common/weapons/weapon/blaster.qc
qcsrc/common/weapons/weapon/blaster.qh
qcsrc/common/weapons/weapon/vaporizer.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_damage.qh

index 653ef03..69ea365 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1.2
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 25
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 12.5
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 70
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 12.5
 set g_balance_oknex_secondary_force 300
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 70
 set g_balance_oknex_secondary_refire 0.7
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 25
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 12.5
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 70
 set g_balance_okshotgun_secondary_refire 0.7
index a826a87..ccf1a7d 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 25
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 12.5
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 70
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 12.5
 set g_balance_oknex_secondary_force 300
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 70
 set g_balance_oknex_secondary_refire 0.7
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 25
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 12.5
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 70
 set g_balance_okshotgun_secondary_refire 0.7
index e4fb022..c3365c1 100644 (file)
@@ -18,6 +18,7 @@ set g_balance_okshotgun_secondary_damage 20
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 10
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 60
 set g_balance_okshotgun_secondary_refire 0.7
@@ -47,7 +48,7 @@ set g_balance_okmachinegun_secondary_animtime 0.2
 set g_balance_okmachinegun_secondary_damage 20
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 10
-set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 60
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -97,7 +98,7 @@ set g_balance_oknex_secondary_damagefalloff_forcehalflife 0
 set g_balance_oknex_secondary_damagefalloff_halflife 0
 set g_balance_oknex_secondary_damagefalloff_maxdist 0
 set g_balance_oknex_secondary_damagefalloff_mindist 0
-set g_balance_oknex_secondary_force 0
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_refire 0
 set g_balance_oknex_secondary_refire_type 0
 set g_balance_oknex_secondary_delay 0
index bcd652f..4549f99 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 20
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 10
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 60
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 10
 set g_balance_oknex_secondary_force 0
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 60
 set g_balance_oknex_secondary_refire 0
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 20
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 10
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 60
 set g_balance_okshotgun_secondary_refire 0.7
index 324bb5d..62d1cbb 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1.2
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 20
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 10
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 60
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 10
 set g_balance_oknex_secondary_force 0
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 60
 set g_balance_oknex_secondary_refire 0
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 20
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 10
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 60
 set g_balance_okshotgun_secondary_refire 0.7
index b897fe6..44ca94b 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1.2
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 25
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 12.5
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 70
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 12.5
 set g_balance_oknex_secondary_force 300
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 70
 set g_balance_oknex_secondary_refire 0.7
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 25
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 12.5
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 70
 set g_balance_okshotgun_secondary_refire 0.7
index 17aed81..5152579 100644 (file)
@@ -448,6 +448,7 @@ set g_balance_vaporizer_secondary_damage 25
 set g_balance_vaporizer_secondary_delay 0
 set g_balance_vaporizer_secondary_edgedamage 12.5
 set g_balance_vaporizer_secondary_force 400
+set g_balance_vaporizer_secondary_force_zscale 1.2
 set g_balance_vaporizer_secondary_lifetime 5
 set g_balance_vaporizer_secondary_radius 70
 set g_balance_vaporizer_secondary_refire 0.7
@@ -797,6 +798,7 @@ set g_balance_okhmg_secondary_damage 25
 set g_balance_okhmg_secondary_delay 0
 set g_balance_okhmg_secondary_edgedamage 12.5
 set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_force_zscale 1
 set g_balance_okhmg_secondary_lifetime 5
 set g_balance_okhmg_secondary_radius 70
 set g_balance_okhmg_secondary_refire 0.7
@@ -827,6 +829,7 @@ set g_balance_okmachinegun_secondary_damage 20
 set g_balance_okmachinegun_secondary_delay 0
 set g_balance_okmachinegun_secondary_edgedamage 10
 set g_balance_okmachinegun_secondary_force 300
+set g_balance_okmachinegun_secondary_force_zscale 1
 set g_balance_okmachinegun_secondary_lifetime 5
 set g_balance_okmachinegun_secondary_radius 60
 set g_balance_okmachinegun_secondary_refire 0.7
@@ -879,6 +882,7 @@ set g_balance_oknex_secondary_damagefalloff_mindist 0
 set g_balance_oknex_secondary_delay 0
 set g_balance_oknex_secondary_edgedamage 10
 set g_balance_oknex_secondary_force 0
+set g_balance_oknex_secondary_force_zscale 1
 set g_balance_oknex_secondary_lifetime 5
 set g_balance_oknex_secondary_radius 60
 set g_balance_oknex_secondary_refire 0
@@ -915,6 +919,7 @@ set g_balance_okrpc_secondary_damage 25
 set g_balance_okrpc_secondary_delay 0
 set g_balance_okrpc_secondary_edgedamage 12.5
 set g_balance_okrpc_secondary_force 300
+set g_balance_okrpc_secondary_force_zscale 1
 set g_balance_okrpc_secondary_lifetime 5
 set g_balance_okrpc_secondary_radius 70
 set g_balance_okrpc_secondary_refire 0.7
@@ -946,6 +951,7 @@ set g_balance_okshotgun_secondary_damage 20
 set g_balance_okshotgun_secondary_delay 0
 set g_balance_okshotgun_secondary_edgedamage 10
 set g_balance_okshotgun_secondary_force 300
+set g_balance_okshotgun_secondary_force_zscale 1
 set g_balance_okshotgun_secondary_lifetime 5
 set g_balance_okshotgun_secondary_radius 60
 set g_balance_okshotgun_secondary_refire 0.7
index dec0332..77204ae 100644 (file)
@@ -35,6 +35,7 @@ CLASS(OverkillHeavyMachineGun, Weapon)
                P(class, prefix, delay, float, SEC) \
                P(class, prefix, edgedamage, float, SEC) \
                P(class, prefix, force, float, SEC) \
+               P(class, prefix, force_zscale, float, SEC) \
                P(class, prefix, lifetime, float, SEC) \
                P(class, prefix, radius, float, SEC) \
                P(class, prefix, refire, float, SEC) \
index 321d92e..77082c9 100644 (file)
@@ -32,6 +32,7 @@ CLASS(OverkillMachineGun, Weapon)
                P(class, prefix, delay, float, SEC) \
                P(class, prefix, edgedamage, float, SEC) \
                P(class, prefix, force, float, SEC) \
+               P(class, prefix, force_zscale, float, SEC) \
                P(class, prefix, lifetime, float, SEC) \
                P(class, prefix, radius, float, SEC) \
                P(class, prefix, refire, float, SEC) \
index d03f40f..1ffaf78 100644 (file)
@@ -59,6 +59,7 @@ CLASS(OverkillNex, Weapon)
                P(class, prefix, delay, float, SEC) \
                P(class, prefix, edgedamage, float, SEC) \
                P(class, prefix, force, float, SEC) \
+               P(class, prefix, force_zscale, float, SEC) \
                P(class, prefix, lifetime, float, SEC) \
                P(class, prefix, radius, float, SEC) \
                P(class, prefix, refire, float, SEC) \
index 429073e..928bfc0 100644 (file)
@@ -40,6 +40,7 @@ CLASS(OverkillRocketPropelledChainsaw, Weapon)
                P(class, prefix, delay, float, SEC) \
                P(class, prefix, edgedamage, float, SEC) \
                P(class, prefix, force, float, SEC) \
+               P(class, prefix, force_zscale, float, SEC) \
                P(class, prefix, lifetime, float, SEC) \
                P(class, prefix, radius, float, SEC) \
                P(class, prefix, refire, float, SEC) \
index a830e6a..2c75681 100644 (file)
@@ -33,6 +33,7 @@ CLASS(OverkillShotgun, Weapon)
                P(class, prefix, delay, float, SEC) \
                P(class, prefix, edgedamage, float, SEC) \
                P(class, prefix, force, float, SEC) \
+               P(class, prefix, force_zscale, float, SEC) \
                P(class, prefix, lifetime, float, SEC) \
                P(class, prefix, radius, float, SEC) \
                P(class, prefix, refire, float, SEC) \
index e3d713d..310ea19 100644 (file)
@@ -8,15 +8,19 @@ void W_Blaster_Touch(entity this, entity toucher)
 
        this.event_damage = func_null;
 
-       RadiusDamage(
+       RadiusDamageForSource(
                this,
+               (this.origin + (this.mins + this.maxs) * 0.5),
+               this.velocity,
                this.realowner,
                this.blaster_damage,
                this.blaster_edgedamage,
                this.blaster_radius,
                NULL,
                NULL,
+               false,
                this.blaster_force,
+               this.blaster_force_zscale,
                this.projectiledeathtype,
                this.weaponentity_fld,
                toucher
@@ -42,6 +46,7 @@ void W_Blaster_Attack(
        float atk_edgedamage,
        float atk_radius,
        float atk_force,
+       float atk_force_zscale,
        float atk_speed,
        float atk_spread,
        float atk_delay,
@@ -62,6 +67,7 @@ void W_Blaster_Attack(
        missile.blaster_edgedamage = atk_edgedamage;
        missile.blaster_radius = atk_radius;
        missile.blaster_force = atk_force;
+       missile.blaster_force_zscale = atk_force_zscale;
        missile.blaster_lifetime = atk_lifetime;
 
        setorigin(missile, w_shotorg);
@@ -129,6 +135,7 @@ METHOD(Blaster, wr_think, void(Blaster thiswep, entity actor, .entity weaponenti
                 WEP_CVAR_PRI(blaster, edgedamage),
                 WEP_CVAR_PRI(blaster, radius),
                 WEP_CVAR_PRI(blaster, force),
+                WEP_CVAR_PRI(blaster, force_zscale),
                 WEP_CVAR_PRI(blaster, speed),
                 WEP_CVAR_PRI(blaster, spread),
                 WEP_CVAR_PRI(blaster, delay),
@@ -161,6 +168,7 @@ METHOD(Blaster, wr_think, void(Blaster thiswep, entity actor, .entity weaponenti
                         WEP_CVAR_SEC(blaster, edgedamage),
                         WEP_CVAR_SEC(blaster, radius),
                         WEP_CVAR_SEC(blaster, force),
+                        WEP_CVAR_SEC(blaster, force_zscale),
                         WEP_CVAR_SEC(blaster, speed),
                         WEP_CVAR_SEC(blaster, spread),
                         WEP_CVAR_SEC(blaster, delay),
index 6297bdf..8782431 100644 (file)
@@ -58,6 +58,7 @@ STATIC_INIT(OFFHAND_BLASTER) { OFFHAND_BLASTER = NEW(OffhandBlaster); }
 .float blaster_edgedamage;
 .float blaster_radius;
 .float blaster_force;
+.float blaster_force_zscale;
 .float blaster_lifetime;
 
 // Will be demacroed after WEP_CVAR macros are also demacroed.
@@ -72,6 +73,7 @@ STATIC_INIT(OFFHAND_BLASTER) { OFFHAND_BLASTER = NEW(OffhandBlaster); }
                WEP_CVAR_SEC(weapon_name, edgedamage), \
                WEP_CVAR_SEC(weapon_name, radius), \
                WEP_CVAR_SEC(weapon_name, force), \
+               WEP_CVAR_SEC(weapon_name, force_zscale), \
                WEP_CVAR_SEC(weapon_name, speed), \
                WEP_CVAR_SEC(weapon_name, spread), \
                WEP_CVAR_SEC(weapon_name, delay), \
index 207ae8e..f87a800 100644 (file)
@@ -31,6 +31,7 @@ CLASS(Vaporizer, Weapon)
        P(class, prefix, delay, float, SEC) \
        P(class, prefix, edgedamage, float, SEC) \
        P(class, prefix, force, float, SEC) \
+        P(class, prefix, force_zscale, float, SEC) \
        P(class, prefix, lifetime, float, SEC) \
        P(class, prefix, radius, float, SEC) \
        P(class, prefix, refire, float, SEC) \
index 1688f50..00a198a 100644 (file)
@@ -862,7 +862,7 @@ void Damage(entity targ, entity inflictor, entity attacker, float damage, int de
 }
 
 float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe,
-                                                               float inflictorselfdamage, float forceintensity, int deathtype, .entity weaponentity, entity directhitentity)
+                                                               float inflictorselfdamage, float forceintensity, float forcezscale, int deathtype, .entity weaponentity, entity directhitentity)
        // Returns total damage applies to creatures
 {
        entity  targ;
@@ -949,8 +949,8 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in
                                        force = force * (finaldmg / coredamage) * forceintensity;
                                        hitloc = nearest;
 
-                                       if(deathtype & WEP_BLASTER.m_id)
-                                               force.z *= WEP_CVAR_BOTH(blaster, !(deathtype & HITTYPE_SECONDARY), force_zscale);
+                                       if(forcezscale)
+                                               force.z *= forcezscale;
 
                                        if(targ != directhitentity)
                                        {
@@ -1053,7 +1053,8 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in
 
 float RadiusDamage(entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype, .entity weaponentity, entity directhitentity)
 {
-       return RadiusDamageForSource(inflictor, (inflictor.origin + (inflictor.mins + inflictor.maxs) * 0.5), inflictor.velocity, attacker, coredamage, edgedamage, rad, cantbe, mustbe, false, forceintensity, deathtype, weaponentity, directhitentity);
+       return RadiusDamageForSource(inflictor, (inflictor.origin + (inflictor.mins + inflictor.maxs) * 0.5), inflictor.velocity, attacker, coredamage, edgedamage, rad, 
+                                                                       cantbe, mustbe, false, forceintensity, 0, deathtype, weaponentity, directhitentity);
 }
 
 bool Heal(entity targ, entity inflictor, float amount, float limit)
index efe6b2e..a99846c 100644 (file)
@@ -91,7 +91,7 @@ void Unfreeze(entity targ, bool reset_health);
 void Damage (entity targ, entity inflictor, entity attacker, float damage, int deathtype, .entity weaponentity, vector hitloc, vector force);
 
 float RadiusDamage_running;
-float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float inflictorselfdamage, float forceintensity, int deathtype, .entity weaponentity, entity directhitentity);
+float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float inflictorselfdamage, float forceintensity, float forcezscale, int deathtype, .entity weaponentity, entity directhitentity);
        // Returns total damage applies to creatures
 
 float RadiusDamage (entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype, .entity weaponentity, entity directhitentity);