//----------------------------------------------------------------------// // Game Functions // //----------------------------------------------------------------------// private void BaseDuel_Load(string PlayerName) { // Create the list m_Games = new List <Classes.BaseGame>(); // Config main bd game Classes.BaseGame pubGame = new Classes.BaseGame(msg, psyGame, m_Players, m_BaseManager, m_MultiGame, m_Games.Count + 1); pubGame.setFreqs(0, 1); pubGame.setSpamMeList(this.m_SpamMeList); pubGame.setArchive(m_ArchivedGames); m_Games.Add(pubGame); if (this.m_MultiGame) { Classes.BaseGame pubGame2 = new Classes.BaseGame(msg, psyGame, m_Players, m_BaseManager, m_MultiGame, m_Games.Count + 1); pubGame2.setFreqs(10, 11); pubGame2.setSpamMeList(this.m_SpamMeList); pubGame2.setArchive(m_ArchivedGames); m_Games.Add(pubGame2); } // load and configure stuff to start baseduel module psyGame.Send(msg.arena("[ BaseDuel ] Module Loaded - " + PlayerName)); psyGame.Send(msg.arena("[ BaseDuel ] MultiGame Toggle: [ " + (this.m_MultiGame?"On":"Off") + " ]")); }
private void command_PointRestart(SSPlayer p, ChatEvent e) { Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.Mod); if (game != null) { game.command_PointReset(p); } }
private void command_Shuffle(SSPlayer p, ChatEvent e) { Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.Mod); if (game != null) { game.command_ShuffleTeams(p, this.m_BlockedList); } }
private void command_SettingChanges(SSPlayer p, ChatEvent e) { Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.Mod); if (game != null) { game.command_SettingChange(p, e); } }
private void command_GetPlayerStats(SSPlayer p, ChatEvent e) { Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.None); if (game != null) { game.command_GetPlayerStats(p); } }
// get game from command private Classes.BaseGame getGame_FromCommand(SSPlayer p, ChatEvent e, ModLevels modLvl) { Classes.BaseGame game = this.getGame(p.Frequency); string[] data = e.Message.Split(' '); int num; if (game == null) { if (player_isMod(e, ModLevels.Mod)) { if (data.Length >= 2) { if (int.TryParse(data[1], out num) && num > 0 && num <= this.m_Games.Count) { return(this.m_Games[num - 1]); } if (data.Length > 2 && int.TryParse(data[2], out num) && num > 0 && num <= this.m_Games.Count) { return(this.m_Games[num - 1]); } if (p.Ship == ShipTypes.Spectator) { psyGame.Send(msg.pm(p.PlayerName, "You are not on an active game freq. To see the list of active games type !bd games. For help on BD commands type: !bd commands.")); return(null); } } else { psyGame.Send(msg.pm(p.PlayerName, "You must be in the active game freq to use this command. To see the list of active games type !bd games. For help on BD commands type: !bd commands.")); return(null); } } return(null); } else { if (data.Length == 3) { if (int.TryParse(data[2], out num) && num > 0 && num <= this.m_Games.Count) { return(this.m_Games[num - 1]); } } if (this.player_isMod(e, modLvl)) { return(this.m_Games[game.gameNum() - 1]); } return(null); } }
public void Event_PlayerLeft(SSPlayer p) { // Module isnt on if (m_Games == null) { return; } Classes.BaseGame game = getGame(p.Frequency); if (game != null) { game.player_Remove(p); } }
private void command_GameStart(SSPlayer p, ChatEvent e) { Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.None); if (game != null) { if (game == this.getGame(p.Frequency)) { game.command_GameStart(p); } else if (player_isMod(e, ModLevels.Mod)) { game.command_GameStart(p); } } }
public void Event_PlayerTurretAttach(SSPlayer attacher, SSPlayer host) { // Module isnt on if (m_Games == null) { return; } Classes.BaseGame game = getGame(host.Frequency); if (game == null) { return; } game.Event_TurretEvent(attacher, host); }
public void Event_PlayerFreqChange(SSPlayer p) { // Module isnt on if (m_Games == null) { return; } Classes.BaseGame joinGame = getGame(p.Frequency); Classes.BaseGame leaveGame = getGame(p.OldFrequency); if (leaveGame != null && leaveGame.gameStatus() != Misc.BaseGameStatus.NotStarted) { leaveGame.player_Remove(p); } if (joinGame != null && joinGame.gameStatus() != Misc.BaseGameStatus.NotStarted && !joinGame.lockedStatus()) { joinGame.player_Join(p); } }
public void Event_PlayerKilled(SSPlayer Attacker, SSPlayer Victim) { // Module isnt on if (m_Games == null) { return; } Classes.BaseGame game = getGame(Attacker.Frequency); if (game == null) { return; } if (game.gameStatus() != Misc.BaseGameStatus.InProgress) { return; } game.Event_PlayerKilled(Attacker, Victim); }
private void command_GetGameScore(SSPlayer p, ChatEvent e) { if (p.Ship == ShipTypes.Spectator) { psyGame.Send(msg.pm(p.PlayerName, "+--------------------------------------------------+")); psyGame.Send(msg.pm(p.PlayerName, "| Game Number Score |")); psyGame.Send(msg.pm(p.PlayerName, "+--------------------------------------------------+")); foreach (Classes.BaseGame b in this.m_Games) { //psyGame.Send(msg.pm(p.PlayerName, "Game[ " + b.gameNum().ToString().PadLeft(2,'0') + " ] Freq[ " + b.AlphaFreq.ToString().PadLeft(2,'0') + " ] " + b.AlphaScore + " - " + b.BravoScore + " [ " + b.BravoFreq + " ]Freq")); psyGame.Send(msg.pm(p.PlayerName, "| [ " + b.gameNum().ToString().PadLeft(2, '0') + " ] Freq[ " + b.AlphaFreq.ToString().PadLeft(2) + " ] " + b.AlphaScore.ToString().PadLeft(2) + " - " + b.BravoScore.ToString().PadRight(2) + " [ " + b.BravoFreq.ToString().PadLeft(2) + " ]Freq |")); } psyGame.Send(msg.pm(p.PlayerName, "+--------------------------------------------------+")); return; } Classes.BaseGame game = this.getGame_FromCommand(p, e, ModLevels.None); if (game != null) { psyGame.Send(msg.pm(p.PlayerName, game.AlphaName + " " + game.AlphaScore.ToString().PadLeft(2) + " - " + game.BravoScore.ToString().PadRight(2) + " " + game.BravoName)); } }
//----------------------------------------------------------------------// // Events // //----------------------------------------------------------------------// public void Event_PlayerPosition(SSPlayer p) { // Module isnt on if (m_Games == null) { return; } // Entire game is based off of this event- Is Safe: either they are in center or in base if (p.Position.ShipState.IsSafe) { Classes.BaseGame game = getGame(p.Frequency); // Deal with blocked players first if (m_BlockedList.Contains(p.PlayerName) && game != null) { psyGame.Send(msg.pm(p.PlayerName, "?|setfreq " + m_BlockedListFreq + "|prize fullcharge")); return; } if (game == null || game.gameStatus() == Misc.BaseGameStatus.OnHold) { return; } game.Event_PlayerPosition(p); } else if (p.Position.Weapon.Type != WeaponTypes.NoWeapon) { Classes.BaseGame game = getGame(p.Frequency); if (game != null) { game.Event_PlayerFiredWeapon(p); } } }