少年修仙传客户端代码仓库
client_linchunjie
2019-01-21 f74607492ebe5a96418cf392e5b2420d1508d6f2
Merge branch 'JadeDynastyBoss'
18个文件已修改
19个文件已添加
1832 ■■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/JadeDynastyBossConfig.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/JadeDynastyBossConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA0_Sys/HA007_tagGCFBLinePlayerCnt.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonBuyTimesWin.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonInspireBehaviour.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonRankBehaviour.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TargetBriefInfoWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossRebornBehaviour.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/LootPreciousFrameWin.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossKillRecord.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossKillRecord.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossModel.cs 458 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossWin.cs 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyBossWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyDamageRankWin.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/JadeDynastyBoss/JadeDynastyDamageRankWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/InGamePushContainer.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PlayerDead/ReliveWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,6 +25,7 @@
    public static void Init()
    {
        // 登记相应的数据体及对应的数据转逻辑类
        Register(typeof(HB212_tagMCZhuXianBossCnt), typeof(DTCB212_tagMCZhuXianBossCnt));
        Register(typeof(H0208_tagTalkCountry), typeof(DTC0208_tagTalkCountry));
        Register(typeof(HB102_tagMCClothesCoatSkinState), typeof(DTCB102_tagMCClothesCoatSkinState));
        Register(typeof(HA112_tagMCDBPlayer), typeof(DTCA112_tagMCDBPlayer));
Core/GameEngine/Model/Config/JadeDynastyBossConfig.cs
New file
@@ -0,0 +1,56 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Friday, January 18, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class JadeDynastyBossConfig : ConfigBase {
        public int NPCID { get ; private set ; }
        public int LineID { get ; private set ; }
        public int Time { get ; private set ; }
        public int RealmLV { get ; private set ; }
        public int ZhuXianScore { get ; private set ; }
        public string dropItems { get ; private set; }
        public string PortraitID { get ; private set; }
        public override string getKey()
        {
            return NPCID.ToString();
        }
        public override void Parse() {
            try
            {
                NPCID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                LineID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                Time=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                RealmLV=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                ZhuXianScore=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                dropItems = rawContents[5].Trim();
                PortraitID = rawContents[6].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/JadeDynastyBossConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: bc9f70989c6d3344aad5bd0dbda7bc2b
timeCreated: 1547804881
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/ConfigManager.cs
@@ -225,6 +225,7 @@
        AddAsyncTask<FashionDressConfig>();
        AddAsyncTask<WeekPartyPointConfig>();
        AddAsyncTask<SceneReplaceConfig>();
        AddAsyncTask<JadeDynastyBossConfig>();
        while (!AllCompleted())
        {
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs
@@ -1,25 +1,26 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 08, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCA007_tagGCFBLinePlayerCnt : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA007_tagGCFBLinePlayerCnt;
        ModelCenter.Instance.GetModel<MapModel>().UpdateDungeonMapLines(package);
    }
}
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 08, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using Snxxz.UI;
public class DTCA007_tagGCFBLinePlayerCnt : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA007_tagGCFBLinePlayerCnt;
        ModelCenter.Instance.GetModel<MapModel>().UpdateDungeonMapLines(package);
        ModelCenter.Instance.GetModel<JadeDynastyBossModel>().OnReceivePackage(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs
New file
@@ -0,0 +1,25 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using Snxxz.UI;
using System;
using System.Collections;
using System.Collections.Generic;
public class DTCB212_tagMCZhuXianBossCnt : DtcBasic
{
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HB212_tagMCZhuXianBossCnt;
        ModelCenter.Instance.GetModel<JadeDynastyBossModel>().OnReceivePackage(package);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HB2_ActionMap/DTCB212_tagMCZhuXianBossCnt.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 387e6e44272f55646a66a4613419d3a6
timeCreated: 1548040998
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HA0_Sys/HA007_tagGCFBLinePlayerCnt.cs
@@ -1,36 +1,35 @@
using UnityEngine;
using System.Collections;
// A0 07 副本地图功能线路人数 #tagGCFBLinePlayerCnt
public class HA007_tagGCFBLinePlayerCnt : GameNetPackBasic
{
    public uint MapID;    // 地图ID
    public byte Count;
    public tagGCFBLineInfo[] FBLineInfoList = null;
    public HA007_tagGCFBLinePlayerCnt()
    {
        _cmd = (ushort)0xA007;
    }
    public override void ReadFromBytes(byte[] vBytes)
    {
        TransBytes(out MapID, vBytes, NetDataType.DWORD);
        TransBytes(out Count, vBytes, NetDataType.BYTE);
        FBLineInfoList = new tagGCFBLineInfo[Count];
        for (int i = 0; i < Count; i++)
        {
            FBLineInfoList[i] = new tagGCFBLineInfo();
            TransBytes(out FBLineInfoList[i].FBLineID, vBytes, NetDataType.BYTE);
            TransBytes(out FBLineInfoList[i].PlayerCnt, vBytes, NetDataType.WORD);
        }
    }
    public struct tagGCFBLineInfo
    {
        public byte FBLineID;        // 功能线路ID
        public ushort PlayerCnt;        // 线路当前玩家数
    }
}
using UnityEngine;
using System.Collections;
// A0 07 副本地图功能线路人数 #tagGCFBLinePlayerCnt
public class HA007_tagGCFBLinePlayerCnt : GameNetPackBasic {
    public uint MapID;    // 地图ID
    public byte Count;
    public  tagGCFBLineInfo[] FBLineInfoList;
    public HA007_tagGCFBLinePlayerCnt () {
        _cmd = (ushort)0xA007;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out MapID, vBytes, NetDataType.DWORD);
        TransBytes (out Count, vBytes, NetDataType.BYTE);
        FBLineInfoList = new tagGCFBLineInfo[Count];
        for (int i = 0; i < Count; i ++) {
            FBLineInfoList[i] = new tagGCFBLineInfo();
            TransBytes (out FBLineInfoList[i].FBLineID, vBytes, NetDataType.BYTE);
            TransBytes (out FBLineInfoList[i].PlayerCnt, vBytes, NetDataType.WORD);
            TransBytes (out FBLineInfoList[i].ExtraStrLen, vBytes, NetDataType.WORD);
            TransBytes (out FBLineInfoList[i].ExtraStr, vBytes, NetDataType.Chars, FBLineInfoList[i].ExtraStrLen);
        }
    }
    public struct tagGCFBLineInfo {
        public byte FBLineID;        // 功能线路ID
        public ushort PlayerCnt;        // 线路当前玩家数
        public ushort ExtraStrLen;        // 长度
        public string ExtraStr;        // 额外信息
    }
}
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs
New file
@@ -0,0 +1,17 @@
using UnityEngine;
using System.Collections;
// B2 12 诛仙BOSS协助次数 #tagMCZhuXianBossCnt
public class HB212_tagMCZhuXianBossCnt : GameNetPackBasic {
    public byte Cnt;    // 剩余可协助次数
    public HB212_tagMCZhuXianBossCnt () {
        _cmd = (ushort)0xB212;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Cnt, vBytes, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ServerPack/HB2_ActionMap/HB212_tagMCZhuXianBossCnt.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f511f09c68c0ae345a0208282471b83e
timeCreated: 1548040944
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/DailyQuest/DailyQuestWin.cs
@@ -315,6 +315,10 @@
                    WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
                    WindowCenter.Instance.Open<CrossServerWin>();
                    break;
                case DailyQuestType.JadeDynastyBoss:
                    WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
                    WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
                    break;
                default:
                    CSharpCallLua.GotoLuaDailyQuest(_id);
                    break;
System/Dungeon/DungeonBuyTimesWin.cs
@@ -188,6 +188,24 @@
                    return false;
                }
            }
            else if (JadeDynastyBossModel.JADEDYNASTY_MAP == model.currentDungeon.mapId)
            {
                var _totalTimes = model.GetTotalTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
                var _enterTimes = model.GetEnterTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
                var jadeDynastyBossModel = ModelCenter.Instance.GetModel<JadeDynastyBossModel>();
                if ((_totalTimes - _enterTimes) >= jadeDynastyBossModel.challengeLimitCount)
                {
                    MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
                    return false;
                }
                var mapId = PlayerDatas.Instance.baseData.MapID;
                var dataMapId = model.GetDataMapIdByMapId(mapId);
                if (dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP)
                {
                    SysNotifyMgr.Instance.ShowTip("JadeDynastyBossBuyTimesError");
                    return false;
                }
            }
            return true;
        }
System/Dungeon/DungeonFightWin.cs
@@ -106,6 +106,9 @@
                case GatherSoulDungeonModel.DUNGEON_MAPID:
                    m_GatherSoulDungeonBehaviour.Display(this);
                    break;
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                    m_Inspire.gameObject.SetActive(true);
                    break;
                default:
                    break;
            }
System/Dungeon/DungeonInspireBehaviour.cs
@@ -53,7 +53,8 @@
            }
            switch (mapId)
            {
                case 52010:
                case DemonJarModel.DEMONJAR_MAPID:
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                    m_Icon.SetSprite("W_XYGuwu_a2");
                    break;
                default:
@@ -71,7 +72,7 @@
                && level < model.GetInspireMaxCount(mapId);
            if (m_InspireProgress != null)
            {
                m_InspireProgress.gameObject.SetActive(PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID);
                m_InspireProgress.gameObject.SetActive(IsRequireDisplayProgress());
                m_InspireProgress.text = StringUtility.Contact(level * model.GetDungeonInspireUpper(mapId), "%");
            }
            if (!m_Waggle)
@@ -103,6 +104,12 @@
            }
        }
        private bool IsRequireDisplayProgress()
        {
            return PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID
                || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP;
        }
        private void ResetTween()
        {
            m_Time = 0;
System/Dungeon/DungeonModel.cs
@@ -840,6 +840,12 @@
                        WindowCenter.Instance.Open<DemonJarDamageRankWin>();
                    }
                    break;
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                    if (!WindowCenter.Instance.IsOpen<JadeDynastyDamageRankWin>())
                    {
                        WindowCenter.Instance.Open<JadeDynastyDamageRankWin>();
                    }
                    break;
                case TreasureModel.TREASURE_MAPID:
                    break;
                case HeavenBattleModel.HEAVEBATTLE_MAPID:
@@ -900,6 +906,12 @@
                    if (!WindowCenter.Instance.IsOpen<DemonJarDamageRankWin>())
                    {
                        WindowCenter.Instance.Open<DemonJarDamageRankWin>();
                    }
                    break;
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                    if (!WindowCenter.Instance.IsOpen<JadeDynastyDamageRankWin>())
                    {
                        WindowCenter.Instance.Open<JadeDynastyDamageRankWin>();
                    }
                    break;
            }
@@ -990,6 +1002,9 @@
                                demonJarModel.autoChallengeBoss = 0;
                            }
                            break;
                        case JadeDynastyBossModel.JADEDYNASTY_MAP:
                            WindowCenter.Instance.Open<JadeDynastyBossVictoryWin>();
                            break;
                        case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
                        case 31160:
                            break;
System/Dungeon/DungeonRankBehaviour.cs
@@ -40,10 +40,11 @@
            {
                case 31170:
                case DemonJarModel.DEMONJAR_MAPID:
                case JadeDynastyBossModel.JADEDYNASTY_MAP:
                    {
                        int i = 0;
                        if (model.mission.hurtInfo != null && model.mission.hurtInfo.Length > 0)
                        {
                            int i = 0;
                            for (i = 0; i < model.mission.hurtInfo.Length; i++)
                            {
                                var rank = model.mission.hurtInfo[i].rank;
@@ -61,12 +62,12 @@
                                    SetMineInfo(rank, model.mission.hurtInfo[i].totalHurt);
                                }
                            }
                            while (i < playerNameTexts.Count)
                            {
                                playerNameTexts[i].text = string.Empty;
                                valueTexts[i].text = string.Empty;
                                i++;
                            }
                        }
                        while (i < playerNameTexts.Count)
                        {
                            playerNameTexts[i].text = string.Empty;
                            valueTexts[i].text = string.Empty;
                            i++;
                        }
                    }
                    break;
System/Dungeon/TargetBriefInfoWin.cs
@@ -34,7 +34,8 @@
        var mapId = PlayerDatas.Instance.baseData.MapID;
        var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(mapId);
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID
            || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP)
        {
            if (_show)
            {
@@ -77,7 +78,8 @@
        var mapId = PlayerDatas.Instance.baseData.MapID;
        var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(mapId);
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
        if (dataMapId == DemonJarModel.DEMONJAR_MAPID
            || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP)
        {
            DemonJarBossLifeBarWin win;
            if (!WindowCenter.Instance.IsOpen<DemonJarBossLifeBarWin>())
System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -130,6 +130,9 @@
                case FindPreciousType.CrossServerBoss:
                    GotoKillCrossServerBoss(bossId);
                    break;
                case FindPreciousType.JadeDynastyBoss:
                    GotoKillStrangleGodBoss(bossId);
                    break;
            }
            ReportConfirmBossRebornNotify();
@@ -334,6 +337,24 @@
            }
        }
        private void GotoKillStrangleGodBoss(int _bossId)
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = Config.Instance.Get<MapConfig>(mapId);
            if (mapConfig.MapFBType == (int)MapType.OpenCountry)
            {
                WindowCenter.Instance.Close<MainInterfaceWin>();
                var jadeDynastyBossModel = ModelCenter.Instance.GetModel<JadeDynastyBossModel>();
                jadeDynastyBossModel.assginSelectBossId = _bossId;
                WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
            }
            else
            {
                SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
            }
        }
        private void EnterBossHome(int _floor, int _bossId)
        {
            var error = 0;
System/FindPrecious/FindPreciousModel.cs
@@ -56,6 +56,7 @@
        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>(); } }
        public override void Init()
        {
@@ -431,11 +432,13 @@
            }
            if (_redpointId == DemonJarModel.DEMONJAR_REDPOINTID ||
                _redpointId == DogzDungeonModel.DOGZDUNGEON_REDPOINT)
                _redpointId == DogzDungeonModel.DOGZDUNGEON_REDPOINT ||
                _redpointId == JadeDynastyBossModel.JADEDYNASTY_REDPOINTID)
            {
                var demonJarRedpointCount = demonJarModel.redpoint.count;
                var dogzDungeonRedpointCount = dogzDungeonModel.redpoint.count;
                var totalCount = demonJarRedpointCount + dogzDungeonRedpointCount;
                var jadeDynastyBossRedpointCount = jadeDynastyBossModel.redpoint.count;
                var totalCount = demonJarRedpointCount + dogzDungeonRedpointCount + jadeDynastyBossRedpointCount;
                lootPreciousRedpoint.count = totalCount;
                lootPreciousRedpoint.state = totalCount > 0 ? RedPointState.Quantity : RedPointState.None;
@@ -472,7 +475,10 @@
            {
                return FindPreciousType.CrossServerBoss;
            }
            else if (jadeDynastyBossModel.IsJadeDynastyBoss(_bossId))
            {
                return FindPreciousType.JadeDynastyBoss;
            }
            return FindPreciousType.None;
        }
System/FindPrecious/LootPreciousFrameWin.cs
@@ -17,6 +17,7 @@
        [SerializeField] FunctionButton m_DemonJar;
        [SerializeField] FunctionButton m_FairyGrabBoss;
        [SerializeField] FunctionButton m_DogzDungeon;
        [SerializeField] FunctionButton m_JadeDynastyBoss;
        [SerializeField] Button m_Left;
        [SerializeField] Button m_Right;
@@ -32,11 +33,12 @@
            m_DemonJar.AddListener(ShowDemonJar);
            m_DogzDungeon.AddListener(ShowDogzDungeon);
            m_FairyGrabBoss.AddListener(FairyGrabBoss);
            m_JadeDynastyBoss.AddListener(JadeDynastyBoss);
            m_Left.AddListener(ShowLastFunction);
            m_Right.AddListener(ShowNextFunction);
            m_Close.AddListener(CloseClick);
        }
        }
        protected override void OnPreOpen()
        {
        }
@@ -91,6 +93,13 @@
            functionOrder = m_DogzDungeon.order;
        }
        private void JadeDynastyBoss()
        {
            CloseSubWindows();
            WindowCenter.Instance.Open<JadeDynastyBossWin>();
            functionOrder = m_JadeDynastyBoss.order;
        }
        private void CloseSubWindows()
        {
            var children = WindowConfig.Get().FindChildWindows("LootPreciousFrameWin");
System/JadeDynastyBoss.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: be9e87f41339d644c98549ba020a54a0
folderAsset: yes
timeCreated: 1547717228
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs
New file
@@ -0,0 +1,177 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class JadeDynastyBossBehaviour : FindPreciousBossBriefInfoBehaviour
    {
        [SerializeField] Transform m_ContainerChallengeable;
        [SerializeField] Transform m_ContainerUnChanllgeable;
        [SerializeField] Text m_ChallengeCondition;
        [SerializeField] Transform m_ContainerAttention;
        [SerializeField] Text m_Participant;
        JadeDynastyBossModel model
        {
            get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); }
        }
        public int bossNpcId { get; private set; }
        protected override int selectedBossId
        {
            get { return model.selectBossId; }
            set { model.selectBossId = value; }
        }
        protected override InteractorableState interactorableState
        {
            get
            {
                var selected = selectedBossId == bossId;
                var condition = 0;
                var dieOrLocked = !model.IsBossUnLocked(bossId, out condition) || !findPreciousModel.IsBossAlive(bossId);
                if (!dieOrLocked)
                {
                    return selected ? InteractorableState.NormalSelected : InteractorableState.NormalUnSelected;
                }
                else
                {
                    return selected ? InteractorableState.DieOrLockedSelected : InteractorableState.DieOrLockedUnSelected;
                }
            }
            set
            {
                base.interactorableState = value;
            }
        }
        protected override bool isRebornRightNow
        {
            get
            {
                var condition = 0;
                return model.IsBossUnLocked(bossId, out condition) && base.isRebornRightNow;
            }
        }
        protected override bool isUnLocked
        {
            get
            {
                var condition = 0;
                return model.IsBossUnLocked(bossId, out condition);
            }
        }
        public override void Display(object _data)
        {
            base.Display(_data);
            bossNpcId = (int)_data;
            DisplayBase();
            UpdateBossRebornCoolDown(isUnLocked);
            UpdateBossPortrait(interactorableState);
            UpdateBossNameLevelFont(interactorableState);
            DisplayParticipant();
            DisplayCondition();
            DisplaySubscrib();
            model.bossLineRefresh -= DisplayParticipant;
            model.bossLineRefresh += DisplayParticipant;
            model.selectBossRefresh -= SelectBossRefresh;
            model.selectBossRefresh += SelectBossRefresh;
            model.bossLineRefresh -= BossLineRefresh;
            model.bossLineRefresh += BossLineRefresh;
        }
        public override void Dispose()
        {
            base.Dispose();
            model.bossLineRefresh -= DisplayParticipant;
            model.selectBossRefresh -= SelectBossRefresh;
            model.bossLineRefresh -= BossLineRefresh;
        }
        protected override void OnSubscribe(int _bossId)
        {
            base.OnSubscribe(_bossId);
            if (bossId != _bossId)
            {
                return;
            }
            DisplaySubscrib();
        }
        protected override void OnBossInfoUpdate(int _bossId)
        {
            base.OnBossInfoUpdate(_bossId);
            var condition = 0;
            var unLocked = model.IsBossUnLocked(bossId, out condition);
            m_Participant.gameObject.SetActive(unLocked && findPreciousModel.IsBossAlive(bossId));
        }
        private void BossLineRefresh()
        {
            DisplayParticipant();
        }
        public void DisplayBase()
        {
            var config = Config.Instance.Get<NPCConfig>(bossNpcId);
            var jadeDynastyBossConfig = Config.Instance.Get<JadeDynastyBossConfig>(bossNpcId);
            DrawBossBaseInfo(jadeDynastyBossConfig.PortraitID, config.charName, config.NPCLV, config.ClientRealm);
        }
        private void DisplaySubscrib()
        {
            m_ContainerAttention.gameObject.SetActive(findPreciousModel.IsBossSubscribed(bossId));
        }
        private void DisplayParticipant()
        {
            m_Participant.gameObject.SetActive(isUnLocked && findPreciousModel.IsBossAlive(bossId));
            m_Participant.text = Language.Get("FindPrecious_8", model.GetParticipantCount(bossId));
        }
        private void DisplayCondition()
        {
            m_ContainerUnChanllgeable.gameObject.SetActive(!isUnLocked);
            m_ContainerChallengeable.gameObject.SetActive(isUnLocked);
            var conditionCode = 0;
            JadeDynastyBossCondition condition;
            m_ChallengeCondition.text = string.Empty;
            if (!model.IsBossUnLocked(bossId, out conditionCode)
                && model.TryGetCondition(bossId, out condition))
            {
                switch (conditionCode)
                {
                    case 1:
                        m_ChallengeCondition.text = Language.Get("JadeDynastyBossCondition1", condition.level);
                        break;
                    case 2:
                        m_ChallengeCondition.text = Language.Get("JadeDynastyBossCondition2",
                            UIHelper.GetRealmName(condition.realmLevel, true));
                        break;
                    case 3:
                        m_ChallengeCondition.text = Language.Get("JadeDynastyBossCondition3",
                            UIHelper.ReplaceLargeNum(condition.score));
                        break;
                }
            }
        }
        private void SelectBossRefresh(int bossId)
        {
            UpdateBossNameLevelFont(interactorableState);
        }
    }
}
System/JadeDynastyBoss/JadeDynastyBossBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2702bea692bcf804bae79ec04595d208
timeCreated: 1547717475
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossKillRecord.cs
New file
@@ -0,0 +1,21 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class JadeDynastyBossKillRecord : MonoBehaviour
    {
        [SerializeField] Text m_KillTime;
        [SerializeField] Text m_PlayerName;
        public void Display(DateTime time, string playerName)
        {
            m_KillTime.text = time.ToString("hh:mm:ss");
            m_PlayerName.text = UIHelper.ServerStringTrim(playerName);
        }
    }
}
System/JadeDynastyBoss/JadeDynastyBossKillRecord.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ee1187f4529637c48840fb84410ef1f7
timeCreated: 1547809917
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossModel.cs
New file
@@ -0,0 +1,458 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TableConfig;
using System;
namespace Snxxz.UI
{
    public class JadeDynastyBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IAfterPlayerDataInitialize
    {
        List<JadeDynastyBossData> jadeDynastyBosses = new List<JadeDynastyBossData>();
        Dictionary<int, JadeDynastyBossLine> jadeDynastyBossLineDict = new Dictionary<int, JadeDynastyBossLine>();
        Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>();
        public const int JADEDYNASTY_MAP = 31380;
        public const int FUNCTIONID = 163;
        public const int JADEDYNASTY_REDPOINTID = 77003;
        public event Action<int> selectBossRefresh;
        public event Action bossLineRefresh;
        public event Action assistTimeRefresh;
        public event Action jadeDynastyScoreRefresh;
        public ulong jadeDynastyScore
        {
            get
            {
                ulong score = 0;
                SinglePackModel singlePackModel = packModel.GetSinglePackModel(PackType.rptJadeDynastyEquip);
                if (singlePackModel != null)
                {
                    Dictionary<int, ItemModel> equipBodyDict = singlePackModel.GetPackModelIndexDict();
                    if (equipBodyDict != null && equipBodyDict.Count > 0)
                    {
                        foreach (var _equip in equipBodyDict.Values)
                        {
                            score += (ulong)_equip.equipScore;
                        }
                    }
                }
                return score;
            }
        }
        public int challengeLimitCount { get; private set; }
        public int challengeTimes { get; private set; }
        public int assistTimes { get; private set; }
        int m_SelectBossId = 0;
        public int selectBossId
        {
            get { return m_SelectBossId; }
            set
            {
                if (m_SelectBossId != value)
                {
                    m_SelectBossId = value;
                    if (selectBossRefresh != null)
                    {
                        selectBossRefresh(value);
                    }
                }
            }
        }
        public int assginSelectBossId { get; set; }
        public readonly Redpoint redpoint = new Redpoint(FindPreciousModel.LOOTPRECIOUs_REDPOINTID, JADEDYNASTY_REDPOINTID);
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        public override void Init()
        {
            ParseConfig();
            dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordUpdate;
            dungeonModel.updateDungeonBuyCnt += OnDungeonBuyCount;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
        }
        public void OnBeforePlayerDataInitialize()
        {
            jadeDynastyBossLineDict.Clear();
            challengeTimes = 0;
            assistTimes = 0;
        }
        public void OnAfterPlayerDataInitialize()
        {
        }
        public void OnPlayerLoginOk()
        {
            UpdateRedpoint();
        }
        public override void UnInit()
        {
            dungeonModel.dungeonRecordChangeEvent -= OnDungeonRecordUpdate;
            dungeonModel.updateDungeonBuyCnt -= OnDungeonBuyCount;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            packModel.RefreshItemCountAct -= RefreshItemCountAct;
        }
        void ParseConfig()
        {
            {
                var configs = Config.Instance.GetAllValues<JadeDynastyBossConfig>();
                foreach (var config in configs)
                {
                    var dungeonId = dungeonModel.GetDungeonId(JADEDYNASTY_MAP, config.LineID);
                    var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
                    jadeDynastyBosses.Add(new JadeDynastyBossData()
                    {
                        bossNpcId = config.NPCID,
                        lineId = config.LineID,
                        challengeCondition = new JadeDynastyBossCondition()
                        {
                            level = dungeonConfig.LVLimitMin,
                            realmLevel = config.RealmLV,
                            score = config.ZhuXianScore,
                        },
                    });
                    var itemArray = LitJson.JsonMapper.ToObject<int[][]>(config.dropItems);
                    List<Item> list = new List<Item>();
                    for (int k = 0; k < itemArray.Length; k++)
                    {
                        Item item = new Item()
                        {
                            id = itemArray[k][0],
                            count = itemArray[k][1],
                            bind = itemArray[k][2] == 1,
                        };
                        list.Add(item);
                    }
                    dropItemDict.Add(config.NPCID, list);
                }
                jadeDynastyBosses.Sort(SortCompare);
            }
            {
                var config = Config.Instance.Get<FuncConfigConfig>("ZhuXianBossCntCfg");
                challengeLimitCount = int.Parse(config.Numerical2);
            }
        }
        public bool IsJadeDynastyBoss(int bossNpcId)
        {
            var index = jadeDynastyBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossNpcId;
            });
            return index >= 0;
        }
        public bool IsBossUnLocked(int bossNpcId, out int condition)
        {
            condition = 0;
            var index = jadeDynastyBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossNpcId;
            });
            if (index != -1)
            {
                var challengeCondition = jadeDynastyBosses[index].challengeCondition;
                if (PlayerDatas.Instance.baseData.LV < challengeCondition.level)
                {
                    condition = 1;
                    return false;
                }
                if (PlayerDatas.Instance.baseData.realmLevel < challengeCondition.realmLevel)
                {
                    condition = 2;
                    return false;
                }
                if (jadeDynastyScore < (ulong)challengeCondition.score)
                {
                    condition = 3;
                    return false;
                }
            }
            return true;
        }
        public List<int> GetJadeDynastyBosses()
        {
            List<int> list = new List<int>();
            foreach (var boss in jadeDynastyBosses)
            {
                list.Add(boss.bossNpcId);
            }
            return list;
        }
        public int GetParticipantCount(int bossId)
        {
            var index = jadeDynastyBosses.FindIndex((x) =>
              {
                  return x.bossNpcId == bossId;
              });
            var lineId = -1;
            if (index != -1)
            {
                lineId = jadeDynastyBosses[index].lineId;
            }
            if (jadeDynastyBossLineDict.ContainsKey(lineId))
            {
                return jadeDynastyBossLineDict[lineId].playerCount;
            }
            return 0;
        }
        public int GetLatestUnLockBoss()
        {
            if (FuncOpen.Instance.IsFuncOpen(FUNCTIONID))
            {
                var latestBossId = jadeDynastyBosses[0].bossNpcId;
                foreach (var boss in jadeDynastyBosses)
                {
                    var condition = 0;
                    if (IsBossUnLocked(boss.bossNpcId, out condition))
                    {
                        latestBossId = boss.bossNpcId;
                    }
                }
                return latestBossId;
            }
            else
            {
                return jadeDynastyBosses[0].bossNpcId;
            }
        }
        public bool TryGetDropItems(int bossId, out List<Item> dropItems)
        {
            return dropItemDict.TryGetValue(bossId, out dropItems);
        }
        public bool TryGetCondition(int bossId, out JadeDynastyBossCondition condition)
        {
            var index = jadeDynastyBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossId;
            });
            condition = default(JadeDynastyBossCondition);
            if (index != -1)
            {
                condition = jadeDynastyBosses[index].challengeCondition;
            }
            return index != -1;
        }
        public bool TryGetBossLine(int bossId, out JadeDynastyBossLine mapLineState)
        {
            var index = jadeDynastyBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossId;
            });
            var lineId = -1;
            if (index != -1)
            {
                lineId = jadeDynastyBosses[index].lineId;
            }
            return jadeDynastyBossLineDict.TryGetValue(lineId, out mapLineState);
        }
        public bool TryEnterDungeon(int bossId,out int error)
        {
            var condition = 0;
            error = 0;
            if (!IsBossUnLocked(bossId, out condition))
            {
                switch (condition)
                {
                    case 1:
                        error = 1;
                        break;
                    case 2:
                        error = 2;
                        break;
                    case 3:
                        error = 3;
                        break;
                }
                return false;
            }
            var totalTimes = dungeonModel.GetTotalTimes(JADEDYNASTY_MAP);
            var enterTimes = dungeonModel.GetEnterTimes(JADEDYNASTY_MAP);
            if (enterTimes >= totalTimes && assistTimes <= 0)
            {
                error = 4;
                return false;
            }
            if (!findPreciousModel.IsBossAlive(bossId))
            {
                error = 5;
                return false;
            }
            if (CrossServerUtility.IsCrossServer())
            {
                error = 6;
                return false;
            }
            return true;
        }
        public void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 1:
                    SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_1");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_2");
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_3");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_4");
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("TryEnterJadeDynastyBossError_5");
                    break;
                case 6:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
            }
        }
        public void OnReceivePackage(HA007_tagGCFBLinePlayerCnt package)
        {
            if (package.MapID != JADEDYNASTY_MAP)
            {
                return;
            }
            jadeDynastyBossLineDict.Clear();
            for (int i = 0; i < package.Count; i++)
            {
                var mapState = package.FBLineInfoList[i];
                jadeDynastyBossLineDict[mapState.FBLineID] = new JadeDynastyBossLine()
                {
                    playerCount = mapState.PlayerCnt,
                    belongToPlayerName = mapState.ExtraStr,
                };
            }
            if (bossLineRefresh != null)
            {
                bossLineRefresh();
            }
        }
        public void OnReceivePackage(HB212_tagMCZhuXianBossCnt package)
        {
            assistTimes = package.Cnt;
            if (assistTimeRefresh != null)
            {
                assistTimeRefresh();
            }
        }
        public static int SortCompare(JadeDynastyBossData lhs, JadeDynastyBossData rhs)
        {
            if (lhs.challengeCondition.level != rhs.challengeCondition.level)
            {
                return lhs.challengeCondition.level.CompareTo(rhs.challengeCondition.level);
            }
            if (lhs.challengeCondition.realmLevel != rhs.challengeCondition.realmLevel)
            {
                return lhs.challengeCondition.realmLevel.CompareTo(rhs.challengeCondition.realmLevel);
            }
            if (lhs.challengeCondition.score != rhs.challengeCondition.score)
            {
                return lhs.challengeCondition.score.CompareTo(rhs.challengeCondition.score);
            }
            return 0;
        }
        private void OnDungeonRecordUpdate(int _dataMapId)
        {
            if (JADEDYNASTY_MAP == _dataMapId)
            {
                UpdateRedpoint();
            }
        }
        private void OnDungeonBuyCount()
        {
            UpdateRedpoint();
        }
        private void OnFuncStateChangeEvent(int id)
        {
            if (id == FUNCTIONID)
            {
                UpdateRedpoint();
            }
        }
        private void RefreshItemCountAct(PackType packType, int arg2, int arg3)
        {
            if (packType == PackType.rptJadeDynastyEquip)
            {
                UpdateRedpoint();
                if (jadeDynastyScoreRefresh != null)
                {
                    jadeDynastyScoreRefresh();
                }
            }
        }
        void UpdateRedpoint()
        {
            if (FuncOpen.Instance.IsFuncOpen(FUNCTIONID))
            {
                var count = dungeonModel.GetTotalTimes(JADEDYNASTY_MAP) - dungeonModel.GetEnterTimes(JADEDYNASTY_MAP);
                redpoint.count = count;
            }
            else
            {
                redpoint.count = 0;
            }
            redpoint.state = redpoint.count > 0 ? RedPointState.Quantity : RedPointState.None;
        }
    }
    public struct JadeDynastyBossData
    {
        public int bossNpcId;
        public int lineId;
        public JadeDynastyBossCondition challengeCondition;
    }
    public struct JadeDynastyBossCondition
    {
        public int level;
        public int realmLevel;
        public int score;
    }
    public struct JadeDynastyBossLine
    {
        public int playerCount;
        public string belongToPlayerName;
    }
}
System/JadeDynastyBoss/JadeDynastyBossModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d06ff7d7549599a4aa5a8a0dfc1e69f5
timeCreated: 1547717239
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs
New file
@@ -0,0 +1,251 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Saturday, January 19, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class JadeDynastyBossVictoryWin : Window
    {
        [SerializeField] Transform m_ContainerPoivt;
        [SerializeField] Transform m_ContainerKill;
        [SerializeField] Text m_Rank;
        [SerializeField] Transform m_ContainerAssist;
        [SerializeField] ScrollRect m_RewardsScroll;
        [SerializeField] Text m_ExitTimer;
        [SerializeField] HorizontalLayoutGroup m_RewardLayout;
        [SerializeField] ButtonEx m_Exit;
        float timer = 0f;
        List<DemonJarRewardBehaviour> rewardBehaviours = new List<DemonJarRewardBehaviour>();
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        JadeDynastyBossModel jadeDynastyModel { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_Exit.AddListener(ExitDungeon);
        }
        protected override void OnPreOpen()
        {
            timer = 0f;
            m_ContainerPoivt.gameObject.SetActive(false);
        }
        protected override void OnActived()
        {
            base.OnActived();
            var config = Config.Instance.Get<DungeonOpenTimeConfig>(model.dungeonResult.dataMapID);
            StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f));
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
            if (endTime > TimeUtility.ServerNow)
            {
                timer -= Time.deltaTime;
                if (timer < 0f)
                {
                    timer = 1f;
                    var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
                    m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
                }
                if (!m_ExitTimer.gameObject.activeInHierarchy)
                {
                    m_ExitTimer.gameObject.SetActive(true);
                }
            }
            else
            {
                if (m_ExitTimer.gameObject.activeInHierarchy)
                {
                    m_ExitTimer.gameObject.SetActive(false);
                }
            }
        }
        #endregion
        IEnumerator Co_DelayDisplay(float _delay)
        {
            yield return new WaitForSeconds(_delay);
            var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
            var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
            timer = 0f;
            m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
            m_ExitTimer.gameObject.SetActive(true);
            m_ContainerPoivt.gameObject.SetActive(true);
            DisplayRewards();
            var rank = model.dungeonResult.rank;
            m_ContainerAssist.gameObject.SetActive(rank != 1);
            m_ContainerKill.gameObject.SetActive(rank == 1);
            if (rank == 1)
            {
                DisplayKill();
            }
            else
            {
                DisplayAssist();
            }
        }
        private void DisplayKill()
        {
            m_Rank.text = Language.Get("DemonJar7", 1);
        }
        private void DisplayAssist()
        {
        }
        private void DisplayRewards()
        {
            var serverItems = model.dungeonResult.itemInfo;
            var items = new List<Item>();
            if (serverItems != null)
            {
                for (int i = 0; i < serverItems.Length; i++)
                {
                    items.Add(new Item(serverItems[i].ItemID, serverItems[i].Count));
                }
            }
            items.Sort(RewardSort);
            GenerateRewardBehaviour(m_RewardsScroll.content, items.Count);
            if (items.Count < 6)
            {
                m_RewardLayout.childAlignment = TextAnchor.MiddleCenter;
                (m_RewardLayout.transform as RectTransform).pivot = new Vector2(0.5f, 0.5f);
            }
            else
            {
                m_RewardLayout.childAlignment = TextAnchor.MiddleLeft;
                (m_RewardLayout.transform as RectTransform).pivot = new Vector2(0, 0.5f);
            }
            for (int i = 0; i < rewardBehaviours.Count; i++)
            {
                var behaviour = rewardBehaviours[i];
                if (i < items.Count)
                {
                    behaviour.gameObject.SetActive(true);
                    behaviour.Display(items[i]);
                }
                else
                {
                    behaviour.gameObject.SetActive(false);
                }
            }
        }
        private void ExitDungeon()
        {
            model.ExitCurrentDungeon();
        }
        private int RewardSort(Item _lhs, Item _rhs)
        {
            var islhsJadeDynastyEquip = IsJadeDynastyEquip(_lhs);
            var isrhsJadeDynastyEquip = IsJadeDynastyEquip(_rhs);
            if (islhsJadeDynastyEquip != isrhsJadeDynastyEquip)
            {
                return -islhsJadeDynastyEquip.CompareTo(isrhsJadeDynastyEquip);
            }
            var islhsJadeDynasty126 = IsJadeDynasty126(_lhs);
            var isrhsJadeDynasty126 = IsJadeDynasty126(_rhs);
            if (islhsJadeDynasty126 == isrhsJadeDynasty126
                && islhsJadeDynasty126)
            {
                return _lhs.id.CompareTo(_rhs.id);
            }
            else if (islhsJadeDynasty126 != isrhsJadeDynasty126)
            {
                return -islhsJadeDynasty126.CompareTo(isrhsJadeDynasty126);
            }
            var lhsConfig = Config.Instance.Get<ItemConfig>(_lhs.id);
            var rhsConfig = Config.Instance.Get<ItemConfig>(_rhs.id);
            if (lhsConfig != null && rhsConfig != null)
            {
                return -lhsConfig.ItemColor.CompareTo(rhsConfig.ItemColor);
            }
            return 0;
        }
        bool IsJadeDynastyEquip(Item item)
        {
            var config = Config.Instance.Get<ItemConfig>(item.id);
            var type = 0;
            if (config != null)
            {
                type = config.Type;
            }
            return type >= 128 && type <= 137;
        }
        bool IsJadeDynasty126(Item item)
        {
            var config = Config.Instance.Get<ItemConfig>(item.id);
            var type = 0;
            if (config != null)
            {
                type = config.Type;
            }
            return type == 126;
        }
        private void GenerateRewardBehaviour(RectTransform _parent, int _needCount)
        {
            var nowCount = rewardBehaviours.Count;
            var dif = _needCount - nowCount;
            if (dif > 0)
            {
                for (int i = 0; i < dif; i++)
                {
                    var instance = UIUtility.CreateWidget("DemonJarRewardBehaviour", "DemonJarRewardBehaviour");
                    var behaviour = instance.GetComponent<DemonJarRewardBehaviour>();
                    rewardBehaviours.Add(behaviour);
                    instance.transform.SetParentEx(_parent, Vector3.zero, Vector3.zero, Vector3.one);
                }
            }
        }
    }
}
System/JadeDynastyBoss/JadeDynastyBossVictoryWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 89694d5b27c7f1c429cd3c2a2cd449c1
timeCreated: 1547865026
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyBossWin.cs
New file
@@ -0,0 +1,386 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, January 17, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class JadeDynastyBossWin : Window
    {
        [SerializeField] CyclicScroll m_Bosses;
        [SerializeField] ItemCell[] m_Items;
        [SerializeField] Text m_ChallengeTimes;
        [SerializeField] Text m_AssistTimes;
        [SerializeField] Text m_JadeDynastyScore;
        [SerializeField] Button m_BuyTimes;
        [SerializeField] Transform m_SurpassLevel;
        [SerializeField] ToggleButton m_Subscribe;
        [SerializeField] Button m_Goto;
        [SerializeField] Transform m_ContainerKillRecord;
        [SerializeField] Transform m_ContainerNoneRecord;
        [SerializeField] Transform m_ContainerExistRecord;
        [SerializeField] JadeDynastyBossKillRecord[] m_KillRecords;
        [SerializeField] Transform m_ContainerBelongTo;
        [SerializeField] Text m_BelongToPlayerName;
        [SerializeField] Text m_BelongToNonePlayer;
        JadeDynastyBossModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        float refreshBossStateTime = 0f;
        DateTime lastRequestMapStateTime = DateTime.Now;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_BuyTimes.AddListener(BuyTimes);
            m_Subscribe.AddListener(SwitchSubscribeBoss);
            m_Goto.AddListener(GotoKillBoss);
        }
        protected override void OnPreOpen()
        {
            SetDefaultSelectBoss();
            refreshBossStateTime = -1f;
            FindPreciousModel.BossInfo bossInfo;
            if (findPreciousModel.TryGetBossInfo(model.selectBossId, out bossInfo) && !bossInfo.IsBossAlive())
            {
                if (TimeUtility.ServerNow <= bossInfo.refreshTime)
                {
                    var seconds = (int)(bossInfo.refreshTime - TimeUtility.ServerNow).TotalSeconds + 1;
                    refreshBossStateTime = Time.realtimeSinceStartup + seconds;
                }
            }
            lastRequestMapStateTime = DateTime.Now;
            mapModel.RequestQueryMapLineState(JadeDynastyBossModel.JADEDYNASTY_MAP);
            model.assginSelectBossId = 0;
        }
        protected override void OnActived()
        {
            base.OnActived();
            Display();
        }
        protected override void OnAfterOpen()
        {
            model.selectBossRefresh += SelectBossRefresh;
            dungeonModel.updateDungeonBuyCnt += ChallengeTimesRefresh;
            dungeonModel.dungeonRecordChangeEvent += ChallengeTimesRefresh;
            findPreciousModel.bossSubscribeChangeEvent += DisplaySubscribe;
            findPreciousModel.bossInfoUpdateEvent += BossInfoUpdateEvent;
            model.bossLineRefresh += BossLineRefresh;
            model.assistTimeRefresh += AssistTimeRefresh;
            model.jadeDynastyScoreRefresh += JadeDynastyScoreRefresh;
        }
        protected override void OnPreClose()
        {
            model.selectBossRefresh -= SelectBossRefresh;
            dungeonModel.updateDungeonBuyCnt -= ChallengeTimesRefresh;
            dungeonModel.dungeonRecordChangeEvent -= ChallengeTimesRefresh;
            findPreciousModel.bossSubscribeChangeEvent -= DisplaySubscribe;
            findPreciousModel.bossInfoUpdateEvent -= BossInfoUpdateEvent;
            model.bossLineRefresh -= BossLineRefresh;
            model.assistTimeRefresh -= AssistTimeRefresh;
            model.jadeDynastyScoreRefresh -= JadeDynastyScoreRefresh;
            refreshBossStateTime = -1f;
        }
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            if (refreshBossStateTime > 0)
            {
                if (Time.realtimeSinceStartup > refreshBossStateTime)
                {
                    DisplayKillRecord();
                    DisplayBelongTo();
                    refreshBossStateTime = -1f;
                }
            }
            if ((DateTime.Now - lastRequestMapStateTime).TotalSeconds >= 5f)
            {
                lastRequestMapStateTime = DateTime.Now;
                mapModel.RequestQueryMapLineState(JadeDynastyBossModel.JADEDYNASTY_MAP);
            }
        }
        #endregion
        public void SetDefaultSelectBoss()
        {
            if (model.assginSelectBossId != 0
                && model.IsJadeDynastyBoss(model.assginSelectBossId))
            {
                model.selectBossId = model.assginSelectBossId;
            }
            else
            {
                model.selectBossId = model.GetLatestUnLockBoss();
            }
        }
        public void Display()
        {
            DisplayBosses();
            DisplayChallengeTimes();
            DisplayDropItems();
            DisplaySubscribe(model.selectBossId);
            DisplayKillRecord();
            DisplayBelongTo();
            DisplayAssistTimes();
            DisplayJadeDynastyScore();
        }
        public void DisplayBosses()
        {
            var bosses = model.GetJadeDynastyBosses();
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectBossId));
        }
        public void DisplayChallengeTimes()
        {
            var totalTimes = dungeonModel.GetTotalTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
            var enterTimes = dungeonModel.GetEnterTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
            m_ChallengeTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", model.challengeLimitCount);
        }
        public void DisplayAssistTimes()
        {
            m_AssistTimes.text = model.assistTimes.ToString();
        }
        void DisplayDropItems()
        {
            List<Item> dropItems = null;
            model.TryGetDropItems(model.selectBossId, out dropItems);
            for (int i = 0; i < m_Items.Length; i++)
            {
                m_Items[i].cellBtn.RemoveAllListeners();
                if (dropItems != null && i < dropItems.Count)
                {
                    m_Items[i].gameObject.SetActive(true);
                    var item = dropItems[i];
                    ItemCellModel itemCellModel = new ItemCellModel(item.id, true, (ulong)item.count, item.bind ? 1 : 0);
                    m_Items[i].Init(itemCellModel);
                    m_Items[i].cellBtn.AddListener(() =>
                    {
                        ItemAttrData itemAttrData = new ItemAttrData(item.id, true, (ulong)item.count, -1, item.bind ? 1 : 0);
                        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
                    });
                }
                else
                {
                    m_Items[i].gameObject.SetActive(false);
                }
            }
            var npcDropConfig = Config.Instance.Get<NPCDropItemConfig>(model.selectBossId);
            var dropMaxLevel = 0;
            if (npcDropConfig != null)
            {
                dropMaxLevel = npcDropConfig.MaxLV;
            }
            m_SurpassLevel.gameObject.SetActive(dropMaxLevel != 0
                   && PlayerDatas.Instance.baseData.LV > dropMaxLevel);
        }
        private void DisplaySubscribe(int _bossId)
        {
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectBossId);
        }
        private void DisplayKillRecord()
        {
            var alive = findPreciousModel.IsBossAlive(model.selectBossId);
            m_ContainerKillRecord.gameObject.SetActive(!alive);
            if (!alive)
            {
                var killRecords = findPreciousModel.GetBossKillRecords(model.selectBossId);
                m_ContainerExistRecord.gameObject.SetActive(killRecords != null && killRecords.Count > 0);
                m_ContainerNoneRecord.gameObject.SetActive(killRecords == null || killRecords.Count == 0);
                if (killRecords != null && killRecords.Count > 0)
                {
                    for (int i = 0; i < m_KillRecords.Length; i++)
                    {
                        if (killRecords != null && i < killRecords.Count)
                        {
                            m_KillRecords[i].gameObject.SetActive(true);
                            m_KillRecords[i].Display(killRecords[i].killTime, killRecords[i].playerName);
                        }
                        else
                        {
                            m_KillRecords[i].gameObject.SetActive(false);
                        }
                    }
                }
            }
        }
        private void DisplayBelongTo()
        {
            var alive = findPreciousModel.IsBossAlive(model.selectBossId);
            m_ContainerBelongTo.gameObject.SetActive(alive);
            if (alive)
            {
                var belongToPlayer = false;
                JadeDynastyBossLine jadeDynastyBossLine;
                if (model.TryGetBossLine(model.selectBossId, out jadeDynastyBossLine))
                {
                    if (!string.IsNullOrEmpty(jadeDynastyBossLine.belongToPlayerName))
                    {
                        belongToPlayer = true;
                    }
                }
                m_BelongToNonePlayer.gameObject.SetActive(!belongToPlayer);
                m_BelongToPlayerName.gameObject.SetActive(belongToPlayer);
                if (belongToPlayer)
                {
                    m_BelongToPlayerName.text = jadeDynastyBossLine.belongToPlayerName;
                }
            }
        }
        private void DisplayJadeDynastyScore()
        {
            m_JadeDynastyScore.text = Language.Get("JadeDynastyBossWin_Score", UIHelper.ReplaceLargeNum(model.jadeDynastyScore));
        }
        private void SelectBossRefresh(int bossId)
        {
            DisplayDropItems();
            DisplaySubscribe(model.selectBossId);
            DisplayKillRecord();
            DisplayBelongTo();
            FindPreciousModel.BossInfo bossInfo;
            if (findPreciousModel.TryGetBossInfo(model.selectBossId, out bossInfo) && !bossInfo.IsBossAlive())
            {
                if (TimeUtility.ServerNow <= bossInfo.refreshTime)
                {
                    var seconds = (int)(bossInfo.refreshTime - TimeUtility.ServerNow).TotalSeconds + 1;
                    refreshBossStateTime = Time.realtimeSinceStartup + seconds;
                }
            }
        }
        private void BossLineRefresh()
        {
            DisplayBelongTo();
        }
        private void AssistTimeRefresh()
        {
            DisplayAssistTimes();
        }
        private void ChallengeTimesRefresh()
        {
            DisplayChallengeTimes();
        }
        private void ChallengeTimesRefresh(int mapId)
        {
            if (JadeDynastyBossModel.JADEDYNASTY_MAP != mapId)
            {
                return;
            }
            DisplayChallengeTimes();
        }
        private void JadeDynastyScoreRefresh()
        {
            DisplayJadeDynastyScore();
        }
        private void BuyTimes()
        {
            var totalTimes = dungeonModel.GetTotalTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
            var enterTimes = dungeonModel.GetEnterTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
            if ((totalTimes - enterTimes) >= model.challengeLimitCount)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
                return;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var dataMapId = dungeonModel.GetDataMapIdByMapId(mapId);
            if (dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP)
            {
                SysNotifyMgr.Instance.ShowTip("JadeDynastyBossBuyTimesError");
                return;
            }
            else
            {
                dungeonModel.currentDungeon = new Dungeon(JadeDynastyBossModel.JADEDYNASTY_MAP, 0);
                WindowCenter.Instance.Open<DungeonBuyTimesWin>();
            }
        }
        private void SwitchSubscribeBoss()
        {
            if (findPreciousModel.IsBossSubscribed(model.selectBossId))
            {
                findPreciousModel.RequestDeSubscribeBoss(model.selectBossId);
            }
            else
            {
                findPreciousModel.RequestSubscribeBoss(model.selectBossId, false);
            }
        }
        private void BossInfoUpdateEvent(int bossId)
        {
            if (bossId == model.selectBossId)
            {
                DisplayKillRecord();
                DisplayBelongTo();
            }
        }
        private void GotoKillBoss()
        {
            var error = 0;
            if (model.TryEnterDungeon(model.selectBossId, out error))
            {
                var config = Config.Instance.Get<JadeDynastyBossConfig>(model.selectBossId);
                dungeonModel.SingleChallenge(JadeDynastyBossModel.JADEDYNASTY_MAP, config.LineID);
            }
            else
            {
                model.DisplayErrorTip(error);
            }
        }
    }
}
System/JadeDynastyBoss/JadeDynastyBossWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 83c74804cfa865445b2b77e5bd090dd6
timeCreated: 1547717380
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/JadeDynastyBoss/JadeDynastyDamageRankWin.cs
New file
@@ -0,0 +1,52 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, January 18, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class JadeDynastyDamageRankWin : Window
    {
        [SerializeField] DungeonRankBehaviour m_RankBehaviour;
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
            var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            m_RankBehaviour.Init(dataMapId);
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
    }
}
System/JadeDynastyBoss/JadeDynastyDamageRankWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 118ee6dbac3babc488ba966899aae754
timeCreated: 1547814117
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/InGamePushContainer.cs
@@ -35,6 +35,7 @@
        DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
        JadeDynastyBossModel jadeDynastyBossModel { get { return ModelCenter.Instance.GetModel<JadeDynastyBossModel>(); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -269,10 +270,12 @@
                        show = !GeneralDefine.elderGodNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.DemonJar:
                        var totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
                        var enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
                        killable = totalTimes > enterTimes;
                        show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
                        {
                            var totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
                            var enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
                            killable = totalTimes > enterTimes;
                            show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
                        }
                        break;
                    case FindPreciousType.DogzDungeon:
                        killable = dogzDungeonModel.wearyValue < GeneralDefine.bossWearyValues[2];
@@ -282,6 +285,14 @@
                        killable = crossServerBossModel.wearyValue < GeneralDefine.bossWearyValues[2];
                        show = !GeneralDefine.dogzNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.JadeDynastyBoss:
                        {
                            var totalTimes = dungeonModel.GetTotalTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
                            var enterTimes = dungeonModel.GetEnterTimes(JadeDynastyBossModel.JADEDYNASTY_MAP);
                            killable = totalTimes > enterTimes;
                            show = !GeneralDefine.demonJarNoRebornRemindMaps.Contains(mapId);
                        }
                        break;
                }
                if (!killable)
System/PlayerDead/ReliveWin.cs
@@ -47,8 +47,9 @@
            MapConfig mapConfig = Config.Instance.Get<MapConfig>(curMapId);
            dieDesText.gameObject.SetActive(false);
            buffText.gameObject.SetActive(curMapId == ElderBattleMapID);
            inplaceRebornBtn.gameObject.SetActive(curMapId == UnionleagueMapID);
            switch(curMapId)
            inplaceRebornBtn.gameObject.SetActive(curMapId == UnionleagueMapID
                || curMapId == JadeDynastyBossModel.JADEDYNASTY_MAP);
            switch (curMapId)
            {
                case ElderBattleMapID:
                    SetBuffDes();
System/WindowBase/ModelCenter.cs
@@ -221,6 +221,7 @@
            RegisterModel<CrossServerBossModel>();
            RegisterModel<OpenServiceAchievementModel>();
            RegisterModel<FashionDressModel>();
            RegisterModel<JadeDynastyBossModel>();
            inited = true;
        }
Utility/EnumHelper.cs
@@ -326,6 +326,7 @@
    DungeonAssist = 29,
    GatherSoulDungeon = 30,
    CrossServerPk = 31,
    JadeDynastyBoss = 32,
}
public enum ActivityPrepareType
@@ -1169,6 +1170,7 @@
    DemonJarAuto = 32,
    AssistXianYuanCoinsAdd = 33,//助战仙缘币上限加成
    AssistXianYuanCoinsRatioAdd = 34,//助战仙缘币获得倍率加成(万分比)
    JadeDynastyBoss = 35,
}
@@ -1202,7 +1204,8 @@
    ElderGodArea = 3,
    DemonJar = 4,
    DogzDungeon = 5,
    CrossServerBoss=6,
    CrossServerBoss = 6,
    JadeDynastyBoss = 7,
    None = 99,
}