Esempio n. 1
0
        public override Damage GetDamage(Player owner, Player opponent, GameField game)
        {
            var attacks = opponent.ActivePokemonCard.Attacks;

            if (attacks.Count == 1)
            {
                chosenAttack = attacks[0];
            }
            else
            {
                var attackMessage = new SelectAttackMessage(opponent.ActivePokemonCard.Attacks.ToList()).ToNetworkMessage(owner.Id);
                chosenAttack = owner.NetworkPlayer.SendAndWaitForResponse <AttackMessage>(attackMessage).Attack;
            }

            return(chosenAttack.GetDamage(owner, opponent, game));
        }
Esempio n. 2
0
        public override void ProcessEffects(GameField game, Player owner, Player opponent)
        {
            if (opponent.ActivePokemonCard.Attacks.Count == 1)
            {
                opponent.ActivePokemonCard.Attacks[0].Disabled = true;
                game.GameLog.AddMessage($"{owner.NetworkPlayer?.Name} disables attack {opponent.ActivePokemonCard.Attacks[0].Name}");
                return;
            }

            var attackMessage = new SelectAttackMessage(opponent.ActivePokemonCard.Attacks.ToList()).ToNetworkMessage(owner.Id);
            var chosenAttack  = owner.NetworkPlayer.SendAndWaitForResponse <AttackMessage>(attackMessage).Attack;

            game.GameLog.AddMessage($"{owner.NetworkPlayer?.Name} disables attack {chosenAttack.Name}");
            opponent.ActivePokemonCard.Attacks.First(x => x.Id.Equals(chosenAttack.Id)).Disabled = true;

            base.ProcessEffects(game, owner, opponent);
        }
Esempio n. 3
0
        public void SelectAttackMessage()
        {
            var message = new SelectAttackMessage(new List <Attack>(new List <Attack>()));

            Assert.NotNull(SerializeAndBack(message));
        }