Esempio n. 1
0
    public void Initialize(SOChallengeList challenges)
    {
        int count = challenges.levels.Count;

        list = challenges;

        int starsTotal   = count * 3;
        int starsCurrent = 0;

        // Parse out and add list items
        for (int i = 0; i < count; ++i)
        {
            UIChallengeEntry toParent = Instantiate(entryTemplate);
            TextAsset        entry    = challenges.levels[i];

            ////////////////////////////
            // Temporary name acqurie //
            ////////////////////////////

            string displayName = entry.text.Split(DataGeneral.contentSeparator)[0].Trim().Split(DataGeneral.keyValueSeparator)[1].Trim();

            ////////////////////////////

            toParent.events = events;

            // Parent accordingly
            toParent.transform.position = Vector3.zero;
            toParent.gameObject.transform.localScale = Vector3.one;
            toParent.transform.SetParent(parent.transform, false);

            // Parse out existing data, if present, and initialize entries.
            DataChallenge?challenge = GetSavedDataChallenge(challenges, entry.name);
            int           stars     = 0;
            if (challenge.HasValue)
            {
                stars         = challenge.Value.stars;
                starsCurrent += stars;
            }

            toParent.gameObject.SetActive(true);
            toParent.Initialize(entry.name, stars, displayName);
            entries.Add(toParent);
        }

        // Display data about stars
        fraction.text   = starsCurrent.ToString() + " / " + starsTotal.ToString();
        percentage.text = Mathf.RoundToInt(((float)starsCurrent) / (float)starsTotal * 100).ToString() + "%";
    }
Esempio n. 2
0
    // Search the saved data to see if a name of a level is there, and if so, get data on it.
    private DataChallenge?GetSavedDataChallenge(SOChallengeList challenges, string toGet)
    {
        DataGeneral dataGeneral = data.GetDataGeneral();
        string      target      = toGet.Trim().ToLowerInvariant();

        for (int i = 0; i < dataGeneral.challenges.Count; ++i)
        {
            string lower = dataGeneral.challenges[i].name.Trim().ToLowerInvariant();

            if (lower.Equals(target))
            {
                return(dataGeneral.challenges[i]);
            }
        }

        events.OnNoSaveEntryFound?.Invoke(target);
        return(null);
    }