public void PickPlayer(ulong captainID, ulong pickedPlayerID, ulong pickedPlayer2ID = 0) { var player1 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayerID).First(); var player2 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayer2ID).FirstOrDefault(); if (captainID == Captain1.DiscordID) { Team1.Add(player1); RemainingPlayers.Remove(player1); if (player2 != null) { Team1.Add(player2); RemainingPlayers.Remove(player2); } PickTurn = 2; } else if (captainID == Captain2.DiscordID) { Team2.Add(player1); RemainingPlayers.Remove(player1); if (player2 != null) { Team2.Add(player2); RemainingPlayers.Remove(player2); } PickTurn = 1; } }
/// <summary> /// Diese Methode ermittelt die besten zwei Spieler der Gruppen. /// Da die Gruppen immer mindestens drei Spieler haben, ist dies kein Problem. /// </summary> private void BestTwoPlayersRemain() { foreach (Group group in Groups) { RemainingPlayers.Add(group.Players[0]); RemainingPlayers.Add(group.Players[1]); } ShowRemainingPlayers(); }
private void FinishPlayerDeathRewind(Player player) { RemainingPlayers.Remove(player); EnablePlayer(player); ClearPlayerBuffer(player); CheckForRewindComplete(); }
public bool IsAvailablePlayer(ulong discordID) { if (RemainingPlayers.Select(p => p.DiscordID).Contains(discordID)) { return(true); } else { return(false); } }
public void PopQueue() { ChooseCaptains(); ChooseMap(); //Set remaining players. RemainingPlayers = Players.ToList(); RemainingPlayers.Remove(Captain1); RemainingPlayers.Remove(Captain2); //Set pick turn and game state. PickTurn = 1; State = LobbyState.PickingPlayers; }
public bool IsFirstPick() { if (State != LobbyState.PickingPlayers) { return(false); } if (RemainingPlayers.Count() == ((Session.AppConfig.PlayersPerTeam * 2) - 2)) { return(true); } else { return(false); } }
public void StartMatch() { var lastPlayer = RemainingPlayers.First(); if (PickTurn == 1) { Team1.Add(lastPlayer); } else { Team2.Add(lastPlayer); } RemainingPlayers.Remove(lastPlayer); State = GameLobby.LobbyState.Reporting; }
public RewindOperation(IEnumerable <Player> players, IEnumerable <Ghost> ghosts, Action onComplete) { _onComplete = onComplete; ParticipatingPlayers.AddRange(players); RemainingPlayers.AddRange(players); ParticipatingGhosts.AddRange(ghosts); RemainingGhosts.AddRange(ghosts); //Kill all projectiles var projectiles = Scene.Current.FindGameObjects <Projectile>(); foreach (var item in projectiles) { item.DisposeLater(); } //And remove all active status effects. foreach (var item in ParticipatingPlayers) { item.RemoveAllStatusEffects(); } //Turn on replay for all players. foreach (var player in ParticipatingPlayers) { DisablePlayer(player); player.TimeBody.StartRewind(2, true, () => { FinishPlayerDeathRewind(player); }); } //Turn on replay for all ghosts. foreach (var ghost in ParticipatingGhosts) { ghost.TimeBody.StartRewind(2, false, () => { FinishGhostDeathRewind(ghost); }); } }