public void StopGame(bool userTriggered = false) { _gameStarted = false; _room.GetGameManager().UnlockGates(); _room.GetGameManager().StopGame(); ResetGame(); if (ExitTeleports.Count > 0) { foreach (Item ExitTile in ExitTeleports.Values.ToList()) { if (ExitTile.ExtraData == "1" || String.IsNullOrEmpty(ExitTile.ExtraData)) { ExitTile.ExtraData = "0"; } ExitTile.UpdateState(); } } Team Winners = _room.GetGameManager().GetWinningTeam(); foreach (RoomUser User in _room.GetRoomUserManager().GetUserList().ToList()) { User.FreezeLives = 0; if (User.Team == Winners) { User.UnIdle(); User.DanceId = 0; _room.SendPacket(new ActionComposer(User.VirtualId, 1)); } if (ExitTeleports.Count > 0) { Item tile = _freezeTiles.Values.Where(x => x.GetX == User.X && x.GetY == User.Y).FirstOrDefault(); if (tile != null) { Item ExitTle = GetRandomExitTile(); if (ExitTle != null) { _room.GetGameMap().UpdateUserMovement(User.Coordinate, ExitTle.Coordinate, User); User.SetPos(ExitTle.GetX, ExitTle.GetY, ExitTle.GetZ); User.UpdateNeeded = true; if (User.IsAsleep) { User.UnIdle(); } } } } } if (!userTriggered) { _room.GetWired().TriggerEvent(WiredBoxType.TriggerGameEnds, null); } }
public void StartGame() { GameIsStarted = true; CountTeamPoints(); ResetGame(); if (ExitTeleports.Count > 0) { foreach (var ExitTile in ExitTeleports.Values.ToList()) { if (ExitTile.ExtraData == "0" || string.IsNullOrEmpty(ExitTile.ExtraData)) { ExitTile.ExtraData = "1"; } ExitTile.UpdateState(); } } _room.GetGameManager().LockGates(); }
public void StartGame() { this._gameStarted = true; timestarted = QuasarEnvironment.GetUnixTimestamp(); CountTeamPoints(); ResetGame(); if (this.ExitTeleports.Count > 0) { foreach (Item ExitTile in ExitTeleports.Values.ToList()) { if (ExitTile.ExtraData == "0" || String.IsNullOrEmpty(ExitTile.ExtraData)) { ExitTile.ExtraData = "1"; } ExitTile.UpdateState(); } } this._room.GetGameManager().LockGates(); }
public void StopGame(bool userTriggered = false) { this._gameStarted = false; this._room.GetGameManager().UnlockGates(); this._room.GetGameManager().StopGame(); ResetGame(); if (this.ExitTeleports.Count > 0) { foreach (Item ExitTile in ExitTeleports.Values.ToList()) { if (ExitTile.ExtraData == "1" || String.IsNullOrEmpty(ExitTile.ExtraData)) { ExitTile.ExtraData = "0"; } ExitTile.UpdateState(); } } TEAM Winners = this._room.GetGameManager().GetWinningTeam(); foreach (RoomUser User in this._room.GetRoomUserManager().GetUserList().ToList()) { User.FreezeLives = 0; if (User.Team == Winners) { User.UnIdle(); User.DanceId = 0; this._room.SendMessage(new ActionComposer(User.VirtualId, 1)); } if (Winners != TEAM.NONE) { // List<RoomUser> winners = _room.GetRoomUserManager().GetRoomUsers(); // foreach (RoomUser user in winners.ToList()) if (User.Team != TEAM.NONE) { if (QuasarEnvironment.GetUnixTimestamp() - timestarted > 10) { QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezePlayer", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezeUser", 2); } } if (Winners == TEAM.RED) { if (User.CurrentEffect == 40) { QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezeWinner", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_GameScoreTotal", 1); _room.SendMessage(new ActionComposer(User.VirtualId, 1)); } } else if (Winners == TEAM.GREEN) { if (User.CurrentEffect == 41) { QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezeWinner", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_GameScoreTotal", 1); _room.SendMessage(new ActionComposer(User.VirtualId, 1)); } } else if (Winners == TEAM.BLUE) { if (User.CurrentEffect == 42) { QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezeWinner", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_GameScoreTotal", 1); _room.SendMessage(new ActionComposer(User.VirtualId, 1)); } } else if (Winners == TEAM.YELLOW) { if (User.CurrentEffect == 43) { QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_FreezeWinner", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_GameScoreTotal", 1); _room.SendMessage(new ActionComposer(User.VirtualId, 1)); } } if (ExitTeleports.Count > 0) { Item tile = _freezeTiles.Values.Where(x => x.GetX == User.X && x.GetY == User.Y).FirstOrDefault(); if (tile != null) { Item ExitTle = GetRandomExitTile(); if (ExitTle != null) { _room.GetGameMap().UpdateUserMovement(User.Coordinate, ExitTle.Coordinate, User); User.SetPos(ExitTle.GetX, ExitTle.GetY, ExitTle.GetZ); User.UpdateNeeded = true; if (User.IsAsleep) { User.UnIdle(); } } } } } if (!userTriggered) { _room.GetWired().TriggerEvent(WiredBoxType.TriggerGameEnds, null); } } }