Esempio n. 1
0
 public void CalculateAttackRange(RangeParameters attackParam, bool andHighlight = false)
 {
     m_CurrentAttackRange = RangeAlgorithms.SearchByParameters(m_GridObject.m_CurrentGridTile, attackParam);
     if (andHighlight)
     {
         HighlightAttackRange(true);
     }
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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));
        }
    }