Esempio n. 1
0
        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);
 }