Esempio n. 1
0
        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
    }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }