少年修仙传客户端代码仓库
client_linchunjie
2019-04-08 1dd9883f87e8fdee836279bb3f89f2646bfa24b7
3335 缥缈仙域
1 文件已复制
2个文件已删除
2 文件已重命名
3个文件已添加
10个文件已修改
681 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/HazyRegionConfig.cs 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HazyRegionConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionCyclicScroll.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEntranceBehaviour.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEntrancePanel.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEntrancePanel.cs.meta 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEventBehaviour.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionModel.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionWin.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HazyRegionConfig.cs
New file
@@ -0,0 +1,228 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Monday, April 08, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class HazyRegionConfig
{
    public readonly int id;
    public readonly int incidentType;
    public readonly string name;
    public readonly int dungeonId;
    public readonly int lineId;
    public readonly int point;
    public readonly int alchemyLevel;
    public readonly int[] reward;
    public readonly string PortraitID;
    public HazyRegionConfig()
    {
    }
    public HazyRegionConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out id);
            int.TryParse(tables[1],out incidentType);
            name = tables[2];
            int.TryParse(tables[3],out dungeonId);
            int.TryParse(tables[4],out lineId);
            int.TryParse(tables[5],out point);
            int.TryParse(tables[6],out alchemyLevel);
            string[] rewardStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            reward = new int[rewardStringArray.Length];
            for (int i=0;i<rewardStringArray.Length;i++)
            {
                 int.TryParse(rewardStringArray[i],out reward[i]);
            }
            PortraitID = tables[8];
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, HazyRegionConfig> configs = new Dictionary<string, HazyRegionConfig>();
    public static HazyRegionConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("HazyRegionConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        HazyRegionConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new HazyRegionConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static HazyRegionConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<HazyRegionConfig> GetValues()
    {
        var values = new List<HazyRegionConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/HazyRegion.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/HazyRegion.txt");
        }
        var tempConfig = new HazyRegionConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new HazyRegionConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                       var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new HazyRegionConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
Core/GameEngine/Model/Config/HazyRegionConfig.cs.meta
copy from System/HazyRegion/HazyRegionEventBehaviour.cs.meta copy to Core/GameEngine/Model/Config/HazyRegionConfig.cs.meta
File was copied from System/HazyRegion/HazyRegionEventBehaviour.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: f157de73adafe7e40943853257e03a6d
timeCreated: 1554360030
guid: 3404c0f308cb2174bb7b93e12c3110bd
timeCreated: 1554693663
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs
@@ -22,6 +22,8 @@
            ActionInfo[i] = new tagMCDailyActionInfo();
            TransBytes(out ActionInfo[i].ActionID, vBytes, NetDataType.DWORD);
            TransBytes(out ActionInfo[i].DayFinishCnt, vBytes, NetDataType.WORD);
            TransBytes(out ActionInfo[i].DayBuyTimes, vBytes, NetDataType.BYTE);
            TransBytes(out ActionInfo[i].DayItemTimes, vBytes, NetDataType.BYTE);
            TransBytes(out ActionInfo[i].WeekFinishCnt, vBytes, NetDataType.DWORD);
        }
    }
@@ -30,6 +32,8 @@
    {
        public uint ActionID;        // ID
        public ushort DayFinishCnt;        // 今日已完成次数
        public byte DayBuyTimes;          //今日购买次数
        public byte DayItemTimes;         //今日物品增加次数
        public uint WeekFinishCnt;        // 本周已完成次数
    }
System/CrossServerOneVsOne/CrossServerWin.cs
@@ -13,6 +13,7 @@
        [SerializeField] Button closeBtn;
        [SerializeField] FunctionButton arenaFunc;
        [SerializeField] FunctionButton bossFunc;
        [SerializeField] FunctionButton m_HazyRegion;
        [SerializeField] FunctionButtonGroup funcGroup;
        #region Built-in
        protected override void BindController()
@@ -26,6 +27,7 @@
            rightBtn.AddListener(ClickRight);
            arenaFunc.AddListener(ClickArenaFunc);
            bossFunc.AddListener(ClickBossFunc);
            m_HazyRegion.AddListener(OpenHazyRegion);
        }
        protected override void OnPreOpen()
@@ -69,6 +71,12 @@
            WindowCenter.Instance.Open<CrossServerOneVsOneWin>();
        }
        private void OpenHazyRegion()
        {
            CloseSubWindows();
            WindowCenter.Instance.Open<HazyRegionWin>();
        }
        private void ClickRight()
        {
            funcGroup.TriggerNext();
System/DailyQuest/DailyQuestData.cs
@@ -49,6 +49,13 @@
    }
}
public struct DailyQuestTimes
{
    public int completeTimes;
    public int dayBuyTimes;
    public int dayUseItemTimes;
}
public class DailyQuestOpenTime
{
    public int id;
System/DailyQuest/DailyQuestModel.cs
@@ -65,7 +65,7 @@
        Dictionary<int, int> dungeonToDailyQuestTable = new Dictionary<int, int>();
        Dictionary<int, int> dailyActionToDailyQuestTable = new Dictionary<int, int>();
        List<DailyQuestActiveValueReward> dailyQuestActiveValueRewards = new List<DailyQuestActiveValueReward>();
        Dictionary<int, int> dailyQuestCompletedTimes = new Dictionary<int, int>();//除了副本的其他任务放在这里
        Dictionary<int, DailyQuestTimes> dailyQuestTimes = new Dictionary<int, DailyQuestTimes>();//除了副本的其他任务放在这里
        Dictionary<int, DailyQuestOpenTime> dailyQuestOpenTimes = new Dictionary<int, DailyQuestOpenTime>();
        Dictionary<int, Dictionary<int, List<int>>> questCalendar = new Dictionary<int, Dictionary<int, List<int>>>();
@@ -251,6 +251,16 @@
                        {
                            case 11:
                                return Math.Max(dailyQuestOpenTime.DayTimes, GetDailyQuestCompletedTimes(_dailyQuestId));
                            case 25:
                                if (dailyQuestTimes.ContainsKey(config.RelatedID))
                                {
                                    return dailyQuestOpenTime.DayTimes + dailyQuestTimes[config.RelatedID].dayBuyTimes
                                        + dailyQuestTimes[config.RelatedID].dayUseItemTimes;
                                }
                                else
                                {
                                    return dailyQuestOpenTime.DayTimes;
                                }
                            default:
                                return dailyQuestOpenTime.DayReKind > 0 ? dailyQuestOpenTime.DayTimes : dailyQuestOpenTime.WeekTimes;
                        }
@@ -272,9 +282,9 @@
            switch (config.RelatedType)
            {
                case 1:
                    if (dailyQuestCompletedTimes.ContainsKey(config.RelatedID))
                    if (dailyQuestTimes.ContainsKey(config.RelatedID))
                    {
                        return dailyQuestCompletedTimes[config.RelatedID];
                        return dailyQuestTimes[config.RelatedID].completeTimes;
                    }
                    else
                    {
@@ -297,9 +307,9 @@
        public int GetDailyQuestCompletedNums(int relatedID)
        {
            if (dailyQuestCompletedTimes.ContainsKey(relatedID))
            if (dailyQuestTimes.ContainsKey(relatedID))
            {
                return dailyQuestCompletedTimes[relatedID];
                return dailyQuestTimes[relatedID].completeTimes;
            }
            else
            {
@@ -339,11 +349,19 @@
                var dailyAction = _serverInfo.ActionInfo[i];
                if (dailyAction.DayFinishCnt > 0)
                {
                    dailyQuestCompletedTimes[(int)dailyAction.ActionID] = dailyAction.DayFinishCnt;
                    dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
                    {
                        completeTimes = dailyAction.DayFinishCnt,
                        dayBuyTimes = dailyAction.DayBuyTimes,
                        dayUseItemTimes = dailyAction.DayItemTimes,
                    };
                }
                else
                {
                    dailyQuestCompletedTimes[(int)dailyAction.ActionID] = (int)dailyAction.WeekFinishCnt;
                    dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
                    {
                        completeTimes = (int)dailyAction.WeekFinishCnt,
                    };
                }
                if (dailyActionToDailyQuestTable.ContainsKey((int)dailyAction.ActionID))
System/HazyRegion/HazyRegionCyclicScroll.cs
@@ -36,7 +36,7 @@
        {
            for (int i = 0; i < infiniteItems.Count; i++)
            {
                var behaviour = infiniteItems[i] as HazyRegionEventBehaviour;
                var behaviour = infiniteItems[i] as HazyRegionIncidentBehaviour;
                behaviour.alphaTween.SetStartState();
            }
@@ -46,7 +46,7 @@
            for (int i = 0; i < infiniteItems.Count; i++)
            {
                var behaviour = infiniteItems[i] as HazyRegionEventBehaviour;
                var behaviour = infiniteItems[i] as HazyRegionIncidentBehaviour;
                behaviour.linerMove.duration = behaviour.alphaTween.duration;
                var fromX = content.anchoredPosition.x + width / 2 + cellSize.x;
                behaviour.linerMove.from = content.anchoredPosition.SetX(fromX);
System/HazyRegion/HazyRegionEntranceBehaviour.cs
File was deleted
System/HazyRegion/HazyRegionEntrancePanel.cs
New file
@@ -0,0 +1,114 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class HazyRegionEntrancePanel : MonoBehaviour
    {
        [SerializeField] Text m_OpenTime;
        [SerializeField] Text m_Times;
        [SerializeField] Button m_BuyTimes;
        [SerializeField] Button m_Goto;
        HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        private void Awake()
        {
            m_BuyTimes.AddListener(BuyTimes);
            m_Goto.AddListener(Goto);
        }
        public void Display()
        {
            DisplayOpenTime();
            DisplayTimes();
        }
        void DisplayTimes()
        {
            var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.HazyRegion);
            var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.HazyRegion);
            var times = Mathf.Clamp(totalTimes - completedTimes, 0, totalTimes);
            m_Times.text = StringUtility.Contact(times, "/", totalTimes);
        }
        void DisplayOpenTime()
        {
            DailyQuestOpenTime dailyQuestOpenTime;
            if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.HazyRegion, out dailyQuestOpenTime))
            {
                HourMinute hourMinute;
                if (dailyQuestOpenTime.TryGetNextOpenTime(out hourMinute))
                {
                    m_OpenTime.text = Language.Get("HazyRegionOpenTime", hourMinute.hourBegin.ToString("D2"),
                        hourMinute.minuteBegin.ToString("D2"), hourMinute.hourEnd.ToString("D2"),
                        hourMinute.minuteEnd.ToString("D2"));
                }
            }
        }
        private void Goto()
        {
            var error = 0;
            if (TryOpenHazyReion(out error))
            {
                model.SendOpenHazyRegion();
            }
            else
            {
                HandleErrorMessage(error);
            }
        }
        private void BuyTimes()
        {
        }
        bool TryOpenHazyReion(out int error)
        {
            error = 0;
            var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
            if (questState != DailyQuestModel.DailyQuestState.Normal)
            {
                switch (questState)
                {
                    case DailyQuestModel.DailyQuestState.OutTime:
                        error = 1;
                        break;
                    case DailyQuestModel.DailyQuestState.CanBuyTimes:
                        error = 2;
                        break;
                    case DailyQuestModel.DailyQuestState.Completed:
                        error = 3;
                        break;
                }
                return false;
            }
            return true;
        }
        void HandleErrorMessage(int error)
        {
            switch (error)
            {
                case 1:
                    break;
                case 2:
                    break;
                case 3:
                    break;
            }
        }
        public void Dispose()
        {
        }
    }
}
System/HazyRegion/HazyRegionEntrancePanel.cs.meta
System/HazyRegion/HazyRegionEventBehaviour.cs
File was deleted
System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -1,11 +1,40 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class HazyRegionIncidentBehaviour : MonoBehaviour
    public class HazyRegionIncidentBehaviour : ScrollItem
    {
        [SerializeField] HazyRegionCyclicScroll m_CyclicScroll;
        [SerializeField] UIAlphaTween m_AlphaTween;
        [SerializeField] UILinerMove m_LinerMove;
        [SerializeField] Image m_IncidentTitle;
        [SerializeField] Text m_DepletionPoint;
        [SerializeField] Image m_Bottom;
        [SerializeField] Image m_Icon;
        [SerializeField] Transform m_ContainerBoss;
        [SerializeField] Image m_BossName;
        [SerializeField] Text m_PlayerCount;
        [SerializeField] Transform m_ContainerCrossServer;
        [SerializeField] Transform m_ContainerItem;
        [SerializeField] ItemCell[] m_Items;
        [SerializeField] Transform m_ContainerPlaying;
        [SerializeField] Transform m_ContainerCompleted;
        [SerializeField] Transform m_ContainerSelect;
        public UIAlphaTween alphaTween { get { return m_AlphaTween; } }
        public UILinerMove linerMove { get { return m_LinerMove; } }
        public override void Display(object _data)
        {
            base.Display(_data);
        }
    }
}
System/HazyRegion/HazyRegionIncidentBehaviour.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: cdcd39451a860ce4692d08aab3ae1afb
timeCreated: 1554371897
guid: f157de73adafe7e40943853257e03a6d
timeCreated: 1554360030
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/HazyRegion/HazyRegionIncidentPanel.cs
New file
@@ -0,0 +1,87 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class HazyRegionIncidentPanel : MonoBehaviour
    {
        [SerializeField] HazyRegionCyclicScroll m_CyclicScroll;
        [SerializeField] Slider m_Slider;
        [SerializeField] Text m_Point;
        [SerializeField] Button m_Back;
        [SerializeField] Button m_Goto;
        List<int> incidents = new List<int>();
        HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
        private void Awake()
        {
            m_Back.AddListener(OnBack);
            m_Goto.AddListener(Goto);
        }
        public void Display()
        {
            DisplayPoint();
            DisplayIncidents();
        }
        void DisplayIncidents()
        {
            incidents.Clear();
            incidents.AddRange(model.GetAllIncidents());
            incidents.Sort(Compare);
            m_CyclicScroll.Init(incidents);
            m_CyclicScroll.DisplayAnimation();
        }
        void DisplayPoint()
        {
            var point = Mathf.Min(model.point, model.limitPoint);
            m_Point.text = StringUtility.Contact(point, "/", model.limitPoint);
            m_Slider.value = Mathf.Clamp01((float)point / model.limitPoint);
        }
        int Compare(int lhs, int rhs)
        {
            HazyRegionModel.Incident lhs_incident;
            HazyRegionModel.Incident rhs_incident;
            if (model.TryGetIncident(lhs, out lhs_incident)
                && model.TryGetIncident(rhs, out rhs_incident))
            {
                if (lhs_incident.type != rhs_incident.type)
                {
                    return lhs_incident.type.CompareTo(rhs_incident.type);
                }
                var type = lhs_incident.type;
                switch (type)
                {
                    case HazyRegionModel.IncidentType.Boss:
                        break;
                    case HazyRegionModel.IncidentType.GrassLand:
                        break;
                }
            }
            return 0;
        }
        private void OnBack()
        {
        }
        private void Goto()
        {
        }
        public void Dispose()
        {
            m_CyclicScroll.Dispose();
        }
    }
}
System/HazyRegion/HazyRegionIncidentPanel.cs.meta
File was renamed from System/HazyRegion/HazyRegionEventBehaviour.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: f157de73adafe7e40943853257e03a6d
timeCreated: 1554360030
guid: cdcd39451a860ce4692d08aab3ae1afb
timeCreated: 1554371897
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/HazyRegion/HazyRegionModel.cs
@@ -1,17 +1,40 @@
using System.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class HazyRegionModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        List<Incident> m_Incidents = new List<Incident>();
        Dictionary<int, Incident> m_Incidents = new Dictionary<int, Incident>();
        public int limitPoint { get; private set; }
        public int point { get; private set; }
        public bool playing { get; private set; }
        public bool isServerPrepare { get; private set; }
        int m_SelectIncident;
        public int selectIncident
        {
            get { return m_SelectIncident; }
            set
            {
                if (m_SelectIncident != value)
                {
                    m_SelectIncident = value;
                    if (selectIncidentRefresh != null)
                    {
                        selectIncidentRefresh();
                    }
                }
            }
        }
        public event Action selectIncidentRefresh;
        public override void Init()
        {
            ParseConfig();
        }
        public void OnBeforePlayerDataInitialize()
@@ -30,15 +53,33 @@
        }
        public void ReceivePackage()
        void ParseConfig()
        {
        }
        public bool TryGetIncident(int id, out Incident incident)
        {
            return m_Incidents.TryGetValue(id, out incident);
        }
        public ICollection<int> GetAllIncidents()
        {
            return m_Incidents.Keys;
        }
        public void SendBackHazyRegion()
        {
        }
        public class Incident
        public void SendOpenHazyRegion()
        {
            public int type;
            public IncidentState state;
        }
        public void ReceivePackage()
        {
        }
        public enum IncidentState
@@ -47,6 +88,21 @@
            Processing,
            Complete,
        }
        public enum IncidentType
        {
            Precious,
            Adventure,
            Boss,
            GrassLand,
        }
        public class Incident
        {
            public int id;
            public IncidentType type;
            public IncidentState state;
        }
    }
}
System/HazyRegion/HazyRegionWin.cs
@@ -14,8 +14,8 @@
    public class HazyRegionWin : Window
    {
        [SerializeField] HazyRegionEntranceBehaviour m_EntranceBehaviour;
        [SerializeField] HazyRegionIncidentBehaviour m_IncidentBehaviour;
        [SerializeField] HazyRegionEntrancePanel m_EntrancePanel;
        [SerializeField] HazyRegionIncidentPanel m_IncidentPanel;
        HazyRegionStage m_Stage = HazyRegionStage.Entrance;
        HazyRegionStage stage
@@ -28,8 +28,10 @@
                    switch (m_Stage)
                    {
                        case HazyRegionStage.Entrance:
                            CloseHazyRegionEntrance();
                            break;
                        case HazyRegionStage.Playing:
                            CloseHazyRegionIncident();
                            break;
                    }
@@ -38,13 +40,17 @@
                    switch (m_Stage)
                    {
                        case HazyRegionStage.Entrance:
                            OpenHazyRegionEntrance();
                            break;
                        case HazyRegionStage.Playing:
                            OpenHazyRegionIncident();
                            break;
                    }
                }
            }
        }
        HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
        #region Built-in
        protected override void BindController()
@@ -57,12 +63,25 @@
        protected override void OnPreOpen()
        {
            m_Stage = HazyRegionStage.Entrance;
            m_EntrancePanel.gameObject.SetActive(false);
            m_IncidentPanel.gameObject.SetActive(false);
        }
        protected override void OnActived()
        {
            base.OnActived();
            m_Stage = model.playing ? HazyRegionStage.Playing : HazyRegionStage.Entrance;
            switch (stage)
            {
                case HazyRegionStage.Entrance:
                    OpenHazyRegionEntrance();
                    break;
                case HazyRegionStage.Playing:
                    OpenHazyRegionIncident();
                    break;
            }
        }
        protected override void OnAfterOpen()
@@ -71,6 +90,8 @@
        protected override void OnPreClose()
        {
            m_EntrancePanel.Dispose();
            m_IncidentPanel.Dispose();
        }
        protected override void OnAfterClose()
@@ -78,8 +99,24 @@
        }
        #endregion
        void Display()
        void OpenHazyRegionEntrance()
        {
            m_EntrancePanel.Display();
        }
        void OpenHazyRegionIncident()
        {
            m_IncidentPanel.Display();
        }
        void CloseHazyRegionIncident()
        {
            m_IncidentPanel.Dispose();
        }
        void CloseHazyRegionEntrance()
        {
            m_EntrancePanel.Dispose();
        }
        enum HazyRegionStage
Utility/EnumHelper.cs
@@ -291,6 +291,7 @@
    CrossServerPk = 31,
    AllianceBoss1 = 32,
    AllianceBoss2 = 33,
    HazyRegion = 35,
    //JadeDynastyBoss = 32,--诛仙功能暂时关闭
    //JadeDynastyTower = 33,
}