少年修仙传客户端代码仓库
client_linchunjie
2019-02-14 cf092b59d848304f0ac978e7a4187ee5b1bc0f8d
6219  【前端】【1.6】合服任务单
4个文件已添加
3个文件已修改
258 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueModel.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs
New file
@@ -0,0 +1,62 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class DungeonMixServerStateTimeConfig : ConfigBase {
        public int ID { get ; private set ; }
        public int MixServerDay { get ; private set ; }
        public int DataMapID { get ; private set ; }
        public int StartHour { get ; private set ; }
        public int StartMinute { get ; private set ; }
        public int EndHour { get ; private set ; }
        public int EndMinute { get ; private set ; }
        public int CanEnter { get ; private set ; }
        public int StateValue { get ; private set ; }
        public override string getKey()
        {
            return ID.ToString();
        }
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                MixServerDay=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                DataMapID=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                StartHour=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                StartMinute=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                EndHour=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0;
                EndMinute=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0;
                CanEnter=IsNumeric(rawContents[7]) ? int.Parse(rawContents[7]):0;
                StateValue=IsNumeric(rawContents[8]) ? int.Parse(rawContents[8]):0;
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 064382600d4565645a1b561e934fc3fa
timeCreated: 1550111985
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/ConfigManager.cs
@@ -238,6 +238,7 @@
        AddAsyncTask<HolidayHomingPointConfig>();
        AddAsyncTask<LoginRewardConfig>();
        AddAsyncTask<CrossRealmPKDanAwardConfig>();
        AddAsyncTask<DungeonMixServerStateTimeConfig>();
        while (!AllCompleted())
        {
            var completedCount = 0;
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs
New file
@@ -0,0 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TableConfig
{
    public partial class DungeonMixServerStateTimeConfig : ConfigBase, IConfigPostProcess
    {
        static Dictionary<int, List<DungeonMixServerStateTimeConfig>> dungeonTimes = new Dictionary<int, List<DungeonMixServerStateTimeConfig>>();
        public void OnConfigParseCompleted()
        {
            if (!dungeonTimes.ContainsKey(DataMapID))
            {
                dungeonTimes[DataMapID] = new List<DungeonMixServerStateTimeConfig>();
            }
            dungeonTimes[DataMapID].Add(this);
        }
        public static List<DungeonMixServerStateTimeConfig> GetDungeonTimes(int dataMapId)
        {
            if (dungeonTimes.ContainsKey(dataMapId))
            {
                return dungeonTimes[dataMapId];
            }
            else
            {
                return null;
            }
        }
    }
}
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cb3c639467226e14aa8a31413a42dbe2
timeCreated: 1550112217
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FairyAu/FairyLeagueModel.cs
@@ -18,6 +18,30 @@
        {
            get
            {
                if (TimeUtility.IsMixServer && TimeUtility.MixOpenDay < GeneralDefine.mixServerCustomDays)
                {
                    var week = GetMixServerWeek(TimeUtility.MixOpenDay);
                    var lastWeek = GetMixServerWeek(GeneralDefine.mixServerCustomDays - 1);
                    if (mixServerWeekTimes.ContainsKey(week)
                        && (week < lastWeek || TimeUtility.MixOpenDay <= mixServerWeekTimes[week].lastMixServerDay))
                    {
                        return mixServerWeekTimes[week];
                    }
                    if (week < lastWeek)
                    {
                        return null;
                    }
                    else if (week == lastWeek)
                    {
                        var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
                        var lastDayOfWeek = date.AddTicks((GeneralDefine.mixServerCustomDays - 1) * TimeSpan.TicksPerDay).DayOfWeek;
                        var dayOfWeek = lastDayOfWeek == DayOfWeek.Sunday ? 7 : (int)lastDayOfWeek;
                        if (dayOfWeek >= fairyLeagueWeekTime.rings[0].dayOfWeek)
                        {
                            return null;
                        }
                    }
                }
                var openServerWeekDay = TimeUtility.openServerDayOfWeek == DayOfWeek.Sunday ? 7 : (int)TimeUtility.openServerDayOfWeek;
                if (specialLeagueTimes.ContainsKey(openServerWeekDay))
                {
@@ -40,6 +64,14 @@
        {
            get
            {
                if (TimeUtility.IsMixServer && TimeUtility.MixOpenDay < GeneralDefine.mixServerCustomDays)
                {
                    var week = GetMixServerWeek(TimeUtility.MixOpenDay);
                    if (mixServerWeekTimes.ContainsKey(week + 1))
                    {
                        return mixServerWeekTimes[week + 1];
                    }
                }
                var openServerWeekDay = TimeUtility.openServerDayOfWeek == DayOfWeek.Sunday ? 7 : (int)TimeUtility.openServerDayOfWeek;
                if (specialLeagueTimes.ContainsKey(openServerWeekDay))
                {
@@ -140,6 +172,7 @@
        {
            ClearFairyWarHelp();
            frontFairyList.Clear();
            mixServerWeekTimes.Clear();
            fairyLeagueFairyId = 0;
            fairyLeagueFairyName = string.Empty;
            serverInited = false;
@@ -151,6 +184,7 @@
        public void OnPlayerLoginOk()
        {
            ParseMixServerLeagueTimes();
            ResetFairyLeagueTime();
            cacheLeagueStage = fairyLeagueStage;
            CheckFairyLeagueData();
@@ -161,7 +195,11 @@
        private void OnServerOpenDayRefresh()
        {
            ParseMixServerLeagueTimes();
            ResetFairyLeagueTime();
            cacheLeagueStage = fairyLeagueStage;
            CheckFairyLeagueData();
            UpdateRedpoint();
        }
        private void DayEvent()
@@ -248,6 +286,7 @@
        readonly List<int> fairyLeagueStateValues = new List<int>() { 11, 12, 13, 21, 22, 23 };
        FairyLeagueWeekTime fairyLeagueWeekTime = new FairyLeagueWeekTime();
        Dictionary<int, Dictionary<int, FairyLeagueWeekTime>> specialLeagueTimes = new Dictionary<int, Dictionary<int, FairyLeagueWeekTime>>();
        Dictionary<int, FairyLeagueWeekTime> mixServerWeekTimes = new Dictionary<int, FairyLeagueWeekTime>();
        public Dictionary<int,int> leagueNoticeWeapons { get; private set; }
        private void ParseConfig()
        {
@@ -431,6 +470,41 @@
        public bool TryGetCrystalRate(int _npcId, out float _rate)
        {
            return crystalRateDict.TryGetValue(_npcId, out _rate);
        }
        void ParseMixServerLeagueTimes()
        {
            mixServerWeekTimes.Clear();
            if (!TimeUtility.IsMixServer)
            {
                return;
            }
            var configs = DungeonMixServerStateTimeConfig.GetDungeonTimes(FAIRY_LEAGUE_DUNGEON);
            foreach (var config in configs)
            {
                var week = GetMixServerWeek(config.MixServerDay - 1);
                FairyLeagueWeekTime leagueTime;
                if (!mixServerWeekTimes.TryGetValue(week, out leagueTime))
                {
                    leagueTime = new FairyLeagueWeekTime();
                    mixServerWeekTimes.Add(week, leagueTime);
                }
                var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
                var dayOfWeek = date.AddTicks((config.MixServerDay - 1) * TimeSpan.TicksPerDay).DayOfWeek;
                leagueTime.AddStage(config, dayOfWeek == DayOfWeek.Sunday ? 7 : (int)dayOfWeek);
            }
            foreach (var weekTime in mixServerWeekTimes.Values)
            {
                weekTime.Sort();
            }
        }
        int GetMixServerWeek(int mixDays)
        {
            var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
            var dayOfWeek = date.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)date.DayOfWeek;
            var week = Mathf.CeilToInt((mixDays - (7 - dayOfWeek)) / (float)7);
            return week;
        }
        #endregion
@@ -1186,6 +1260,14 @@
            }
        }
        public int lastMixServerDay
        {
            get
            {
                return rings[rings.Count - 1].mixServerDay;
            }
        }
        public void AddStage(DungeonStateTimeConfig config)
        {
            var ring = rings.Find((x) =>
@@ -1202,6 +1284,22 @@
        }
        public void AddStage(DungeonSpecialStateTimeConfig config, int dayOfWeek)
        {
            var ring = rings.Find((x) =>
            {
                return x.dayOfWeek == dayOfWeek;
            });
            if (ring == null)
            {
                ring = new Ring();
                rings.Add(ring);
                ring.dayOfWeek = dayOfWeek;
            }
            ring.ParseConfig(config, dayOfWeek);
        }
        public void AddStage(DungeonMixServerStateTimeConfig config, int dayOfWeek)
        {
            var ring = rings.Find((x) =>
            {
@@ -1280,6 +1378,8 @@
            public int openServerDay { get; private set; }
            public int mixServerDay { get; private set; }
            public void Sort()
            {
                sessions.Sort((Session x, Session y) =>
@@ -1310,6 +1410,23 @@
            public void ParseConfig(DungeonSpecialStateTimeConfig config, int dayOfWeek)
            {
                openServerDay = config.OpenServerDay;
                var session = sessions.Find((x) =>
                {
                    return x.session == (config.StateValue < 20 ? 0 : 1);
                });
                if (session == null)
                {
                    session = new Session();
                    session.session = config.StateValue < 20 ? 0 : 1;
                    sessions.Add(session);
                }
                session.ParseConfig(config, dayOfWeek);
            }
            public void ParseConfig(DungeonMixServerStateTimeConfig config, int dayOfWeek)
            {
                mixServerDay = config.MixServerDay - 1;
                var session = sessions.Find((x) =>
                {
@@ -1415,6 +1532,21 @@
                stages.Add(stage);
            }
            public void ParseConfig(DungeonMixServerStateTimeConfig config, int dayOfWeek)
            {
                var state = config.StateValue % 10;
                var stage = new Stage()
                {
                    stage = state == 1 ? FairyLeagueStage.Grouping : (state == 2 ? FairyLeagueStage.Fight : FairyLeagueStage.Over),
                    dayOfWeek = dayOfWeek,
                    startHour = config.StartHour,
                    endHour = config.EndHour,
                    startMinute = config.StartMinute,
                    endMinute = config.EndMinute
                };
                stages.Add(stage);
            }
            public bool InSession(DateTime time)
            {
                var groupStage = stages.Find((x) =>
System/GeneralConfig/GeneralDefine.cs
@@ -174,6 +174,7 @@
    public static int crossServerOneVsOneOpenDay { get; private set; }
    public static int UISpringDecorate { get; private set; }
    public static Dictionary<int, List<int>> skillAttrIDDict { get; private set; }
    public static int mixServerCustomDays { get; private set; }
    public static void Init()
    {
@@ -703,6 +704,8 @@
            crossServerOneVsOneOpenDay = GetInt("CrossRealmCfg");
            UISpringDecorate = GetInt("UISpringDecorate");
            mixServerCustomDays = GetInt("MixServer");
        }
        catch (Exception ex)
        {