]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
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 653ef0397331ba59fa6c050cd8dd5208bca70776..69ea36568146943aa7c5518bc860aa0b496216dc 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 a826a879d7347f4c983daec9019a7446bbeecfbb..ccf1a7de960d28f6a6e1e6efe0e676b0a050af00 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 e4fb02236970cee908be2baa272f346c651711a5..c3365c1cac75e2969ac2adf4f0aa67ead8efa47f 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 bcd652f277e1e954f6002907296a7d5a0367e264..4549f99c70365d8a02f30f95eceebac59b564b1d 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 324bb5d58fc3b24ad4fded20cc95bde513217661..62d1cbb44a9620e15770f17c9d73bad6616f5c28 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 b897fe6313ef8a2b4f3c9c672a2f7538fe4af68f..44ca94b9bd3ce8d2061f1c73ce284631556a5c30 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 17aed812a845d01d176ffeef91888e025d1898d5..5152579ab327ed8db95d1609c3c778bcb90742e5 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 dec03323f91c9c770d79e85ca98f690f0e125af6..77204ae1a39d9a74802285e8afb1dc8f0958b7b8 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 321d92e2268a51cc352bd188aa2d1cadbe6a4848..77082c96211d6b6b4eec9080ff55e1a80cda8726 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 d03f40ff2e0049b05820d9a9c1078b694c798fb7..1ffaf78b8ceeeea57116569d86cb70a1761769a6 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 429073e8c51817362af7bafc4ee23ad25eccf36e..928bfc0b9a8453a84ce5584e5fd6734ffca9747c 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 a830e6ac46f9035d46c14ea8d75d89579534b669..2c75681d970cca83305a0dea2e6363b6c1e04065 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 e3d713d470b5808f2f12a35b02cdaf6c53bb5755..310ea19a1b53e9e0caee892f20736d27281f43d3 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 6297bdf37b5f78875414d9ee01f8df09fd5cce36..87824310c9d92f3478bc40455de063253d87b92e 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 207ae8e630dd4a2a36905f8808739ad929cd6907..f87a800a921aeeba42b06d248cbb16e303559472 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 1688f506c7206baed30e40234ae234048e7b653c..00a198a2032bd8c769cd1cf3066aa4c2b826c49b 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 efe6b2e1b306af9a6903638f8681579f411532fa..a99846c734f7dd916d3b54ecc5b8b597425a1371 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);