public AIBattleDemo() { Console.WriteLine("----- Pokémon Battle Engine - AI Battle Demo -----"); try { _writer = new StreamWriter(new FileStream(LogFile, FileMode.Create, FileAccess.Write)); } catch (Exception e) { Console.WriteLine($"Cannot open \"{LogFile}\" for writing."); Console.WriteLine(e.Message); _battle = null !; _ai0 = null !; _ai1 = null !; _writer = null !; _oldWriter = null !; return; } PBESettings settings = PBESettings.DefaultSettings; //var settings = new PBESettings { NumMoves = 8, MaxPartySize = 10 }; //settings.MakeReadOnly(); PBELegalPokemonCollection p0, p1; // Competitively Randomized Pokémon p0 = PBEDDRandomTeamGenerator.CreateRandomTeam(settings.MaxPartySize); p1 = PBEDDRandomTeamGenerator.CreateRandomTeam(settings.MaxPartySize); _battle = PBEBattle.CreateTrainerBattle(PBEBattleFormat.Double, settings, new PBETrainerInfo(p0, "Trainer 0", false), new PBETrainerInfo(p1, "Trainer 1", false), battleTerrain: PBEDataProvider.GlobalRandom.RandomBattleTerrain()); _battle.OnNewEvent += PBEBattle.ConsoleBattleEventHandler; _battle.OnNewEvent += Battle_OnNewEvent; _battle.OnStateChanged += Battle_OnStateChanged; _ai0 = new PBEDDAI(_battle.Trainers[0]); _ai1 = new PBEDDAI(_battle.Trainers[1]); _oldWriter = Console.Out; Console.SetOut(_writer); new Thread(() => { try { _battle.Begin(); } catch (Exception e) { CatchException(e); } }) { Name = "Battle Thread" }.Start(); }
public SinglePlayerClient(PBEBattle b, string name) : base(name) { Battle = b; Trainer = b.Trainers[0]; BattleView = new BattleView(this); b.OnNewEvent += SinglePlayerBattle_OnNewEvent; b.OnStateChanged += SinglePlayerBattle_OnStateChanged; _ais = new PBEDDAI[b.Trainers.Count - 1]; for (int i = 0; i < _ais.Length; i++) { _ais[i] = new PBEDDAI(b.Trainers[i + 1]); } ShowAllPokemon(); CreateBattleThread(b.Begin); }