public void onFrame() { if (realBot != null) { realBot.onFrame(); } }
static void LoadandRunBot() { loadBot(); //preload our bot so that any module load errors come up now instead of at match start. bwapi.BWAPI_init(); System.Console.WriteLine("Connecting..."); reconnect(); while (true) { //wait for game to start System.Console.WriteLine("waiting to enter match\n"); while (!bwapi.Broodwar.isInGame()) { bwapiclient.BWAPIClient.update(); if (!bwapiclient.BWAPIClient.isConnected()) { System.Console.WriteLine("Reconnecting...\n"); reconnect(); } } //wait for game loadBot(); //reload the bot at the start of each match (for easy drop in dll replacement) System.Console.WriteLine("Starting Match"); while (bwapi.Broodwar.isInGame()) { //for(std::list<Event>::iterator e=Broodwar->getEvents().begin();e!=Broodwar->getEvents().end();e++) foreach (Event e in bwapi.Broodwar.getEvents()) { EventType_Enum et = e.getType(); switch (et) { case EventType_Enum.MatchStart: client.onStart(); break; case EventType_Enum.MatchEnd: client.onEnd(e.isWinner()); break; case EventType_Enum.MatchFrame: client.onFrame(); break; case EventType_Enum.MenuFrame: break; case EventType_Enum.SendText: client.onSendText(e.getText()); break; case EventType_Enum.ReceiveText: client.onReceiveText(e.getPlayer(), e.getText()); break; case EventType_Enum.PlayerLeft: client.onPlayerLeft(e.getPlayer()); break; case EventType_Enum.NukeDetect: client.onNukeDetect(e.getPosition()); break; case EventType_Enum.UnitDiscover: client.onUnitDiscover(e.getUnit()); break; case EventType_Enum.UnitEvade: client.onUnitEvade(e.getUnit()); break; case EventType_Enum.UnitShow: client.onUnitShow(e.getUnit()); break; case EventType_Enum.UnitHide: client.onUnitHide(e.getUnit()); break; case EventType_Enum.UnitCreate: client.onUnitCreate(e.getUnit()); break; case EventType_Enum.UnitDestroy: client.onUnitDestroy(e.getUnit()); break; case EventType_Enum.UnitMorph: client.onUnitMorph(e.getUnit()); break; case EventType_Enum.UnitRenegade: client.onUnitRenegade(e.getUnit()); break; case EventType_Enum.SaveGame: client.onSaveGame(e.getText()); break; default: break; } } bwapiclient.BWAPIClient.update(); if (!bwapiclient.BWAPIClient.isConnected()) { System.Console.WriteLine("Reconnecting...\n"); reconnect(); } } System.Console.WriteLine("Game ended\n"); } //main while loop }