public static ITargetType Is(this ITarget target) { if (target.IsCard()) { return target.Card().Is(); } return new NotCardTargetType(); }
public static Player Controller(this ITarget target) { if (target.IsPlayer()) return target.Player(); if (target.IsEffect()) return target.Effect().Controller; return target.Card().Controller; }
public static Zone? Zone(this ITarget target) { if (target.IsPlayer()) { return null; } if (target.IsEffect()) { return target.Effect().IsOnStack ? Grove.Zone.Stack : Grove.Zone.None; } return target.Card().Zone; }