Пример #1
0
        //----------------------------------------------------------------------//
        //                     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") + " ]"));
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        // 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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
                }
            }
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
            }
        }
Пример #11
0
        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);
        }
Пример #12
0
        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));
            }
        }
Пример #13
0
        //----------------------------------------------------------------------//
        //                         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);
                }
            }
        }