133 lines
5.1 KiB
C#
133 lines
5.1 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class PlayerGradeBenefitInfoPopupPanel : MonoBehaviour
|
|
{
|
|
public Button btn_close;
|
|
public TMP_Text text_title;
|
|
public RewardItemNew reward;
|
|
public TMP_Text text_info;
|
|
|
|
public GameObject _level;
|
|
public TMP_Text _level_level;
|
|
public TMP_Text _level_num;
|
|
|
|
public GameObject current_level;
|
|
public TMP_Text current_level_level;
|
|
public TMP_Text current_level_num;
|
|
|
|
public GameObject next_level;
|
|
public TMP_Text next_level_level;
|
|
public TMP_Text next_level_num;
|
|
|
|
public GameObject max_level;
|
|
public TMP_Text max_level_level;
|
|
public TMP_Text max_level_num;
|
|
Tables table;
|
|
PlayerData playerData;
|
|
#if UNITY_EDITOR
|
|
private void Reset()
|
|
{
|
|
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
|
text_title = transform.Find("root/bg/text_title").GetComponent<TMP_Text>();
|
|
reward = transform.Find("root/bg/reward_1").GetComponent<RewardItemNew>();
|
|
text_info = transform.Find("root/bg/text_info").GetComponent<TMP_Text>();
|
|
|
|
_level = transform.Find("root/bg/level").gameObject;
|
|
_level_level = transform.Find("root/bg/level/text_level").GetComponent<TMP_Text>();
|
|
_level_num = transform.Find("root/bg/level/text_num").GetComponent<TMP_Text>();
|
|
|
|
current_level = transform.Find("root/bg/current_level").gameObject;
|
|
current_level_level = transform.Find("root/bg/current_level/text_level").GetComponent<TMP_Text>();
|
|
current_level_num = transform.Find("root/bg/current_level/text_num").GetComponent<TMP_Text>();
|
|
|
|
next_level = transform.Find("root/bg/next_level").gameObject;
|
|
next_level_level = transform.Find("root/bg/next_level/text_level").GetComponent<TMP_Text>();
|
|
next_level_num = transform.Find("root/bg/next_level/text_num").GetComponent<TMP_Text>();
|
|
|
|
max_level = transform.Find("root/bg/max_level").gameObject;
|
|
max_level_level = transform.Find("root/bg/max_level/text_level").GetComponent<TMP_Text>();
|
|
max_level_num = transform.Find("root/bg/max_level/text_num").GetComponent<TMP_Text>();
|
|
}
|
|
#endif
|
|
private void Start()
|
|
{
|
|
btn_close.onClick.AddListener(() =>
|
|
{
|
|
UIManager.Instance.DestroyUI(UITypes.PlayerGradeBenefitInfoPopupPanel);
|
|
});
|
|
}
|
|
public void Init(Item item, int level)
|
|
{
|
|
table = GContext.container.Resolve<Tables>();
|
|
playerData = GContext.container.Resolve<PlayerData>();
|
|
text_title.text = LocalizationMgr.GetText(item.Name_l10n_key);
|
|
text_info.text = LocalizationMgr.GetText(item.Desc_l10n_key);
|
|
//if (level < 0)
|
|
//{
|
|
// level = playerData.benefitsLevel[item.SubType - 1];
|
|
//}
|
|
reward.SetData(item, level);
|
|
var benefits = table.TBBenefits.GetOrDefault(item.SubType);
|
|
CurBenefitPanelEvent curBenefitPanelEvent = new CurBenefitPanelEvent();
|
|
GContext.Publish(curBenefitPanelEvent);
|
|
if (curBenefitPanelEvent.panelName != "PlayerGradeBenefitPopupPanel")
|
|
{
|
|
_level.SetActive(true);
|
|
current_level.SetActive(false);
|
|
next_level.SetActive(false);
|
|
max_level.SetActive(false);
|
|
if (item.SubType == 3 || item.SubType == 4 || item.SubType == 7)
|
|
{
|
|
_level_num.text = benefits.BenefitsValue[level].ToString("F0");
|
|
}
|
|
else
|
|
{
|
|
_level_num.text = benefits.BenefitsValue[level].ToPercentageString();
|
|
}
|
|
_level_level.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePanel_8", level);
|
|
return;
|
|
}
|
|
_level.SetActive(false);
|
|
bool isMax = level >= benefits.BenefitsValue.Count - 1;
|
|
current_level.SetActive(!isMax);
|
|
next_level.SetActive(!isMax);
|
|
max_level.SetActive(isMax);
|
|
if (isMax)
|
|
{
|
|
if (item.SubType == 3 || item.SubType == 4 || item.SubType == 7)
|
|
{
|
|
max_level_num.text = benefits.BenefitsValue[level].ToString("F0");
|
|
}
|
|
else
|
|
{
|
|
max_level_num.text = benefits.BenefitsValue[level].ToPercentageString();
|
|
}
|
|
max_level_level.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePanel_4", level);
|
|
}
|
|
else
|
|
{
|
|
if (item.SubType == 3 || item.SubType == 4 || item.SubType == 7)
|
|
{
|
|
current_level_num.text = benefits.BenefitsValue[level].ToString("F0");
|
|
next_level_num.text = benefits.BenefitsValue[level + 1].ToString("F0");
|
|
}
|
|
else
|
|
{
|
|
current_level_num.text = benefits.BenefitsValue[level].ToPercentageString();
|
|
next_level_num.text = benefits.BenefitsValue[level + 1].ToPercentageString();
|
|
}
|
|
current_level_level.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePanel_4", level);
|
|
next_level_level.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePanel_5", level + 1);
|
|
}
|
|
}
|
|
}
|
|
public class CurBenefitPanelEvent
|
|
{
|
|
public string panelName;
|
|
}
|