示例#1
0
		internal TeamManager GetTeamManagerForFreeze()
		{
			if (this.teamfreeze == null)
			{
				this.teamfreeze = TeamManager.createTeamforGame("freeze");
			}
			return this.teamfreeze;
		}
示例#2
0
 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);
     }
 }
示例#3
0
		internal TeamManager GetTeamManagerForBanzai()
		{
			if (this.teambanzai == null)
			{
				this.teambanzai = TeamManager.createTeamforGame("banzai");
			}
			return this.teambanzai;
		}