少年修仙传客户端代码仓库
client_Hale
2019-04-12 37fe958376a003a36154bf9e4b456397f5c254b1
System/FindPrecious/WorldBossModel.cs
@@ -3,13 +3,11 @@
using UnityEngine;
using System;
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
   public class WorldBossModel : Model
    {
        public const int WORLDBOSS_REDPOINT = 76001;
        int m_SelectedBoss = 0;
@@ -64,6 +62,7 @@
        public Redpoint worldBossRedPoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, WORLDBOSS_REDPOINT);
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public override void Init()
        {
@@ -82,13 +81,10 @@
        public List<int> GetWorldBosses()
        {
            var activedBossIds = new List<int>();
            var mapModel = ModelCenter.Instance.GetModel<MapModel>();
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                var bossId = sortedBossIds[i];
                var config = WorldBossConfig.Get(bossId);
                var mapId = config.MapID;
                if (mapModel.IsMapUnlocked(mapId))
                if (IsBossUnLockedOrUnlockSoon(bossId))
                {
                    activedBossIds.Add(bossId);
                }
@@ -100,7 +96,6 @@
        public List<int> GetWorldBosses(int _mapId)
        {
            var bosses = new List<int>();
            var mapModel = ModelCenter.Instance.GetModel<MapModel>();
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                var bossId = sortedBossIds[i];
@@ -120,7 +115,7 @@
            return worldBosses.ContainsKey(_bossId) && worldBosses[_bossId].isUnLocked;
        }
        public int GetLatestUnLockBoss()
        public int GetRecommendBoss()
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            for (int i = sortedBossIds.Count - 1; i >= 0; i--)
@@ -136,6 +131,47 @@
            return sortedBossIds[0];
        }
        public int GetBossUnLockRealm(int bossId)
        {
            if (!worldBosses.ContainsKey(bossId))
            {
                return 0;
            }
            var config = NPCConfig.Get(bossId);
            var realmStage = realmModel.GetRealmStage(config.Realm);
            var realms = new List<int>();
            if (realmModel.TryGetRealmStages(realmStage, out realms))
            {
                return realms[0];
            }
            else
            {
                return 0;
            }
        }
        private bool IsBossUnLockedOrUnlockSoon(int bossId)
        {
            var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
            var config = NPCConfig.Get(bossId);
            var bossRealmStage = realmModel.GetRealmStage(config.Realm);
            if (myRealmStage >= bossRealmStage)
            {
                return true;
            }
            if (myRealmStage + 1 >= bossRealmStage)
            {
                return true;
            }
            return false;
        }
        private void ParseConfig()
        {
            var worldBossConfigs = WorldBossConfig.GetValues();
@@ -147,18 +183,23 @@
            sortedBossIds.AddRange(worldBosses.Keys);
            sortedBossIds.Sort(WorldBossData.LevelCompare);
        }
    }
    public class WorldBossData
    {
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public int id { get; private set; }
        public bool isUnLocked {
            get {
                var config = WorldBossConfig.Get(id);
                var mapUnLocked = mapModel.IsMapUnlocked(config.MapID);
                return mapUnLocked;
                var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
                var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
                var config = NPCConfig.Get(id);
                var bossRealmStage = realmModel.GetRealmStage(config.Realm);
                return myRealmStage >= bossRealmStage;
            }
        }