void IStarcraftBot.onPlayerLeft(SWIG.BWAPI.Player player) { if (ActivePlayers.ContainsKey(player.getName())) { ActivePlayers.Remove(player.getName()); } }
private void On_INPUT_ControllerDisconnected(BEHandle <EControllerID> eventHandle) { EControllerID controllerID = eventHandle.Arg1; if (IS_KEY_CONTAINED(ControllersMap, controllerID)) { EPlayerID playerID = ControllersMap[controllerID]; // Was a joined controller? if (playerID != EPlayerID.SPECTATOR && IS_KEY_CONTAINED(partyStatusMap, playerID)) { partyStatusMap[playerID].Flush(); } // Destroy Player if (ActivePlayers.ContainsKey(playerID)) { DestroyPlayer(playerID); } ControllersMap.Remove(controllerID); BEventsCollection.PLAYERS_PlayerLeft.Invoke(new BEHandle <EPlayerID, EControllerID>(playerID, controllerID)); } }
public void LeavePlayer(EPlayerID playerID) { if ((IS_KEY_CONTAINED(partyStatusMap, playerID)) && (IS_TRUE(partyStatusMap[playerID].HasJoined))) { // Destroy Player if (ActivePlayers.ContainsKey(playerID)) { DestroyPlayer(playerID); } // Reset controller to Spectator EControllerID controllerID = partyStatusMap[playerID].ControllerID; if (IS_KEY_CONTAINED(ControllersMap, controllerID)) { ControllersMap[controllerID] = EPlayerID.SPECTATOR; } // Reset entry of playerID in party status partyStatusMap[playerID] = new PlayerJoinStatus(EControllerID.NONE); // Trigger global event BEventsCollection.PLAYERS_PlayerLeft.Invoke(new BEHandle <EPlayerID, EControllerID>(playerID, controllerID)); // Are the rest of the joined players ready? CheckIfAllPlayersAreReady(); } }
public bool IsPlayerAlive(EPlayerID playerID) { return(ActivePlayers.ContainsKey(playerID)); }