少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-06 41a6e87783d042bf3e0ecebfa772443f2b5ed95d
7132 【2.0】【开发】打宝界面优化2
8 文件已复制
22个文件已删除
40个文件已修改
1 文件已重命名
6033 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/DogzDungeonConfig.cs 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzDungeonConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3B7_tagMCBOSSAttactCnt.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAE_Truck.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAF_Merge.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB0_Event.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/DelegatesGensBridge.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/DogzDungeonConfigWrap.cs 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/DogzDungeonConfigWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/EnumWrap.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/Resources.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUICrossServerBossModelWrap.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIDemonJarModelWrap.cs 1060 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIDemonJarModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIDogzDungeonModelWrap.cs 976 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIDogzDungeonModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIElderGodAreaModelWrap.cs 524 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIElderGodAreaModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIPersonalBossModelWrap.cs 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIPersonalBossModelWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIWorldBossModelWrap.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/XLuaGenAutoRegister.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementGotoPart1.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossBoxBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossBreifInfoBehaviour.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossEliteMonsterBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossModel.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossWin.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzBoxBehaviour.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzBoxBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs 482 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonWin.cs 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzEliteMonsterBehaviour.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzEliteMonsterBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossHomeBreifInfoBehaviour.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossHomeModel.cs 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossHomeWin.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossIntroduceBehaviour.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarBriefInfoBehaviour.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarModel.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarWin.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodAreaModel.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodAreaWin.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodBreifInfoBehaviour.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossRebornBehaviour.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/PersonalBossBriefInfoBehaviour.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/PersonalBossModel.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/PersonalBossWin.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/WorldBossBreifInfoBehaviour.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/WorldBossModel.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/WorldBossWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/InGamePushContainer.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ConfigInitiator.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzDungeonConfig.cs
File was deleted
Core/GameEngine/Model/Config/DogzDungeonConfig.cs.meta
File was deleted
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA326_tagMCNPCIDCollectionCntInfo.cs
@@ -11,8 +11,7 @@
public class DTCA326_tagMCNPCIDCollectionCntInfo : DtcBasic
{
    DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
    CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
    CrossServerBossModel model { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
@@ -25,16 +24,15 @@
        for (int i = 0; i < package.NPCCollCntList.Length; i++)
        {
            var collect = package.NPCCollCntList[i];
            if (collect.NPCID == model.bigBoxNpcId || collect.NPCID == crossServerBossModel.bigBoxNpcId)
            if (collect.NPCID == model.bigBoxNpcId)
            {
                bigBoxCollectCount += collect.CollectionCnt;
            }
            if (collect.NPCID == model.smallBoxNpcId || collect.NPCID == crossServerBossModel.smallBoxNpcId)
            if (collect.NPCID == model.smallBoxNpcId)
            {
                smallBoxCollectCount += collect.CollectionCnt;
            }
        }
        ModelCenter.Instance.GetModel<DungeonModel>().UpdateDungeonCollectNpcInfo(package);
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3B7_tagMCBOSSAttactCnt.cs
@@ -14,7 +14,7 @@
{
    WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
    BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
    DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
    CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
@@ -30,8 +30,11 @@
                    worldBossModel.wearyValue = (int)info.KillCnt;
                    worldBossModel.extraBossWearyValue = (int)info.ItemAddCnt;
                    break;
                case 1:
                    bossHomeModel.wearyValue = (int)info.KillCnt;
                    break;
                case 2:
                    dogzDungeonModel.wearyValue = (int)info.KillCnt;
                    crossServerBossModel.wearyValue = (int)info.KillCnt;
                    break;
            }
        }
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA714_tagMCNPCCntList.cs
@@ -10,7 +10,6 @@
public class DTCA714_tagMCNPCCntList : DtcBasic {
    DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
    CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
@@ -18,7 +17,6 @@
        base.Done(vNetPack);
        var package = vNetPack as HA714_tagMCNPCCntList;
        model.UpdateMonsterSurplusInfo(package);
        crossServerBossModel.UpdateMonsterSurplusInfo(package);
        ModelCenter.Instance.GetModel<HazyGrassModel>().ReceivePackage(package);
    }
Core/NetworkPackage/DTCFile/ServerPack/HA9_Function/DTCA904_tagGCDogzNPCRefreshTime.cs
@@ -10,15 +10,12 @@
public class DTCA904_tagGCDogzNPCRefreshTime : DtcBasic
{
    DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
    CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA904_tagGCDogzNPCRefreshTime;
        model.UpdateBoxOrEliteRefreshTime(package);
        crossServerBossModel.UpdateBoxOrEliteRefreshTime(package);
    }
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 3e05761d690b75440a6be79207d0fb01
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 1d70ccd06161e0443b7a802ad94292f8
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta
File was renamed from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 71e878ac60c49ad4f964dd2dbc725739
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: eed34091b0568664b9fb42f0634496c1
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/ServerPack/HAE_Truck.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/ServerPack/HAE_Truck.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 77f69c2b862d1704299a32d0d8eeb71e
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/ServerPack/HAF_Merge.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/ServerPack/HAF_Merge.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: fa14960fa44b0d1439bab471a764e34f
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Core/NetworkPackage/ServerPack/HB0_Event.meta
copy from System/DogzDungeon.meta copy to Core/NetworkPackage/ServerPack/HB0_Event.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: d914565b65f8e8145988734c4d915834
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData: 
Fight/MapTransferUtility.cs
@@ -578,14 +578,13 @@
        GActor _npc = null;
        // 加入判断是否世界BOSS判断
        var isWorldBoss = WorldBossConfig.Has(npcID);
        var isDogzBoss = DogzDungeonConfig.Has(npcID);
        var isCrossServerBoss = CrossServerBossConfig.Has(npcID);
        if (_findLocation)
        {
            var _mapConfig = MapConfig.Get(_npcLocation.mapId);
            // 中立地图
            if (_mapConfig.Camp == 5 && (isWorldBoss || isDogzBoss || isCrossServerBoss))
            if (_mapConfig.Camp == 5 && (isWorldBoss ||  isCrossServerBoss))
            {
                if (_npcLocation.mapId == PlayerDatas.Instance.baseData.MapID)
                {
@@ -615,7 +614,7 @@
            }
        }
        bool _isBoss = isWorldBoss || isDogzBoss || isCrossServerBoss;
        bool _isBoss = isWorldBoss ||  isCrossServerBoss;
        if (_isBoss && _findLocation)
        {
            // Debug.LogFormat("目标是boss");
Lua/Gen/DelegatesGensBridge.cs
@@ -689,28 +689,6 @@
#endif
        }
        
        public Snxxz.UI.DogzDungeonModel __Gen_Delegate_Imp30(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
                RealStatePtr L = luaEnv.rawL;
                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                ObjectTranslator translator = luaEnv.translator;
                translator.PushAny(L, p0);
                PCall(L, 1, 1, errFunc);
                Snxxz.UI.DogzDungeonModel __gen_ret = (Snxxz.UI.DogzDungeonModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.DogzDungeonModel));
                LuaAPI.lua_settop(L, errFunc - 1);
                return  __gen_ret;
#if THREAD_SAFE || HOTFIX_ENABLE
            }
#endif
        }
        public Snxxz.UI.TeamModel __Gen_Delegate_Imp31(object p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
Lua/Gen/DogzDungeonConfigWrap.cs
File was deleted
Lua/Gen/DogzDungeonConfigWrap.cs.meta
File was deleted
Lua/Gen/EnumWrap.cs
@@ -6126,8 +6126,6 @@
            
            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJar", FindPreciousType.DemonJar);
            
            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzDungeon", FindPreciousType.DogzDungeon);
            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServerBoss", FindPreciousType.CrossServerBoss);
            
            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyBoss", FindPreciousType.JadeDynastyBoss);
@@ -6170,10 +6168,6 @@
                else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJar"))
                {
                    translator.PushFindPreciousType(L, FindPreciousType.DemonJar);
                }
                else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzDungeon"))
                {
                    translator.PushFindPreciousType(L, FindPreciousType.DogzDungeon);
                }
                else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServerBoss"))
                {
Lua/Gen/Resources.meta
copy from System/DogzDungeon.meta copy to Lua/Gen/Resources.meta
File was copied from System/DogzDungeon.meta
@@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 52a985f55841d694dac464804eae545e
guid: 2a460c5e1b7a1b74cab84494289095f0
folderAsset: yes
timeCreated: 1534559436
timeCreated: 1558410732
licenseType: Pro
DefaultImporter:
  userData: 
Lua/Gen/SnxxzUICrossServerBossModelWrap.cs
@@ -382,7 +382,7 @@
                
                {
                    
                        System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetBosses(  );
                        System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetShowBosses(  );
                        translator.Push(L, gen_ret);
                    
                    
@@ -780,7 +780,7 @@
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            
                Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1);
                translator.Push(L, gen_to_be_invoked.dogzDungeonBox);
                translator.Push(L, gen_to_be_invoked.boxInfo);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
@@ -794,7 +794,7 @@
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            
                Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1);
                translator.Push(L, gen_to_be_invoked.dogzDungeonElite);
                translator.Push(L, gen_to_be_invoked.eliteInfo);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
@@ -884,7 +884,7 @@
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            
                Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.dogzDungeonBox = (Snxxz.UI.DogzDungeonBox)translator.GetObject(L, 2, typeof(Snxxz.UI.DogzDungeonBox));
                gen_to_be_invoked.boxInfo = (Snxxz.UI.CrossServerBossBox)translator.GetObject(L, 2, typeof(Snxxz.UI.CrossServerBossBox));
            
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
@@ -899,7 +899,7 @@
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            
                Snxxz.UI.CrossServerBossModel gen_to_be_invoked = (Snxxz.UI.CrossServerBossModel)translator.FastGetCSObj(L, 1);
                gen_to_be_invoked.dogzDungeonElite = (Snxxz.UI.DogzDungeonElite)translator.GetObject(L, 2, typeof(Snxxz.UI.DogzDungeonElite));
                gen_to_be_invoked.eliteInfo = (Snxxz.UI.CrossServerBossElite)translator.GetObject(L, 2, typeof(Snxxz.UI.CrossServerBossElite));
            
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
Lua/Gen/SnxxzUIDemonJarModelWrap.cs
File was deleted
Lua/Gen/SnxxzUIDemonJarModelWrap.cs.meta
File was deleted
Lua/Gen/SnxxzUIDogzDungeonModelWrap.cs
File was deleted
Lua/Gen/SnxxzUIDogzDungeonModelWrap.cs.meta
File was deleted
Lua/Gen/SnxxzUIElderGodAreaModelWrap.cs
File was deleted
Lua/Gen/SnxxzUIElderGodAreaModelWrap.cs.meta
File was deleted
Lua/Gen/SnxxzUIPersonalBossModelWrap.cs
File was deleted
Lua/Gen/SnxxzUIPersonalBossModelWrap.cs.meta
File was deleted
Lua/Gen/SnxxzUIWorldBossModelWrap.cs
@@ -231,12 +231,6 @@
            
                
                {
                    int __bossId = LuaAPI.xlua_tointeger(L, 2);
                        bool gen_ret = gen_to_be_invoked.IsBossUnLocked( __bossId );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    
                    return 1;
                }
@@ -279,22 +273,9 @@
        static int _m_GetBossUnLockRealm(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                Snxxz.UI.WorldBossModel gen_to_be_invoked = (Snxxz.UI.WorldBossModel)translator.FastGetCSObj(L, 1);
                {
                    int _bossId = LuaAPI.xlua_tointeger(L, 2);
                        int gen_ret = gen_to_be_invoked.GetBossUnLockRealm( _bossId );
                        LuaAPI.xlua_pushinteger(L, gen_ret);
                    return 1;
                }
                
Lua/Gen/XLuaGenAutoRegister.cs
@@ -185,8 +185,6 @@
            translator.DelayWrapLoader(typeof(DogzConfig), DogzConfigWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(DogzDungeonConfig), DogzDungeonConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(DogzEquipPlusConfig), DogzEquipPlusConfigWrap.__Register);
        
@@ -1024,9 +1022,6 @@
            translator.DelayWrapLoader(typeof(Snxxz.UI.DogzPackModel), SnxxzUIDogzPackModelWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.DogzDungeonModel), SnxxzUIDogzDungeonModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.DungeonAssistModel), SnxxzUIDungeonAssistModelWrap.__Register);
        
        
@@ -1102,19 +1097,10 @@
            translator.DelayWrapLoader(typeof(Snxxz.UI.BossHomeModel), SnxxzUIBossHomeModelWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.DemonJarModel), SnxxzUIDemonJarModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.ElderGodAreaModel), SnxxzUIElderGodAreaModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.FindPreciousModel), SnxxzUIFindPreciousModelWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.FindPreciousTimer), SnxxzUIFindPreciousTimerWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.PersonalBossModel), SnxxzUIPersonalBossModelWrap.__Register);
        
        }
        
System/Achievement/AchievementGotoPart1.cs
@@ -49,7 +49,7 @@
                        DemonJarBossData bossData = null;
                        if (demonJarModel.TryGetBossData(npcId, out bossData))
                        {
                            if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
                            if (findPreciousModel.IsBossUnlock(npcId))
                            {
                                SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
                            }
@@ -188,7 +188,7 @@
                            DemonJarBossData bossData = null;
                            if (demonJarModel.TryGetBossData(bossId, out bossData))
                            {
                                if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel)
                                if (findPreciousModel.IsBossUnlock(bossId))
                                {
                                    SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
                                }
System/CrossServerBoss/CrossServerBossBoxBehaviour.cs
@@ -40,7 +40,7 @@
        private void DisplayBoxSurplusInfo()
        {
            var boxInfo = model.dogzDungeonBox;
            var boxInfo = model.boxInfo;
            m_BigBoxCount.text = boxInfo.bigBoxSurplus.ToString();
            m_BigBoxCount.color = UIHelper.GetUIColor(boxInfo.bigBoxSurplus > 0 ? TextColType.White : TextColType.Red);
            m_SmallBoxCount.text = boxInfo.smallBoxSurplus.ToString();
System/CrossServerBoss/CrossServerBossBreifInfoBehaviour.cs
@@ -34,10 +34,10 @@
                {
                    case 1:
                    case 2:
                        dieOrLocked = model.dogzDungeonBox.bigBoxSurplus <= 0;
                        dieOrLocked = model.boxInfo.bigBoxSurplus <= 0;
                        break;
                    case 3:
                        dieOrLocked = model.dogzDungeonElite.eliteSurplus <= 0;
                        dieOrLocked = model.eliteInfo.eliteSurplus <= 0;
                        break;
                    case 4:
                        dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
@@ -81,18 +81,18 @@
            model.boxSurplusChangeEvent -= OnBoxInfoUpdate;
            model.eliteSurplusChangeEvent -= OnGuardInfoUpdate;
            model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange;
            model.boxInfo.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.eliteInfo.refreshTimeEvent -= OnEliteRefreshTimeChange;
            switch (config.MonsterType)
            {
                case 1:
                case 2:
                    model.dogzDungeonBox.refreshTimeEvent += OnBoxRefreshTimeChange;
                    model.boxInfo.refreshTimeEvent += OnBoxRefreshTimeChange;
                    model.boxSurplusChangeEvent += OnBoxInfoUpdate;
                    break;
                case 3:
                    model.dogzDungeonElite.refreshTimeEvent += OnEliteRefreshTimeChange;
                    model.eliteInfo.refreshTimeEvent += OnEliteRefreshTimeChange;
                    model.eliteSurplusChangeEvent += OnGuardInfoUpdate;
                    break;
            }
@@ -107,8 +107,8 @@
            model.bossSelectedEvent -= OnSelected;
            model.boxSurplusChangeEvent -= OnBoxInfoUpdate;
            model.eliteSurplusChangeEvent -= OnGuardInfoUpdate;
            model.dogzDungeonBox.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.dogzDungeonElite.refreshTimeEvent -= OnEliteRefreshTimeChange;
            model.boxInfo.refreshTimeEvent -= OnBoxRefreshTimeChange;
            model.eliteInfo.refreshTimeEvent -= OnEliteRefreshTimeChange;
        }
        protected override void UpdateBossRebornCoolDown(bool _isUnLocked)
@@ -121,10 +121,10 @@
                {
                    case 1:
                    case 2:
                        refreshTime = model.dogzDungeonBox.refreshTime;
                        refreshTime = model.boxInfo.refreshTime;
                        break;
                    case 3:
                        refreshTime = model.dogzDungeonElite.refreshTime;
                        refreshTime = model.eliteInfo.refreshTime;
                        break;
                    case 4:
                        FindPreciousModel.BossInfo bossInfo;
@@ -171,8 +171,7 @@
            UpdateBossPortrait(interactorableState);
        }
        protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm)
        protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
        {
            var config = CrossServerBossConfig.Get(bossId);
            switch (config.MonsterType)
@@ -187,28 +186,39 @@
                    m_BossLevel.text = string.Empty;
                    break;
                case 4:
                    m_BossName.text = _name;
                    m_BossLevel.text = Language.Get("Z1024", _level);
                    m_BossName.text = name;
                    m_BossLevel.text = Language.Get("Z1024", level);
                    break;
            }
            m_Portrait.SetSprite(_icon);
            m_Portrait.SetSprite(icon);
            m_Portrait.SetNativeSize();
            if (m_Realm != null && m_RealmContainer != null)
            m_RealmContainer.gameObject.SetActive(isUnLocked);
            m_UnLockCondition.gameObject.SetActive(!isUnLocked);
            if (!isUnLocked)
            {
                if (_realm > 0 && RealmConfig.Has(_realm))
                var unLockRealm = findPreciousModel.GetBossUnLockRealm(bossId);
                var realmConfig = RealmConfig.Get(unLockRealm);
                m_UnLockRealm.SetSprite(realmConfig.Img);
            }
            else
            {
                if (m_Realm != null && m_RealmContainer != null)
                {
                    m_RealmContainer.gameObject.SetActive(true);
                    var realmConfig = RealmConfig.Get(_realm);
                    if (realmConfig != null)
                    if (realm > 0 && RealmConfig.Has(realm))
                    {
                        m_Realm.SetSprite(realmConfig.Img);
                        m_RealmContainer.gameObject.SetActive(true);
                        var realmConfig = RealmConfig.Get(realm);
                        if (realmConfig != null)
                        {
                            m_Realm.SetSprite(realmConfig.Img);
                        }
                    }
                }
                else
                {
                    m_RealmContainer.gameObject.SetActive(false);
                    else
                    {
                        m_RealmContainer.gameObject.SetActive(false);
                    }
                }
            }
        }
System/CrossServerBoss/CrossServerBossEliteMonsterBehaviour.cs
@@ -39,7 +39,7 @@
        private void DisplayGuardSurplusInfo()
        {
            var guard = model.dogzDungeonElite;
            var guard = model.eliteInfo;
            m_Elite.text = guard.eliteSurplus.ToString();
            m_Elite.color = UIHelper.GetUIColor(guard.eliteSurplus > 0 ? TextColType.White : TextColType.Red);
        }
System/CrossServerBoss/CrossServerBossModel.cs
@@ -37,32 +37,55 @@
            }
        }
        public int bigBoxCollectCount {
            get { return dogzDungeonModel.bigBoxCollectCount; }
        }
        public int smallBoxCollectCount {
            get { return dogzDungeonModel.smallBoxCollectCount; }
        }
        int m_WearyValue = 0;
        public int wearyValue {
            get {
                return dogzDungeonModel.wearyValue;
            get { return m_WearyValue; }
            set {
                if (m_WearyValue != value)
                {
                    m_WearyValue = value;
                    UpdateRedpoint();
                    if (bossWearyValueChangeEvent != null)
                    {
                        bossWearyValueChangeEvent();
                    }
                }
            }
        }
        int m_BigBoxCollectCount = 0;
        public int bigBoxCollectCount {
            get { return m_BigBoxCollectCount; }
            set {
                if (m_BigBoxCollectCount != value)
                {
                    m_BigBoxCollectCount = value;
                    UpdateRedpoint();
                    if (bigBoxCollectCountChangeEvent != null)
                    {
                        bigBoxCollectCountChangeEvent();
                    }
                }
            }
        }
        int m_SmallBoxCollectCount = 0;
        public int smallBoxCollectCount {
            get { return m_SmallBoxCollectCount; }
            set { m_SmallBoxCollectCount = value; }
        }
        public event Action bossWearyValueChangeEvent;
        public event Action<int> bossSelectedEvent;
        public event Action bigBoxCollectCountChangeEvent;
        public event Action boxSurplusChangeEvent;
        public event Action eliteSurplusChangeEvent;
        public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox();
        public DogzDungeonElite dogzDungeonElite = new DogzDungeonElite();
        public CrossServerBossBox boxInfo = new CrossServerBossBox();
        public CrossServerBossElite eliteInfo = new CrossServerBossElite();
        public Redpoint redpoint = new Redpoint(FindPreciousModel.LOOTPRECIOUs_REDPOINTID, REDPOINT);
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        public override void Init()
@@ -141,6 +164,13 @@
                return false;
            }
            var config = CrossServerBossConfig.Get(selectedBoss);
            if (config.MonsterType == 4 && !findPreciousModel.IsRealmEnoughToKillBoss(selectedBoss))
            {
                error = 6;
                return false;
            }
            error = 0;
            return true;
        }
@@ -164,6 +194,9 @@
                case 5:
                    SysNotifyMgr.Instance.ShowTip("CrossMap4");
                    break;
                case 6:
                    SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(selectedBoss).Realm);
                    break;
            }
        }
@@ -183,14 +216,30 @@
            var npcIds = new List<int>();
            npcIds.Add(bigBoxNpcId);
            npcIds.Add(eliteMonsters[0]);
            npcIds.AddRange(bosses.Keys);
            foreach (var bossId in bosses.Keys)
            {
                if (findPreciousModel.IsBossUnlock(bossId))
                {
                    npcIds.Add(bossId);
                }
            }
            return npcIds;
        }
        public List<int> GetBosses()
        public List<int> GetShowBosses()
        {
            return new List<int>(bosses.Keys);
            var showBosses = new List<int>();
            foreach (var bossId in bosses.Keys)
            {
                if (findPreciousModel.IsBossUnlock(bossId))
                {
                    showBosses.Add(bossId);
                }
            }
            return showBosses;
        }
        public int GetRecommendNpc()
@@ -202,12 +251,10 @@
            if (wearyValue < GeneralDefine.bossWearyValues[2])
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                for (int i = sortedBossIds.Count - 1; i >= 0; i--)
                {
                    var bossId = sortedBossIds[i];
                    var npcConfig = NPCConfig.Get(bossId);
                    if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV)
                    if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId))
                    {
                        return bossId;
                    }
@@ -221,7 +268,7 @@
        public int GetRecommendKillElite()
        {
            var Elite = dogzDungeonElite.GetAliveElite();
            var Elite = eliteInfo.GetAliveElite();
            if (Elite == 0)
            {
                Elite = eliteMonsters[0];
@@ -230,19 +277,19 @@
            return Elite;
        }
        public bool IsBossUnLocked(int _bossId)
        public bool IsBossUnLocked(int bossId)
        {
            if (_bossId == bigBoxNpcId || _bossId == smallBoxNpcId)
            if (bossId == bigBoxNpcId || bossId == smallBoxNpcId)
            {
                return true;
            }
            if (eliteMonsters.Contains(_bossId))
            if (eliteMonsters.Contains(bossId))
            {
                return true;
            }
            return bosses.ContainsKey(_bossId) && bosses[_bossId].isUnLocked;
            return bosses.ContainsKey(bossId) && findPreciousModel.IsBossUnlock(bossId);
        }
        public void RequestBoxAndEliteSurplusInfo()
@@ -328,31 +375,31 @@
                var npcInfo = _npcInfoes.NPCInfoList[i];
                if (npcInfo.NPCID == bigBoxNpcId)
                {
                    dogzDungeonBox.bigBoxSurplus = (int)npcInfo.Cnt;
                    boxInfo.bigBoxSurplus = (int)npcInfo.Cnt;
                    updatedBigBox = true;
                }
                if (npcInfo.NPCID == smallBoxNpcId)
                {
                    dogzDungeonBox.smallBoxSurplus = (int)npcInfo.Cnt;
                    boxInfo.smallBoxSurplus = (int)npcInfo.Cnt;
                    updatedSmallBox = true;
                }
                if (eliteMonsters.Contains((int)npcInfo.NPCID))
                {
                    dogzDungeonElite.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt);
                    eliteInfo.UpdateEliteInfo((int)npcInfo.NPCID, (int)npcInfo.Cnt);
                    updatedEliteNpcIds.Add((int)npcInfo.NPCID);
                }
            }
            if (!updatedBigBox)
            {
                dogzDungeonBox.bigBoxSurplus = 0;
                boxInfo.bigBoxSurplus = 0;
            }
            if (!updatedSmallBox)
            {
                dogzDungeonBox.smallBoxSurplus = 0;
                boxInfo.smallBoxSurplus = 0;
            }
            if (boxSurplusChangeEvent != null)
@@ -364,7 +411,7 @@
            {
                if (!updatedEliteNpcIds.Contains(item))
                {
                    dogzDungeonElite.UpdateEliteInfo(item, 0);
                    eliteInfo.UpdateEliteInfo(item, 0);
                }
            }
@@ -400,12 +447,12 @@
            if (containBox)
            {
                dogzDungeonBox.UpdateBoxRefreshTime(boxRefreshSecond);
                boxInfo.UpdateBoxRefreshTime(boxRefreshSecond);
            }
            if (containElite)
            {
                dogzDungeonElite.UpdateEliteRefreshTime(eliteRefreshSecond);
                eliteInfo.UpdateEliteRefreshTime(eliteRefreshSecond);
            }
            if (WindowCenter.Instance.IsOpen("CrossServerBossWin"))
@@ -553,12 +600,6 @@
    public class CrossServerBossData
    {
        public int id { get; private set; }
        public bool isUnLocked {
            get {
                return true;
            }
        }
        public CrossServerBossData(int _id)
        {
            this.id = _id;
System/CrossServerBoss/CrossServerBossWin.cs
@@ -21,7 +21,6 @@
        [SerializeField] BossIntroduceBehaviour m_BossIntroduce;
        [SerializeField] Button m_Goto;
        [SerializeField] ImageEx m_ImageGoto;
        [SerializeField] Button m_KillRecord;
        [SerializeField] Transform m_SurpassLevel;
        [SerializeField] RectTransform m_NoDamageTip;
@@ -108,7 +107,7 @@
        private void GotoKillBoss()
        {
            var error = 0;
            if ( model.CanEnter(out error) )
            if (model.CanEnter(out error))
            {
                if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
                {
@@ -188,6 +187,9 @@
                    m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
                    break;
            }
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
        }
        private void DisplayItemDropTip(int bossId)
@@ -198,14 +200,11 @@
                case 1:
                case 2:
                case 3:
                    m_NoDamageTip.gameObject.SetActive(true);
                    m_NoDamageTip.gameObject.SetActive(false);
                    m_SurpassLevel.gameObject.SetActive(false);
                    break;
                case 4:
                    var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
                    var npcConfig = NPCConfig.Get(bossId);
                    if (npcConfig.Realm > realmLevel)
                    if (!findPreciousModel.IsRealmEnoughToKillBoss(bossId))
                    {
                        m_NoDamageTip.gameObject.SetActive(true);
                        m_SurpassLevel.gameObject.SetActive(false);
@@ -245,6 +244,22 @@
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var config = CrossServerBossConfig.Get(model.selectedBoss);
            var isUnlock = config.MonsterType != 4 || 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);
            }
        }
    }
}
System/DogzDungeon/DogzBoxBehaviour.cs
File was deleted
System/DogzDungeon/DogzBoxBehaviour.cs.meta
File was deleted
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs
File was deleted
System/DogzDungeon/DogzDungeonBreifInfoBehaviour.cs.meta
File was deleted
System/DogzDungeon/DogzDungeonModel.cs
File was deleted
System/DogzDungeon/DogzDungeonModel.cs.meta
File was deleted
System/DogzDungeon/DogzDungeonWin.cs
File was deleted
System/DogzDungeon/DogzDungeonWin.cs.meta
File was deleted
System/DogzDungeon/DogzEliteMonsterBehaviour.cs
File was deleted
System/DogzDungeon/DogzEliteMonsterBehaviour.cs.meta
File was deleted
System/FindPrecious/BossHomeBreifInfoBehaviour.cs
@@ -6,8 +6,6 @@
using System.Collections;
using UnityEngine.UI;
using System;
namespace Snxxz.UI
{
@@ -28,7 +26,8 @@
            get {
                var config = BossHomeConfig.Get(bossId);
                var selected = selectedBossId == bossId;
                var dieOrLocked = config.MonsterType == 2 && !findPreciousModel.IsBossAlive(bossId);
                var dieOrLocked = config.MonsterType == 2 &&
                    (!findPreciousModel.IsBossAlive(bossId) || !findPreciousModel.IsBossUnlock(bossId));
                if (!dieOrLocked)
                {
@@ -55,9 +54,9 @@
            var config = BossHomeConfig.Get(bossId);
            var npcConfig = NPCConfig.Get(bossId);
            DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV,npcConfig.ClientRealm);
            DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.ClientRealm);
            UpdateBossPortrait(interactorableState);
            UpdateBossRebornCoolDown(true);
            UpdateBossRebornCoolDown(isUnLocked);
            OnSelected(bossId);
            model.bossSelectedEvent -= OnSelected;
@@ -75,6 +74,25 @@
            UpdateBossNameLevelFont(interactorableState);
        }
        protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
        {
            var bossHomeConfig = BossHomeConfig.Get(bossId);
            switch (bossHomeConfig.MonsterType)
            {
                case 1:
                    m_Portrait.SetSprite(icon);
                    m_Portrait.SetNativeSize();
                    m_BossName.text = name;
                    m_BossLevel.text = string.Empty;
                    m_RealmContainer.gameObject.SetActive(false);
                    m_UnLockCondition.gameObject.SetActive(false);
                    break;
                case 2:
                    base.DrawBossBaseInfo(icon, name, level, realm);
                    break;
            }
        }
        protected override void OnSubscribe(int _bossId)
        {
            base.OnSubscribe(_bossId);
System/FindPrecious/BossHomeModel.cs
@@ -7,9 +7,10 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class BossHomeModel : Model, IMapInitOk
    public class BossHomeModel : Model, IMapInitOk
    {
        public const int BOSSHOME_MAPID = 31020;
        public const int BOSSHOME_REDPOINT = 76002;
        int m_SelectedFloor = 0;
        public int selectedFloor {
@@ -45,9 +46,24 @@
            }
        }
        int m_WearyValue = 0;
        public int wearyValue {
            get { return m_WearyValue; }
            set {
                m_WearyValue = value;
                UpdateRedpoint();
                if (bossWearyValueChangeEvent != null)
                {
                    bossWearyValueChangeEvent();
                }
            }
        }
        public event Action<int> bossHomeFloorSelectedEvent;
        public event Action<int> bossSelectedEvent;
        public event Action bossWearyValueChangeEvent;
        public Redpoint bossHomeRedpoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, BOSSHOME_REDPOINT);
        Dictionary<int, BossHomeData> bossHomes = new Dictionary<int, BossHomeData>();
        Dictionary<int, int> vipLackFloorCost = new Dictionary<int, int>();
        List<int> sortedBosses = new List<int>();
@@ -56,10 +72,12 @@
        public override void Init()
        {
            ParseConfig();
            PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataChange;
        }
        public override void UnInit()
        {
            PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataChange;
        }
        public bool TryGetBossHomeData(int _layer, out BossHomeData _data)
@@ -127,6 +145,21 @@
            {
                return 0;
            }
        }
        private void OnPlayerDataChange(PlayerDataType _type)
        {
            if (_type == PlayerDataType.VIPLv)
            {
                UpdateRedpoint();
            }
        }
        private void UpdateRedpoint()
        {
            var count = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) - m_WearyValue;
            bossHomeRedpoint.count = count;
            bossHomeRedpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
        }
        private void ParseConfig()
@@ -200,7 +233,7 @@
        public void OnMapInitOk()
        {
            var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
            if (dataMapId == BOSSHOME_MAPID)
            {
                MapTransferUtility.Instance.MoveToNPC(selectedBoss);
@@ -213,29 +246,49 @@
        public int id { get; private set; }
        public List<int> bossIds = new List<int>();
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        public BossHomeData(int _id)
        {
            this.id = _id;
        }
        public List<int> GetShowBosses()
        {
            var bosses = new List<int>();
            for (var i = 0; i < bossIds.Count; i++)
            {
                var bossId = bossIds[i];
                if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
                {
                    bosses.Add(bossId);
                }
            }
            if (bosses.Count == 0)
            {
                bosses.Add(bossIds[0]);
            }
            return bosses;
        }
        public int GetRecommendNpc()
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            var recommendNpc = bossIds[bossIds.Count - 1];
            for (int i = 0; i < bossIds.Count; i++)
            var recommendNpc = bossIds[0];
            for (var i = bossIds.Count - 1; i >= 0; i--)
            {
                var bossHomeConfig = BossHomeConfig.Get(bossIds[i]);
                var npcConfig = NPCConfig.Get(bossIds[i]);
                if (bossHomeConfig.MonsterType == 2 && playerLevel < npcConfig.NPCLV)
                var bossId = bossIds[i];
                var bossHomeConfig = BossHomeConfig.Get(bossId);
                if (bossHomeConfig.MonsterType == 2 && findPreciousModel.IsBossUnlock(bossId))
                {
                    recommendNpc = bossIds[i];
                    break;
                }
            }
            return recommendNpc;
        }
    }
}
System/FindPrecious/BossHomeWin.cs
@@ -28,10 +28,13 @@
        [SerializeField] Transform m_SurpassLevel;
        [SerializeField] RectTransform m_NoDamageTip;
        [SerializeField] ToggleButton m_Subscribe;
        [SerializeField] RectTransform m_WearyContainer;
        [SerializeField] TextEx m_WearyValue;
        BossHomeModel model { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
        #region Built-in
        protected override void BindController()
@@ -50,6 +53,14 @@
            model.selectedFloor = model.GetRecommendFloor();
            m_FloorGroup.Init();
            m_Vip.text = StringUtility.Contact("V", model.GetFloorVipRequirement(model.selectedFloor));
            var wearyValueLimit = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit);
            m_WearyContainer.gameObject.SetActive(wearyValueLimit > 0);
            if (wearyValueLimit > 0)
            {
                m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit);
                m_WearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen;
            }
        }
        protected override void OnAfterOpen()
@@ -85,7 +96,7 @@
            if (model.TryGetBossHomeData(model.selectedFloor, out bossHomeData))
            {
                var bosses = new List<int>();
                bosses.AddRange(bossHomeData.bossIds);
                bosses.AddRange(bossHomeData.GetShowBosses());
                model.selectedBoss = bossHomeData.GetRecommendNpc();
                m_Bosses.Init(bosses);
                m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
@@ -112,13 +123,14 @@
                }
                DisplayTip(model.selectedBoss);
                DisplayGotoKillButton(model.selectedBoss);
                DisplaySubscribe(model.selectedBoss);
            }
        }
        private void ShowKillRecords()
        {
            ModelCenter.Instance.GetModel<FindPreciousModel>().ViewKillRecordsBoss = model.selectedBoss;
            findPreciousModel.ViewKillRecordsBoss = model.selectedBoss;
            WindowCenter.Instance.Open<KillRecordsWin>();
        }
@@ -136,6 +148,13 @@
        private void GotoKillBoss()
        {
            var config = BossHomeConfig.Get(model.selectedBoss);
            if (config.MonsterType == 2 && !findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
            {
                SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
                return;
            }
            var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            if (dataMapId != BossHomeModel.BOSSHOME_MAPID)
            {
@@ -143,7 +162,6 @@
                return;
            }
            var config = BossHomeConfig.Get(model.selectedBoss);
            if (PlayerDatas.Instance.baseData.dungeonLineId + 1 == config.FloorNum)
            {
                WindowCenter.Instance.Close<FindPreciousFrameWin>();
@@ -180,7 +198,7 @@
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
        }
        private void OnBossSelected(int _bossId)
        private void OnBossSelected(int bossId)
        {
            StopCoroutine("Co_DelayDisplayNpcBaseInfo");
            StartCoroutine("Co_DelayDisplayNpcBaseInfo");
@@ -193,6 +211,8 @@
            var config = BossHomeConfig.Get(bossId);
            DisplayTip(model.selectedBoss);
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
            switch (config.MonsterType)
            {
@@ -284,7 +304,7 @@
                return false;
            }
            var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
            if (dataMapId == BossHomeModel.BOSSHOME_MAPID
                && PlayerDatas.Instance.baseData.dungeonLineId == model.selectedFloor - 1)
            {
@@ -352,10 +372,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);
@@ -369,6 +386,22 @@
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var config = BossHomeConfig.Get(model.selectedBoss);
            var isUnlock = config.MonsterType == 1 || 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);
            }
        }
    }
}
System/FindPrecious/BossIntroduceBehaviour.cs
@@ -138,10 +138,6 @@
                    newRewards = demonJarConfig.NewItemIds;
                    break;
                case FindPreciousType.DogzDungeon:
                    undoubtedlyRewards = DogzDungeonConfig.Get(bossId).RareItemID;
                    newRewards = DogzDungeonConfig.Get(bossId).NewItemIds;
                    break;
                case FindPreciousType.CrossServerBoss:
                    undoubtedlyRewards = CrossServerBossConfig.Get(bossId).RareItemID;
                    newRewards = CrossServerBossConfig.Get(bossId).NewItemIds;
System/FindPrecious/DemonJarBriefInfoBehaviour.cs
@@ -27,7 +27,7 @@
        protected override InteractorableState interactorableState {
            get {
                var selected = selectedBossId == bossId;
                var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
                var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId);
                if (!dieOrLocked)
                {
@@ -45,13 +45,7 @@
        protected override bool isRebornRightNow {
            get {
                return model.IsBossUnLocked(bossId) && base.isRebornRightNow;
            }
        }
        protected override bool isUnLocked {
            get {
                return model.IsBossUnLocked(bossId);
                return findPreciousModel.IsBossUnlock(bossId) && base.isRebornRightNow;
            }
        }
@@ -110,8 +104,7 @@
        protected override void OnBossInfoUpdate(int _bossId)
        {
            base.OnBossInfoUpdate(_bossId);
            var unLocked = model.IsBossUnLocked(bossId);
            m_Participant.gameObject.SetActive(unLocked && findPreciousModel.IsBossAlive(bossId));
            m_Participant.gameObject.SetActive(isUnLocked && findPreciousModel.IsBossAlive(bossId));
        }
        private void UpdateBossParticipant(int _bossId)
System/FindPrecious/DemonJarModel.cs
@@ -77,7 +77,6 @@
            }
        }
        int demonJarSoulBuf = 0;
        public int demonJarSoulIncreaseDelta { get; set; }
        public event Action<int> bossSelectedEvent;
@@ -93,7 +92,6 @@
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        public override void Init()
        {
@@ -172,10 +170,13 @@
                    continue;
                }
                bosses.Add(bossId);
                if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
                {
                    bosses.Add(bossId);
                }
            }
            return new List<int>(bosses);
            return bosses;
        }
        public int GetBossIdByLine(int _line)
@@ -190,12 +191,6 @@
            }
        }
        public bool IsBossUnLocked(int _bossId)
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            return demonBosses.ContainsKey(_bossId) && playerLevel >= demonBosses[_bossId].unLockLevel;
        }
        public int GetLatestUnLockBoss()
        {
            if (FuncOpen.Instance.IsFuncOpen(76))
@@ -204,7 +199,7 @@
                for (int i = sortedBossIds.Count - 1; i >= 0; i--)
                {
                    var bossId = sortedBossIds[i];
                    if (demonBosses[bossId].unLockLevel <= PlayerDatas.Instance.baseData.LV)
                    if (findPreciousModel.IsBossUnlock(bossId))
                    {
                        latestBossId = bossId;
                        break;
@@ -328,17 +323,11 @@
            return new List<AutoChallengeLog>(autoChallengeLogs);
        }
        public void UpdateDemonJarSoul()
        {
            //demonJarSoulIncreaseDelta = demonJarSoul - demonJarSoulBuf;
            //demonJarSoulBuf = demonJarSoul;
        }
        private void OnPlayerLevelUp(PlayerDataType _type)
        {
            switch (_type)
            {
                case PlayerDataType.LV:
                case PlayerDataType.RealmLevel:
                    if (FuncOpen.Instance.IsFuncOpen(76))
                    {
                        var bossId = GetLatestUnLockBoss();
@@ -434,35 +423,34 @@
            }
        }
        private void AutoSubscribeLastUnLockBoss(int _bossId)
        private void AutoSubscribeLastUnLockBoss(int bossId)
        {
            if (_bossId == 0)
            if (bossId == 0)
            {
                return;
            }
            foreach (var boss in demonBosses.Values)
            {
                if (this.findPreciousModel.IsBossAutoSubscribe(boss.id) && boss.id != _bossId)
                if (this.findPreciousModel.IsBossAutoSubscribe(boss.id) && boss.id != bossId)
                {
                    this.findPreciousModel.RequestDeSubscribeBoss(boss.id);
                }
            }
            if (_bossId != 0 && this.findPreciousModel.IsBossNeverSubscribe((int)_bossId))
            if (bossId != 0 && this.findPreciousModel.IsBossNeverSubscribe(bossId))
            {
                var npcConfig = NPCConfig.Get((int)_bossId);
                if (PlayerDatas.Instance.baseData.LV >= npcConfig.NPCLV)
                if (findPreciousModel.IsBossUnlock(bossId))
                {
                    var config = DemonJarConfig.Get((int)_bossId);
                    var config = DemonJarConfig.Get(bossId);
                    if (config.AutoAttention == 1)
                    {
                        this.findPreciousModel.RequestSubscribeBoss((int)_bossId, true);
                        this.findPreciousModel.RequestSubscribeBoss(bossId, true);
                        var model = ModelCenter.Instance.GetModel<DungeonModel>();
                        var grade = model.GetGrade(new Dungeon(DATA_MAPID, config.LineID));
                        if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive((int)_bossId))
                        if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive(bossId))
                        {
                            this.findPreciousModel.AddOneBossRebornNotify(_bossId);
                            this.findPreciousModel.AddOneBossRebornNotify(bossId);
                        }
                    }
                }
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);
            }
        }
    }
System/FindPrecious/ElderGodAreaModel.cs
@@ -7,7 +7,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class ElderGodAreaModel : Model, IMapInitOk
    public class ElderGodAreaModel : Model, IMapInitOk
    {
        public const int ELDERGODAREA_MAPID = 31150;
@@ -80,47 +80,36 @@
            }
        }
        public bool IsBossUnLocked(int _bossId)
        {
            var config = ElderGodAreaConfig.Get(_bossId);
            if (config == null)
            {
                return false;
            }
            if (config.MonsterType == 1)
            {
                return true;
            }
            else
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel;
            }
        }
        public List<int> GetElderGodNpces()
        {
            var bosses = new List<int>();
            bosses.Add(sortedElites[0]);
            bosses.AddRange(sortedBossIds);
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                bosses.Add(sortedBossIds[i]);
            }
            return bosses;
        }
        public List<int> GetElderGodBosses()
        {
            var bosses = new List<int>();
            bosses.AddRange(sortedBossIds);
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                bosses.Add(sortedBossIds[i]);
            }
            return bosses;
        }
        public int GetRecommendNpc()
        {
            foreach (var item in sortedBossIds)
            for (var i = sortedBossIds.Count - 1; i >= 0; i--)
            {
                if (findPreciousModel.IsBossAlive(item))
                var bossId = sortedBossIds[i];
                if (findPreciousModel.IsBossUnlock(bossId) && findPreciousModel.IsBossAlive(bossId))
                {
                    return item;
                    return bossId;
                }
            }
System/FindPrecious/ElderGodAreaWin.cs
@@ -77,13 +77,14 @@
        {
            var bosses = new List<int>();
            bosses.AddRange(model.GetElderGodNpces());
            model.selectedBoss = model.GetRecommendNpc();
            DisplayNpcBaseInfo(true);
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
            DisplayNpcBaseInfo(true);
            DisplayTip(model.selectedBoss);
        }
@@ -117,12 +118,22 @@
                    case 3:
                        SysNotifyMgr.Instance.ShowTip("DungeonNoGO");
                        break;
                    case 4:
                        SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
                        break;
                }
            }
        }
        private bool TestEnterDungeon(out int _error)
        {
            var config = ElderGodAreaConfig.Get(model.selectedBoss);
            if (config.MonsterType == 2 && !findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
            {
                _error = 4;
                return false;
            }
            var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            if (dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
            {
@@ -170,9 +181,6 @@
        {
            StopCoroutine("Co_DelayDisplayNpcBaseInfo");
            StartCoroutine("Co_DelayDisplayNpcBaseInfo");
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(bossId);
            DisplayTip(bossId);
        }
        private void DisplayNpcBaseInfo(bool immediately)
@@ -201,7 +209,11 @@
        IEnumerator Co_DelayDisplayNpcBaseInfo()
        {
            yield return WaitingForSecondConst.WaitMS300;
            DisplayNpcBaseInfo(false);
            DisplayGotoKillButton(model.selectedBoss);
            DisplaySubscribe(model.selectedBoss);
            DisplayTip(model.selectedBoss);
            DisplayNpcBaseInfo(true);
        }
        private void CheckAchievementGuide()
@@ -221,10 +233,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);
            }
@@ -234,6 +243,23 @@
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var config = ElderGodAreaConfig.Get(model.selectedBoss);
            var isUnlock = config.MonsterType == 1 || 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);
            }
        }
    }
}
System/FindPrecious/ElderGodBreifInfoBehaviour.cs
@@ -28,7 +28,8 @@
            get {
                var selected = selectedBossId == bossId;
                var config = ElderGodAreaConfig.Get(bossId);
                var dieOrLocked = config.MonsterType == 2 && (!model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId));
                var dieOrLocked = config.MonsterType == 2
                    && (!findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId));
                if (!dieOrLocked)
                {
@@ -57,7 +58,7 @@
            var npcConfig = NPCConfig.Get(bossId);
            DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.ClientRealm);
            UpdateBossPortrait(interactorableState);
            UpdateBossRebornCoolDown(true);
            UpdateBossRebornCoolDown(isUnLocked);
            OnSelected(bossId);
            model.bossSelectedEvent -= OnSelected;
@@ -75,38 +76,22 @@
            UpdateBossNameLevelFont(interactorableState);
        }
        protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm)
        protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
        {
            var config = ElderGodAreaConfig.Get(bossId);
            m_Portrait.SetSprite(_icon);
            m_Portrait.SetNativeSize();
            switch (config.MonsterType)
            {
                case 1:
                    m_Portrait.SetSprite(icon);
                    m_Portrait.SetNativeSize();
                    m_BossName.text = Language.Get("ElderGodMonster");
                    m_BossLevel.text = string.Empty;
                    m_RealmContainer.gameObject.SetActive(false);
                    m_UnLockCondition.gameObject.SetActive(false);
                    break;
                case 2:
                    m_BossName.text = _name;
                    m_BossLevel.text = Language.Get("Z1024", _level);
                    if (m_Realm != null && m_RealmContainer != null)
                    {
                        if (_realm > 0 && RealmConfig.Has(_realm))
                        {
                            m_RealmContainer.gameObject.SetActive(true);
                            var realmConfig = RealmConfig.Get(_realm);
                            if (realmConfig != null)
                            {
                                m_Realm.SetSprite(realmConfig.Img);
                            }
                        }
                        else
                        {
                            m_RealmContainer.gameObject.SetActive(false);
                        }
                    }
                    base.DrawBossBaseInfo(icon, name, level, realm);
                    break;
                default:
                    break;
System/FindPrecious/FindPreciousBossBriefInfoBehaviour.cs
@@ -25,6 +25,8 @@
        [SerializeField] protected TextEx m_BossLevel;
        [SerializeField] protected RectTransform m_RealmContainer;
        [SerializeField] protected Image m_Realm;
        [SerializeField] protected RectTransform m_UnLockCondition;
        [SerializeField] protected Image m_UnLockRealm;
        [SerializeField] protected TimerBehaviour m_CoolDown;
        [SerializeField] protected Transform m_RefreshAtOnce;
        [SerializeField] protected Material m_NormalMaterial;
@@ -46,20 +48,23 @@
        protected virtual bool isRebornRightNow {
            get {
                FindPreciousModel.BossInfo bossInfo = null;
                if (findPreciousModel.TryGetBossInfo(bossId, out bossInfo))
                {
                    return !findPreciousModel.IsBossAlive(bossId) && TimeUtility.ServerNow > bossInfo.refreshTime;
                }
                else
                if (!findPreciousModel.IsBossUnlock(bossId))
                {
                    return false;
                }
                FindPreciousModel.BossInfo bossInfo = null;
                if (!findPreciousModel.TryGetBossInfo(bossId, out bossInfo))
                {
                    return false;
                }
                return !findPreciousModel.IsBossAlive(bossId) && TimeUtility.ServerNow > bossInfo.refreshTime;
            }
        }
        protected virtual bool isUnLocked {
            get { return true; }
            get { return findPreciousModel.IsBossUnlock(bossId); }
        }
        protected FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -83,27 +88,38 @@
            findPreciousModel.bossInfoUpdateEvent -= OnBossInfoUpdate;
        }
        protected virtual void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm)
        protected virtual void DrawBossBaseInfo(string icon, string name, int level, int realm)
        {
            m_Portrait.SetSprite(_icon);
            m_Portrait.SetSprite(icon);
            m_Portrait.SetNativeSize();
            m_BossName.text = _name;
            m_BossLevel.text = Language.Get("Z1024", _level);
            this.m_BossName.text = name;
            m_BossLevel.text = Language.Get("Z1024", level);
            if (m_Realm != null && m_RealmContainer != null)
            m_RealmContainer.gameObject.SetActive(isUnLocked);
            m_UnLockCondition.gameObject.SetActive(!isUnLocked);
            if (!isUnLocked)
            {
                if (_realm > 0 && RealmConfig.Has(_realm))
                var unLockRealm = findPreciousModel.GetBossUnLockRealm(bossId);
                var config = RealmConfig.Get(unLockRealm);
                m_UnLockRealm.SetSprite(config.Img);
            }
            else
            {
                if (m_Realm != null && m_RealmContainer != null)
                {
                    m_RealmContainer.gameObject.SetActive(true);
                    var realmConfig = RealmConfig.Get(_realm);
                    if (realmConfig != null)
                    if (realm > 0 && RealmConfig.Has(realm))
                    {
                        m_Realm.SetSprite(realmConfig.Img);
                        m_RealmContainer.gameObject.SetActive(true);
                        var realmConfig = RealmConfig.Get(realm);
                        if (realmConfig != null)
                        {
                            m_Realm.SetSprite(realmConfig.Img);
                        }
                    }
                }
                else
                {
                    m_RealmContainer.gameObject.SetActive(false);
                    else
                    {
                        m_RealmContainer.gameObject.SetActive(false);
                    }
                }
            }
        }
@@ -171,7 +187,6 @@
            }
            m_Selected.gameObject.SetActive(selected);
            //m_BackGround.SetSprite(selected ? "DemonJarSelectFrame" : "DemonJarNormalFrame");
            var fontPattern = string.Empty;
            switch (_state)
System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -120,9 +120,6 @@
                    break;
                case FindPreciousType.PersonalBoss:
                    break;
                case FindPreciousType.DogzDungeon:
                    GotoKillDogzDungeonBoss(bossId);
                    break;
                case FindPreciousType.CrossServerBoss:
                    GotoKillCrossServerBoss(bossId);
                    break;
@@ -277,27 +274,6 @@
                }
            }
        }
        private void GotoKillDogzDungeonBoss(int _bossId)
        {
            if (CrossServerUtility.IsCrossServer())
            {
                SysNotifyMgr.Instance.ShowTip("CrossMap10");
                return;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = MapConfig.Get(mapId);
            if (mapConfig.MapFBType == (int)MapType.OpenCountry)
            {
                MapTransferUtility.Instance.MoveToNPC(_bossId);
            }
            else
            {
                SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
            }
        }
        private void GotoKillCrossServerBoss(int _bossId)
System/FindPrecious/FindPreciousModel.cs
@@ -55,8 +55,8 @@
        WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        PersonalBossModel personalBossModel { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        JadeDynastyBossModel jadeDynastyBossModel { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public override void Init()
        {
@@ -259,6 +259,60 @@
            return bossInfos.TryGetValue(_bossId, out _bossInfo);
        }
        public bool IsBossUnlock(int bossId)
        {
            var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var myRealmStage = realmModel.GetRealmStage(myRealmLevel);
            var config = NPCConfig.Get(bossId);
            var bossRealmStage = realmModel.GetRealmStage(config.Realm);
            return myRealmStage >= bossRealmStage;
        }
        public bool IsBossUnlockOrUnlockSoon(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;
        }
        public bool IsRealmEnoughToKillBoss(int bossId)
        {
            var myRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var config = NPCConfig.Get(bossId);
            return myRealmLevel >= config.Realm;
        }
        public int GetBossUnLockRealm(int bossId)
        {
            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;
            }
        }
        public bool IsBossAlive(int _bossId)
        {
            if (demonJarModel.IsPersonalBoss(_bossId))
@@ -435,12 +489,10 @@
                findPreciousRedpoint.count = totalCount;
            }
            if (_redpointId == DogzDungeonModel.DOGZDUNGEON_REDPOINT ||
                _redpointId == JadeDynastyBossModel.JADEDYNASTY_REDPOINTID)
            if (_redpointId == JadeDynastyBossModel.JADEDYNASTY_REDPOINTID)
            {
                var dogzDungeonRedpointCount = dogzDungeonModel.redpoint.count;
                var jadeDynastyBossRedpointCount = jadeDynastyBossModel.redpoint.count;
                var totalCount = dogzDungeonRedpointCount + jadeDynastyBossRedpointCount;
                var totalCount = jadeDynastyBossRedpointCount;
                lootPreciousRedpoint.count = totalCount;
                lootPreciousRedpoint.state = totalCount > 0 ? RedPointState.Quantity : RedPointState.None;
@@ -468,10 +520,6 @@
            else if (PersonalBossConfig.Has(_bossId))
            {
                return FindPreciousType.PersonalBoss;
            }
            else if (DogzDungeonConfig.Has(_bossId))
            {
                return FindPreciousType.DogzDungeon;
            }
            else if (CrossServerBossConfig.Has(_bossId))
            {
System/FindPrecious/PersonalBossBriefInfoBehaviour.cs
@@ -26,7 +26,7 @@
        protected override InteractorableState interactorableState {
            get {
                var selected = selectedBossId == bossId;
                var dieOrLocked = !model.IsBossUnLocked(bossId);
                var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossUnlock(bossId);
                if (!dieOrLocked)
                {
@@ -52,7 +52,7 @@
            var npcConfig = NPCConfig.Get(bossId);
            DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.ClientRealm);
            UpdateBossPortrait(interactorableState);
            UpdateBossRebornCoolDown(true);
            UpdateBossRebornCoolDown(isUnLocked);
            OnSelected(bossId);
            model.bossSelectedEvent -= OnSelected;
@@ -68,10 +68,6 @@
        private void OnSelected(int _bossId)
        {
            UpdateBossNameLevelFont(interactorableState);
        }
        protected override void UpdateBossPortrait(InteractorableState _state)
        {
        }
    }
System/FindPrecious/PersonalBossModel.cs
@@ -47,7 +47,6 @@
            playerPack.refreshItemCountEvent += RefreshItemCount;
            PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataChange;
            dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordChange;
        }
        public override void UnInit()
@@ -72,13 +71,17 @@
        public List<int> GetPersonalBosses()
        {
            return new List<int>(sortedBossIds);
        }
            var bosses = new List<int>();
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                var bossId = sortedBossIds[i];
                if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
                {
                    bosses.Add(bossId);
                }
            }
        public bool IsBossUnLocked(int _bossId)
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            return personalBosses.ContainsKey(_bossId) && playerLevel >= personalBosses[_bossId].challengableLevel;
            return bosses;
        }
        public int GetLatestUnLockBoss()
@@ -86,7 +89,7 @@
            for (int i = sortedBossIds.Count - 1; i >= 0; i--)
            {
                var bossId = sortedBossIds[i];
                if (IsBossUnLocked(bossId))
                if (findPreciousModel.IsBossUnlock(bossId))
                {
                    return bossId;
                }
System/FindPrecious/PersonalBossWin.cs
@@ -9,10 +9,8 @@
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class PersonalBossWin : Window
    {
        [SerializeField] CyclicScroll m_Bosses;
@@ -22,6 +20,7 @@
        [SerializeField] RectTransform m_NoDamageTip;
        PersonalBossModel model { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        int enterTimes = 0;
@@ -71,10 +70,12 @@
            bosses.AddRange(model.GetPersonalBosses());
            model.selectedBoss = model.GetLatestUnLockBoss();
            m_BossIntroduce.Display(model.selectedBoss, true);
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
            DisplayGotoKillButton(model.selectedBoss);
            DisplayTip(model.selectedBoss);
        }
@@ -97,10 +98,7 @@
                        WindowCenter.Instance.Open<PersonalBossVipLackWin>();
                        break;
                    case 3:
                        var config = PersonalBossConfig.Get(model.selectedBoss);
                        var dungeonId = dungeonModel.GetDungeonId(PersonalBossModel.PERSONALBOSS_MAPID, config.lineId);
                        var dungeonConfig = DungeonConfig.Get(dungeonId);
                        SysNotifyMgr.Instance.ShowTip("PersonalBoss_LevelLimit", dungeonConfig.LVLimitMin);
                        SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
                        break;
                    case 4:
                        SysNotifyMgr.Instance.ShowTip("DungeonNoGO");
@@ -124,7 +122,7 @@
                return false;
            }
            if (!model.IsBossUnLocked(model.selectedBoss))
            if (!findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
            {
                _error = 3;
                return false;
@@ -144,6 +142,7 @@
        private void OnBossSelected(int bossId)
        {
            m_BossIntroduce.Display(bossId, false);
            DisplayGotoKillButton(model.selectedBoss);
            DisplayTip(bossId);
        }
@@ -162,6 +161,12 @@
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
            m_Goto.gameObject.SetActive(isUnLocked);
        }
    }
}
System/FindPrecious/WorldBossBreifInfoBehaviour.cs
@@ -14,8 +14,6 @@
    public class WorldBossBreifInfoBehaviour : FindPreciousBossBriefInfoBehaviour
    {
        [SerializeField] Image m_Attention;
        [SerializeField] RectTransform m_UnLockCondition;
        [SerializeField] Image m_UnLockRealm;
        protected override int selectedBossId {
            get {
@@ -29,7 +27,7 @@
        protected override InteractorableState interactorableState {
            get {
                var selected = selectedBossId == bossId;
                var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
                var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId);
                if (!dieOrLocked)
                {
@@ -47,7 +45,7 @@
        protected override bool isUnLocked {
            get {
                return model.IsBossUnLocked(bossId);
                return findPreciousModel.IsBossUnlock(bossId);
            }
        }
@@ -90,43 +88,6 @@
            }
            m_Attention.gameObject.SetActive(findPreciousModel.IsBossSubscribed(bossId));
        }
        protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
        {
            m_Portrait.SetSprite(icon);
            m_Portrait.SetNativeSize();
            m_BossName.text = name;
            m_BossLevel.text = Language.Get("Z1024", level);
            m_RealmContainer.gameObject.SetActive(isUnLocked);
            m_UnLockCondition.gameObject.SetActive(!isUnLocked);
            if (!isUnLocked)
            {
                var unLockRealm = model.GetBossUnLockRealm(bossId);
                var config = RealmConfig.Get(unLockRealm);
                m_UnLockRealm.SetSprite(config.Img);
            }
            else
            {
                if (m_Realm != null && m_RealmContainer != null)
                {
                    if (realm > 0 && RealmConfig.Has(realm))
                    {
                        m_RealmContainer.gameObject.SetActive(true);
                        var realmConfig = RealmConfig.Get(realm);
                        if (realmConfig != null)
                        {
                            m_Realm.SetSprite(realmConfig.Img);
                        }
                    }
                    else
                    {
                        m_RealmContainer.gameObject.SetActive(false);
                    }
                }
            }
        }
    }
System/FindPrecious/WorldBossModel.cs
@@ -84,7 +84,7 @@
            for (int i = 0; i < sortedBossIds.Count; i++)
            {
                var bossId = sortedBossIds[i];
                if (IsBossUnLockedOrUnlockSoon(bossId))
                if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
                {
                    activedBossIds.Add(bossId);
                }
@@ -110,11 +110,6 @@
            return bosses;
        }
        public bool IsBossUnLocked(int _bossId)
        {
            return worldBosses.ContainsKey(_bossId) && worldBosses[_bossId].isUnLocked;
        }
        public int GetRecommendBoss()
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
@@ -122,54 +117,15 @@
            {
                var bossId = sortedBossIds[i];
                var npcConfig = NPCConfig.Get(bossId);
                if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV)
                if (findPreciousModel.IsBossUnlock(bossId)
                    && findPreciousModel.IsBossAlive(bossId)
                    && playerLevel >= npcConfig.NPCLV)
                {
                    return bossId;
                }
            }
            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 OnFunctionChange(int id)
@@ -210,21 +166,7 @@
    public class WorldBossData
    {
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public int id { get; private set; }
        public bool isUnLocked {
            get {
                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;
            }
        }
        public WorldBossData(int _id)
        {
            this.id = _id;
System/FindPrecious/WorldBossWin.cs
@@ -142,9 +142,14 @@
        private bool TestGotoKillBoss(out int _error)
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var dataMapId = dungeonModel.GetDataMapIdByMapId(mapId);
            if (findPreciousModel.IsRealmEnoughToKillBoss(model.selectedBoss))
            {
                _error = 4;
                return false;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var dataMapId = MapUtility.GetDataMapId(mapId);
            if (dataMapId == BossHomeModel.BOSSHOME_MAPID || dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
            {
                _error = 1;
@@ -217,18 +222,21 @@
                case 3:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("BossRealmHint2", NPCConfig.Get(model.selectedBoss).Realm);
                    break;
            }
        }
        private void DisplayGotoKillButton(int bossId)
        {
            var isUnLocked = model.IsBossUnLocked(bossId);
            var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
            m_Goto.gameObject.SetActive(isUnLocked);
        }
        private void DisplaySubscribe(int bossId)
        {
            var isUnLocked = model.IsBossUnLocked(bossId);
            var isUnLocked = findPreciousModel.IsBossUnlock(bossId);
            m_Subscribe.gameObject.SetActive(isUnLocked);
            if (isUnLocked)
            {
@@ -238,10 +246,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);
System/MainInterfacePanel/InGamePushContainer.cs
@@ -35,8 +35,9 @@
        Dictionary<IInGamePush, Transform> m_InGamePushTrans = new Dictionary<IInGamePush, Transform>();
        WorldBossModel worldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FBHelpPointExchageModel exchageModel { get { return ModelCenter.Instance.GetModel<FBHelpPointExchageModel>(); } }
@@ -298,7 +299,7 @@
                        show = !GeneralDefine.worldBossNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.BossHome:
                        killable = true;
                        killable = bossHomeModel.wearyValue < vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit);
                        show = !GeneralDefine.bossHomeNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.ElderGodArea:
@@ -314,10 +315,6 @@
                            killable = totalTimes > enterTimes;
                            show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
                        }
                        break;
                    case FindPreciousType.DogzDungeon:
                        killable = dogzDungeonModel.wearyValue < GeneralDefine.bossWearyValues[2];
                        show = !GeneralDefine.dogzNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.CrossServerBoss:
                        killable = crossServerBossModel.wearyValue < GeneralDefine.bossWearyValues[2];
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -153,14 +153,9 @@
            if (isNeutralMap && !AdventureStage.Instance.IsInAdventureStage)
            {
                m_BossBriefInfos.gameObject.SetActive(true);
                if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID)
                if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
                {
                    var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses();
                    m_BossBriefInfos.Display(bosses);
                }
                else if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
                {
                    var bosses = ModelCenter.Instance.GetModel<CrossServerBossModel>().GetBosses();
                    var bosses = ModelCenter.Instance.GetModel<CrossServerBossModel>().GetShowBosses();
                    m_BossBriefInfos.Display(bosses);
                }
                else
System/WindowBase/ModelCenter.cs
@@ -178,7 +178,6 @@
            RegisterModel<TrialDungeonModel>();
            RegisterModel<ActivitiesPushModel>();
            RegisterModel<MultipleRealmPointModel>();
            RegisterModel<DogzDungeonModel>();
            RegisterModel<DogzModel>();
            RegisterModel<GodBeastModel>();
            RegisterModel<FeatureNoticeModel>();
Utility/ConfigInitiator.cs
@@ -232,7 +232,6 @@
        normalTasks.Add(new ConfigInitTask("DienstgradConfig", () => { DienstgradConfig.Init(); }, () => { return DienstgradConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DirtyNameConfig", () => { DirtyNameConfig.Init(); }, () => { return DirtyNameConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DogzConfig", () => { DogzConfig.Init(); }, () => { return DogzConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DogzDungeonConfig", () => { DogzDungeonConfig.Init(); }, () => { return DogzDungeonConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DogzEquipPlusConfig", () => { DogzEquipPlusConfig.Init(); }, () => { return DogzEquipPlusConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DungeonHelpBattleConfig", () => { DungeonHelpBattleConfig.Init(); }, () => { return DungeonHelpBattleConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("DungeonHintConfig", () => { DungeonHintConfig.Init(); }, () => { return DungeonHintConfig.inited; }));
Utility/EnumHelper.cs
@@ -1020,6 +1020,7 @@
    FairyDaimondGift = 23,
    MarketPutawayPwd = 24,
    DemonJar = 25,
    BossHomeAwardLimit = 27,
    DemonJarDouble = 28,
    BindJadeWheel = 30,
    PrayForDrug = 31,
@@ -1061,7 +1062,6 @@
    PersonalBoss = 2,
    ElderGodArea = 3,
    DemonJar = 4,
    DogzDungeon = 5,
    CrossServerBoss = 6,
    JadeDynastyBoss = 7,
    None = 99,