set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 300
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 100
set g_balance_devastator_remote_damage 105
set g_balance_devastator_remote_edgedamage 40
set g_balance_devastator_remote_force 600
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 0
set g_balance_devastator_remote_jump_radius 0
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 400
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 40
set g_balance_devastator_remote_jump_force 0
set g_balance_devastator_remote_jump_radius 200
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 300
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 100
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 300
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 100
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 350
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 0
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 300
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 0
set g_balance_devastator_remote_damage 70
set g_balance_devastator_remote_edgedamage 35
set g_balance_devastator_remote_force 300
+set g_balance_devastator_remote_jump 0
set g_balance_devastator_remote_jump_damage 70
set g_balance_devastator_remote_jump_force 450
set g_balance_devastator_remote_jump_radius 0
// rocket flying
// ===============
set g_rocket_flying 0 "set to 1 to enable rocket flying in all balance configs"
+set g_rocket_flying_disabledelays 1 "disable detonation delays on rockets and mines"
// =====================
#include "sv_rocketflying.qh"
string autocvar_g_rocket_flying;
+bool autocvar_g_rocket_flying_disabledelays = true;
REGISTER_MUTATOR(rocketflying, expr_evaluate(autocvar_g_rocket_flying));
MUTATOR_HOOKFUNCTION(rocketflying, EditProjectile)
{
entity proj = M_ARGV(1, entity);
- if(proj.classname == "rocket" || proj.classname == "mine")
+ if(autocvar_g_rocket_flying_disabledelays && (proj.classname == "rocket" || proj.classname == "mine"))
{
// kill detonate delay of rockets
proj.spawnshieldtime = time;
}
}
+MUTATOR_HOOKFUNCTION(rocketflying, AllowRocketJumping)
+{
+ M_ARGV(0, bool) = true; // force rocket jumping
+}
+
MUTATOR_HOOKFUNCTION(rocketflying, BuildMutatorsString)
{
M_ARGV(0, string) = strcat(M_ARGV(0, string), ":RocketFlying");
bool handled_as_rocketjump = false;
entity head = NULL;
+ bool allow_rocketjump = WEP_CVAR(devastator, remote_jump);
+ MUTATOR_CALLHOOK(AllowRocketJumping, allow_rocketjump);
+ allow_rocketjump = M_ARGV(0, bool);
- if(WEP_CVAR(devastator, remote_jump_radius))
+ if(allow_rocketjump && WEP_CVAR(devastator, remote_jump_radius))
{
head = WarpZone_FindRadius(
this.origin,
P(class, prefix, remote_damage, float, NONE) \
P(class, prefix, remote_edgedamage, float, NONE) \
P(class, prefix, remote_force, float, NONE) \
+ P(class, prefix, remote_jump, float, NONE) \
P(class, prefix, remote_jump_damage, float, NONE) \
P(class, prefix, remote_jump_force, float, NONE) \
P(class, prefix, remote_jump_radius, float, NONE) \
/**/ o(string, MUTATOR_ARGV_1_string) \
/**/
MUTATOR_HOOKABLE(LogDeath_AppendItemCodes, EV_LogDeath_AppendItemCodes);
+
+/** Allows disabling or enabling rocket jumping independently of balance, use the parameter to force a preferred setting */
+#define EV_AllowRocketJumping(i, o) \
+ /** allow_rocketjump */ i(bool, MUTATOR_ARGV_0_bool) \
+ /**/ o(bool, MUTATOR_ARGV_0_bool) \
+ /**/
+MUTATOR_HOOKABLE(AllowRocketJumping, EV_AllowRocketJumping);