//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Sunday, May 05, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class FairyBasicFunctionWin : Window { [SerializeField] Button SkillBtn; [SerializeField] Button HallBtn; [SerializeField] Button bossBtn; [SerializeField] Button zhenfaBtn; [SerializeField] Button sitBtn; [SerializeField] Button _fairyStoreBtn; [SerializeField] Button m_SalaryGetBtn; [SerializeField] Text textFairyName; [SerializeField] Text textFairyLv; [SerializeField] Text m_FairyRankTxt; [SerializeField] Button donateBtn; [SerializeField] Button lilianBtn; [SerializeField] Button cgBtn; [SerializeField] Button zbgBtn; [SerializeField] Text zbgTime; StoreModel _storeModel; StoreModel m_storeModel { get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel()); } } FairyModel m_Model; FairyModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } CoinTaskTipModel m_CoinTaskTip; CoinTaskTipModel coinTaskTip { get { return m_CoinTaskTip ?? (m_CoinTaskTip = ModelCenter.Instance.GetModel()); } } FairyNewModel familyModel { get { return ModelCenter.Instance.GetModel(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } FairyFeastModel fairyFeastModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { _fairyStoreBtn.onClick.AddListener(OnClickFairyStoreBtn); bossBtn.onClick.AddListener(OnBossBtn); //m_SalaryGetBtn.onClick.AddListener(OnSalaryGet); SkillBtn.onClick.AddListener(SkillBtna); HallBtn.onClick.AddListener(HallButton); donateBtn.AddListener(() => { WindowCenter.Instance.Open(); }); lilianBtn.AddListener(() => { WindowCenter.Instance.Open(); }); zhenfaBtn.AddListener(() => { WindowCenter.Instance.Open(); }); sitBtn.AddListener(ShowSitInfo); cgBtn.AddListener(() => { if (!FuncOpen.Instance.IsFuncOpen(84)) { var config = FuncOpenLVConfig.Get(84); SysNotifyMgr.Instance.ShowTip("RealmPoolOpenLimit", config.LimitLV); return; } WindowCenter.Instance.Open(); }); zbgBtn.AddListener(() => { WindowCenter.Instance.Open(); }); } protected override void OnPreOpen() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; //model.UpdateFairySalaryEvent += UpdateFairySalaryEvent; InitFairyInfo(); //UpdateFairySalaryEvent(); HandleAchievement(); familyModel.UpdateZhenfaRedpoint(); cgBtn.SetActive(fairyFeastModel.activeOpenday > TimeUtility.OpenDay); } protected override void OnAfterOpen() { if (cgBtn.IsActive()) { if (CanCG()) { cgBtn.GetComponent().Play(); } else { cgBtn.GetComponent().Stop(); } } } protected override void OnPreClose() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; //model.UpdateFairySalaryEvent -= UpdateFairySalaryEvent; } protected override void OnAfterClose() { } float m_Time; //间隔1秒刷新一次 protected override void LateUpdate() { m_Time += Time.deltaTime; if (m_Time < 1) { return; } m_Time = 0; if (familyModel.familyZBGActions.ContainsKey(1)) { zbgBtn.SetActive(true); zbgTime.text = TimeUtility.SecondsToHMS((int)(TimeUtility.GetNext5Time() - TimeUtility.ServerNow).TotalSeconds); } else { zbgBtn.SetActive(false); } } #endregion //是否可传功 bool CanCG() { if (!FuncOpen.Instance.IsFuncOpen(84)) return false; var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.FairyChuanGong); var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.FairyChuanGong); if (completedTimes >= totalTimes) return false; return true; } void InitFairyInfo() { PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy; if (fairy != null) { textFairyName.text = fairy.FamilyName; textFairyLv.text = fairy.FamilyLV.ToString(); m_FairyRankTxt.text = fairy.WarRank == 0 ? Language.Get("UnDetermind") : GetGrade((int)fairy.WarRank); } CheckFairyStoreOpen(); CheckFairyMethodToOpen(); CheckFairyBossOpen(); } void CheckFairyStoreOpen() { _fairyStoreBtn.image.color = _fairyStoreBtn.image.color.SetA(model.fairyStoreOpen ? 1 : 0.5f); } void CheckFairyMethodToOpen() { SkillBtn.image.color = SkillBtn.image.color.SetA(model.fairyMethodToOpen ? 1 : 0.5f); } void CheckFairyBossOpen() { bossBtn.image.color = bossBtn.image.color.SetA(model.fairyBossFuncOpen ? 1 : 0.5f); } void SkillBtna() { if (!model.fairyMethodToOpen) { model.ProcessMethodToErrorTip(); return; } WindowCenter.Instance.Open(); } void HallButton() { WindowCenter.Instance.Open(); } private void OnBossBtn() { if (!model.fairyBossFuncOpen) { model.ProcessFairyBossErrorTip(); return; } WindowCenter.Instance.Open(); } //private void OnSalaryGet() //{ // if (!model.fairySalaryGet) // { // model.SendGetFairySalary(); // } //} //private void UpdateFairySalaryEvent() //{ // m_SalaryGetBtn.interactable = !model.fairySalaryGet; //} private void OnClickFairyStoreBtn() { if (!model.fairyStoreOpen) { model.ProcessErrorTip(); return; } m_storeModel.ControllerRedPoint(true); WindowCenter.Instance.Open(); } private void OnRefreshFairyInfo() { InitFairyInfo(); } private string GetGrade(int _rank) { _rank = Mathf.CeilToInt((float)_rank / 4); switch (_rank) { case 1: return Language.Get("Fairy_S"); case 2: return Language.Get("Fairy_A"); case 3: return Language.Get("Fairy_B"); case 4: return Language.Get("Fairy_C"); default: return Language.Get("Fairy_D"); } } void HandleAchievement() { if (AchievementGoto.achievementType == AchievementGoto.FairySalary) { if (!model.fairySalaryGet) { var _effect = AchievementGuideEffectPool.Require(1); _effect.transform.SetParentEx(m_SalaryGetBtn.transform, Vector3.zero, Vector3.zero, Vector3.one); } else { SysNotifyMgr.Instance.ShowTip("Achievement_113"); } AchievementGoto.achievementType = 0; } } void ShowSitInfo() { var sitRound = Language.Get("FamilySit2", familyModel.sitRound, familyModel.sitMaxRound); if (familyModel.sitRound == familyModel.sitMaxRound) { sitRound += Language.Get("FamilySit5"); } DailyQuestOpenTime openTime; dailyQuestModel.TryGetOpenTime((int)DailyQuestType.default3, out openTime); ConfirmCancel.ShowRealmPopConfirm(Language.Get("FamilySit6"), string.Format("{0}{1}{2}", Language.Get("DailyQuestWin_OpenTime") + openTime.ToOpenTimeString(), sitRound, Language.Get("FamilySit1", familyModel.addExpRateInfo[0] / 100, familyModel.addExpRateInfo[1] / 100, familyModel.roundSeconds)), Language.Get("Z1074"), () => { if (openTime.InOpenTime()) { if (familyModel.sitRound != familyModel.sitMaxRound) ModelCenter.Instance.GetModel().SingleChallenge(31230); else SysNotifyMgr.Instance.ShowTip("ActionFinish"); } else SysNotifyMgr.Instance.ShowTip("ActionUnOpen"); }); } } }