private PlayerModel GeneratePlayer(ArmamentType playerId) { PlayerModel playerModel = new PlayerModel { GameId = _gameState.Game.GameId, PlayerId = playerId, Squads = new List <SquadModel> { new SquadModel { PlayerId = playerId, SquadId = string.Format("{0}-1", playerId), }, new SquadModel { PlayerId = playerId, SquadId = string.Format("{0}-2", playerId), }, new SquadModel { PlayerId = playerId, SquadId = string.Format("{0}-3", playerId), } } }; foreach (SquadModel squad in playerModel.Squads) { ArmamentStats stats = new ArmamentStats(); switch (playerId) { case ArmamentType.GeneralGoodman: stats = new ArmamentStats(2, 2, 2, 2); break; case ArmamentType.ArchibaldKluge: stats = new ArmamentStats(0, 1, 3, 1); break; case ArmamentType.AxleRobbins: stats = new ArmamentStats(1, 0, 2, 2); break; case ArmamentType.AzuraBadeau: stats = new ArmamentStats(2, 2, 1, 0); break; case ArmamentType.BorisMyasneek: stats = new ArmamentStats(3, 1, 1, 0); break; case ArmamentType.CassandraOShea: stats = new ArmamentStats(0, 0, 2, 3); break; case ArmamentType.EmmersonBarlow: stats = new ArmamentStats(1, 3, 1, 0); break; case ArmamentType.JinFeng: stats = new ArmamentStats(0, 3, 1, 1); break; case ArmamentType.TheNode: stats = new ArmamentStats(0, 2, 2, 1); break; case ArmamentType.UgoDottore: stats = new ArmamentStats(1, 0, 3, 1); break; } squad.Armaments.Add(new Armament(playerId, stats)); } _gameState.Game.Players.Add(playerModel); _gameState.Game.PlayerId = playerId;; // Add chosen Named Henchman to first squad var firstSquad = playerModel.Squads.Where(squad => squad.SquadId == string.Format("{0}-1", playerId)).FirstOrDefault(); var playerArmament = firstSquad.Armaments.Where(armament => armament.ArmamentType == playerId).FirstOrDefault(); playerArmament.SetCount(1); // Calculate stats for first squad _squadService.CalculateSquadStats(firstSquad); _thisPlayerUpdate.OnNext(playerModel);; return(playerModel); }