]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Global forces: allow range limit
authorTimePath <andrew.hardaker1995@gmail.com>
Mon, 13 Jun 2016 07:57:52 +0000 (17:57 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Mon, 13 Jun 2016 07:57:52 +0000 (17:57 +1000)
qcsrc/common/mutators/mutator/globalforces/globalforces.qc

index 662d4e24bdd89c72604178d32cfa7ec37f1bfb9c..96735a005d6babb96a61ab49661fc386578911d2 100644 (file)
@@ -2,6 +2,7 @@
 
 AUTOCVAR(g_globalforces, float, false, "Global forces: knockback affects everyone");
 AUTOCVAR(g_globalforces_noself, bool, false, "Global forces: ignore self damage");
+AUTOCVAR(g_globalforces_range, float, 0, "Global forces: max range of effect");
 REGISTER_MUTATOR(mutator_globalforces, autocvar_g_globalforces);
 
 MUTATOR_HOOKFUNCTION(mutator_globalforces, BuildMutatorsString) {
@@ -18,6 +19,11 @@ MUTATOR_HOOKFUNCTION(mutator_globalforces, PlayerDamage_SplitHealthArmor) {
     if (autocvar_g_globalforces_noself && frag_target == frag_attacker) return;
     vector damage_force = M_ARGV(3, vector) * autocvar_g_globalforces;
     FOREACH_CLIENT(IS_PLAYER(it) && it != frag_target, {
+        if (autocvar_g_globalforces_range) {
+            if (vdist(it.origin - frag_target.origin, >, autocvar_g_globalforces_range)) {
+                continue;
+            }
+        }
         it.velocity += damage_explosion_calcpush(it.damageforcescale * damage_force, it.velocity, autocvar_g_balance_damagepush_speedfactor);
     });
 }