using System; using System.Collections; using System.Collections.Generic; using System.Linq; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyTreasureCollectPanelPattern4 : FairyTreasureCollect { [SerializeField] Text m_SignPropertyEffect; [SerializeField] Text m_SignInTotalDays; [SerializeField] Text m_ProerptyValue; [SerializeField] Text m_SignInTip; [SerializeField] PositionTween m_RightTween; SignInModel signInModel { get { return ModelCenter.Instance.GetModel(); } } TreasureSoulModel treasureSoulModel { get { return ModelCenter.Instance.GetModel(); } } public override void Display(int _treasureId, bool _tween = false) { base.Display(_treasureId, _tween); signInModel.OnSignRefresh += OnSignRefresh; var _fightPower = model.GetTreasureFightPower(_treasureId); m_FightPower.text = _fightPower.ToString(); m_ContainerFight.gameObject.SetActive(_fightPower > 0 && treasure.state == TreasureState.Collected); m_GotoBtnText.text = Language.Get("FairyTreasureGotoBuy"); if (model.fairyTreasureGetDict.ContainsKey(_treasureId)) { m_LockedDescription.text = Language.Get("FairyTreasure_1", model.fairyTreasureGetDict[_treasureId]); } if (_tween && m_RightTween.gameObject.activeInHierarchy) { m_RightTween.Play(); } else { m_RightTween.SetEndState(); } OnSignRefresh(); } public override void Dispose() { base.Dispose(); signInModel.OnSignRefresh -= OnSignRefresh; } protected sealed override void OnTreasureStateChange(int _id) { base.OnTreasureStateChange(_id); if (_id != treasureId) { return; } OnSignRefresh(); var _fightPower = model.GetTreasureFightPower(_id); m_FightPower.text = _fightPower.ToString(); m_ContainerFight.gameObject.SetActive(_fightPower > 0 && treasure.state == TreasureState.Collected); } protected sealed override void GotoGet() { ModelCenter.Instance.GetModel().gotoVipLv = model.fairyTreasureGetDict[treasureId]; WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4); } private void OnSignRefresh() { if(treasure.id== treasureSoulModel.signAddTreasure) { var _property = treasureSoulModel.signAddProperty.First(); var _propertyCfg = Config.Instance.Get(_property.Key); m_SignPropertyEffect.text = Language.Get("FairyTreasure_5", _property.Value, _propertyCfg.Name); m_SignInTotalDays.text = Language.Get("FairyTreasure_6", signInModel.SumSignNum); if (treasure.state != TreasureState.Collected) { m_ProerptyValue.text = Language.Get("FairyTreasure_7", _propertyCfg.Name, signInModel.SumSignNum * _property.Value); m_SignInTip.text = Language.Get("SignInTreasureTip1"); } else { m_ProerptyValue.text = Language.Get("FairyTreasure_8", _propertyCfg.Name, signInModel.SumSignNum * _property.Value); m_SignInTip.text = Language.Get("SignInTreasureTip2"); } } } } }