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; } }
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; } }