少年修仙传客户端代码仓库
client_linchunjie
2019-01-05 8deef938274a8fa5fdf89557a10631ddb48951d8
3335 【1.4.100】修改仙盟宴会答题时间逻辑
1个文件已修改
52 ■■■■■ 已修改文件
System/FairyAu/FairyFeastModel.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastModel.cs
@@ -25,8 +25,6 @@
        public ulong totalExp { get; private set; }
        Dictionary<int, HourMinute> normalQuestionTimes = new Dictionary<int, HourMinute>();
        Dictionary<int, Dictionary<int, HourMinute>> specialQuestionTime =
            new Dictionary<int, Dictionary<int, HourMinute>>();
        public override void Init()
        {
@@ -81,58 +79,16 @@
                    }
                }
            }
            var specialList = DungeonSpecialStateTimeConfig.GetDungeonTimes(31230);
            for (int i = 0; i < specialList.Count; i++)
            {
                if (specialList[i].StateValue == 2)
                {
                    var dayOfWeek = specialList[i].OpenServerWeek % 7;
                    Dictionary<int, HourMinute> dict;
                    if (!specialQuestionTime.TryGetValue(dayOfWeek, out dict))
                    {
                        dict = new Dictionary<int, HourMinute>();
                        specialQuestionTime.Add(dayOfWeek, dict);
                    }
                    if (!dict.ContainsKey(specialList[i].OpenServerDay))
                    {
                        dict.Add(specialList[i].OpenServerDay, new HourMinute()
                        {
                            hourBegin = specialList[i].StartHour,
                            hourEnd = specialList[i].EndHour,
                            minuteBegin = specialList[i].StartMinute,
                            minuteEnd = specialList[i].EndMinute,
                        });
                    }
                }
            }
        }
        public bool TryGetQuestionTime(out HourMinute time)
        {
            time = default(HourMinute);
            bool isSpecial = TimeUtility.OpenWeekCnt <= 1;
            if (isSpecial)
            var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
            if (normalQuestionTimes.ContainsKey(dayOfWeek))
            {
                var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
                if (specialQuestionTime.ContainsKey(openDayWeek))
                {
                    var dict = specialQuestionTime[openDayWeek];
                    var dayIndex = TimeUtility.OpenDay + 1;
                    if (dict.ContainsKey(dayIndex))
                    {
                        time = dict[dayIndex];
                        return true;
                    }
                }
            }
            else
            {
                var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
                if (normalQuestionTimes.ContainsKey(dayOfWeek))
                {
                    time = normalQuestionTimes[dayOfWeek];
                    return true;
                }
                time = normalQuestionTimes[dayOfWeek];
                return true;
            }
            return false;
        }