static public DeployedPresence ToDestroy(string prompt, SpiritIsland.Spirit spirit) => All(prompt, spirit, Present.Always);
/// <summary> Targets Sacred Sites </summary> static public DeployedPresence SacredSites(string prompt, SpiritIsland.Spirit spirit, Present present) => new DeployedPresence(prompt, spirit.Presence.SacredSites, present);
public static DeployedPresence ToPush(SpiritIsland.Spirit spirit, Present present = Present.Done) => All("Select Presence to push.", spirit, present);
static public DeployedPresence Some(string prompt, SpiritIsland.Spirit spirit, Func <SpiritIsland.Space, bool> filter, Present present) => new DeployedPresence(prompt, spirit.Presence.Spaces.Where(filter), present);
/// <summary> Targets ALL spaces containing deployed presence </summary> /// !!! figure out different reasons .All is called and pull some of the generic ones into this class as factory methods static public DeployedPresence All(string prompt, SpiritIsland.Spirit spirit, Present present) => new DeployedPresence(prompt, spirit.Presence.Spaces, present);
static public DeployedPresence ToDestroy(string prompt, SpiritIsland.Spirit spirit, Func <SpiritIsland.Space, bool> filter) => Some(prompt, spirit, filter, Present.Always);
static public TrackSlot ToCover(SpiritIsland.Spirit spirit) => new TrackSlot("Select Destination to return presence", spirit.Presence.CoverOptions);
static public TrackSlot ToReveal(string prompt, SpiritIsland.Spirit spirit) => new TrackSlot(prompt, spirit.Presence.RevealOptions, "Take Presence from Board");