//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, March 15, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace vnxbqy.UI { public class FairyTreasureCollectPanelPattern2 : FairyTreasureCollect { [SerializeField] Text m_TreasureLevel; [SerializeField] Slider m_Exp; [SerializeField] Text m_ExpProgress; [SerializeField] Text m_Current; [SerializeField] Text m_Next; [SerializeField] PositionTween m_SkillTween; [SerializeField] PositionTween m_RightTween; int levelBuf = -1; public override void Display(int _treasureId, bool _tween = false) { base.Display(_treasureId, _tween); if (!model.TryGetTreasure(_treasureId, out treasure)) { return; } if (_tween) { m_SkillTween.Play(); m_RightTween.Play(); } else { m_SkillTween.SetEndState(); m_RightTween.SetEndState(); } m_GotoBtnText.text = Language.Get("FairyTreasureGotoBuy"); if (model.fairyTreasureGetDict.ContainsKey(treasure.id)) { m_LockedDescription.text = Language.Get("FairyTreasure_1", model.fairyTreasureGetDict[_treasureId]); } OnVIPKillNPCExpChange(); model.vipKillNPCTreasureEvent -= OnVIPKillNPCExpChange; model.vipKillNPCTreasureEvent += OnVIPKillNPCExpChange; var syncSwitch = new CA805_tagCMVIPKillNPCLVInfoSwitch(); syncSwitch.IsOn = 1; GameNetSystem.Instance.SendInfo(syncSwitch); } public override void Dispose() { base.Dispose(); var syncSwitch = new CA805_tagCMVIPKillNPCLVInfoSwitch(); syncSwitch.IsOn = 0; GameNetSystem.Instance.SendInfo(syncSwitch); model.vipKillNPCTreasureEvent -= OnVIPKillNPCExpChange; } protected sealed override void OnTreasureStateChange(int _treasureId) { if (treasure.id != _treasureId) { return; } OnVIPKillNPCExpChange(); } private void OnVIPKillNPCExpChange() { var level = model.vipKillNPCTreasure.level == 0 || treasure.state != TreasureState.Collected ? 1 : model.vipKillNPCTreasure.level; m_TreasureLevel.text = StringUtility.Contact(Language.Get("TreasureSkillLv"), level); var _fightPower = treasureEffect.GetFightPower(treasure.id, 1, level); m_FightPower.text = _fightPower.ToString(); m_ContainerFight.SetActive(_fightPower > 0 && treasure.state == TreasureState.Collected); var config = VIPKillNPCConfig.Get(level); var expNeed = config.Exp1 * (long)100000000 + config.Exp2; var exp = treasure.state != TreasureState.Collected ? 0 : model.vipKillNPCTreasure.currentExp; m_Exp.value = exp / (float)expNeed; m_ExpProgress.text = StringUtility.Contact(UIHelper.ReplaceLargeNum(exp), "/", UIHelper.ReplaceLargeNum(expNeed)); if (levelBuf == -1 || level == 0 || levelBuf != level) { DisplayProperty(); } levelBuf = level; } private void DisplayProperty() { var level = model.vipKillNPCTreasure.level; var currentLevel = level == 0 || treasure.state != TreasureState.Collected ? 1 : level; var configNow = VIPKillNPCConfig.Get(currentLevel); m_Current.text = StringUtility.Contact("+", configNow.MinAtk, "-", configNow.MaxAtk); var isMaxLevel = currentLevel >= 400; if (isMaxLevel) { m_Next.text = Language.Get("HallowsWin_Text_MaxLevel"); } else { var nextLevel = currentLevel + 1; var configNext = VIPKillNPCConfig.Get(nextLevel); m_Next.text = StringUtility.Contact("+", configNext.MinAtk, "-", configNext.MaxAtk); } } protected sealed override void GotoGet() { ModelCenter.Instance.GetModel().gotoVipLv = model.fairyTreasureGetDict[treasureId]; WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc4); } } }