using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 内政 - 基本用于淘金 /// public class AffairBaseWin : UIBase { [SerializeField] Button bagBtn; //淘金相关 [SerializeField] GameObject fullGoldRush; [SerializeField] Image goldRushIcon; [SerializeField] Text goldRushCountText; [SerializeField] Button goldRushItemBtn; [SerializeField] Image goldRushItemProcess; [SerializeField] Text autoText; [SerializeField] GameObject flowAutoEffect; [SerializeField] Button autoBtn; protected override void InitComponent() { bagBtn.AddListener(() => { UIManager.Instance.OpenWindow(); } ); goldRushIcon.SetIconWithMoneyType(52); goldRushItemBtn.AddListener(() => { ItemTipUtility.ShowMoneyTip(52, false); } ); autoBtn.AddListener(() => { if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.GoldRush, true)) { UIManager.Instance.OpenWindow(); } } ); } protected override void OnPreOpen() { GoldRushManager.Instance.OnGoldRushInfoEvent += OnGoldRushInfoEvent; GoldRushManager.Instance.OnAutoWorkingEvent += OnAutoWorkingEvent; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent; Display(); if (GoldRushManager.Instance.openAutoGoldRush) { GoldRushManager.Instance.GetAllAward(); } } protected override void OnPreClose() { GoldRushManager.Instance.OnGoldRushInfoEvent -= OnGoldRushInfoEvent; GoldRushManager.Instance.OnAutoWorkingEvent -= OnAutoWorkingEvent; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent; } protected override void OnOpen() { GoldRushManager.Instance.ResumeAutoWorking(); } void Display() { fullGoldRush.SetActive(GoldRushManager.Instance.GetFinishGoldRushCount() >= GoldRushManager.Instance.warehouseMaxCnt); RefreshGoldRushMoney(); autoText.text = Language.Get(GoldRushManager.Instance.isAutoWorking ? "GoldRush34" : "GoldRush24"); if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.GoldRush)) { autoBtn.SetActive(true); goldRushItemBtn.SetActive(true); } else { autoBtn.SetActive(false); goldRushItemBtn.SetActive(false); } } void OnGoldRushInfoEvent() { fullGoldRush.SetActive(GoldRushManager.Instance.GetFinishGoldRushCount() >= GoldRushManager.Instance.warehouseMaxCnt); } void OnSecondEvent() { RefreshGoldRushMoney(); } void OnAutoWorkingEvent() { if (GoldRushManager.Instance.isAutoWorking) { autoText.text = Language.Get("GoldRush34"); flowAutoEffect.SetActive(true); } else { autoText.text = Language.Get("GoldRush24"); flowAutoEffect.SetActive(false); } } void RefreshGoldRushMoney() { var count = UIHelper.GetMoneyCnt(52); if (count > 0) { goldRushCountText.text = count + "/" + GoldRushManager.Instance.goldRushMissionMaxCnt; } else { //倒计时 goldRushCountText.text = TimeUtility.SecondsToMS(GoldRushManager.Instance.restoreMissionSeconds - (TimeUtility.AllSeconds - GoldRushManager.Instance.lastRecoverTime)); } goldRushItemProcess.fillAmount = (float)count / GoldRushManager.Instance.goldRushMissionMaxCnt; } void PlayerDataRefreshEvent(PlayerDataType type) { if (type == PlayerDataType.GoldRush) { RefreshGoldRushMoney(); } } }