public void Process(GameField game, Player caster, Player opponent, PokemonCard pokemonSource) { if (caster.BenchedPokemon.Count == GameField.BenchMaxSize && opponent.BenchedPokemon.Count == GameField.BenchMaxSize) { caster.DrawCards(2); return; } var message = new YesNoMessage() { Message = "Do you accept the challenge?" }.ToNetworkMessage(caster.Id); if (!opponent.NetworkPlayer.SendAndWaitForResponse <YesNoMessage>(message).AnsweredYes) { caster.DrawCards(2); return; } var casterResponse = DeckSearchUtil.SearchDeck(game, caster, CardUtil.GetCardFilters(CardType.BasicPokemon), GameField.BenchMaxSize - caster.BenchedPokemon.Count); var opponentResponse = DeckSearchUtil.SearchDeck(game, opponent, CardUtil.GetCardFilters(CardType.BasicPokemon), GameField.BenchMaxSize - opponent.BenchedPokemon.Count); foreach (var pokemon in casterResponse.OfType <PokemonCard>()) { caster.BenchedPokemon.Add(pokemon); } foreach (var pokemon in opponentResponse.OfType <PokemonCard>()) { opponent.BenchedPokemon.Add(pokemon); } caster.Deck.Shuffle(); opponent.Deck.Shuffle(); }
public void ShowYesNoMessage(string message, Action onYesAction, Action onNoAction = null) { YesNoMessage messageBox = Instantiate(yesNoMessagePrefab, transform); messageBox.OnYesPressed += onYesAction; messageBox.OnNoPressed += onNoAction; messageBox.Show(message); // TODO: maybe should force placing it in front of all }
public bool AskYesNo(Player caster, string info) { var message = new YesNoMessage() { Message = info }.ToNetworkMessage(caster.Id); var response = caster.NetworkPlayer.SendAndWaitForResponse <YesNoMessage>(message).AnsweredYes; LastYesNo = response; return(response); }
public static bool ShowYesNoMsg(string text) { bool Yes = false; YesNoMessage yesno = new YesNoMessage(); yesno.Closing += Yesno_Closing; yesno.Message.Text = text; yesno.ShowDialog(); void Yesno_Closing(object sender, System.ComponentModel.CancelEventArgs e) { Yes = yesno.Yes; } return(Yes); }
public async Task <bool> IsMessageYesNoResult(string message) { //создаем и отображаем сообщение пользователю var yN = new YesNoMessage(); yN.Text = message; MainWindowViewModel.MessageView = yN; //получаем результат и убираем сообщение bool result = await yN.GetResult(); MainWindowViewModel.MessageView = null; return(result); }
public override void OnDamageDealt(int amount, Player owner, GameField game) { if (amount <= 0) { return; } if (isMay) { var activateMessage = new YesNoMessage { Message = Description }.ToNetworkMessage(owner.Id); var activateResponse = owner.NetworkPlayer.SendAndWaitForResponse <YesNoMessage>(activateMessage); if (activateResponse.AnsweredYes) { owner.ActivePokemonCard.Heal(AmountToHeal, game); } } else { owner.ActivePokemonCard.Heal(AmountToHeal, game); } }