// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-04-12 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; namespace G.UI { partial class MainWindow { /// /// 主线任务 /// 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(LevelProxy.Instance.currentUnlockedLevel); if (level != null) OpenWindow(level); //if (LevelProxy.Instance.StartLevel() == 1) //{ // PostNotification(GlobalDefine.EVENT_MAIN_WINDOW_PAGE, 3, ""); //} SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } #endregion #region Unity /// /// /// private void Awake() { SetViewData(); _propWidget = __goProp.AddComponent(); _btnQuickMission.onClick.AddListener(this.OnQuickMissionBtnClick); _btnQuickBattle.onClick.AddListener(this.OnQuickBattleBtnClick); } #endregion } } }