X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_freezetag.qc;h=28c408acecd35cf94cb0be85017e4fe63794f9e6;hb=affda7c24b02258e8453e25aaf043038b124f051;hp=1e034b9ff2c4e61e3f30cdf03e86c36caa03cdb5;hpb=054c7bc8ea42db7175d9459e65d5d7f281e082f5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/gamemode_freezetag.qc b/qcsrc/server/mutators/gamemode_freezetag.qc index 1e034b9ff..28c408ace 100644 --- a/qcsrc/server/mutators/gamemode_freezetag.qc +++ b/qcsrc/server/mutators/gamemode_freezetag.qc @@ -1,12 +1,12 @@ void freezetag_Initialize() { precache_model("models/ice/ice.md3"); - next_round = time + 5; + warmup = time + cvar("g_freezetag_warmup"); } void freezetag_CheckWinner() { - if(next_round) + if(next_round || (time > warmup - cvar("g_freezetag_warmup") && time < warmup)) return; // already waiting for next round to start if((redalive >= 1 && bluealive >= 1) // counted in arena.qc @@ -78,8 +78,6 @@ void freezetag_Freeze() if(self.waypointsprite_attached) { WaypointSprite_UpdateTeamRadar(self.waypointsprite_attached, RADARICON_WAYPOINT, '0.25 0.90 1'); - //WaypointSprite_UpdateMaxHealth(self.waypointsprite_attached, ITEM_RESPAWN_TICKS + 1); - //WaypointSprite_UpdateBuildFinished(self.waypointsprite_attached, time + ITEM_RESPAWN_TICKS); } } @@ -171,7 +169,8 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerPreThink) if(other.team == self.team) { teammate_nearby = boxesoverlap(self.absmin - revive_extra_size, self.absmax + revive_extra_size, other.absmin, other.absmax); - break; + if(teammate_nearby) + break; } } } @@ -181,9 +180,13 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerPreThink) if(self.freezetag_beginrevive_time == -9999) { self.freezetag_beginrevive_time = time; + self.freezetag_revive_progress = 0; + other.freezetag_revive_progress = 0; } else { + self.freezetag_revive_progress = (time - self.freezetag_beginrevive_time) / cvar("g_freezetag_revive_time"); + other.freezetag_revive_progress = (time - self.freezetag_beginrevive_time) / cvar("g_freezetag_revive_time"); if(time - self.freezetag_beginrevive_time >= cvar("g_freezetag_revive_time")) { freezetag_Unfreeze(); @@ -193,12 +196,16 @@ MUTATOR_HOOKFUNCTION(freezetag_PlayerPreThink) bprint("^7", other.netname, "^5 revived ^7", self.netname, ".\n"); self.freezetag_beginrevive_time = -9999; + self.freezetag_revive_progress = 0; + other.freezetag_revive_progress = 0; } } } else { self.freezetag_beginrevive_time = -9999; + self.freezetag_revive_progress = 0; + other.freezetag_revive_progress = 0; } return 1;