| | |
| | | }
|
| | |
|
| | | bool m_IsRuneLvUp = false;
|
| | | int m_SpecialHoleUnlocking = -1;
|
| | | Coroutine m_CacheCoroutine;
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | |
| | | m_ContainerSpecial.gameObject.SetActive(false);
|
| | | OpenOrCloseSelect(false);
|
| | | model.sltRuneHole = -1;
|
| | | m_SpecialHoleUnlocking = -1;
|
| | | foreach (var _hole in runeHoleDatas)
|
| | | {
|
| | | _hole.SetSelect(false);
|
| | |
| | | model.OnRefreshRuneHole -= OnRuneHoleRefresh;
|
| | | model.OnRefreshRuneExp -= OnUpdateRuneHoleInfo;
|
| | | model.openNewHoleEvent -= OpenNewHoleEvent;
|
| | |
|
| | | m_SpecialHoleUnlocking = -1;
|
| | |
|
| | | if (m_CacheCoroutine != null)
|
| | | {
|
| | | StopCoroutine(m_CacheCoroutine);
|
| | | m_CacheCoroutine = null;
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | |
| | | {
|
| | | if (model.IsSpeicalHole(hole))
|
| | | {
|
| | |
|
| | | m_SpecialHoleUnlocking = hole;
|
| | | EffectMgr.Instance.PlayUIEffect(3068, 2500, runeHoleDatas[hole].Container.parent, false);
|
| | | m_CacheCoroutine = StartCoroutine(Co_RefreshHole());
|
| | | }
|
| | | }
|
| | |
|
| | | IEnumerator Co_RefreshHole()
|
| | | {
|
| | | yield return WaitingForSecondConst.WaitMS800;
|
| | | m_SpecialHoleUnlocking = -1;
|
| | | OnRuneHoleRefresh();
|
| | | }
|
| | |
|
| | | private void UnlockSpecialHole()
|
| | |
| | |
|
| | | void OnRuneHoleClick(int _hole)
|
| | | {
|
| | | if (model.IsRuneHoleOpen(_hole))
|
| | | if (model.IsRuneHoleOpen(_hole) && m_SpecialHoleUnlocking != _hole)
|
| | | {
|
| | | for (int i = 0; i < runeHoleDatas.Count; i++)
|
| | | {
|
| | |
| | | model.runeLevelUpRedpoint.state = RedPointState.None;
|
| | | model.runeReplaceRedpoint.state = RedPointState.None;
|
| | | if (model.sltRuneHole == -1 || !model.IsRuneHoleOpen(model.sltRuneHole))
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (model.sltRuneHole == m_SpecialHoleUnlocking)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
| | | for (int i = 0; i < runeHoleDatas.Count; i++)
|
| | | {
|
| | | RuneData data = model.GetHoleRune(i);
|
| | | runeHoleDatas[i].SetRuneHole(!model.IsRuneHoleOpen(i));
|
| | | runeHoleDatas[i].SetRuneHole(!model.IsRuneHoleOpen(i) || m_SpecialHoleUnlocking == i);
|
| | | if (data == null || !model.IsRuneHoleOpen(i))
|
| | | {
|
| | | runeHoleDatas[i].Display(0, 0);
|