From: Samual Date: Mon, 7 Feb 2011 07:49:37 +0000 (-0500) Subject: Some quick work on a feature for the minelayer which plays a sound at the end of... X-Git-Tag: xonotic-v0.5.0~311^2~41 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6a6a89773a1f371bb031f83dc7df98c71e2e446c;p=xonotic%2Fxonotic-data.pk3dir.git Some quick work on a feature for the minelayer which plays a sound at the end of its lifetime, this way you can have e.g. a countdown of its death alerting you it's going to die. --- diff --git a/balance25.cfg b/balance25.cfg index da8c00bfb..864d169c3 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -343,6 +343,7 @@ set g_balance_minelayer_radius 175 set g_balance_minelayer_proximityradius 150 set g_balance_minelayer_speed 750 set g_balance_minelayer_lifetime 60 +set g_balance_minelayer_lifetime_countdown 0 set g_balance_minelayer_refire 1.5 set g_balance_minelayer_animtime 0.4 set g_balance_minelayer_ammo 5 diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index 24bca821a..547a040ae 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -343,6 +343,7 @@ set g_balance_minelayer_radius 175 set g_balance_minelayer_proximityradius 150 set g_balance_minelayer_speed 750 set g_balance_minelayer_lifetime 60 +set g_balance_minelayer_lifetime_countdown 0 set g_balance_minelayer_refire 1.3 set g_balance_minelayer_animtime 0.4 set g_balance_minelayer_ammo 5 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index d476d7491..1aeea2591 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -342,7 +342,8 @@ set g_balance_minelayer_force 250 set g_balance_minelayer_radius 175 set g_balance_minelayer_proximityradius 150 set g_balance_minelayer_speed 750 -set g_balance_minelayer_lifetime 60 +set g_balance_minelayer_lifetime 3 +set g_balance_minelayer_lifetime_countdown 0.5 set g_balance_minelayer_refire 1.5 set g_balance_minelayer_animtime 0.4 set g_balance_minelayer_ammo 5 diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 5fbe291fe..d3f3fba9c 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -343,6 +343,7 @@ set g_balance_minelayer_radius 175 set g_balance_minelayer_proximityradius 150 set g_balance_minelayer_speed 750 set g_balance_minelayer_lifetime 60 +set g_balance_minelayer_lifetime_countdown 0 set g_balance_minelayer_refire 1.5 set g_balance_minelayer_animtime 0.3 set g_balance_minelayer_ammo 5 diff --git a/balancetZork.cfg b/balancetZork.cfg index 7d9c1ed37..ed8ea42d5 100644 --- a/balancetZork.cfg +++ b/balancetZork.cfg @@ -343,6 +343,7 @@ set g_balance_minelayer_radius 175 set g_balance_minelayer_proximityradius 150 set g_balance_minelayer_speed 750 set g_balance_minelayer_lifetime 60 +set g_balance_minelayer_lifetime_countdown 0 set g_balance_minelayer_refire 1.5 set g_balance_minelayer_animtime 0.4 set g_balance_minelayer_ammo 5 diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index de7b4ecf8..28f218cdc 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -419,6 +419,7 @@ float autocvar_g_balance_minelayer_edgedamage; float autocvar_g_balance_minelayer_force; float autocvar_g_balance_minelayer_health; float autocvar_g_balance_minelayer_lifetime; +float autocvar_g_balance_minelayer_lifetime_countdown; float autocvar_g_balance_minelayer_limit; float autocvar_g_balance_minelayer_protection; float autocvar_g_balance_minelayer_proximityradius; diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index 07589cf0d..1d2b5c802 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -131,16 +131,14 @@ void W_Mine_Think (void) entity head; self.nextthink = time; - if (time > self.cnt) + if ((time > self.cnt) && (!self.mine_time)) { - other = world; - self.projectiledeathtype |= HITTYPE_BOUNCE; - W_Mine_Explode(); - return; + spamsound (self, CHAN_PROJECTILE, "weapons/mine_trigger.wav", VOL_BASE, ATTN_NORM); + self.mine_time = time + autocvar_g_balance_minelayer_lifetime_countdown; } // a player's mines shall explode if he disconnects or dies - // TODO: Do this on team change too + // TODO: Do this on team change too -- Samual: But isn't a player killed when they switch teams? if(self.owner.classname != "player" || self.owner.deadflag != DEAD_NO) { other = world; @@ -165,7 +163,10 @@ void W_Mine_Think (void) // explode if it's time to if(self.mine_time && time >= self.mine_time) + { W_Mine_ProximityExplode(); + return; + } // remote detonation if (self.owner.weapon == WEP_MINE_LAYER) @@ -247,7 +248,7 @@ void W_Mine_Attack (void) mine.touch = W_Mine_Touch; mine.think = W_Mine_Think; mine.nextthink = time; - mine.cnt = time + autocvar_g_balance_minelayer_lifetime; + mine.cnt = time + (autocvar_g_balance_minelayer_lifetime - autocvar_g_balance_minelayer_lifetime_countdown); mine.flags = FL_PROJECTILE; CSQCProjectile(mine, TRUE, PROJECTILE_MINE, TRUE);