private void EditTntWarsGameBT_Click(object sender, EventArgs e) { try { string slctd = TntWarsGamesList.Items[TntWarsGamesList.SelectedIndex].ToString(); if (slctd.StartsWith("-->")) { LoadTNTWarsTab(sender, e); return; } string[] split = slctd.Split(new string[] { " - " }, StringSplitOptions.None); TntWarsGame.GuiLoaded = TntWarsGame.Find(LevelInfo.Find(split[0])); LoadTNTWarsTab(sender, e); } catch { } }
internal static void CheckGamesJoin(Player p, Level oldLvl) { Server.lava.PlayerJoinedLevel(p, p.level, oldLvl); Server.zombie.PlayerJoinedLevel(p, p.level, oldLvl); if (p.inTNTwarsMap) { p.canBuild = true; } TntWarsGame game = TntWarsGame.Find(p.level); if (game == null) { return; } if (game.GameStatus != TntWarsGame.TntWarsGameStatus.Finished && game.GameStatus != TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { p.canBuild = false; Player.SendMessage(p, "TNT Wars: Disabled your building because you are in a TNT Wars map!"); } p.inTNTwarsMap = true; }
public override void Use(Player p, string message) { if (p == null) { Player.SendMessage(p, "This command can only be used in-game!"); return; } if (message == "") { Help(p); return; } try { Level foundLevel = Level.Find(message); if (foundLevel != null) { Level startLevel = p.level; GC.Collect(); if (p.level == foundLevel) { Player.SendMessage(p, "You are already in \"" + foundLevel.name + "\"."); return; } if (!p.ignorePermission) { if (p.group.Permission < foundLevel.permissionvisit) { Player.SendMessage(p, "You're not allowed to go to " + foundLevel.name + "."); return; } } if (!p.ignorePermission) { if (p.group.Permission > foundLevel.pervisitmax) { if (!p.group.CanExecute(Command.all.Find("pervisitmax"))) { Player.SendMessage(p, "Your rank must be " + foundLevel.pervisitmax + " or lower to go there!"); return; } } } { if (!File.Exists("text/lockdown/map/" + message + "")) { p.Loading = true; foreach (Player pl in Player.players) { if (p.level == pl.level && p != pl) { p.SendDie(pl.id); } } foreach (PlayerBot b in PlayerBot.playerbots) { if (p.level == b.level) { p.SendDie(b.id); } } Player.GlobalDie(p, true); p.level = foundLevel; p.SendUserMOTD(); p.SendMap(); GC.Collect(); ushort x = (ushort)((0.5 + foundLevel.spawnx) * 32); ushort y = (ushort)((1 + foundLevel.spawny) * 32); ushort z = (ushort)((0.5 + foundLevel.spawnz) * 32); if (Server.pctf.CTFStatus() != 0 && message == Server.pctf.currentLevelName) { unchecked { Server.pctf.sendToTeamSpawn(p); } } else { Server.pctf.PlayerDC(p); if (!p.hidden) { Player.GlobalSpawn(p, x, y, z, foundLevel.rotx, foundLevel.roty, true, ""); } else { unchecked { p.SendPos((byte)-1, x, y, z, foundLevel.rotx, foundLevel.roty); } } } //if (!p.hidden) Player.GlobalSpawn(p, x, y, z, foundLevel.rotx, foundLevel.roty, true, ""); //else unchecked { p.SendPos((byte)-1, x, y, z, foundLevel.rotx, foundLevel.roty); } foreach (Player pl in Player.players) { if (pl.level == p.level && p != pl && !pl.hidden) { p.SendSpawn(pl.id, pl.color + pl.name, pl.pos[0], pl.pos[1], pl.pos[2], pl.rot[0], pl.rot[1]); } } foreach (PlayerBot b in PlayerBot.playerbots) { if (b.level == p.level) { p.SendSpawn(b.id, b.color + b.name, b.pos[0], b.pos[1], b.pos[2], b.rot[0], b.rot[1]); } } if (!p.hidden) { Player.GlobalChat(p, p.color + "*" + p.name + Server.DefaultColor + " went to &b" + foundLevel.name, false); } p.Loading = false; bool skipUnload = false; if (startLevel.unload && !startLevel.name.Contains("&cMuseum ")) { foreach (Player pl in Player.players) { if (pl.level == startLevel) { skipUnload = true; break; } } if (!skipUnload && Server.AutoLoad) { startLevel.Unload(true); } } if (Server.lava.active && !Server.lava.sendingPlayers && Server.lava.map == foundLevel) { if (Server.lava.roundActive) { Server.lava.AnnounceRoundInfo(p); Server.lava.AnnounceTimeLeft(!Server.lava.flooded, true, p); } else { Player.SendMessage(p, "Vote for the next map!"); Player.SendMessage(p, "Choices: " + Server.lava.VoteString); } } if (Server.zombie.GameInProgess()) { if (p.level.name == Server.zombie.currentLevelName) { Server.zombie.InfectedPlayerLogin(p); } } if (p.level.name != Server.zombie.currentLevelName) { if (ZombieGame.alive.Contains(p)) { ZombieGame.alive.Remove(p); } if (ZombieGame.infectd.Contains(p)) { ZombieGame.infectd.Remove(p); } } if (p.inTNTwarsMap) { p.canBuild = true; } if (TntWarsGame.Find(p.level) != null) { if (TntWarsGame.Find(p.level).GameStatus != TntWarsGame.TntWarsGameStatus.Finished && TntWarsGame.Find(p.level).GameStatus != TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { p.canBuild = false; Player.SendMessage(p, "TNT Wars: Disabled your building because you are in a TNT Wars map!"); } p.inTNTwarsMap = true; } } else { Player.SendMessage(p, "The level " + message + " is locked."); } } } else if (Server.AutoLoad) { if (!File.Exists("levels/" + message + ".mcf")) { Player.SendMessage(p, "Level \"" + message + "\" doesn't exist!"); } else if (Level.Find(message) != null || Level.CheckLoadOnGoto(message)) { Command.all.Find("load").Use(p, message); foundLevel = Level.Find(message); if (foundLevel != null) { Use(p, message); } } else if (!Server.CTFOnlyServer) { Player.SendMessage(p, "Level \"" + message + "\" cannot be loaded using /goto!"); } } else { Player.SendMessage(p, "There is no level \"" + message + "\" loaded."); } GC.Collect(); GC.WaitForPendingFinalizers(); } catch (Exception e) { Server.ErrorLog(e); } }
public void LoadTNTWarsTab(object sender, EventArgs e) { if (TntWarsGame.GuiLoaded == null) { //Clear all //Top SlctdTntWrsLvl.Text = ""; SlctdTntWrdStatus.Text = ""; SlctdTntWrsPlyrs.Text = ""; //Difficulty TntWrsDiffCombo.Text = ""; TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; //scores TntWrsScrLmtUpDwn.Value = 150; TntWrsScrLmtUpDwn.Enabled = false; TntWrsScrPrKlUpDwn.Value = 10; TntWrsScrPrKlUpDwn.Enabled = false; TntWrsAsstChck.Checked = true; TntWrsAsstChck.Enabled = false; TntWrsAstsScrUpDwn.Value = 5; TntWrsAstsScrUpDwn.Enabled = false; TntWrsMltiKlChck.Checked = true; TntWrsMltiKlChck.Enabled = false; TntWrsMltiKlScPrUpDown.Value = 5; TntWrsMltiKlScPrUpDown.Enabled = false; //Grace period TntWrsGracePrdChck.Checked = true; TntWrsGracePrdChck.Enabled = false; TntWrsGraceTimeChck.Value = 30; TntWrsGraceTimeChck.Enabled = false; //Teams TntWrsTmsChck.Checked = true; TntWrsTmsChck.Enabled = false; TntWrsBlnceTeamsChck.Checked = true; TntWrsBlnceTeamsChck.Enabled = false; TntWrsTKchck.Checked = false; TntWrsTKchck.Enabled = false; //Status TntWrsStrtGame.Enabled = false; TntWrsEndGame.Enabled = false; TntWrsRstGame.Enabled = false; TntWrsDltGame.Enabled = false; //Other TntWrsStreaksChck.Checked = true; TntWrsStreaksChck.Enabled = false; //New game if (TntWrsMpsList.SelectedIndex < 0) { TntWrsCrtNwTntWrsBt.Enabled = false; } //Load lists TntWrsMpsList.Items.Clear(); TntWarsGamesList.Items.Clear(); TntWrsDiffCombo.Items.Clear(); foreach (Level lvl in Server.levels) { if (TntWarsGame.Find(lvl) == null) { TntWrsMpsList.Items.Add(lvl.name); } else { TntWarsGame T = TntWarsGame.Find(lvl); string msg = lvl.name + " - "; if (T.GameMode == TntWarsGame.TntWarsGameMode.FFA) { msg += "FFA"; } if (T.GameMode == TntWarsGame.TntWarsGameMode.TDM) { msg += "TDM"; } msg += " - "; if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Easy) { msg += "(Easy)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Normal) { msg += "(Normal)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Hard) { msg += "(Hard)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Extreme) { msg += "(Extreme)"; } msg += " - "; if (T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { msg += "(Waiting For Players)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { msg += "(Starting)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { msg += "(Started)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { msg += "(In Progress)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { msg += "(Finished)"; } TntWarsGamesList.Items.Add(msg); } } TntWrsDiffCombo.Items.Add("Easy"); TntWrsDiffCombo.Items.Add("Normal"); TntWrsDiffCombo.Items.Add("Hard"); TntWrsDiffCombo.Items.Add("Extreme"); } else { //Load settings //Top SlctdTntWrsLvl.Text = TntWarsGame.GuiLoaded.lvl.name; if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { SlctdTntWrdStatus.Text = "Waiting For Players"; } if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { SlctdTntWrdStatus.Text = "Starting"; } if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { SlctdTntWrdStatus.Text = "Started"; } if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { SlctdTntWrdStatus.Text = "In Progress"; } if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { SlctdTntWrdStatus.Text = "Finished"; } SlctdTntWrsPlyrs.Text = TntWarsGame.GuiLoaded.PlayingPlayers().ToString(CultureInfo.InvariantCulture); //Difficulty if (TntWarsGame.GuiLoaded.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { TntWrsDiffCombo.Enabled = true; TntWrsDiffSlctBt.Enabled = true; } else { TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; } TntWrsDiffCombo.SelectedIndex = TntWrsDiffCombo.FindString(TntWarsGame.GuiLoaded.GameDifficulty.ToString()); //scores TntWrsScrLmtUpDwn.Value = TntWarsGame.GuiLoaded.ScoreLimit; TntWrsScrLmtUpDwn.Enabled = true; TntWrsScrPrKlUpDwn.Value = TntWarsGame.GuiLoaded.ScorePerKill; TntWrsScrPrKlUpDwn.Enabled = true; if (TntWarsGame.GuiLoaded.ScorePerAssist == 0) { TntWrsAsstChck.Checked = false; TntWrsAsstChck.Enabled = true; TntWrsAstsScrUpDwn.Enabled = false; } else { TntWrsAstsScrUpDwn.Value = TntWarsGame.GuiLoaded.ScorePerAssist; TntWrsAstsScrUpDwn.Enabled = true; TntWrsAsstChck.Checked = true; TntWrsAsstChck.Enabled = true; } if (TntWarsGame.GuiLoaded.MultiKillBonus == 0) { TntWrsMltiKlChck.Checked = false; TntWrsMltiKlChck.Enabled = true; TntWrsMltiKlScPrUpDown.Enabled = false; } else { TntWrsMltiKlScPrUpDown.Value = TntWarsGame.GuiLoaded.MultiKillBonus; TntWrsMltiKlScPrUpDown.Enabled = true; TntWrsMltiKlChck.Checked = true; TntWrsMltiKlChck.Enabled = true; } //Grace period TntWrsGracePrdChck.Checked = TntWarsGame.GuiLoaded.GracePeriod; TntWrsGracePrdChck.Enabled = true; TntWrsGraceTimeChck.Value = TntWarsGame.GuiLoaded.GracePeriodSecs; TntWrsGraceTimeChck.Enabled = TntWarsGame.GuiLoaded.GracePeriod; //Teams TntWrsTmsChck.Checked = TntWarsGame.GuiLoaded.GameMode == TntWarsGame.TntWarsGameMode.TDM; TntWrsTmsChck.Enabled = true; TntWrsBlnceTeamsChck.Checked = TntWarsGame.GuiLoaded.BalanceTeams; TntWrsBlnceTeamsChck.Enabled = true; TntWrsTKchck.Checked = TntWarsGame.GuiLoaded.TeamKills; TntWrsTKchck.Enabled = true; //Status switch (TntWarsGame.GuiLoaded.GameStatus) { case TntWarsGame.TntWarsGameStatus.WaitingForPlayers: if (TntWarsGame.GuiLoaded.CheckAllSetUp(null, false, false)) { TntWrsStrtGame.Enabled = true; } TntWrsEndGame.Enabled = false; TntWrsRstGame.Enabled = false; TntWrsDltGame.Enabled = true; break; case TntWarsGame.TntWarsGameStatus.AboutToStart: case TntWarsGame.TntWarsGameStatus.GracePeriod: case TntWarsGame.TntWarsGameStatus.InProgress: TntWrsStrtGame.Enabled = false; TntWrsEndGame.Enabled = true; TntWrsRstGame.Enabled = false; TntWrsDltGame.Enabled = false; break; case TntWarsGame.TntWarsGameStatus.Finished: TntWrsStrtGame.Enabled = false; TntWrsEndGame.Enabled = false; TntWrsRstGame.Enabled = true; TntWrsDltGame.Enabled = true; break; } //Other TntWrsStreaksChck.Checked = TntWarsGame.GuiLoaded.Streaks; TntWrsStreaksChck.Enabled = true; //New game if (TntWrsMpsList.SelectedIndex < 0) { TntWrsCrtNwTntWrsBt.Enabled = false; } //Load lists TntWrsMpsList.Items.Clear(); TntWarsGamesList.Items.Clear(); TntWrsDiffCombo.Items.Clear(); foreach (Level lvl in Server.levels) { if (TntWarsGame.Find(lvl) == null) { TntWrsMpsList.Items.Add(lvl.name); } else { TntWarsGame T = TntWarsGame.Find(lvl); string msg = ""; if (T == TntWarsGame.GuiLoaded) { msg += "--> "; } msg += lvl.name + " - "; if (T.GameMode == TntWarsGame.TntWarsGameMode.FFA) { msg += "FFA"; } if (T.GameMode == TntWarsGame.TntWarsGameMode.TDM) { msg += "TDM"; } msg += " - "; if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Easy) { msg += "(Easy)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Normal) { msg += "(Normal)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Hard) { msg += "(Hard)"; } if (T.GameDifficulty == TntWarsGame.TntWarsDifficulty.Extreme) { msg += "(Extreme)"; } msg += " - "; if (T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { msg += "(Waiting For Players)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { msg += "(Starting)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { msg += "(Started)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { msg += "(In Progress)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { msg += "(Finished)"; } TntWarsGamesList.Items.Add(msg); } } TntWrsDiffCombo.Items.Add("Easy"); TntWrsDiffCombo.Items.Add("Normal"); TntWrsDiffCombo.Items.Add("Hard"); TntWrsDiffCombo.Items.Add("Extreme"); //Disable things because game is in progress if (!TntWarsEditable(sender, e)) { //Difficulty TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; //scores TntWrsScrLmtUpDwn.Enabled = false; TntWrsScrPrKlUpDwn.Enabled = false; TntWrsAsstChck.Enabled = false; TntWrsAstsScrUpDwn.Enabled = false; TntWrsMltiKlChck.Enabled = false; TntWrsMltiKlScPrUpDown.Enabled = false; //Grace period TntWrsGracePrdChck.Enabled = false; TntWrsGraceTimeChck.Enabled = false; //Teams TntWrsTmsChck.Enabled = false; TntWrsBlnceTeamsChck.Enabled = false; TntWrsTKchck.Enabled = false; //Other TntWrsStreaksChck.Enabled = false; } } }
public bool Unload(bool silent = false, bool save = true) { if (Server.mainLevel == this || IsMuseum) { return(false); } if (Server.lava.active && Server.lava.map == this) { return(false); } OnLevelUnloadEvent.Call(this); if (cancelunload) { Logger.Log(LogType.SystemActivity, "Unload canceled by Plugin! (Map: {0})", name); cancelunload = false; return(false); } MovePlayersToMain(); if (save && Changed && ShouldSaveChanges()) { Save(false, true); } if (save && ShouldSaveChanges()) { SaveBlockDBChanges(); } if (TntWarsGame.Find(this) != null) { foreach (TntWarsGame.player pl in TntWarsGame.Find(this).Players) { pl.p.CurrentTntGameNumber = -1; Player.Message(pl.p, "TNT Wars: The TNT Wars game you are currently playing has been deleted!"); pl.p.PlayingTntWars = false; pl.p.canBuild = true; TntWarsGame.SetTitlesAndColor(pl, true); } Logger.Log(LogType.GameActivity, "TNT Wars: Game deleted on " + name); TntWarsGame.GameList.Remove(TntWarsGame.Find(this)); } MovePlayersToMain(); LevelInfo.Loaded.Remove(this); try { if (!unloadedBots) { unloadedBots = true; BotsFile.Save(this); PlayerBot.RemoveLoadedBots(this, false); } physThread.Abort(); physThread.Join(); } catch { } finally { Dispose(); Server.DoGC(); if (!silent) { Chat.MessageOps(ColoredName + " %Swas unloaded."); } Logger.Log(LogType.SystemActivity, name + " was unloaded."); } return(true); }
public bool Unload(bool silent = false, bool save = true) { if (Server.mainLevel == this || IsMuseum) { return(false); } if (Server.lava.active && Server.lava.map == this) { return(false); } if (LevelUnload != null) { LevelUnload(this); } OnLevelUnloadEvent.Call(this); if (cancelunload) { Server.s.Log("Unload canceled by Plugin! (Map: " + name + ")"); cancelunload = false; return(false); } MovePlayersToMain(); if (changed && ShouldSaveChanges()) { Save(false, true); saveChanges(); } if (TntWarsGame.Find(this) != null) { foreach (TntWarsGame.player pl in TntWarsGame.Find(this).Players) { pl.p.CurrentTntGameNumber = -1; Player.SendMessage(pl.p, "TNT Wars: The TNT Wars game you are currently playing has been deleted!"); pl.p.PlayingTntWars = false; pl.p.canBuild = true; TntWarsGame.SetTitlesAndColor(pl, true); } Server.s.Log("TNT Wars: Game deleted on " + name); TntWarsGame.GameList.Remove(TntWarsGame.Find(this)); } MovePlayersToMain(); LevelInfo.Loaded.Remove(this); try { PlayerBot.RemoveAllFromLevel(this); //physChecker.Stop(); //physChecker.Dispose(); physThread.Abort(); physThread.Join(); } catch { } finally { Dispose(); GC.Collect(); GC.WaitForPendingFinalizers(); if (!silent) { Chat.GlobalMessageOps("&3" + name + Server.DefaultColor + " was unloaded."); } Server.s.Log(string.Format("{0} was unloaded.", name)); } return(true); }
public void LoadTNTWarsTab(object sender, EventArgs e) { if (tw_selected == null) { //Clear all //Top SlctdTntWrsLvl.Text = ""; tw_txtStatus.Text = ""; tw_txtPlayers.Text = ""; //Difficulty TntWrsDiffCombo.Text = ""; TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; //scores tw_numScoreLimit.Value = 150; tw_numScoreLimit.Enabled = false; tw_numScorePerKill.Value = 10; tw_numScorePerKill.Enabled = false; tw_cbScoreAssists.Checked = true; tw_cbScoreAssists.Enabled = false; tw_numScoreAssists.Value = 5; tw_numScoreAssists.Enabled = false; tw_cbMultiKills.Checked = true; tw_cbMultiKills.Enabled = false; tw_numMultiKills.Value = 5; tw_numMultiKills.Enabled = false; //Grace period TntWrsGracePrdChck.Checked = true; TntWrsGracePrdChck.Enabled = false; TntWrsGraceTimeChck.Value = 30; TntWrsGraceTimeChck.Enabled = false; //Teams TntWrsTmsChck.Checked = true; TntWrsTmsChck.Enabled = false; tw_cbBalanceTeams.Checked = true; tw_cbBalanceTeams.Enabled = false; tw_cbTeamKills.Checked = false; tw_cbTeamKills.Enabled = false; //Status tw_btnStartGame.Enabled = false; tw_btnEndGame.Enabled = false; tw_btnResetGame.Enabled = false; tw_btnDeleteGame.Enabled = false; //Other tw_cbStreaks.Checked = true; tw_cbStreaks.Enabled = false; //New game if (TntWrsMpsList.SelectedIndex < 0) { TntWrsCrtNwTntWrsBt.Enabled = false; } //Load lists TntWrsMpsList.Items.Clear(); tw_lstGames.Items.Clear(); TntWrsDiffCombo.Items.Clear(); foreach (Level lvl in Server.levels) { if (TntWarsGame.Find(lvl) == null) { TntWrsMpsList.Items.Add(lvl.name); } else { TntWarsGame T = TntWarsGame.Find(lvl); string msg = lvl.name + " - "; if (T.GameMode == TntWarsGame.TntWarsGameMode.FFA) { msg += "FFA"; } if (T.GameMode == TntWarsGame.TntWarsGameMode.TDM) { msg += "TDM"; } msg += " - "; if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Easy) { msg += "(Easy)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Normal) { msg += "(Normal)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Hard) { msg += "(Hard)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Extreme) { msg += "(Extreme)"; } msg += " - "; if (T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { msg += "(Waiting For Players)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { msg += "(Starting)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { msg += "(Started)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { msg += "(In Progress)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { msg += "(Finished)"; } tw_lstGames.Items.Add(msg); } } TntWrsDiffCombo.Items.Add("Easy"); TntWrsDiffCombo.Items.Add("Normal"); TntWrsDiffCombo.Items.Add("Hard"); TntWrsDiffCombo.Items.Add("Extreme"); } else { //Load settings //Top SlctdTntWrsLvl.Text = tw_selected.lvl.name; if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { tw_txtStatus.Text = "Waiting For Players"; } if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { tw_txtStatus.Text = "Starting"; } if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { tw_txtStatus.Text = "Started"; } if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { tw_txtStatus.Text = "In Progress"; } if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { tw_txtStatus.Text = "Finished"; } tw_txtPlayers.Text = tw_selected.PlayingPlayers().ToString(CultureInfo.InvariantCulture); //Difficulty if (tw_selected.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { TntWrsDiffCombo.Enabled = true; TntWrsDiffSlctBt.Enabled = true; } else { TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; } TntWrsDiffCombo.SelectedIndex = TntWrsDiffCombo.FindString(tw_selected.Difficulty.ToString()); //scores tw_numScoreLimit.Value = tw_selected.ScoreLimit; tw_numScoreLimit.Enabled = true; tw_numScorePerKill.Value = tw_selected.Config.ScorePerKill; tw_numScorePerKill.Enabled = true; if (tw_selected.Config.AssistScore == 0) { tw_cbScoreAssists.Checked = false; tw_cbScoreAssists.Enabled = true; tw_numScoreAssists.Enabled = false; } else { tw_numScoreAssists.Value = tw_selected.Config.AssistScore; tw_numScoreAssists.Enabled = true; tw_cbScoreAssists.Checked = true; tw_cbScoreAssists.Enabled = true; } if (tw_selected.Config.MultiKillBonus == 0) { tw_cbMultiKills.Checked = false; tw_cbMultiKills.Enabled = true; tw_numMultiKills.Enabled = false; } else { tw_numMultiKills.Value = tw_selected.Config.MultiKillBonus; tw_numMultiKills.Enabled = true; tw_cbMultiKills.Checked = true; tw_cbMultiKills.Enabled = true; } //Grace period TntWrsGracePrdChck.Checked = tw_selected.Config.InitialGracePeriod; TntWrsGracePrdChck.Enabled = true; TntWrsGraceTimeChck.Value = tw_selected.Config.GracePeriodSeconds; TntWrsGraceTimeChck.Enabled = tw_selected.Config.InitialGracePeriod; //Teams TntWrsTmsChck.Checked = tw_selected.GameMode == TntWarsGame.TntWarsGameMode.TDM; TntWrsTmsChck.Enabled = true; tw_cbBalanceTeams.Checked = tw_selected.Config.BalanceTeams; tw_cbBalanceTeams.Enabled = true; tw_cbTeamKills.Checked = tw_selected.Config.TeamKills; tw_cbTeamKills.Enabled = true; //Status switch (tw_selected.GameStatus) { case TntWarsGame.TntWarsGameStatus.WaitingForPlayers: if (tw_selected.CheckAllSetUp(null, false, false)) { tw_btnStartGame.Enabled = true; } tw_btnEndGame.Enabled = false; tw_btnResetGame.Enabled = false; tw_btnDeleteGame.Enabled = true; break; case TntWarsGame.TntWarsGameStatus.AboutToStart: case TntWarsGame.TntWarsGameStatus.GracePeriod: case TntWarsGame.TntWarsGameStatus.InProgress: tw_btnStartGame.Enabled = false; tw_btnEndGame.Enabled = true; tw_btnResetGame.Enabled = false; tw_btnDeleteGame.Enabled = false; break; case TntWarsGame.TntWarsGameStatus.Finished: tw_btnStartGame.Enabled = false; tw_btnEndGame.Enabled = false; tw_btnResetGame.Enabled = true; tw_btnDeleteGame.Enabled = true; break; } //Other tw_cbStreaks.Checked = tw_selected.Config.Streaks; tw_cbStreaks.Enabled = true; //New game if (TntWrsMpsList.SelectedIndex < 0) { TntWrsCrtNwTntWrsBt.Enabled = false; } //Load lists TntWrsMpsList.Items.Clear(); tw_lstGames.Items.Clear(); TntWrsDiffCombo.Items.Clear(); foreach (Level lvl in Server.levels) { if (TntWarsGame.Find(lvl) == null) { TntWrsMpsList.Items.Add(lvl.name); } else { TntWarsGame T = TntWarsGame.Find(lvl); string msg = ""; if (T == tw_selected) { msg += "--> "; } msg += lvl.name + " - "; if (T.GameMode == TntWarsGame.TntWarsGameMode.FFA) { msg += "FFA"; } if (T.GameMode == TntWarsGame.TntWarsGameMode.TDM) { msg += "TDM"; } msg += " - "; if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Easy) { msg += "(Easy)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Normal) { msg += "(Normal)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Hard) { msg += "(Hard)"; } if (T.Difficulty == TntWarsGame.TntWarsDifficulty.Extreme) { msg += "(Extreme)"; } msg += " - "; if (T.GameStatus == TntWarsGame.TntWarsGameStatus.WaitingForPlayers) { msg += "(Waiting For Players)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.AboutToStart) { msg += "(Starting)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.GracePeriod) { msg += "(Started)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.InProgress) { msg += "(In Progress)"; } if (T.GameStatus == TntWarsGame.TntWarsGameStatus.Finished) { msg += "(Finished)"; } tw_lstGames.Items.Add(msg); } } TntWrsDiffCombo.Items.Add("Easy"); TntWrsDiffCombo.Items.Add("Normal"); TntWrsDiffCombo.Items.Add("Hard"); TntWrsDiffCombo.Items.Add("Extreme"); //Disable things because game is in progress if (!TntWarsEditable(sender, e)) { //Difficulty TntWrsDiffCombo.Enabled = false; TntWrsDiffSlctBt.Enabled = false; //scores tw_numScoreLimit.Enabled = false; tw_numScorePerKill.Enabled = false; tw_cbScoreAssists.Enabled = false; tw_numScoreAssists.Enabled = false; tw_cbMultiKills.Enabled = false; tw_numMultiKills.Enabled = false; //Grace period TntWrsGracePrdChck.Enabled = false; TntWrsGraceTimeChck.Enabled = false; //Teams TntWrsTmsChck.Enabled = false; tw_cbBalanceTeams.Enabled = false; tw_cbTeamKills.Enabled = false; //Other tw_cbStreaks.Enabled = false; } } }