少年修仙传客户端代码仓库
client_linchunjie
2019-04-10 2c3ba44af2b76e327c473accc064d16a1433696f
6477 【前端】【2.0】仙盟boss进入界面修改
10个文件已修改
2个文件已添加
676 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Activity/ActivityModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Activity/ActivityNotifyBehaviour.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossBehaviour.cs 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossEntranceWin.cs 226 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/AllianceBossModel.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/LootPreciousFrameWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA0_Sys/DTCA007_tagGCFBLinePlayerCnt.cs
@@ -18,6 +18,7 @@
        ModelCenter.Instance.GetModel<MapModel>().UpdateDungeonMapLines(package);
        ModelCenter.Instance.GetModel<JadeDynastyBossModel>().OnReceivePackage(package);
        ModelCenter.Instance.GetModel<RidingPetBossModel>().ReceivePackage(package);
        ModelCenter.Instance.GetModel<AllianceBossModel>().ReceivePackage(package);
    }
}
System/Activity/ActivityModel.cs
@@ -285,8 +285,7 @@
                        }
                    }
                    break;
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                case DailyQuestType.AllianceBoss:
                    {
                        if (!PlayerDatas.Instance.fairyData.HasFairy)
                        {
System/Activity/ActivityNotifyBehaviour.cs
@@ -149,15 +149,8 @@
                    case DailyQuestType.CrossServerPk:
                        WindowCenter.Instance.Open<CrossServerWin>();
                        break;
                    case DailyQuestType.AllianceBoss1:
                        dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, 0);
                        AllianceBossEntranceWin.dailyQuestId = (int)DailyQuestType.AllianceBoss1;
                        WindowCenter.Instance.Open<AllianceBossEntranceWin>();
                        break;
                    case DailyQuestType.AllianceBoss2:
                        dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, 1);
                        AllianceBossEntranceWin.dailyQuestId = (int)DailyQuestType.AllianceBoss2;
                        WindowCenter.Instance.Open<AllianceBossEntranceWin>();
                    case DailyQuestType.AllianceBoss:
                        WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
                        break;
                }
            }
System/DailyQuest/DailyQuestModel.cs
@@ -209,8 +209,7 @@
                case DailyQuestType.FairyFeast:
                case DailyQuestType.FairyTask:
                case DailyQuestType.FairyGrabBoss:
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                case DailyQuestType.AllianceBoss:
                    return defaultUnlock && PlayerDatas.Instance.baseData.FamilyId > 0;
                case DailyQuestType.RuneTowerSweep:
                    return ModelCenter.Instance.GetModel<RuneTowerModel>().yesterdayPassFloor > 0;
@@ -479,8 +478,7 @@
        private void AllianceBossStateRefresh()
        {
            UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss1);
            UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss2);
            UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss);
        }
        private void OnPlayerDataRefresh(PlayerDataType _refreshType)
@@ -589,8 +587,7 @@
                                    }
                                    break;
                                case DailyQuestType.FairyGrabBoss:
                                case DailyQuestType.AllianceBoss1:
                                case DailyQuestType.AllianceBoss2:
                                case DailyQuestType.AllianceBoss:
                                    if (dailyQuestState == DailyQuestState.Normal)
                                    {
                                        dailyQuest.redpoint.state = completedTimes >= totalTimes ? RedPointState.None : RedPointState.Simple;
@@ -819,8 +816,7 @@
                        return DailyQuestState.Normal;
                    }
                    break;
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                case DailyQuestType.AllianceBoss:
                    if (allianceBossModel.isActivityOver)
                    {
                        return DailyQuestState.Completed;
@@ -885,8 +881,7 @@
            var _fairyModel = ModelCenter.Instance.GetModel<FairyModel>();
            switch (type)
            {
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss2:
                case DailyQuestType.AllianceBoss:
                    if (!PlayerDatas.Instance.fairyData.HasFairy)
                    {
                        return Language.Get("DailyQuestWin_Participate");
System/DailyQuest/DailyQuestWin.cs
@@ -316,11 +316,8 @@
                    WindowCenter.Instance.Close<DailyQuestWin>();
                    WindowCenter.Instance.Open<CrossServerWin>();
                    break;
                case DailyQuestType.AllianceBoss1:
                case DailyQuestType.AllianceBoss:
                    GotoAllianceBoss(_id, 0);
                    break;
                case DailyQuestType.AllianceBoss2:
                    GotoAllianceBoss(_id, 1);
                    break;
                default:
                    CSharpCallLua.GotoLuaDailyQuest(_id);
@@ -500,9 +497,7 @@
        private void GotoAllianceBoss(int id, int lineId)
        {
            dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, lineId);
            AllianceBossEntranceWin.dailyQuestId = id;
            WindowCenter.Instance.Open<AllianceBossEntranceWin>();
            WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
        }
        private void GotoTreasureCollectSoul()
System/FairyAu/AllianceBossBehaviour.cs
New file
@@ -0,0 +1,289 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class AllianceBossBehaviour : MonoBehaviour
    {
        [SerializeField] Text m_BossName;
        [SerializeField] Text m_BossState;
        [SerializeField] RawImage m_RawBoss;
        [SerializeField] ItemCell[] m_Items;
        [SerializeField] Button m_Goto;
        int index = 0;
        int m_State = 0;
        int state
        {
            get { return m_State; }
            set
            {
                if (m_State != value)
                {
                    m_State = value;
                    DisplayState();
                }
            }
        }
        float timer = 0f;
        AllianceBossModel model { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public void Display(int index)
        {
            this.index = index;
            DisplayBase();
            DisplayItems();
            RefreshState();
            DisplayState();
            m_Goto.SetListener(Goto);
            model.allianceBossStateRefresh += AllianceBossStateRefresh;
            model.allianceBossLineRefresh += AllianceBossLineRefresh;
        }
        void DisplayBase()
        {
            var npcId = model.GetBossNpcId(index);
            var npcConfig = NPCConfig.Get(npcId);
            m_BossName.text = npcConfig.charName;
        }
        void DisplayItems()
        {
            List<Item> items;
            model.TryGetItems(index, out items);
            for (int i = 0; i < m_Items.Length; i++)
            {
                if (items != null && i < items.Count)
                {
                    var item = items[i];
                    m_Items[i].gameObject.SetActive(true);
                    var itemModel = new ItemCellModel(item.id, true, (ulong)item.count);
                    m_Items[i].Init(itemModel);
                    m_Items[i].button.SetListener(() =>
                    {
                        var itemData = new ItemAttrData(item.id, true, (ulong)item.count);
                        ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemData);
                    });
                }
                else
                {
                    m_Items[i].gameObject.SetActive(false);
                }
            }
        }
        void RefreshState()
        {
            DailyQuestOpenTime dailyQuestOpenTime;
            if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.AllianceBoss, out dailyQuestOpenTime))
            {
                if (!dailyQuestOpenTime.InOpenTime())
                {
                    state = 0;
                    return;
                }
                else
                {
                    var hourMinutes = dailyQuestOpenTime.NormalOpenTimes.Values.First();
                    if (index < hourMinutes.Count)
                    {
                        if (!hourMinutes[index].InOpenTime())
                        {
                            state = 0;
                            return;
                        }
                        if (model.isActivityOver)
                        {
                            state = 2;
                        }
                        else
                        {
                            state = 1;
                        }
                    }
                }
            }
        }
        void DisplayState()
        {
            m_RawBoss.gameObject.SetActive(true);
            var npcData = new UI3DNPCExhibitionData()
            {
                npcId = model.GetBossNpcId(index),
                gray = state == 0,
                isDialogue = false,
            };
            if (index == 0)
            {
                UI3DModelExhibition.Instance.ShowNPC(m_RawBoss, npcData);
            }
            else
            {
                UI3DModelExhibition.InstanceClone1.ShowNPC(m_RawBoss, npcData);
            }
            m_Goto.gameObject.SetActive(state != 0);
            switch (state)
            {
                case 0:
                    DailyQuestOpenTime dailyQuestOpenTime;
                    if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.AllianceBoss, out dailyQuestOpenTime))
                    {
                        var hourMinutes = dailyQuestOpenTime.NormalOpenTimes.Values.First();
                        if (index < hourMinutes.Count)
                        {
                            m_BossState.text = StringUtility.Contact(Language.Get("ActivityTime"),
                                hourMinutes[index].ToOpenTime());
                        }
                    }
                    m_BossState.color = UIHelper.GetUIColor(TextColType.White);
                    break;
                case 1:
                    DisplayNpcHp();
                    m_BossState.color = UIHelper.GetUIColor(TextColType.White);
                    break;
                case 2:
                    m_BossState.text = Language.Get("AllianceBoss_1");
                    m_BossState.color = UIHelper.GetUIColor(TextColType.Red);
                    break;
            }
        }
        void DisplayNpcHp()
        {
            if (state != 1)
            {
                return;
            }
            AllianceBossModel.AllianceBossLine bossLine;
            var hp = 100;
            if (model.TryGetBossLine(index, out bossLine))
            {
                hp = bossLine.hp;
            }
            m_BossState.text = Language.Get("RidingPetBossRemainHP", hp);
        }
        private void LateUpdate()
        {
            timer += Time.deltaTime;
            if (timer >= 1f)
            {
                timer = 0f;
                RefreshState();
            }
        }
        private void Goto()
        {
            var error = 0;
            if (TestEnterAllianceBoss(out error))
            {
                dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, index);
            }
            else
            {
                DisplayErrorTip(error);
            }
        }
        bool TestEnterAllianceBoss(out int error)
        {
            error = 0;
            var dungeonId = dungeonModel.GetDungeonId(AllianceBossModel.DATAMAPID, index);
            var dungeonConfig = DungeonConfig.Get(dungeonId);
            if (dungeonConfig != null)
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                if (playerLevel < dungeonConfig.LVLimitMin)
                {
                    error = 1;
                    return false;
                }
            }
            if (CrossServerUtility.IsCrossServerBoss())
            {
                error = 3;
                return false;
            }
            if (model.isActivityOver)
            {
                error = 4;
                return false;
            }
            var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.AllianceBoss);
            if (dailyQuestState != DailyQuestModel.DailyQuestState.Normal)
            {
                error = 5;
                return false;
            }
            return true;
        }
        void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 1:
                    SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_268121", AllianceBossModel.DATAMAPID);
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("AllianceBossDead");
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("Join_Space_Lost");
                    break;
            }
        }
        private void AllianceBossStateRefresh()
        {
            RefreshState();
        }
        private void AllianceBossLineRefresh()
        {
            if (state == 1)
            {
                DisplayNpcHp();
            }
        }
        public void Dispose()
        {
            model.allianceBossStateRefresh -= AllianceBossStateRefresh;
            model.allianceBossLineRefresh -= AllianceBossLineRefresh;
            UI3DModelExhibition.Instance.StopShow();
            UI3DModelExhibition.InstanceClone1.StopShow();
        }
    }
}
System/FairyAu/AllianceBossBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9b8a35768bc6c7d44a66451b1861e74d
timeCreated: 1554863526
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FairyAu/AllianceBossEntranceWin.cs
@@ -14,218 +14,94 @@
    [XLua.Hotfix]
    public class AllianceBossEntranceWin : Window
    {
        [SerializeField] Text m_ActivityName;
        [SerializeField] Image m_Background;
        [SerializeField] AllianceBossBehaviour[] m_AllianceBosses;
        [SerializeField] Text m_OpenTime;
        [SerializeField] Text m_EnterTimes;
        [SerializeField] Text m_LimitLevel;
        [SerializeField] Text m_Description;
        [SerializeField] ItemBehaviour[] m_Items;
        [SerializeField] Button m_Goto;
        [SerializeField] Button m_Close;
        float timer = 0f;
        AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public static int dailyQuestId = 0;
        MapModel mapModel { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_Goto.AddListener(GotoAllianceBoss);
            m_Close.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            Display();
        }
            for (int i = 0; i < m_AllianceBosses.Length; i++)
            {
                m_AllianceBosses[i].Display(i);
            }
            DisplayTime();
            mapModel.RequestQueryMapLineState(AllianceBossModel.DATAMAPID);
            GlobalTimeEvent.Instance.secondEvent += PerSecond;
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            for (int i = 0; i < m_AllianceBosses.Length; i++)
            {
                m_AllianceBosses[i].Dispose();
            }
            GlobalTimeEvent.Instance.secondEvent -= PerSecond;
        }
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            timer += Time.deltaTime;
            if (timer >= 5f)
            {
                timer = 0f;
                mapModel.RequestQueryMapLineState(AllianceBossModel.DATAMAPID);
            }
        }
        #endregion
        void Display()
        private void PerSecond()
        {
            DisplayBase();
            DisplayEnterTimes();
            DisplayTime();
        }
        void DisplayBase()
        void DisplayTime()
        {
            var config = DailyQuestConfig.Get(dailyQuestId);
            m_ActivityName.text = config.Title;
            DailyQuestOpenTime openTime;
            if (dailyQuestModel.TryGetOpenTime(dailyQuestId, out openTime))
            DailyQuestOpenTime dailyQuestOpenTime;
            if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.AllianceBoss, out dailyQuestOpenTime))
            {
                if (openTime.always)
                if (dailyQuestOpenTime.InOpenTime())
                {
                    m_OpenTime.text = Language.Get("DailyQuest_NoTimeLimit");
                    var seconds = 0;
                    HourMinute hourMinute;
                    if (dailyQuestOpenTime.TryGetTodayNearestOpenTime(out hourMinute))
                    {
                        var endTime = new DateTime(TimeUtility.Year, TimeUtility.Month, TimeUtility.Day,
                            hourMinute.hourEnd, hourMinute.minuteEnd, 0);
                        seconds = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds);
                        seconds = Mathf.Max(0, seconds);
                    }
                    m_OpenTime.text = Language.Get("AllianceBoss_3", TimeUtility.SecondsToHMS(seconds));
                }
                else
                {
                    var week = (int)TimeUtility.ServerNow.DayOfWeek;
                    var openTimes = openTime.GetHourMinuteByWeek(week);
                    if (openTimes != null)
                    {
                        var stringArray = new string[openTimes.Count];
                        for (int i = 0; i < openTimes.Count; i++)
                        {
                            stringArray[i] = openTimes[i].ToString();
                        }
                        m_OpenTime.text = string.Join(",", stringArray);
                    }
                    var seconds = dailyQuestOpenTime.GetNextSessionSurplusTime();
                    m_OpenTime.text = Language.Get("AllianceBoss_2", TimeUtility.SecondsToHMS(seconds));
                }
            }
            switch ((DailyQuestType)dailyQuestId)
            {
                case DailyQuestType.AllianceBoss1:
                    m_Background.SetSprite("AllianceBossBG1");
                    break;
                case DailyQuestType.AllianceBoss2:
                    m_Background.SetSprite("AllianceBossBG2");
                    break;
            }
            var dungeon = dungeonModel.currentDungeon;
            var dungeonId = dungeonModel.GetDungeonId(dungeon);
            var dungeonConfig = DungeonConfig.Get(dungeonId);
            if (dungeonConfig != null)
            {
                var levelLimitMin = dungeonConfig.LVLimitMin;
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                m_LimitLevel.text = levelLimitMin.ToString();
                m_LimitLevel.color = playerLevel >= levelLimitMin ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red, true);
                m_Description.text = dungeonConfig.Description;
                for (int i = 0; i < m_Items.Length; i++)
                {
                    var behaviour = m_Items[i];
                    if (i < dungeonConfig.Rewards.Length)
                    {
                        behaviour.gameObject.SetActive(true);
                        behaviour.showCount = false;
                        behaviour.SetItem(dungeonConfig.Rewards[i], 0);
                    }
                    else
                    {
                        behaviour.gameObject.SetActive(false);
                    }
                }
            }
        }
        void DisplayEnterTimes()
        {
            var enterTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId);
            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId);
            m_EnterTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes);
            m_EnterTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red);
        }
        private void GotoAllianceBoss()
        {
            var error = 0;
            if (TestEnterAllianceBoss(dailyQuestId, out error))
            {
                if ((DailyQuestType)dailyQuestId == DailyQuestType.AllianceBoss1)
                {
                    dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 0);
                }
                else
                {
                    dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 1);
                }
            }
            else
            {
                DisplayErrorTip(error);
            }
        }
        bool TestEnterAllianceBoss(int id, out int error)
        {
            error = 0;
            var lineId = 0;
            var dungeonId = 0;
            switch ((DailyQuestType)id)
            {
                case DailyQuestType.AllianceBoss1:
                    lineId = 0;
                    break;
                case DailyQuestType.AllianceBoss2:
                    lineId = 1;
                    break;
            }
            dungeonId = dungeonModel.GetDungeonId(AllianceBossModel.DATAMAPID, lineId);
            var dungeonConfig = DungeonConfig.Get(dungeonId);
            if (dungeonConfig != null)
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                if (playerLevel < dungeonConfig.LVLimitMin)
                {
                    error = 1;
                    return false;
                }
            }
            if (CrossServerUtility.IsCrossServerBoss())
            {
                error = 3;
                return false;
            }
            if (allianceBossModel.isActivityOver)
            {
                error = 4;
                return false;
            }
            var dailyQuestState = dailyQuestModel.GetQuestState(dailyQuestId);
            if (dailyQuestState != DailyQuestModel.DailyQuestState.Normal)
            {
                error = 5;
                return false;
            }
            return true;
        }
        void DisplayErrorTip(int error)
        {
            switch (error)
            {
                case 1:
                    SysNotifyMgr.Instance.ShowTip("DemonJar_Text2");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_268121", AllianceBossModel.DATAMAPID);
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("AllianceBossDead");
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("Join_Space_Lost");
                    break;
            }
        }
    }
System/FairyAu/AllianceBossModel.cs
@@ -8,6 +8,10 @@
    [XLua.Hotfix]
    public class AllianceBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        List<int> m_BossIds = new List<int>();
        Dictionary<int, List<Item>> m_Items = new Dictionary<int, List<Item>>();
        Dictionary<int, AllianceBossLine> m_AllianceBossLines = new Dictionary<int, AllianceBossLine>();
        public const int DATAMAPID = 31260;
        public bool isActivityOver { get; private set; }
        public int participateLimit { get; private set; }
@@ -15,6 +19,7 @@
        public List<Item> inspireRewards { get; private set; }
        public event Action allianceBossStateRefresh;
        public event Action allianceBossLineRefresh;
        public override void Init()
        {
@@ -24,6 +29,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            isActivityOver = false;
            m_AllianceBossLines.Clear();
        }
        public void OnPlayerLoginOk()
@@ -32,6 +38,21 @@
        public override void UnInit()
        {
        }
        public int GetBossNpcId(int index)
        {
            return index < m_BossIds.Count ? m_BossIds[index] : 0;
        }
        public bool TryGetItems(int index, out List<Item> items)
        {
            return m_Items.TryGetValue(index, out items);
        }
        public bool TryGetBossLine(int index, out AllianceBossLine bossLine)
        {
            return m_AllianceBossLines.TryGetValue(index, out bossLine);
        }
        void ParseConfig()
@@ -51,6 +72,30 @@
                    count = item[1],
                });
            }
            config = FuncConfigConfig.Get("AllianceBoss");
            m_BossIds.AddRange(ConfigParse.GetMultipleStr<int>(config.Numerical1));
            m_Items.Add(0, new List<Item>());
            var itemsArray = ConfigParse.GetMultipleStr<int>(config.Numerical2);
            for (int i = 0; i < itemsArray.Length; i++)
            {
                m_Items[0].Add(new Item()
                {
                    id = itemsArray[i],
                    count = 1,
                });
            }
            m_Items.Add(1, new List<Item>());
            itemsArray = ConfigParse.GetMultipleStr<int>(config.Numerical2);
            for (int i = 0; i < itemsArray.Length; i++)
            {
                m_Items[1].Add(new Item()
                {
                    id = itemsArray[i],
                    count = 1,
                });
            }
        }
        public void ReceivePackage(HA40C_tagGCAllFamilyBossInfo package)
@@ -61,6 +106,37 @@
                allianceBossStateRefresh();
            }
        }
        public void ReceivePackage(HA007_tagGCFBLinePlayerCnt package)
        {
            if (package.MapID != DATAMAPID)
            {
                return;
            }
            m_AllianceBossLines.Clear();
            for (int i = 0; i < package.Count; i++)
            {
                var data = package.FBLineInfoList[i];
                m_AllianceBossLines[data.FBLineID] = new AllianceBossLine()
                {
                    playerCount = data.PlayerCnt,
                    hp = int.Parse(data.ExtraStr)
                };
            }
            if (allianceBossLineRefresh != null)
            {
                allianceBossLineRefresh();
            }
        }
        public struct AllianceBossLine
        {
            public int playerCount;
            public int hp;
        }
    }
}
System/FindPrecious/LootPreciousFrameWin.cs
@@ -18,7 +18,10 @@
        [SerializeField] FunctionButton m_FairyGrabBoss;
        [SerializeField] FunctionButton m_DogzDungeon;
        [SerializeField] FunctionButton m_JadeDynastyBoss;
        [SerializeField] FunctionButton m_AllianceBoss;
        [SerializeField] FunctionButton m_RidingPetContention;
        [SerializeField] Transform m_NormalBottom;
        [SerializeField] Button m_Left;
        [SerializeField] Button m_Right;
@@ -36,6 +39,7 @@
            m_RidingPetContention.AddListener(ShowRidingPetContention);
            m_FairyGrabBoss.AddListener(FairyGrabBoss);
            m_JadeDynastyBoss.AddListener(JadeDynastyBoss);
            m_AllianceBoss.AddListener(AllianceBoss);
            m_Left.AddListener(ShowLastFunction);
            m_Right.AddListener(ShowNextFunction);
            m_Close.AddListener(CloseClick);
@@ -76,7 +80,10 @@
        private void ShowDemonJar()
        {
            CloseSubWindows();
            CloseSubWindows();
            m_NormalBottom.gameObject.SetActive(true);
            WindowCenter.Instance.Open<DemonJarWin>();
            functionOrder = m_DemonJar.order;
        }
@@ -91,6 +98,9 @@
        private void ShowDogzDungeon()
        {
            CloseSubWindows();
            m_NormalBottom.gameObject.SetActive(true);
            WindowCenter.Instance.Open<DogzDungeonWin>();
            functionOrder = m_DogzDungeon.order;
        }
@@ -109,8 +119,17 @@
            functionOrder = m_JadeDynastyBoss.order;
        }
        private void AllianceBoss()
        {
            CloseSubWindows();
            WindowCenter.Instance.Open<AllianceBossEntranceWin>();
            functionOrder = m_AllianceBoss.order;
        }
        private void CloseSubWindows()
        {
            m_NormalBottom.gameObject.SetActive(false);
            var children = WindowConfig.Get().FindChildWindows("LootPreciousFrameWin");
            foreach (var window in children)
            {
System/WindowJump/WindowJumpMgr.cs
@@ -703,14 +703,7 @@
                SetJumpLogic<RankPanel>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.AllianceBoss1:
                AllianceBossEntranceWin.dailyQuestId = (int)DailyQuestType.AllianceBoss1;
                dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, 0);
                SetJumpLogic<AllianceBossEntranceWin>();
                break;
            case JumpUIType.AllianceBoss2:
                AllianceBossEntranceWin.dailyQuestId = (int)DailyQuestType.AllianceBoss2;
                dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, 1);
                SetJumpLogic<AllianceBossEntranceWin>();
                SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.FairyAuction:
                SetJumpLogic<AuctionHouseWin>(_tagWinSearchModel.TABID);
@@ -1086,7 +1079,6 @@
                }
                break;
            case JumpUIType.AllianceBoss1:
            case JumpUIType.AllianceBoss2:
                if (!PlayerDatas.Instance.fairyData.HasFairy)
                {
                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
Utility/EnumHelper.cs
@@ -289,8 +289,7 @@
    DungeonAssist = 29,
    GatherSoulDungeon = 30,
    CrossServerPk = 31,
    AllianceBoss1 = 32,
    AllianceBoss2 = 33,
    AllianceBoss = 32,
    //JadeDynastyBoss = 32,--诛仙功能暂时关闭
    //JadeDynastyTower = 33,
}