internal TeamManager GetTeamManagerForFreeze() { if (this.teamfreeze == null) { this.teamfreeze = TeamManager.createTeamforGame("freeze"); } return this.teamfreeze; }
private void FreezeUser(RoomUser user) { if (user.IsBot || user.shieldActive || user.team == Team.none || user.Freezed) { return; } user.Freezed = true; user.FreezeCounter = 0; checked { --user.FreezeLives; } if (user.FreezeLives <= 0) { ServerMessage serverMessage = new ServerMessage(); serverMessage.Init(Outgoing.UpdateFreezeLivesMessageComposer); serverMessage.AppendInt32(user.InternalRoomID); serverMessage.AppendInt32(user.FreezeLives); user.GetClient().SendMessage(serverMessage); user.ApplyEffect(-1); this.room.GetGameManager().AddPointToTeam(user.team, -10, user); TeamManager managerForFreeze = this.room.GetTeamManagerForFreeze(); managerForFreeze.OnUserLeave(user); user.team = Team.none; if (this.exitTeleport != null) { this.room.GetGameMap().TeleportToItem(user, this.exitTeleport); } user.Freezed = false; user.SetStep = false; user.IsWalking = false; user.UpdateNeeded = true; if (managerForFreeze.BlueTeam.Count <= 0 && managerForFreeze.RedTeam.Count <= 0 && managerForFreeze.GreenTeam.Count <= 0 && managerForFreeze.YellowTeam.Count > 0) { this.StopGame(); } else if (managerForFreeze.BlueTeam.Count > 0 && managerForFreeze.RedTeam.Count <= 0 && managerForFreeze.GreenTeam.Count <= 0 && managerForFreeze.YellowTeam.Count <= 0) { this.StopGame(); } else if (managerForFreeze.BlueTeam.Count <= 0 && managerForFreeze.RedTeam.Count > 0 && managerForFreeze.GreenTeam.Count <= 0 && managerForFreeze.YellowTeam.Count <= 0) { this.StopGame(); } else { if (managerForFreeze.BlueTeam.Count > 0 || managerForFreeze.RedTeam.Count > 0 || managerForFreeze.GreenTeam.Count <= 0 || managerForFreeze.YellowTeam.Count > 0) { return; } this.StopGame(); } } else { this.room.GetGameManager().AddPointToTeam(user.team, -10, user); user.ApplyEffect(12); ServerMessage serverMessage = new ServerMessage(); serverMessage.Init(Outgoing.UpdateFreezeLivesMessageComposer); serverMessage.AppendInt32(user.InternalRoomID); serverMessage.AppendInt32(user.FreezeLives); user.GetClient().SendMessage(serverMessage); } }
internal TeamManager GetTeamManagerForBanzai() { if (this.teambanzai == null) { this.teambanzai = TeamManager.createTeamforGame("banzai"); } return this.teambanzai; }