void RunBot() { 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.MatchEnd: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onEnd(e.isWinner()); } break; case EventType_Enum.MatchFrame: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onFrame(); } break; case EventType_Enum.MenuFrame: break; case EventType_Enum.SendText: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onSendText(e.getText()); } break; case EventType_Enum.ReceiveText: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onReceiveText(e.getPlayer(), e.getText()); } break; case EventType_Enum.PlayerLeft: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onPlayerLeft(e.getPlayer()); } break; case EventType_Enum.NukeDetect: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onNukeDetect(e.getPosition()); } break; case EventType_Enum.UnitDiscover: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitDiscover(e.getUnit()); } break; case EventType_Enum.UnitEvade: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitEvade(e.getUnit()); } break; case EventType_Enum.UnitShow: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitShow(e.getUnit()); } break; case EventType_Enum.UnitHide: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitHide(e.getUnit()); } break; case EventType_Enum.UnitCreate: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitCreate(e.getUnit()); } break; case EventType_Enum.UnitDestroy: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitDestroy(e.getUnit()); } break; case EventType_Enum.UnitMorph: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitMorph(e.getUnit()); } break; case EventType_Enum.UnitRenegade: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onUnitRenegade(e.getUnit()); } break; case EventType_Enum.SaveGame: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onSaveGame(e.getText()); } break; default: break; } } System.Threading.Thread.Sleep(0); bwapiclient.BWAPIClient.update(); if (!bwapiclient.BWAPIClient.isConnected()) { System.Console.WriteLine("Reconnecting...\n"); reconnect(); } } System.Console.WriteLine("Game ended\n"); }
void InitBot() { bool initDone = false; 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(); //TODO: remove the match speed //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"); IBWAPI = clients["initBot"]; while (bwapi.Broodwar.isInGame() && !initDone) { //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: // takes a long time to run bwtaThread.Start(); foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onStart(); } oThread.Start(); initDone = true; break; case EventType_Enum.MatchEnd: foreach (BWAPI.IStarcraftBot client in clients.Values) { client.onEnd(e.isWinner()); } break; default: break; } } bwapiclient.BWAPIClient.update(); if (!bwapiclient.BWAPIClient.isConnected()) { System.Console.WriteLine("Reconnecting...\n"); reconnect(); } } }
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 }
public Event setType(EventType_Enum type) { Event ret = new Event(bwapiPINVOKE.Event_setType(swigCPtr, (int)type), false); return ret; }
public Event setType(EventType_Enum type) { Event ret = new Event(bwapiPINVOKE.Event_setType(swigCPtr, (int)type), false); return(ret); }
public EventType_Enum getType() { EventType_Enum ret = (EventType_Enum)bwapiPINVOKE.Event_getType(swigCPtr); return(ret); }