private void SetPictureToWatch() { picturesToWatch_list = new List <PictureInfo>(); int lastPictureIndexAdded = 0; foreach (PictureInfo picture in pictures) { int chanceSelectDestination = 20; bool selectPicture = Random.Range(0, 100) < chanceSelectDestination; if (selectPicture || IsMaxJump(picture.index, lastPictureIndexAdded)) { Debug.Log("Aggiungo " + picture.index); lastPictureIndexAdded = picture.index; if (!ImportantPictures.Contains(picture)) { picturesToWatch_list.Add(picture); } } } utilitySort.transform = transform; picturesToWatch_list.Sort(utilitySort.SortByIndex); picturesToWatch = picturesToWatch_list.GetEnumerator(); }
public override GameObject GetNextDestination() { if ((ImportantPictures.Count <= 0 && groupData.LeaderIsAlive) || FatigueLevel >= FatigueManager.Level.MOLTO_STANCO) { return(GetPlaneOfExit()); } if (picturesToWatch.MoveNext()) { if (VisitedPictures.Contains(picturesToWatch.Current)) { return(GetNextDestination()); } GameObject pictureGrid = picturesToWatch.Current.GetComponentInChildren <GridSystem>().gameObject; return(pictureGrid); } if (ImportantPictures.Count > 0) { PictureInfo importantPicture = ImportantPictures[ImportantPictures.Count - 1]; ImportantPictures.Remove(importantPicture); return(importantPicture.GetComponentInChildren <GridSystem>().gameObject); } return(GetPlaneOfExit()); }