using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
/// <summary>
|
/// 游戏主界面
|
/// </summary>
|
public class HomeWin : UIBase
|
{
|
//头像区
|
[SerializeField] AvatarCell avatarCell;
|
[SerializeField] Text playerNameText;
|
[SerializeField] Text powerText;
|
[SerializeField] OfficialTitleCell officialRankText;
|
[SerializeField] Text goldText;
|
[SerializeField] Text sparText;
|
|
//经验区
|
[SerializeField] Text playerLevelText;
|
[SerializeField] SmoothSlider expSlider;
|
|
//任务区
|
[SerializeField] Button taskButton; //引导或者领取任务奖励
|
[SerializeField] RichText taskText;
|
[SerializeField] Text taskNumText;
|
[SerializeField] Image awardIcon;
|
[SerializeField] Text awardCnt;
|
[SerializeField] UIEffect taskEffect;
|
|
|
//关卡
|
[SerializeField] Button bossBtn;
|
|
/// <summary>
|
/// 初始化组件
|
/// </summary>
|
protected override void InitComponent()
|
{
|
avatarCell.button.AddListener(() => { });
|
taskButton.AddListener(OnClickTaskButton);
|
bossBtn.AddListener(() =>
|
{
|
UIManager.Instance.OpenWindow<MainBossEnterWin>();
|
});
|
}
|
|
|
|
|
public override void Refresh()
|
{
|
UpdatePlayerInfo();
|
UpdateCurrency();
|
UpdateTask();
|
}
|
|
protected override void OnPreOpen()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
|
TaskManager.Instance.OnTaskUpdate += UpdateTask;
|
Refresh();
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
|
TaskManager.Instance.OnTaskUpdate -= UpdateTask;
|
}
|
|
void PlayerDataRefresh(PlayerDataType type)
|
{
|
switch (type)
|
{
|
case PlayerDataType.FightPower:
|
powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint);
|
break;
|
case PlayerDataType.RealmLevel:
|
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
|
break;
|
case PlayerDataType.TotalExp:
|
case PlayerDataType.ExpPoint:
|
ShowExp();
|
break;
|
case PlayerDataType.Gold:
|
goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
|
break;
|
case PlayerDataType.default33:
|
sparText.text = UIHelper.GetMoneyCnt(42).ToString();
|
break;
|
case PlayerDataType.LV:
|
playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
|
break;
|
case PlayerDataType.Face:
|
case PlayerDataType.FacePic:
|
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
|
PlayerDatas.Instance.baseData.face,
|
PlayerDatas.Instance.baseData.facePic));
|
break;
|
}
|
|
|
}
|
|
/// <summary>
|
/// 更新玩家信息
|
/// </summary>
|
private void UpdatePlayerInfo()
|
{
|
// 从玩家数据中获取信息并更新UI
|
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID,
|
PlayerDatas.Instance.baseData.face,
|
PlayerDatas.Instance.baseData.facePic));
|
|
playerNameText.text = PlayerDatas.Instance.baseData.PlayerName;
|
playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
|
powerText.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPoint);
|
|
officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
|
|
ShowExp();
|
|
}
|
|
void ShowExp()
|
{
|
var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
|
expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP;
|
expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP;
|
}
|
|
/// <summary>
|
/// 更新货币信息
|
/// </summary>
|
private void UpdateCurrency()
|
{
|
goldText.text = UIHelper.GetMoneyCntEx(1).ToString();
|
sparText.text = UIHelper.ReplaceLargeNumEx(UIHelper.GetMoneyCnt(42));
|
}
|
|
void UpdateTask()
|
{
|
var task = TaskManager.Instance.mainTask;
|
if (task.TaskID == 0)
|
{
|
taskButton.SetActive(false);
|
}
|
else
|
{
|
taskButton.SetActive(true);
|
var taskConfig = TaskConfig.Get(task.TaskID);
|
taskText.text = taskConfig.TaskDescribe;
|
taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
|
taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
|
taskEffect.SetActive(TaskManager.Instance.GetMainTaskState() == 2);
|
awardIcon.SetSprite(ItemConfig.Get(taskConfig.AwardItemList[0][0]).IconKey);
|
awardCnt.text = taskConfig.AwardItemList[0][1].ToString();
|
}
|
}
|
|
void OnClickTaskButton()
|
{
|
if (TaskManager.Instance.GetMainTaskState() == 2)
|
{
|
//领取任务奖励
|
CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
|
getReward.RewardType = 66;
|
getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
|
GameNetSystem.Instance.SendInfo(getReward);
|
}
|
else
|
{
|
//根据任务类型引导
|
}
|
}
|
}
|