From 61d06a2a1385085bf4eb23e528e966659756d3d7 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Mon, 4 Oct 2010 15:55:01 +0300 Subject: [PATCH] First step toward a mine delayed detonation. Not ready yet --- balanceXonotic.cfg | 1 + qcsrc/server/w_minelayer.qc | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index a3d6a0e2a..5c2c315c2 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -319,6 +319,7 @@ set g_balance_minelayer_health 10 set g_balance_minelayer_limit 4 // 0 disables the limit set g_balance_minelayer_damageforcescale 0 set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time +set g_balance_minelayer_time 1 set g_balance_minelayer_remote_damage 45 set g_balance_minelayer_remote_edgedamage 40 set g_balance_minelayer_remote_radius 200 diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index 8709bd195..89ca1f2ad 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -3,7 +3,7 @@ REGISTER_WEAPON(MINE_LAYER, w_minelayer, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_TY #else #ifdef SVQC .float minelayer_detonate; -.float mine_number; +.float mine_number, mine_time; void spawnfunc_weapon_minelayer (void) { @@ -99,10 +99,16 @@ void W_Mine_Think (void) if(head.classname == "player" && head.deadflag == DEAD_NO) if(head != self.owner) if(IsDifferentTeam(head, self.owner)) // don't detonate for team mates - W_Mine_Explode(); + { + self.mine_time = time + cvar("g_balance_minelayer_time"); + } head = head.chain; } + // explode if it's time + if(time >= self.mine_time) + W_Mine_Explode(); + // remote detonation if (self.owner.weapon == WEP_MINE_LAYER) if (self.owner.deadflag == DEAD_NO) -- 2.39.2