少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-06 41a6e87783d042bf3e0ecebfa772443f2b5ed95d
System/FindPrecious/DemonJarWin.cs
@@ -30,7 +30,6 @@
        [SerializeField] RectTransform m_ContainerDouble;
        [SerializeField] Button m_BtnAutoAndDouble;
        [SerializeField] Text m_AutoAndDoubleTitle;
        DemonJarModel model { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -70,8 +69,6 @@
            dungeonModel.dungeonRecordChangeEvent += OnRemaintimeUpdate;
            dungeonModel.countRemainTimeChangeEvent += OnRemaintimeUpdate;
            dungeonModel.updateDungeonBuyCnt += OnBuyTimesOk;
            model.doubleAwardChangeEvent += OnDoubleAwardChange;
            model.autoChallengeChangeEvent += OnAutoChallengeChange;
        }
        protected override void OnPreClose()
@@ -82,8 +79,6 @@
            dungeonModel.dungeonRecordChangeEvent -= OnRemaintimeUpdate;
            dungeonModel.countRemainTimeChangeEvent -= OnRemaintimeUpdate;
            dungeonModel.updateDungeonBuyCnt -= OnBuyTimesOk;
            model.doubleAwardChangeEvent -= OnDoubleAwardChange;
            model.autoChallengeChangeEvent -= OnAutoChallengeChange;
        }
        protected override void OnAfterClose()
@@ -96,7 +91,6 @@
            ShowBosses();
            model.lockSelectedBoss = false;
            DisplayAutoAndDoubleTitle();
            CheckTaskGuide();
            CheckAchievementGuideByTimes();
            CheckAchievementGuideKillBoss();
@@ -111,36 +105,18 @@
            if (!model.lockSelectedBoss)
            {
                var targetBoss = model.GetLatestUnLockBoss();
                if (!findPreciousModel.IsBossAlive(targetBoss))
                {
                    var priorConfig = NPCConfig.Get(targetBoss);
                    if (priorConfig.NPCLV <= GeneralDefine.demonJarLevelLimit)
                    {
                        targetBoss = bosses[0];
                        for (int i = bosses.Count - 1; i >= 0; i--)
                        {
                            var bossId = bosses[i];
                            var npcConfig = NPCConfig.Get(bossId);
                            if (npcConfig.NPCLV <= priorConfig.NPCLV && findPreciousModel.IsBossAlive(bossId))
                            {
                                targetBoss = bossId;
                                break;
                            }
                        }
                    }
                }
                model.selectedBoss = targetBoss;
            }
            DemonJarBossData bossData;
            model.TryGetBossData(model.selectedBoss, out bossData);
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
            m_BossIntroduce.Display(model.selectedBoss, true);
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
            DisplayTip(model.selectedBoss);
        }
@@ -193,26 +169,6 @@
            }
        }
        private void OnDoubleAwardChange()
        {
            DisplayAutoAndDoubleTitle();
        }
        private void OnAutoChallengeChange()
        {
            DisplayAutoAndDoubleTitle();
        }
        private void DisplayAutoAndDoubleTitle()
        {
            var config = DemonJarConfig.Get(model.selectedBoss);
            var doubleAllow = config.CanEnterTimes == 0;
            var doubleString = UIHelper.AppendColor(model.isDoubleAward && doubleAllow ? TextColType.Green : TextColType.NavyBrown, Language.Get("DemonJarDoubleWord"), true);
            var autoString = UIHelper.AppendColor(model.autoChallenge ? TextColType.Green : TextColType.NavyBrown, Language.Get("DemonJarAutoWord"), true);
            m_AutoAndDoubleTitle.text = StringUtility.Contact(autoString, "/", doubleString);
        }
        private void GotoKillBoss()
        {
            var error = 0;
@@ -240,7 +196,9 @@
                        DemonJarBossData bossData = null;
                        if (model.TryGetBossData(model.selectedBoss, out bossData))
                        {
                            SysNotifyMgr.Instance.ShowTip("DemonJarLvChallenge", bossData.unLockLevel);
                            var config = NPCConfig.Get(model.selectedBoss);
                            var realmConfig = RealmConfig.Get(config.Realm);
                            SysNotifyMgr.Instance.ShowTip("DemonJarLvChallenge", realmConfig.Name);
                        }
                        break;
                    case 2:
@@ -272,6 +230,9 @@
                                    model.doubleToKillLowerBossHint = false;
                                }
                            });
                        break;
                    case 6:
                        SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
                        break;
                }
            }
@@ -324,10 +285,16 @@
        private bool TestEnterDungeon(out int _error)
        {
            if (findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
            {
                _error = 6;
                return false;
            }
            DemonJarBossData bossData = null;
            if (model.TryGetBossData(model.selectedBoss, out bossData))
            {
                if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
                if (findPreciousModel.IsBossUnlock(model.selectedBoss))
                {
                    _error = 1;
                    return false;
@@ -367,7 +334,6 @@
        private void OnBossSelected(int bossId)
        {
            m_BossIntroduce.Display(bossId, false);
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
            DemonJarBossData bossData;
            model.TryGetBossData(bossId, out bossData);
@@ -375,8 +341,9 @@
            var config = DemonJarConfig.Get(model.selectedBoss);
            m_RewardDescription.text = Language.Get(config.RewardDescription);
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
            DisplayTip(bossId);
            DisplayAutoAndDoubleTitle();
        }
        private void CheckAchievementGuideByTimes()
@@ -421,10 +388,7 @@
        private void DisplayTip(int bossId)
        {
            var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var config = NPCConfig.Get(bossId);
            if (config.Realm > realmLevel)
            if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
            {
                m_NoDamageTip.gameObject.SetActive(true);
                m_SurpassLevel.gameObject.SetActive(false);
@@ -438,6 +402,21 @@
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var isUnlock = findPreciousModel.IsBossUnlock(model.selectedBoss);
            m_Goto.gameObject.SetActive(isUnlock);
        }
        private void DisplaySubscribe(int bossId)
        {
            var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
            m_Subscribe.gameObject.SetActive(isUnLocked);
            if (isUnLocked)
            {
                m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
            }
        }
    }