using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class RealmLevelUpBehaviour : MonoBehaviour
|
{
|
[SerializeField] Text m_RealmLevel;
|
[SerializeField] Button m_LevelUp;
|
[SerializeField] IntensifySmoothSlider ExpSlider;
|
[SerializeField] Text m_ExpText;
|
|
RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
|
private void Awake()
|
{
|
m_LevelUp.AddListener(OnLevelUp);
|
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
}
|
|
public void Display()
|
{
|
//RealmLV1 如 55级 筑基后期 · 12阶
|
//L1091 {0}阶
|
//LoadIconLV {0}级
|
var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
|
var beforeConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel - 1);
|
int newRankLV = PlayerDatas.Instance.baseData.LV - beforeConfig.LVMax;
|
m_RealmLevel.text = Language.Get("RealmLV1", Language.Get("LoadIconLV", PlayerDatas.Instance.baseData.LV),
|
config.Name, Language.Get("L1091", UIHelper.ChineseNumber(newRankLV)));
|
|
ulong totalExp = (ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * Constants.ExpPointValue;
|
ulong maxExp = (ulong)PlayerLVConfig.GetExpByPlayerLv(PlayerDatas.Instance.baseData.LV);
|
ExpSlider.value = (float)totalExp / maxExp;
|
m_ExpText.text = StringUtility.Contact(UIHelper.ReplaceLargeNumEx(totalExp), "/", UIHelper.ReplaceLargeNumEx(maxExp));
|
m_LevelUp.SetActive(PlayerDatas.Instance.baseData.realmLevel < model.realmMaxLevel);
|
}
|
|
|
private void OnLevelUp()
|
{
|
int error;
|
bool hasBoss;
|
bool hasAward;
|
int id;
|
if (model.TryLevelUp(out error, out hasBoss, out hasAward, out id))
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("RealmBreakUP"), (bool isOk) => {
|
if (isOk)
|
{
|
CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp();
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
});
|
}
|
else
|
{
|
//根据任务引导
|
if (error < 100)
|
{
|
model.RealMissionGuide(error, id);
|
}
|
else
|
{
|
DisplayErrorTip(error);
|
}
|
}
|
|
}
|
|
void DisplayErrorTip(int error)
|
{
|
switch (error)
|
{
|
case 101:
|
SysNotifyMgr.Instance.ShowTip("RealmMissionAward");
|
model.RequestAllAwards();
|
break;
|
case 102:
|
SysNotifyMgr.Instance.ShowTip("RealmLevelUpError_1");
|
model.RealMissionGuide(1);
|
break;
|
case 103:
|
SysNotifyMgr.Instance.ShowTip("RealmLevelUpError_2");
|
model.RealMissionGuide(1);
|
break;
|
|
}
|
}
|
|
private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType == PlayerDataType.RealmLevel ||
|
dataType == PlayerDataType.LV ||
|
dataType == PlayerDataType.TotalExp)
|
{
|
Display();
|
}
|
}
|
}
|
|
|
|
}
|
|