コード例 #1
0
        public override int Visit(DamageDependingOnCreatureNumberAbility ability)
        {
            //Log(OwnerCard.Name + " used DamageDependingOnCreatureNumberAbility");
            int attackPower = ability.myZone == Place.INNER ? GameManager.UserDict[Owner].Player.Inner.Count : GameManager.UserDict[Owner].Player.Outer.Count;

            // Case target is Creature
            if (Targets[0] is CardTarget)
            {
                CardTarget   t          = (CardTarget)Targets[0];
                CreatureCard targetCard = (CreatureCard)(GameManager.UserDict[t.Character].Player.GetCardFromId(t.CardId, Place.INNER) ?? GameManager.UserDict[t.Character].Player.GetCardFromId(t.CardId, Place.OUTER));
                targetCard.Health -= attackPower + ability.bonusDmg;
                foreach (CharacterEnum c in GameManager.UserDict.Keys.ToList())
                {
                    AddResponse(c, new CardsModifiedResponse(targetCard));
                }
            }
            // Case target is Player
            else
            {
                Player targetPlayer = GameManager.UserDict[Targets[0].Character].Player;
                targetPlayer.Health -= attackPower + ability.bonusDmg;
                foreach (CharacterEnum c in GameManager.UserDict.Keys.ToList())
                {
                    AddResponse(c, new PlayerModifiedResponse(targetPlayer.Character, targetPlayer.Mana, targetPlayer.Health));
                }
            }
            return(0);
        }
コード例 #2
0
 public override int Visit(DamageDependingOnCreatureNumberAbility damageDependingOnCreatureNumberAbility)
 {
     return(0);
 }
コード例 #3
0
 public override int Visit(DamageDependingOnCreatureNumberAbility ability)
 {
     //All
     return(CheckImmunity());
 }
コード例 #4
0
 public abstract int Visit(DamageDependingOnCreatureNumberAbility damageDependingOnCreatureNumberAbility);