///////////////////////////////////////////////////
        // Member Functions
        ///////////////////////////////////////////////////
        /// <summary>
        /// Performs script initialization
        /// </summary>
        public bool init(IEventObject invoker)
        {       //Populate our variables
            _arena  = invoker as Arena;
            _config = _arena._server._zoneConfig;

            caverns = new LowerLevel();

            _minPlayers = Int32.MaxValue;

            foreach (Arena.FlagState fs in _arena._flags.Values)
            {   //Determine the minimum number of players
                if (fs.flag.FlagData.MinPlayerCount < _minPlayers)
                {
                    _minPlayers = fs.flag.FlagData.MinPlayerCount;
                }

                //Register our flag change events
                fs.TeamChange += onFlagChange;
            }

            if (_minPlayers == Int32.MaxValue)
            {
                //No flags? Run blank games
                _minPlayers = 1;
            }

            return(true);
        }
        public bool gameStart()
        {       //We've started!
            caverns           = new LowerLevel();
            _tickGameStart    = Environment.TickCount;
            _tickGameStarting = 0;
            _tickVictoryStart = 0;
            _victoryNotice    = 0;

            //Spawn our flags!
            _arena.flagSpawn();

            //Let everyone know
            _arena.sendArenaMessage("Game has started!", _config.flag.resetBong);

            //Signal that a game has not been won yet
            _gameWon = false;
            return(true);
        }