public SearchTrackManager(
            SearchTrack searchTrack,
            List <GuardStateBrainPBT> guards,
            NodeSearchedSignal nodeSearchedSignal,
            GuardReachedRoomSignal guardReachedRoomSignal,
            SearchTrackSearchedSignal searchTrackSearchedSignal,
            List <SearchTrackNode> likelyNodes
            )
        {
            _nodesToSearchIndex = 0;
            _coveringGuards     = new List <GuardStateBrainPBT>();
            _searchingGuards    = new List <GuardStateBrainPBT>();
            _allGuards          = new List <GuardStateBrainPBT>();

            _nodeSearchedSignal     = nodeSearchedSignal;
            _guardReachedRoomSignal = guardReachedRoomSignal;

            _searchTrack = searchTrack;

            _assignedExitIndex = 0;
            _coveredExits      = 0;

            SetUpDelegates();
            // CheckIfReady();


            _searchTrackSearchedSignal = searchTrackSearchedSignal;

            _guardsPerNode = new Dictionary <SearchTrackNode, GuardStateBrainPBT>();

            if (likelyNodes != null)
            {
                _nodesToSearch = likelyNodes;
            }
            else
            {
                _nodesToSearch = searchTrack.GetSearchTrackNodes();
            }

            if (searchTrack.GetSearchTrackNodes().Count == 0)
            {
                // _searchTrackSearchedSignal.Fire(searchTrack);
                RegisterComplete();
            }
            else
            {
                Init();
                AddGuards(guards);
            }
        }
예제 #2
0
    public static List <SearchTrackNode> GetAllSearchTrackNodes()
    {
        if (allSearchTrackNodesInstantiated)
        {
            return(allSearchTrackNodes);
        }

        allSearchTrackNodes = new List <SearchTrackNode> ();

        List <SearchTrack> searchTracks = GetSearchTracks();

        for (int i = 0; i < searchTracks.Count; i++)
        {
            SearchTrack            searchTrack      = searchTracks [i];
            List <SearchTrackNode> searchTrackNodes = searchTrack.GetSearchTrackNodes();
            allSearchTrackNodes.AddRange(searchTrackNodes);
        }

        return(allSearchTrackNodes);
    }