Beispiel #1
0
        private System.Collections.IEnumerator CorProcess(BaseSearchableObject searchableObject)
        {
            yield return(new WaitForSeconds(2.5f));

            if (searchableObject && searchableObject.isActive && !searchableObject.isCollected)
            {
                var searchManager = FindObjectOfType <SearchManager>();
                searchManager?.CollectObject(searchableObject);
            }
            yield return(new WaitForSeconds(0.5f));

            Destroy(gameObject);
        }
Beispiel #2
0
        public void CollectObject(BaseSearchableObject searchableObject)
        {
            var activeData = activeObjects.FirstOrDefault(obj => obj.id == searchableObject.id);

            if (activeData != null)
            {
                activeObjects.Remove(activeData);
                foundedObjects.Add(activeData);
                RavenhillEvents.OnSearchProgressChanged(foundedSearchObjectCount, searchableObjectCount);
                searchableObject.Collect();

                if (isWin)
                {
                    Debug.Log("EXIT");
                    EndSearch(status: SearchStatus.success, showExitRoomView: true);
                }
            }
        }
Beispiel #3
0
 public void SetTarget(BaseSearchableObject searchableObject)
 {
     StartCoroutine(CorProcess(searchableObject));
 }
Beispiel #4
0
 public static void OnSearchObjectActivated(SearchObjectData data, BaseSearchableObject searchableObject)
 {
     SearchObjectActivated?.Invoke(data, searchableObject);
 }