using System; using System.Collections; using System.Collections.Generic; using System.Linq; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyTreasureCollectPanelPattern3 : FairyTreasureCollect { [SerializeField] Text m_AddedEffect; [SerializeField] Button m_UnlockTreasureBtn; [SerializeField] PositionTween m_SkillTween; TreasureFindHostModel findHostModel { get { return ModelCenter.Instance.GetModel(); } } private bool show = false; public override void Display(int _treasureId, bool _tween = false) { base.Display(_treasureId, _tween); if (model.fairyTreasureGetDict.ContainsKey(treasure.id)) { m_LockedDescription.text = Language.Get("FairyTreasure_1", model.fairyTreasureGetDict[_treasureId]); } else { m_LockedDescription.text = string.Empty; } show = false; var _progress = 0; m_UnlockTreasureBtn.onClick.RemoveAllListeners(); if (treasureId != 302 && findHostModel.IsReachUnlock(treasureId, out _progress) && treasure.state != TreasureState.Collected) { m_UnlockTreasureBtn.gameObject.SetActive(true); m_GotoGet.gameObject.SetActive(false); m_UnlockTreasureBtn.onClick.AddListener(() => { show = true; CA50E_tagCMOpenMagicWeapon _pak = new CA50E_tagCMOpenMagicWeapon(); _pak.MWID = (uint)treasureId; GameNetSystem.Instance.SendInfo(_pak); }); } else { m_UnlockTreasureBtn.gameObject.SetActive(false); } switch (treasureId) { case 302: m_GotoBtnText.text = Language.Get("FairyTreasureGotoBuy"); if (treasure.treasureStages.Count > 0 && treasure.treasureStages[0].unlockType == TreasureStageUnlock.Skill) { var _skillId = treasure.unLockSkill; var skillConfig = Config.Instance.Get(_skillId); m_AddedEffect.text = skillConfig.Description; } break; case 305: case 306: case 307: case 308: m_GotoBtnText.text = Language.Get("FairyTreasureGot"); m_ContainerLocked.gameObject.SetActive(false); if (treasure.treasureStages[0].unlockType == TreasureStageUnlock.Property) { var _property = treasure.treasureStages[0].propertyDict.First(); switch (_property.Key) { case (int)AttrEnum.KillMonsExpPrecent: m_AddedEffect.text = Language.Get("FairyTreasure_2", _property.Value / 100); break; case (int)AttrEnum.AddHurt: m_AddedEffect.text = Language.Get("FairyTreasure_3", _property.Value / 100); break; case 60: m_AddedEffect.text = Language.Get("FairyTreasure_4", _property.Value / 100); break; case 18: m_AddedEffect.text = Language.Get("FairyTreasure_9", _property.Value / 100); break; } } break; } if (_tween && m_SkillTween.gameObject.activeInHierarchy) { m_SkillTween.Play(); } else { m_SkillTween.SetEndState(); } var _fightPower = model.GetTreasureFightPower(_treasureId); m_FightPower.text = _fightPower.ToString(); m_ContainerFight.gameObject.SetActive(_fightPower > 0 && treasure.state == TreasureState.Collected); } protected sealed override void GotoGet() { switch (treasureId) { case 302: ModelCenter.Instance.GetModel().gotoVipLv = model.fairyTreasureGetDict[treasureId]; WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4); break; case 305: case 306: case 307: case 308: if (!FuncOpen.Instance.IsFuncOpen(124)) { FuncOpen.Instance.ProcessorFuncErrorTip(124); return; } WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.Open(); break; } } protected sealed override void OnTreasureStateChange(int _id) { base.OnTreasureStateChange(_id); if (_id != treasureId) { return; } if (show) { WindowCenter.Instance.CloseImmediately(); WindowCenter.Instance.Open(); } show = false; var _fightPower = model.GetTreasureFightPower(_id); m_FightPower.text = _fightPower.ToString(); m_ContainerFight.gameObject.SetActive(_fightPower > 0 && treasure.state == TreasureState.Collected); } public override void Dispose() { base.Dispose(); m_UnlockTreasureBtn.onClick.RemoveAllListeners(); } } }