public override int Visit(ResurrectSpecificCreatureSpellAbility spellAbility) { Log(OwnerCard.Name + " used ResurrectSpecificCreatureSpellAbility"); LimitedList <CreatureCard> reborn = new LimitedList <CreatureCard>((AmaruConstants.OUTER_MAX_SIZE - GameManager.UserDict[Owner].Player.Outer.Count) < 3 ? (AmaruConstants.OUTER_MAX_SIZE - GameManager.UserDict[Owner].Player.Outer.Count) : 3); try { foreach (CreatureCard c in GameManager.Graveyard) { if (c.CardEnum.Equals(Amaru.BodyGuardian) || c.CardEnum.Equals(Amaru.SoulGuardian)) { reborn.Add((CreatureCard)c.Original); } } } catch (LimitedListOutOfBoundException) { } finally { foreach (CreatureCard card in reborn) { Log(OwnerCard.Name + " used ResurrectSpecificCreatureSpellAbility, resurrected " + card.Name); GameManager.Graveyard.Remove(card); GameManager.UserDict[Owner].Player.Outer.Add(card); foreach (CharacterEnum ch in GameManager.UserDict.Keys) { AddResponse(ch, new ResurrectResponse(Owner, card, Place.OUTER)); } } } return(0); }
public override int Visit(ResurrectSpecificCreatureSpellAbility spellAbility) { if (Target == null) { return(0); } return(-1); }
public override int Visit(ResurrectSpecificCreatureSpellAbility ability) { throw new NotImplementedException(); }
public abstract int Visit(ResurrectSpecificCreatureSpellAbility resurrectSpecificCreatureSpellAbility);
public override int Visit(ResurrectSpecificCreatureSpellAbility resurrectSpecificCreatureSpellAbility) { return(0); }