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); }
public override int Visit(DamageDependingOnCreatureNumberAbility damageDependingOnCreatureNumberAbility) { return(0); }
public override int Visit(DamageDependingOnCreatureNumberAbility ability) { //All return(CheckImmunity()); }
public abstract int Visit(DamageDependingOnCreatureNumberAbility damageDependingOnCreatureNumberAbility);