Example #1
0
    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();
    }
Example #2
0
    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());
    }