void initiateBombardment(SpaceBattleGame battleGame) { var controller = new BombardmentController(new BombardBattleGame(battleGame), this.gameObj, this); foreach (var player in controller.Participants) { var playerController = (player.ControlType == PlayerControlType.Neutral) ? this.organelleController : this.playerControllers.First(x => this.gameObj.MainPlayers[x.PlayerIndex] == player); if (player.OffscreenControl != null) { controller.Register(playerController, player.OffscreenControl.StartBombardment(controller)); } else { controller.Register(playerController, this.stateListener.OnDoBombardment(controller)); } } this.combatPhase = Task.Factory.StartNew(controller.Start).ContinueWith(checkTaskException); }
void initiateBombardment(SpaceBattleGame battleGame) { var controller = new BombardmentController(battleGame, this.gameObj, this); //TODO(v0.6) doesn't take proper players into account foreach (var player in battleGame.Combatants.Select(x => x.Owner).Distinct()) { var playerController = (player.ControlType == PlayerControlType.Neutral) ? this.organelleController : this.playerControllers.First(x => this.gameObj.MainPlayers[x.PlayerIndex] == player); if (player.OffscreenControl != null) { controller.Register(playerController, player.OffscreenControl.StartBombardment(controller)); } else { controller.Register(playerController, this.stateListener.OnDoBombardment(controller)); } } controller.Start(); }