| | |
| | |
|
| | | [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>(); } }
|
| | |
| | | dungeonModel.dungeonRecordChangeEvent += OnRemaintimeUpdate;
|
| | | dungeonModel.countRemainTimeChangeEvent += OnRemaintimeUpdate;
|
| | | dungeonModel.updateDungeonBuyCnt += OnBuyTimesOk;
|
| | | model.doubleAwardChangeEvent += OnDoubleAwardChange;
|
| | | model.autoChallengeChangeEvent += OnAutoChallengeChange;
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | |
| | | dungeonModel.dungeonRecordChangeEvent -= OnRemaintimeUpdate;
|
| | | dungeonModel.countRemainTimeChangeEvent -= OnRemaintimeUpdate;
|
| | | dungeonModel.updateDungeonBuyCnt -= OnBuyTimesOk;
|
| | | model.doubleAwardChangeEvent -= OnDoubleAwardChange;
|
| | | model.autoChallengeChangeEvent -= OnAutoChallengeChange;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | |
| | | ShowBosses();
|
| | | model.lockSelectedBoss = false;
|
| | |
|
| | | DisplayAutoAndDoubleTitle();
|
| | | CheckTaskGuide();
|
| | | CheckAchievementGuideByTimes();
|
| | | CheckAchievementGuideKillBoss();
|
| | |
| | | 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);
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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;
|
| | |
| | | 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:
|
| | |
| | | model.doubleToKillLowerBossHint = false;
|
| | | }
|
| | | });
|
| | | break;
|
| | | case 6:
|
| | | SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | 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;
|
| | |
| | | private void OnBossSelected(int bossId)
|
| | | {
|
| | | m_BossIntroduce.Display(bossId, false);
|
| | | m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
|
| | |
|
| | | DemonJarBossData bossData;
|
| | | model.TryGetBossData(bossId, out bossData);
|
| | |
| | | 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()
|
| | |
| | |
|
| | | 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);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|