using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System; /// /// 官职 /// public class OfficialUpWin : UIBase { [SerializeField] Text officialNameText; [SerializeField] Text officialNextNameText; [SerializeField] Image officialIcon; [SerializeField] Image officialNextIcon; [SerializeField] Button closeBtn; [SerializeField] PositionTween[] paopaoArr; [SerializeField] Text[] paopaoTextArrName; [SerializeField] Text[] paopaoTextArrValue; [SerializeField] OfficialUpCell[] missionCellArr; [SerializeField] ButtonEx lvUpBtn; [SerializeField] UIEffectPlayer effectPlayer; [SerializeField] UIEffectPlayer upEffect; protected override void InitComponent() { closeBtn.AddListener(CloseWindow); lvUpBtn.AddListener(OnLvUp); } // 1 等级达到x级 x级 // 2 通过主线关卡 关卡ID // 3 消耗战锤 x个 // 4 祝福树 等级 protected override void OnPreOpen() { OfficialRankManager.Instance.RealmMissionRefreshEvent += Refresh; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; BlessLVManager.Instance.OnBlessLVUpdateEvent += RefreshBtn; Refresh(); } protected override void OnPreClose() { OfficialRankManager.Instance.RealmMissionRefreshEvent -= Refresh; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; BlessLVManager.Instance.OnBlessLVUpdateEvent -= RefreshBtn; } public override void Refresh() { var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel); officialNameText.text = config.Name; officialNameText.color = OfficialRankManager.Instance.GetOfficialRankColor(config.Quality); officialIcon.SetSprite("OfficialRank" + config.Quality); var nextConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel + 1); officialNextNameText.text = nextConfig.Name; officialNextNameText.color = OfficialRankManager.Instance.GetOfficialRankColor(nextConfig.Quality); officialNextIcon.SetSprite("OfficialRank" + nextConfig.Quality); for (int i = 0; i < paopaoArr.Length; i++) { paopaoArr[i].Play(); paopaoTextArrName[i].text = PlayerPropertyConfig.Get(nextConfig.AddAttrType[i]).Name; paopaoTextArrValue[i].text = "+" + PlayerPropertyConfig.GetValueDescription(nextConfig.AddAttrType[i], nextConfig.AddAttrNum[i]); } RefreshBtn(); } void OnLvUp() { var ids = RealmLVUPTaskConfig.GetMissionIDs(PlayerDatas.Instance.baseData.realmLevel); foreach (var id in ids) { if (OfficialRankManager.Instance.GetMissionAwardState(id) != 1) { SysNotifyMgr.Instance.ShowTip("OfficialTask1"); return; } } //所有泡泡飞向按钮 for (int i = 0; i < paopaoArr.Length; i++) { paopaoArr[i].Stop(); paopaoArr[i].transform.DOLocalMove(lvUpBtn.transform.localPosition, 0.4f); } effectPlayer.Play(); upEffect.onComplete = () => { CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp(); GameNetSystem.Instance.SendInfo(pak); }; upEffect.Play(); } void RefreshBtn() { var ids = RealmLVUPTaskConfig.GetMissionIDs(PlayerDatas.Instance.baseData.realmLevel); for (int i = 0; i < missionCellArr.Length; i++) { missionCellArr[i].Display(ids[i]); } // for (int i = 0; i < missionCellArr.Length; i++) // { // if (OfficialRankManager.Instance.GetMissionAwardState(i + 1) != 1) // { // lvUpBtn.SetColorful(null, false); // return; // } // } // lvUpBtn.SetColorful(null, true); } void PlayerDataRefresh(PlayerDataType type) { if (type == PlayerDataType.RealmLevel) { Refresh(); } else if (type == PlayerDataType.LV || type == PlayerDataType.ExAttr1 ) { //等级 通关 RefreshBtn(); } } }