// Token: 0x060005F9 RID: 1529 RVA: 0x000189B4 File Offset: 0x00016BB4
        private void GeneratePlayerSpawnPointsServer()
        {
            if (this.nullWards.Length == 0)
            {
                return;
            }
            Vector3         position        = this.nullWards[0].transform.position;
            NodeGraph       groundNodes     = SceneInfo.instance.groundNodes;
            NodeGraphSpider nodeGraphSpider = new NodeGraphSpider(SceneInfo.instance.groundNodes, HullMask.Human);

            nodeGraphSpider.AddNodeForNextStep(groundNodes.FindClosestNode(position, HullClassification.Human));
            for (int i = 0; i < 4; i++)
            {
                nodeGraphSpider.PerformStep();
                if (nodeGraphSpider.collectedSteps.Count > 16)
                {
                    break;
                }
            }
            for (int j = 0; j < nodeGraphSpider.collectedSteps.Count; j++)
            {
                NodeGraphSpider.StepInfo stepInfo = nodeGraphSpider.collectedSteps[j];
                SpawnPoint.AddSpawnPoint(groundNodes, stepInfo.node, this.rng);
            }
        }
Exemplo n.º 2
0
        // Token: 0x06000DBA RID: 3514 RVA: 0x0004367C File Offset: 0x0004187C
        private static bool IsAcceptableAmbushSpiderStep(NodeGraph nodeGraph, NodeGraph.NodeIndex startNode, NodeGraphSpider.StepInfo stepInfo)
        {
            int num = 0;

            while (stepInfo.previousStep != null)
            {
                if (nodeGraph.TestNodeLineOfSight(startNode, stepInfo.node))
                {
                    return(false);
                }
                stepInfo = stepInfo.previousStep;
                num++;
                if (num > 2)
                {
                    return(true);
                }
            }
            return(false);
        }