public void RegisterCoveredExit(GuardStateBrainPBT guard) { if (_coveringGuards.IndexOf(guard) != -1) { _coveredExits++; CheckIfReady(); } }
private void AddCoveringGuard(GuardStateBrainPBT guard) { GenericUtilities.SafelyAddItemToList(guard, _coveringGuards); // old implementation reliant on searchmodebehaviour // guard.GetComponent<SearchModeBehaviour>().InitSearch( // this, _searchTrack.Exits[_assignedExitIndex] // ); _assignedExitIndex++; }
private void OnGuardReachRoom(GuardStateBrainPBT guard, Room room, RoomConnection roomConnection) { if (_allGuards.Contains(guard)) { guard.SetRoom(null); if (_nodesToSearch.Count != 0) { guard.SearchPoint = GetNextSearchPoint(); } } }
public void AddSearchingGuard(GuardStateBrainPBT guard) { if (_searchingInProgress) { guard.SearchPoint = GetNextSearchPoint(); } GenericUtilities.SafelyAddItemToList(guard, _searchingGuards); // if (_searchTrack.Exits.Count > 0) // { // guard.GetComponent<SearchModeBehaviour>().InitSearch( // this, _searchTrack.Exits[0] // ); // } }
private void OnNodeSearched(GuardStateBrainPBT guard, SearchTrackNode node) { _nodesToSearch.Remove(node); // use the list stored in the actual search track since we pop things from our local copy if (!_searchTrack.GetSearchTrackNodes().Contains(node)) { return; } if (_nodesToSearch.Count != 0) { // guard.SearchPoint = _nodesToSearch.Pop(); guard.SearchPoint = GetNextSearchPoint(); } else { guard.SearchPoint = null; RegisterComplete(); } }
public void AddGuard(GuardStateBrainPBT guard, bool checkIfReady = true) { if ( _coveringGuards.Count < _searchTrack.Exits.Count && _searchTrack.RequriesCover ) { AddCoveringGuard(guard); } else { AddSearchingGuard(guard); } _allGuards.Add(guard); if (checkIfReady) { CheckIfReady(); } }