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); }
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); }