コード例 #1
0
        // Token: 0x06003A37 RID: 14903 RVA: 0x0010A0BC File Offset: 0x001082BC
        private void AddSuccessor(Pathfinder pathfinder, int dx, int dy, GridPosition parentPos)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_AddSuccessorPathfinderInt32Int32GridPosition_hotfix != null)
            {
                this.m_AddSuccessorPathfinderInt32Int32GridPosition_hotfix.call(new object[]
                {
                    this,
                    pathfinder,
                    dx,
                    dy,
                    parentPos
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            GridPosition gridPosition = new GridPosition(this.m_position.x + dx, this.m_position.y + dy);

            if (gridPosition == parentPos)
            {
                return;
            }
            if (!pathfinder.Map.IsValidPosition(gridPosition))
            {
                return;
            }
            if (pathfinder.Map.GetMovePointCost(gridPosition, pathfinder.MoveType) <= 0)
            {
                return;
            }
            if (!pathfinder.HasGoalNode() || gridPosition != pathfinder.GoalNode.m_position)
            {
                if (pathfinder.InRegion != 0 && pathfinder.Map.GetRegion(gridPosition) != pathfinder.InRegion)
                {
                    return;
                }
                if (pathfinder.IgnoreTeamNumber >= 0)
                {
                    BattleActor actor = pathfinder.Map.GetActor(gridPosition);
                    if (actor != null && actor.TeamNumber != pathfinder.IgnoreTeamNumber)
                    {
                        return;
                    }
                }
            }
            PathNode pathNode = pathfinder.AllocatePathNode();

            pathNode.m_position = gridPosition;
            pathfinder.AddSuccessor(pathNode);
        }