public override int Visit(AmaruIncarnationAbility ability)
 {
     if (Target is CardTarget && Target.Character != CharacterEnum.AMARU)
     {
         return(CheckImmunity());
     }
     return(-1);
 }
示例#2
0
        public override int Visit(AmaruIncarnationAbility ability)
        {
            foreach (CardTarget target in CardTargets)
            {
                if (Caller.Outer.Count >= AmaruConstants.OUTER_MAX_SIZE && Caller.Inner.Count >= AmaruConstants.INNER_MAX_SIZE)
                {
                    return(0);
                }
                Place        origin = GameManager.UserDict[target.Character].Player.GetCardFromId(target.CardId, Place.INNER) == null ? Place.OUTER : Place.INNER;
                Place        dest;
                CreatureCard oldCard = ((CreatureCard)GameManager.GetPlayer(target.Character).GetCardFromId(target.CardId, origin));
                CreatureCard moved   = oldCard.Clone(false);

                // TODO: gestire se l'area è piena
                if (Caller.Outer.Count < AmaruConstants.OUTER_MAX_SIZE)
                {
                    dest = Place.OUTER;
                    GameManager.GetPlayer(target.Character).Outer.Remove(oldCard);
                    Caller.Outer.Add(moved);
                }
                else if (Caller.Inner.Count < AmaruConstants.INNER_MAX_SIZE)
                {
                    dest = Place.INNER;
                    GameManager.GetPlayer(target.Character).Inner.Remove(oldCard);
                    Caller.Inner.Add(moved);
                }
                else//*/
                {
                    return(0);
                }
                foreach (CharacterEnum c in GameManager.UserDict.Keys)
                {
                    AddResponse(c, new EvocationResponse(Owner, oldCard, moved, dest, deleteOriginal: true));
                }
            }
            return(0);
        }
示例#3
0
 public override int Visit(AmaruIncarnationAbility amaruIncarnationAbility)
 {
     return(0);
 }
示例#4
0
 public abstract int Visit(AmaruIncarnationAbility amaruIncarnationAbility);