| | |
| | | [SerializeField] RealmLevelUpBehaviour m_RealmLevelUp;
|
| | | [SerializeField] RealmAnimationBehaviour m_RealmAnimation;
|
| | | [SerializeField] RealmStageBehaviour[] m_RealmStages;
|
| | | [SerializeField] Transform m_ContainerUnlockEquip;
|
| | | [SerializeField] Image m_EquipName;
|
| | | [SerializeField] Transform m_ContainerBoss;
|
| | | [SerializeField] RealmHeartMagicBehaviour m_RealmHeartMagic;
|
| | | [SerializeField] Button m_RealmRestraint;
|
| | |
| | |
|
| | | [SerializeField] PositionTween m_RealmBriefTween;
|
| | | [SerializeField] PositionTween m_RealmLevelUpTween;
|
| | |
|
| | | int cacheRealmLevel = 0;
|
| | |
|
| | | const int REALM_STAGE_COUNT = 5;
|
| | |
|
| | | RealmState m_RealmState = RealmState.LevelUp;
|
| | | RealmState realmState
|
| | |
| | | PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
| | | model.selectRealmRefresh += SelectRealmRefresh;
|
| | | m_RealmAnimation.onRotateComplete += OnRotateComplete;
|
| | |
|
| | | cacheRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | }
|
| | |
|
| | | protected override void OnActived()
|
| | |
| | | HideRealmBoss();
|
| | | DisplayRealmUp();
|
| | |
|
| | | |
| | | m_RealmBriefTween.Play();
|
| | | m_RealmLevelUpTween.Play();
|
| | |
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var requireLevelUp = realmLevel < model.realmMaxLevel && model.selectRealm > realmLevel;
|
| | | if (requireLevelUp)
|
| | | {
|
| | | m_RealmLevelUpTween.Play();
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | DisplayRealmLevelUp();
|
| | | DisplayRealmStages();
|
| | | DisplayRealmBrief();
|
| | | DisplayUnlockEquip();
|
| | | }
|
| | |
|
| | | void HideRealmUp()
|
| | |
| | |
|
| | | void DisplayRealmStages()
|
| | | {
|
| | | var stage = model.GetRealmStage(model.selectRealm);
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var stage = model.GetRealmStage(realmLevel);
|
| | | m_RealmAnimation.SetDefault();
|
| | | List<int> realms = null;
|
| | | if (model.TryGetRealmStages(stage, out realms))
|
| | |
| | | for (int i = 0; i < m_RealmStages.Length; i++)
|
| | | {
|
| | | var index = m_RealmStages[i].animIndex;
|
| | | if (index < realms.Count)
|
| | | m_RealmStages[i].gameObject.SetActive(index < REALM_STAGE_COUNT);
|
| | | if (realms[0] + index <= model.realmMaxLevel)
|
| | | {
|
| | | m_RealmStages[i].gameObject.SetActive(true);
|
| | | m_RealmStages[i].Display(realms[index]);
|
| | | }
|
| | | else
|
| | | {
|
| | | m_RealmStages[i].gameObject.SetActive(false);
|
| | | if (realms[realms.Count - 1] < model.realmMaxLevel)
|
| | | {
|
| | | m_RealmStages[i].Display(realms[0] + index);
|
| | | }
|
| | | m_RealmStages[i].Display(realms[0] + index);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | m_RealmBrief.Display(model.selectRealm);
|
| | | }
|
| | |
|
| | | void DisplayUnlockEquip()
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | m_ContainerUnlockEquip.gameObject.SetActive(false);
|
| | | var stage = model.GetRealmStage(realmLevel);
|
| | | List<int> realms = null;
|
| | | if (model.TryGetRealmStages(stage, out realms))
|
| | | {
|
| | | for (int i = 0; i < REALM_STAGE_COUNT; i++)
|
| | | {
|
| | | var level = realms[0] + i;
|
| | | var equipSet = 0;
|
| | | if (realmLevel < level && model.selectRealm != level
|
| | | && model.IsUnlockEquipRealm(level, out equipSet))
|
| | | {
|
| | | var index = realms.IndexOf(level);
|
| | | m_ContainerUnlockEquip.gameObject.SetActive(true);
|
| | | foreach (var realmStage in m_RealmStages)
|
| | | {
|
| | | if (realmStage.animIndex == index)
|
| | | {
|
| | | var worldpos = realmStage.transform.TransformPoint(Vector2.zero + Vector2.down * 60);
|
| | | var localpos = m_ContainerRealmUp.InverseTransformPoint(worldpos);
|
| | | m_ContainerUnlockEquip.localPosition = localpos;
|
| | | break;
|
| | | }
|
| | | }
|
| | | var config = RealmConfig.Get(level);
|
| | | m_EquipName.SetSprite(config.equipNameIcon);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
| | | {
|
| | | if (dataType == PlayerDataType.RealmLevel)
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var stage = model.GetRealmStage(realmLevel + 1);
|
| | | var currentStage = model.GetRealmStage(model.selectRealm);
|
| | | if (stage != currentStage)
|
| | | {
|
| | | m_RealmAnimation.StartRotate();
|
| | | }
|
| | | var stage = model.GetRealmStage(realmLevel);
|
| | | var currentStage = model.GetRealmStage(cacheRealmLevel);
|
| | | model.selectRealm = realmLevel + 1;
|
| | | if (cacheRealmLevel > realmLevel || stage > currentStage + 1)
|
| | | {
|
| | | model.selectRealm = realmLevel + 1;
|
| | | DisplayRealmStages();
|
| | | }
|
| | | else
|
| | | {
|
| | | if (stage != currentStage)
|
| | | {
|
| | | m_RealmAnimation.StartRotate();
|
| | | m_ContainerUnlockEquip.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | cacheRealmLevel = realmLevel;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | private void OnRotateComplete()
|
| | | {
|
| | | var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
| | | var stage = model.GetRealmStage(realmLevel + 1);
|
| | | var stage = model.GetRealmStage(realmLevel);
|
| | | List<int> realms = null;
|
| | | if (model.TryGetRealmStages(stage, out realms))
|
| | | {
|
| | | for (int i = 0; i < m_RealmStages.Length; i++)
|
| | | {
|
| | | var index = m_RealmStages[i].animIndex;
|
| | | if (index > 4)
|
| | | if (index >= REALM_STAGE_COUNT && realms[0] + index <= model.realmMaxLevel)
|
| | | {
|
| | | m_RealmStages[i].Display(realms[0] + index);
|
| | | }
|
| | | }
|
| | | }
|
| | | DisplayUnlockEquip();
|
| | | }
|
| | |
|
| | | private void SelectRealmRefresh()
|
| | | {
|
| | | DisplayRealmBrief();
|
| | | DisplayRealmLevelUp();
|
| | | DisplayUnlockEquip();
|
| | | }
|
| | |
|
| | | private void OnBack()
|