// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-01-03
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
///
/// 境界任务
///
public class MissionWidget3 : KUIWidget
{
#region Field
[KUIFlag]
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
TextMeshProUGUI _tmpDescription;
[KUIFlag]
TextMeshProUGUI _tmpAward;
[KUIFlag]
Image _imgIcon;
[KUIFlag]
Button _btnStatus;
[KUIFlag]
Image _imgStatus;
[KUIFlag]
TextMeshProUGUI _tmpStatus;
[KUIFlag]
GameObject _goEffect;
[KUIFlag]
GameObject _imgStatus1;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
public override void Refresh()
{
if (this.data is Mission mission)
{
_tmpDescription.text = mission.missionText;
_tmpAward.text = mission.rewardText2;
var award = mission.rewards[0];
var item = ItemProxy.Instance.GetStaticItem(award.id);
IconProxy.Instance.SetSprite(_imgIcon, item.icon);
if (mission.isRewarded)
{
_goEffect.SetActive(false);
_btnStatus.gameObject.SetActive(false);
_imgStatus1.SetActive(true);
}
else if (mission.isCompleted)
{
_imgStatus1.SetActive(false);
_goEffect.SetActive(true);
_btnStatus.gameObject.SetActive(true);
_tmpStatus.text = "完成";
}
else
{
_imgStatus1.SetActive(false);
_goEffect.SetActive(false);
_btnStatus.gameObject.SetActive(true);
_tmpStatus.text = "前往";
}
}
}
private void OnReceiveBtnClick()
{
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
if (this.data is Mission mission)
{
if (!mission.isCompleted)
{
KUIWindow.CloseWindow();
MissionProxy.Instance.JumpMission(mission);
}
else if (!mission.isRewarded)
{
MissionProxy.Instance.GainReward(mission.id, (error, message) =>
{
if (error == 0)
Refresh();
});
}
}
}
#endregion
#region Unity
///
///
///
private void Awake()
{
SetViewData();
_btnStatus.onClick.AddListener(this.OnReceiveBtnClick);
}
#endregion
}
}