// 6. public void StartBattle() { // Create teams using trainerConnections List <BattleTeam> teams = new List <BattleTeam>(); List <Trainer> humanTrainers = new List <Trainer>(trainerConnections.Values); // Configure AI Trainers List <Trainer> aiTrainers = new List <Trainer>(); int aiTrainerCount = Mathf.Max(totalPlayers - requiredPlayers, 0); Debug.Log($"Adding {aiTrainerCount} AI trainers..."); for (int i = 0; i < aiTrainerCount; i++) { Trainer trainer = Testing.CreateTrainer2("AI " + i); trainer.playerID = -1 - i; aiTrainers.Add(trainer); } // TODO: More battle configurations than single or double BattleTeam.TeamMode teamMode = (battleSettings.battleType == BattleType.Single) ? BattleTeam.TeamMode.Single : BattleTeam.TeamMode.Double; List <Trainer> allTrainers = new List <Trainer>(); allTrainers.AddRange(humanTrainers); allTrainers.AddRange(aiTrainers); int midpoint = allTrainers.Count / 2; BattleTeam team1 = new BattleTeam( teamID: 1, trainers: allTrainers.GetRange(0, midpoint), teamMode: teamMode ); BattleTeam team2 = new BattleTeam( teamID: 2, trainers: allTrainers.GetRange(midpoint, allTrainers.Count - midpoint), teamMode: teamMode ); teams.Add(team1); teams.Add(team2); // TODO: More than 2 trainers for (int i = 0; i < humanTrainers.Count; i++) { Trainer trainer = humanTrainers[i]; BattleTeam team = (trainer.teamID == team1.teamID)? team1 : team2; // Synchronize trainer & team to player PBS.Networking.Player player = GetPlayer(trainer.playerID); NetworkIdentity networkIdentity = player.GetComponent <NetworkIdentity>(); player.playerID = trainer.playerID; player.TargetSyncTrainerToClient(networkIdentity.connectionToClient, new Battle.View.WifiFriendly.Trainer(trainer)); player.TargetSyncTeamPerspectiveToClient(networkIdentity.connectionToClient, new Battle.View.WifiFriendly.Team(team)); } // Start Battle Core Debug.Log("Starting Battle! (From Network Manager)"); Debug.Log($"{team1.trainers.Count} vs. {team2.trainers.Count}"); StartCoroutine(battleCore.StartBattle(battleSettings: battleSettings, teams: teams)); }