public void CalculateAttackRange(RangeParameters attackParam, bool andHighlight = false) { m_CurrentAttackRange = RangeAlgorithms.SearchByParameters(m_GridObject.m_CurrentGridTile, attackParam); if (andHighlight) { HighlightAttackRange(true); } }
public RangeParameters(RangeParameters param) { m_RangeSearchType = param.m_RangeSearchType; m_SquareRange = param.m_SquareRange; m_MinReach = param.m_MinReach; m_MaxReach = param.m_MaxReach; m_WalkableTilesOnly = param.m_WalkableTilesOnly; m_UnOccupiedTilesOnly = param.m_UnOccupiedTilesOnly; m_IgnoreTilesHeight = param.m_IgnoreTilesHeight; m_IncludeStartingTile = param.m_IncludeStartingTile; }
public void CalculateMovementRange(bool andHighlight = false) { if (m_CurrentMouvementPoints <= 0) { return; } RangeParameters rangeParam = new RangeParameters(m_MovementRangeParameters); rangeParam.m_MaxReach = m_CurrentMouvementPoints; m_CurrentMovementRange = RangeAlgorithms.SearchByParameters(m_GridObject.m_CurrentGridTile, rangeParam, m_PathWalker.m_CanFly); if (andHighlight) { HighlightMovementRange(true); } }
public static List <GridTile> SearchByParameters(GridTile start, RangeParameters rangeParameters) { switch (rangeParameters.m_RangeSearchType) { case RangeSearchType.RectangleByGridPosition: default: return(RangeAlgorithms.SearchByGridPosition(start, rangeParameters.m_MaxReach, rangeParameters.m_WalkableTilesOnly, rangeParameters.m_UnOccupiedTilesOnly, rangeParameters.m_SquareRange, rangeParameters.m_IgnoreTilesHeight, rangeParameters.m_IncludeStartingTile, rangeParameters.m_MinimunReach)); case RangeSearchType.RectangleByMovement: return(RangeAlgorithms.SearchByMovement(start, rangeParameters.m_MaxReach, rangeParameters.m_IgnoreTilesHeight, rangeParameters.m_IncludeStartingTile, rangeParameters.m_MinimunReach)); case RangeSearchType.HexagonByGridPosition: return(RangeAlgorithms.HexagonSearchByGridPosition(start, rangeParameters.m_MaxReach, rangeParameters.m_WalkableTilesOnly, rangeParameters.m_UnOccupiedTilesOnly, rangeParameters.m_IgnoreTilesHeight, rangeParameters.m_IncludeStartingTile, rangeParameters.m_MinimunReach)); case RangeSearchType.HexagonByMovement: return(RangeAlgorithms.HexagonSearchByMovement(start, rangeParameters.m_MaxReach, rangeParameters.m_IgnoreTilesHeight, rangeParameters.m_IncludeStartingTile, rangeParameters.m_MinimunReach)); } }