]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Global forces mutator
authorTimePath <andrew.hardaker1995@gmail.com>
Sun, 23 Aug 2015 09:50:18 +0000 (19:50 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Mon, 13 Jun 2016 07:48:49 +0000 (17:48 +1000)
qcsrc/common/mutators/all.inc
qcsrc/common/mutators/mutator/globalforces/_mod.inc [new file with mode: 0644]
qcsrc/common/mutators/mutator/globalforces/_mod.qh [new file with mode: 0644]
qcsrc/common/mutators/mutator/globalforces/globalforces.qc [new file with mode: 0644]
qcsrc/common/mutators/mutator/globalforces/module.inc [new file with mode: 0644]

index e99092c660896d524f4c97e268dd8be7bead69b1..6225872332b488458e63db9d02293d886212b978 100644 (file)
@@ -16,6 +16,7 @@
 #include "mutator/damagetext/module.inc"
 #include "mutator/dodging/module.inc"
 #include "mutator/doublejump/module.inc"
+#include "mutator/globalforces/module.inc"
 #include "mutator/hook/module.inc"
 #include "mutator/instagib/module.inc"
 #include "mutator/invincibleproj/module.inc"
diff --git a/qcsrc/common/mutators/mutator/globalforces/_mod.inc b/qcsrc/common/mutators/mutator/globalforces/_mod.inc
new file mode 100644 (file)
index 0000000..006a5d5
--- /dev/null
@@ -0,0 +1,2 @@
+// generated file; do not modify
+#include <common/mutators/mutator/globalforces/globalforces.qc>
diff --git a/qcsrc/common/mutators/mutator/globalforces/_mod.qh b/qcsrc/common/mutators/mutator/globalforces/_mod.qh
new file mode 100644 (file)
index 0000000..ac5cfd2
--- /dev/null
@@ -0,0 +1,2 @@
+// generated file; do not modify
+#include <common/mutators/mutator/globalforces/globalforces.qh>
diff --git a/qcsrc/common/mutators/mutator/globalforces/globalforces.qc b/qcsrc/common/mutators/mutator/globalforces/globalforces.qc
new file mode 100644 (file)
index 0000000..4e2e042
--- /dev/null
@@ -0,0 +1,22 @@
+#ifdef IMPLEMENTATION
+
+AUTOCVAR(g_globalforces, float, false, "Global forces: knockback affects everyone");
+REGISTER_MUTATOR(mutator_globalforces, autocvar_g_globalforces);
+
+MUTATOR_HOOKFUNCTION(mutator_globalforces, BuildMutatorsString) {
+    M_ARGV(0, string) = strcat(M_ARGV(0, string), ":GlobalForces");
+}
+
+MUTATOR_HOOKFUNCTION(mutator_globalforces, BuildMutatorsPrettyString) {
+    M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Global forces");
+}
+
+MUTATOR_HOOKFUNCTION(mutator_globalforces, PlayerDamage_SplitHealthArmor) {
+    entity frag_target = M_ARGV(2, entity);
+    vector damage_force = M_ARGV(3, vector) * autocvar_g_globalforces;
+    FOREACH_CLIENT(IS_PLAYER(it) && it != frag_target, {
+        it.velocity += damage_explosion_calcpush(it.damageforcescale * damage_force, it.velocity, autocvar_g_balance_damagepush_speedfactor);
+    });
+}
+
+#endif
diff --git a/qcsrc/common/mutators/mutator/globalforces/module.inc b/qcsrc/common/mutators/mutator/globalforces/module.inc
new file mode 100644 (file)
index 0000000..2a0eec8
--- /dev/null
@@ -0,0 +1,3 @@
+#ifdef SVQC
+       #include "globalforces.qc"
+#endif