shaoxiadiablo/Assets/AGame/Scripts/UI/MainWindow/MainWindow.MissionWidget.cs
2025-05-18 01:04:31 +08:00

137 lines
4.3 KiB
C#

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-04-12
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "MainWindow" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
partial class MainWindow
{
/// <summary>
/// 主线任务
/// </summary>
class MainMissionWidget : KUIWidget
{
#region AutoGenerate
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
TextMeshProUGUI _tmpDescription;
[KUIFlag]
TextMeshProUGUI _tmpAward;
//[KUIFlag]
//Image _imgIcon;
[KUIFlag]
Button _btnQuickMission;
[KUIFlag]
Button _btnQuickBattle;
[KUIFlag]
GameObject _goEffect;
[KUIFlag]
GameObject __goProp;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Field
PropWidget _propWidget;
#endregion
#region Method
public override void Refresh()
{
if (this.data is Mission mission)
{
_btnQuickBattle.gameObject.SetActive(true);
_btnQuickMission.gameObject.SetActive(true);
if (mission.isCompleted)
_tmpDescription.text = mission.missionText2;
else
_tmpDescription.text = mission.missionText;
_tmpAward.text = mission.rewardText;
if (mission.rewards != null && mission.rewards.Length > 0)
{
var award = mission.rewards[0];
_propWidget.SetItem(award.id);
//IconProxy.Instance.SetSprite(_imgIcon, award.propItem.icon);
}
_goEffect.SetActive(mission.isRewarding);
}
else
{
_btnQuickMission.gameObject.SetActive(false);
_btnQuickBattle.gameObject.SetActive(true);
}
}
private void OnQuickMissionBtnClick()
{
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
if (this.data is Mission mission)
{
if (!mission.isCompleted)
{
MissionProxy.Instance.JumpMission(mission);
}
else if (!mission.isRewarded)
{
MissionProxy.Instance.GainReward(mission.id, (error, message) =>
{
if (error == 0)
Refresh();
});
}
}
}
private void OnQuickBattleBtnClick()
{
var level = ItemProxy.Instance.GetStaticItem<ItemLevel>(LevelProxy.Instance.currentUnlockedLevel);
if (level != null)
OpenWindow<LevelDetailBox>(level);
//if (LevelProxy.Instance.StartLevel() == 1)
//{
// PostNotification(GlobalDefine.EVENT_MAIN_WINDOW_PAGE, 3, "");
//}
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
#endregion
#region Unity
/// <summary>
///
/// </summary>
private void Awake()
{
SetViewData();
_propWidget = __goProp.AddComponent<PropWidget>();
_btnQuickMission.onClick.AddListener(this.OnQuickMissionBtnClick);
_btnQuickBattle.onClick.AddListener(this.OnQuickBattleBtnClick);
}
#endregion
}
}
}