Ejemplo n.º 1
0
        private void ChatClientOnOnWhisperReceived(object sender, WhisperReceivedEventArgs e)
        {
            if (!_ongoingDuels.Any())
            {
                return;
            }
            Duel existingDuel = _ongoingDuels
                                .SingleOrDefault(duel => duel.IsExpectingInputFrom(e.FromDisplayName));
            DuelResult duelResult = existingDuel?.ApplySelection(e.FromDisplayName, e.Message);

            if (duelResult.DuelIsOver)
            {
                _ongoingDuels.Remove(existingDuel);
            }

            if (!string.IsNullOrWhiteSpace(duelResult.MessageForUser))
            {
                _chatClient.SendDirectMessage(e.FromDisplayName, duelResult.MessageForUser);
            }

            if (!string.IsNullOrWhiteSpace(duelResult.MessageForChat))
            {
                _chatClient.SendMessage(duelResult.MessageForChat);
            }
        }
Ejemplo n.º 2
0
        private DuelResult RunContest()
        {
            var result = new DuelResult {
                DuelIsOver = true
            };

            if (ChallengerChoice.LosesTo() == OpponentChoice)
            {
                result.MessageForChat = $"In the epic duel, @{Challenger} 's {ChallengerChoice} lost! @{Opponent} 's {OpponentChoice} won!";
            }
            else if (OpponentChoice.LosesTo() == ChallengerChoice)
            {
                result.MessageForChat = $"In the epic duel, @{Challenger} 's {ChallengerChoice} won! @{Opponent} 's {OpponentChoice} lost!";
            }
            else
            {
                result.MessageForChat = $"The duel between {Challenger} and {Opponent} was a tie! Both picked {ChallengerChoice}.";
            }

            return(result);
        }