protected override void OnSetup() { cachedBody = Agent.Body; cachedTurn = Agent.Turner; cachedMove = Agent.Mover; if (Sight < Range) { _sight = Range; } baseDeltaCount = InfluenceManager.GenerateDeltaCount(Sight); rangeDeltaCount = InfluenceManager.GenerateDeltaCount(Range); fastRange = (Range * Range); attackFrameCount = AttackRate; basePriority = cachedBody.Priority; CanMove = cachedMove.IsNotNull(); if (CanMove) { cachedMove.OnArrive += HandleOnArrive; cachedMove.onGroupProcessed += _HandleMoveGroupProcessed; } CanTurn = cachedTurn.IsNotNull(); }
private static void Scan(Vector2d center, long radius, Func <LSAgent, bool> conditional) { int gridX; int gridY; GridManager.GetScanCoordinates(center.x, center.y, out gridX, out gridY); InfluenceManager.ScanAll(gridX, gridY, InfluenceManager.GenerateDeltaCount(radius), LSProjectile.outputAgents, conditional); }
private static IEnumerable <LSAgent> Scan(Vector2d center, long radius, LSAgent sourceAgent, AllegianceType targetAllegiance) { int gridX; int gridY; GridManager.GetScanCoordinates(center.x, center.y, out gridX, out gridY); foreach (LSAgent agent in InfluenceManager.ScanAll(gridX, gridY, InfluenceManager.GenerateDeltaCount(radius), sourceAgent, targetAllegiance)) { yield return(agent); } }
private IEnumerable <LSAgent> Scan(Vector2d center, long radius) { int gridX; int gridY; GridManager.GetScanCoordinates(center.x, center.y, out gridX, out gridY); foreach (LSAgent agent in InfluenceManager.ScanAll( gridX, gridY, InfluenceManager.GenerateDeltaCount(radius), this.AgentConditional, this.BucketConditional) ) { yield return(agent); } }