using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Snxxz.UI; //基本功能 public class BasicFunction : MonoBehaviour { [SerializeField] Button SkillBtn; [SerializeField] Button HallBtn; [SerializeField] Button bossBtn; [SerializeField] Button FairyAuBtn; [SerializeField] Button LivenBtn; [SerializeField] Button _fairyStoreBtn; [SerializeField] Button m_SalaryGetBtn; [SerializeField] Text textFairyName; [SerializeField] Text textFairyLv; [SerializeField] Text m_FairyRankTxt; 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()); } } private void Awake() { _fairyStoreBtn.onClick.AddListener(OnClickFairyStoreBtn); bossBtn.onClick.AddListener(OnBossBtn); LivenBtn.onClick.AddListener(OnClickLivenBtn); m_SalaryGetBtn.onClick.AddListener(OnSalaryGet); SkillBtn.onClick.AddListener(SkillBtna); HallBtn.onClick.AddListener(HallButton); FairyAuBtn.AddListener(FairyAuButton); } private void OnEnable() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; model.UpdateFairySalaryEvent += UpdateFairySalaryEvent; InitFairyInfo(); UpdateFairySalaryEvent(); HandleAchievement(); } 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(); } 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 SkillBtna() { if (!model.fairyMethodToOpen) { model.ProcessMethodToErrorTip(); return; } WindowCenter.Instance.Open(); } void HallButton() { WindowCenter.Instance.Open(); } private void OnBossBtn() { WindowCenter.Instance.Open(); } void FairyAuButton() { if (coinTaskTip.IsFairy) { coinTaskTip.IsFairy = false; } 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 OnClickLivenBtn() { WindowCenter.Instance.Open(); } private void OnDisable() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; model.UpdateFairySalaryEvent -= UpdateFairySalaryEvent; } 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; } } }