예제 #1
0
    public float Prepare(LevelInfo aLevelInfo, int index, PackWindow.AnimationState state)
    {
        float result = 0f;

        normalizedScrollLocation = 1f;
        levelInfo = aLevelInfo;
        Pack pack = ELSingleton <LevelsSettings> .Instance.levelSet.GetPack(aLevelInfo);

        packName.text  = pack.name;
        packIndex.text = string.Concat(index + 1);
        LevelInfo info = ELSingleton <LevelsSettings> .Instance.levelSet.GetFirstNotCompleateLevel();

        if (state == PackWindow.AnimationState.ANIMATION_STATE_PACK_WAIT)
        {
            info = ELSingleton <LevelsSettings> .Instance.levelSet.GetPreviousPackCompleteInfo(info);
        }
        UpdateState(info);
        if (IsCurrent)
        {
            result = SetupLevels(state);
        }
        packAnimator.SetBool("Locked", !IsUnlocked);
        packAnimator.SetBool("Open", IsCurrent);
        packAnimator.SetTrigger("Init");
        UpdateLook();
        if (state == PackWindow.AnimationState.ANIMATION_STATE_PACK_WAIT)
        {
            UpdateState(ELSingleton <LevelsSettings> .Instance.levelSet.GetFirstNotCompleateLevel());
        }
        return(result);
    }
예제 #2
0
    public float SetupLevels(PackWindow.AnimationState state = PackWindow.AnimationState.ANIMATION_STATE_NONE)
    {
        foreach (Transform item in content.transform)
        {
            item.gameObject.SetActive(value: false);
            UnityEngine.Object.Destroy(item.gameObject);
        }
        Pack pack = ELSingleton <LevelsSettings> .Instance.levelSet.GetPack(levelInfo);

        List <PackLevelItem> list = new List <PackLevelItem>();
        float num  = 0f;
        float num2 = 0f;
        float num3 = 0f;
        int   num4 = -1;

        for (int i = 0; i < pack.levels.Count; i++)
        {
            LevelInfo li = levelInfo;
            li.currentLevel = i;
            PackLevelItem packLevelItem = UnityEngine.Object.Instantiate(packLevelItemPrefab, content.transform);
            packLevelItem.Prepare(li, num3, i);
            if (packLevelItem.IsCompleteAnimation)
            {
                num4 = i;
            }
            RectTransform component = packLevelItem.GetComponent <RectTransform>();
            packLevelItem.transform.localPosition = new Vector2(num - component.sizeDelta.x * 2f, 0f - num2 - component.sizeDelta.y / 2f + 20f);
            num += component.sizeDelta.x;
            if (i % 5 == 4)
            {
                num   = 0f;
                num2 += component.sizeDelta.y;
            }
            num3 += 0.02f;
            if (packLevelItem.IsUnlocked || ELSingleton <ApplicationSettings> .Instance.DeploymentSettings.isCheatsEnabled)
            {
                packLevelItem.OnClick.AddListener(delegate
                {
                    PlayButton(li);
                });
            }
            list.Add(packLevelItem);
        }
        int   num5 = 0;
        float num6 = 0f;

        foreach (PackLevelItem item2 in list)
        {
            if (!item2.IsCompleteAnimation)
            {
                item2.StartAnimation(num6, old: false);
            }
            num6 += 0.02f;
            num5++;
        }
        num5 = 0;
        num6 = 0.5f;
        foreach (PackLevelItem item3 in list)
        {
            bool  flag = num4 - num5 >= 5;
            float num7 = flag ? 0.1f : 0.5f;
            if (flag)
            {
                item3.particle = null;
            }
            if (item3.IsCompleteAnimation)
            {
                item3.StartAnimation(num6, flag);
                num6 += num7;
                item3.transform.SetAsLastSibling();
            }
            if (item3.IsCurrent)
            {
                item3.StartPlayTransform(num6);
            }
            num5++;
        }
        pack.progressIndex = Mathf.Max(num4 + 1, pack.progressIndex);
        ELSingleton <LevelsSettings> .Instance.Save();

        return(num6);
    }