Exemple #1
0
        public bd2Engine ToLiveEngine()
        {
            bd2Engine mainEngine = new bd2Engine();

            if (requiresCustomHub)
            {
                mainEngine.InjectHub(this.hubToUse);
            }
            //mainEngine.InjectBotSupport();
            //mainEngine.InjectEquipmentSupport(new EquipmentSupport(new HardcodedEquipmentRepository()));
            mainEngine.RegisterForMessages();
            //xmloutput.RegisterForMessages();
            return(mainEngine);
        }
        private ScanEquipmentUseResult GetDefinedScanResult(int definedResult, bool includeSecondBot = false)
        {
            Hub testHub = new Hub();

            var scanningBot = new MockBotFactory().CreateBasicMockBot().WithMockPack().ToBot();

            var scannedBot = new MockBotFactory().CreateBasicMockBot().WithMockPack().ToBot();

            TestEngineFactory tef = new TestEngineFactory().WithHub(testHub).WithDefaultWorld().WithEquipmentSupport().WithBotSupport().WithBot(scanningBot);

            if (includeSecondBot)
            {
                tef = tef.WithBot(scannedBot);
            }

            var engx = tef.WithPrepare().ToMockEngine();

            engx.PerformNextTick();
            engx.Mock_DirectSetBotLocation(scanningBot.PublicId, new Point(99, 99));  // Set bot to top right of the map.

            if (includeSecondBot)
            {
                engx.Mock_DirectSetBotLocation(scannedBot.PublicId, new Point(97, 99));  // Set bot to top right of the map.
            }

            bd2Engine ee = (bd2Engine)engx;


            var ae = scanningBot.InstallEquipment(KnownEquipmentIds.MOCKSCANNER, "FriendlyName", MountPoint.Internal);

            engx.Mock_DirectSetBotCharge(scanningBot.PublicId, 100);
            var result = scanningBot.UseEquipment(ae.InstanceId);
            ScanEquipmentUseResult resASR = (ScanEquipmentUseResult)result;

            Assert.Equal <UsageEndState>(UsageEndState.Success, resASR.State);

            return(resASR);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            Bilge b = new Bilge(tl: TraceLevel.Verbose);

            b.AddHandler(new TCPHandler("127.0.0.1", 9060));
            ConfigHub.Current.InjectBilge(b);

            Console.WriteLine("Online....");

            b.Info.Log("Boondoggle, Online....");

            MachineConfigurations.PerformMachineConfig();
            b.Info.Log("Machine configuration established, beginning contest");

            BattleRunnerControl brc;

            if ((args.Length > 0) && (File.Exists(args[0])))
            {
                b.Info.Log("Control File Detected - Using: ", args[0]);
                brc = new BattleRunnerControl(args[0]);
            }
            else
            {
                brc = new BattleRunnerControl(string.Format("bdgl_2_0_{0}", DateTime.Now.ToString("ddmmyy_hh_mm_ss")), "Dummy Battle");
                brc.AddContestant(new KevBot());
                brc.AddContestant(new Reference_RightTurnBot());
                brc.AddContestant(new BorisBot());
            }

            b.Info.Log("Context established, starting main contest");
            try {
#if false
                bd2XmlOutputter xmloutput = new bd2XmlOutputter();
                xmloutput.Initialise(brc.BattleUniqueName);
                xmloutput.StoreControlData(brc);
#else
                bd2ConsoleOutputter consoleOut = new bd2ConsoleOutputter();
                consoleOut.Initialise(brc.BattleUniqueName);
#endif

                bd2Engine mainEngine = new bd2Engine();
                mainEngine.InjectBotSupport();
                mainEngine.InjectEquipmentSupport(new EquipmentSupport(new HardcodedEquipmentRepository()));
                mainEngine.RegisterForMessages();


                bd2MapRepository bdmr = new bd2MapRepository();

                var mp = bdmr.GetMapByName(MAPNAME);

                mp.MapType = MapConditionType.LastBotStanding;
                mainEngine.AddWorld(new bd2World(mp));
                mainEngine.DumpWorld();
                foreach (var v in brc.GetContestants())
                {
                    mainEngine.AddBot(v);
                }

                mainEngine.StartBattle();

                b.Info.Log("About to enter loop");
                do
                {
                    ActiveTurn = mainEngine.Turn;

                    mainEngine.PerformNextTick();

                    if (SLEEPAMOUNT > 0)
                    {
                        SlowDownExecution();
                    }

                    if (ActiveTurn > MAXTURNCOUNT)
                    {
                        b.Info.Log("The contest has gone on too long- exiting....");
                        Console.WriteLine("Protection Abort....");
                        mainEngine.ShutdownBattle();
                    }
                } while (mainEngine.BattleActive);
                b.Info.Log("Battle No Longer Active.");
            } catch (BdBaseException bx) {
                Console.WriteLine("ERROR");
                Console.WriteLine(bx.Message);
            }

            if (stopAtEnd)
            {
                Console.WriteLine("Done");
                Console.ReadLine();
            }
        }