private static bool IsPathEmptyBetween(FightStatus fightStatus, Coord src, Coord dest, DynamicValueContext context) { //IL_0053: Unknown result type (might be due to invalid IL or missing references) if (!src.IsAlignedWith(dest)) { return(false); } FightMapStatus mapStatus = fightStatus.mapStatus; foreach (Coord item in src.StraightPathUntil(dest)) { switch (mapStatus.GetCellState(item.x, item.y)) { case FightCellState.None: return(false); default: throw new ArgumentOutOfRangeException(); case FightCellState.Movement: break; } if (fightStatus.HasEntityBlockingMovementAt((Vector2Int)item)) { return(false); } } return(true); }
private static IEnumerable <Coord> Filter(IEnumerable <Coord> coords, FightStatus fightStatus) { foreach (Coord coord in coords) { if (!fightStatus.HasEntityBlockingMovementAt((Vector2Int)coord)) { yield return(coord); } } }