Exemple #1
0
        public override void CreateDestroy()
        {
            base.CreateDestroy();

            if (World.Hook.RoyaleMode && !Initialized)
            {
                // setup
                OriginalWorldsizeDeltaPerPlayer    = World.Hook.WorldSizeDeltaPerPlayer;
                OriginalWorldResizeSpeed           = World.Hook.WorldResizeSpeed;
                OriginalFishesMultiplier           = World.Hook.FishesMultiplier;
                World.Hook.WorldMinPlayersToResize = 0;
                World.Hook.WorldResizeEnabled      = true;

                World.Hook.PointsPerKillFleet     = 0;
                World.Hook.PointsPerKillShip      = 0;
                World.Hook.PointsPerKillFleetStep = 0;
                World.Hook.PointsPerUniverseDeath = 0;
                World.Hook.PointsMultiplierDeath  = 1.0f;
                World.Hook.ComboPointsStep        = 0;

                StartingBlock = new StartingBlock
                {
                    ParentGame = this
                };
                StartingBlock.Init(World);
                ResetGame();
                Initialized = true;
            }

            if (!World.Hook.RoyaleMode && Initialized)
            {
                // tear down

                StartingBlock.Destroy();
                World.Hook.WorldSizeDeltaPerPlayer = OriginalWorldsizeDeltaPerPlayer;
                World.CanSpawn = true;
                Initialized    = false;
            }
        }
Exemple #2
0
        protected override void CycleThink()
        {
            var players = Player.GetWorldPlayers(World).ToList();

            switch (GameState)
            {
            case GameStateEnum.Prestart:
                /*if (Initialized)
                 *  if (players.Count(p => p.IsAlive) > 0)
                 *      StartCountdown();*/
                break;

            case GameStateEnum.Countdown:

                if (World.Time > CountdownUntil)
                {
                    StartGame();
                }
                break;

            case GameStateEnum.Running:
                StepGame(players);
                break;

            case GameStateEnum.Waiting:
                break;
            }

            if (GameRestartTime > 0 && World.Time > GameRestartTime)
            {
                ResetGame();
            }

            var playerCount = players
                              .Where(p => p.IsAlive).Count();

            if (playerCount == 0)
            {
                if (GameEmptySince == 0)
                {
                    GameEmptySince = World.Time;
                }
            }

            if (playerCount > 0)
            {
                GameEmptySince = 0;
            }

            if (World.Hook.RoyaleMode && !Initialized)
            {
                // setup
                //OriginalWorldsizeDeltaPerPlayer = World.Hook.WorldSizeDeltaPerPlayer;
                //OriginalWorldResizeSpeed = World.Hook.WorldResizeSpeed;
                //OriginalFishesMultiplier = World.Hook.FishesMultiplier;
                //World.Hook.WorldMinPlayersToResize = 0;
                //World.Hook.WorldResizeEnabled = true;

                World.Hook.PointsPerKillFleet     = 0;
                World.Hook.PointsPerKillShip      = 0;
                World.Hook.PointsPerKillFleetStep = 0;
                World.Hook.PointsPerUniverseDeath = 0;
                World.Hook.PointsMultiplierDeath  = 1.0f;
                World.Hook.ComboPointsStep        = 0;

                StartingBlock = new StartingBlock(World)
                {
                    ParentGame = this
                };
                ResetGame();
                Initialized = true;
            }

            if (!World.Hook.RoyaleMode && Initialized)
            {
                // tear down

                StartingBlock.Destroy();
                //World.Hook.WorldSizeDeltaPerPlayer = OriginalWorldsizeDeltaPerPlayer;
                World.CanSpawn = true;
                Initialized    = false;
            }
        }