public virtual IEnumerable <Space> FindSources(IKnowSpiritLocations presence, TargetSourceCriteria source) { var sources = source.From switch { From.Presence => presence.Spaces, From.SacredSite => presence.SacredSites, _ => throw new ArgumentException("Invalid presence source " + source.From), }; return(sources.Where(x => !source.Terrain.HasValue || x.Is(source.Terrain.Value))); }
public MistsShiftAndFlow(ShroudOfSilentMist spirit, GameState gameState, string prompt, TargetSourceCriteria sourceCriteria, TargetCriteria[] targetCriteria, TargettingFrom powerType) { this.spirit = spirit; this.gameState = gameState; this.prompt = prompt ?? "Target Space."; this.sourceCriteria = sourceCriteria; this.targetCriteria = targetCriteria; this.powerType = powerType; CalculateSpaceGroups(); }
public IEnumerable <Space> FindSources(IKnowSpiritLocations _, TargetSourceCriteria sourceCriteria) { List <Space> sources = new (); // Find source of original for (int i = 0; i < spirits.Length; ++i) { sources.AddRange(origApis[i].FindSources(spirits[i].Presence, sourceCriteria)); } return(sources.Distinct()); }
public override Task <Space> TargetsSpace(TargettingFrom powerType, GameState gameState, string prompt, TargetSourceCriteria sourceCriteria, params TargetCriteria[] targetCriteria) { return(new MistsShiftAndFlow(this, gameState, prompt, sourceCriteria, targetCriteria, powerType) .TargetAndFlow()); }
public TargetSpaceAttribute(TargetSourceCriteria sourceCriteria, int range, string targetFilter) { this.sourceCriteria = sourceCriteria; this.range = range; this.TargetFilter = targetFilter; }