void CheckHasWin() { isTie = false; computerWon = false; humanWon = false; if (!isAttack) { if (Human.BlockBodyPart != Computer.HitEnemyBodyPart) { computerWon = true; humanHp -= 10; //computerWins } else { isTie = true; } } else { if (Human.HitEnemyBodyPart != Computer.BlockBodyPart) { humanWon = true; computerHp -= 10; //humanWins } else { isTie = true; } } roundsPlayed++; RoundFinished?.Invoke(this, new EventArgs()); }
private void PlayTurn() { int player = NextPlayer; Card winningCard = null; Color?baseColor = null; for (int i = 0; i < Players.Length; i++) { Card card = Players[player].GetCardToPlay(baseColor, winningCard); OnCardPlayed(player, card); if (baseColor == null) { baseColor = card.Color; } if (card.BetterThan(winningCard)) { winningCard = card; NextPlayer = player; } player = (player + 1) % Players.Length; } Console.WriteLine(Players[NextPlayer] + " wins with " + winningCard + "!"); Color returnedTrick = Players[NextPlayer].ReturnTrick((Color)baseColor, winningCard.IsWizzard); if (returnedTrick != baseColor && (!winningCard.IsWizzard || returnedTrick != Color.Red)) { throw new InvalidOperationException(Players[NextPlayer] + " returned an illegal trick: " + returnedTrick + " with baseColor " + baseColor + " and winningCard " + winningCard); } RoundFinished?.Invoke(NextPlayer, returnedTrick); }
private void RunNextPhoto() { _chosenBucket = null; if (NoPhotosLeft()) { RoundFinished?.Invoke(_score.TotalScore); return; } _runningPhoto = _roundPhotos.Dequeue(); _runningPhoto.SetMovementVector(new Vector(0, 1)); NextPhotoRun?.Invoke(_runningPhoto); }
private void Match_SubRoundFinished(object sender, EventArgs e) { WordToDraw = null; RemainingTime = RoundLength; ResetHasGuessed(); var player = GetCurrentlyDrawingPlayer(); if (player != null) { player.Status = PlayerStatus.Guessing; PlayedPlayers.Add(player); } if (PlayedPlayers.Count >= Players.Count) { //Runde Beendet PlayedPlayers.Clear(); RoundFinished?.Invoke(this, EventArgs.Empty); if (CurrentRound == Rounds) { IsRunning = false; IsFinished = true; MatchFinished?.Invoke(this, EventArgs.Empty); return; } CurrentRound++; RoundStarted?.Invoke(this, new RoundStartedEventArgs(CurrentRound)); } player = GetPlayerWhoHasNotPlayed(); StartPreparationTimer(player); }
private void OnRoundFinished() => RoundFinished?.Invoke(this, EventArgs.Empty);
public void OnShipMissed(GamePlayer opponent) { RoundFinished?.Invoke(opponent, GameSessionRoundResult.Missed()); }
public void OnShipHit(GamePlayer player) { RoundFinished?.Invoke(player, GameSessionRoundResult.Hit()); }
public void OnAllShipsSunk(GamePlayer opponent) { RoundFinished?.Invoke(opponent, GameSessionRoundResult.AllSunk()); }
public void OnRoundSkipped(GamePlayer opponent) { RoundFinished?.Invoke(opponent, GameSessionRoundResult.Skipped()); }