| | |
| | | public int id { get; private set; }
|
| | |
|
| | | bool m_Got = false;
|
| | | public bool got
|
| | | {
|
| | | public bool got {
|
| | | get { return this.m_Got; }
|
| | | set { this.m_Got = value; }
|
| | | }
|
| | |
| | | //常规的活动时间,key是星期x
|
| | | Dictionary<int, List<HourMinute>> openTimes = new Dictionary<int, List<HourMinute>>();
|
| | | //开服前2周的活动时间,key1是开服日的星期,key2是开服第几天
|
| | | Dictionary<int, Dictionary<int, List<HourMinute>>> specificOpenTimes = new Dictionary<int, Dictionary<int, List<HourMinute>>>();
|
| | | Dictionary<int, Dictionary<int, List<HourMinute>>> specialOpenTimes = new Dictionary<int, Dictionary<int, List<HourMinute>>>();
|
| | |
|
| | | public DailyQuestOpenTime(int _id)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void ParseQuestSpecificOpenTimes(List<DailyQuestSpecialOpenTimeConfig> configs)
|
| | | public void ParseQuestSpecialOpenTimes(List<DailyQuestSpecialOpenTimeConfig> configs)
|
| | | {
|
| | | if (configs == null)
|
| | | {
|
| | |
| | | foreach (var config in configs)
|
| | | {
|
| | | var openDayWeek = config.OpenServerWeek % 7;
|
| | | if (!specificOpenTimes.ContainsKey(openDayWeek))
|
| | | if (!specialOpenTimes.ContainsKey(openDayWeek))
|
| | | {
|
| | | specificOpenTimes[openDayWeek] = new Dictionary<int, List<HourMinute>>();
|
| | | specialOpenTimes[openDayWeek] = new Dictionary<int, List<HourMinute>>();
|
| | | }
|
| | |
|
| | | var dayIndexOpenTimes = specificOpenTimes[openDayWeek];
|
| | | var dayIndexOpenTimes = specialOpenTimes[openDayWeek];
|
| | | var dayIndex = config.OpenServerDay;
|
| | | if (!dayIndexOpenTimes.ContainsKey(dayIndex))
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void ParseDungeonSpecificOpenTimes(List<DungeonSpecialStateTimeConfig> configs)
|
| | | public void ParseDungeonSpecialOpenTimes(List<DungeonSpecialStateTimeConfig> configs)
|
| | | {
|
| | | if (configs == null)
|
| | | {
|
| | |
| | | foreach (var config in configs)
|
| | | {
|
| | | var openDayWeek = config.OpenServerWeek % 7;
|
| | | if (!specificOpenTimes.ContainsKey(openDayWeek))
|
| | | if (!specialOpenTimes.ContainsKey(openDayWeek))
|
| | | {
|
| | | specificOpenTimes[openDayWeek] = new Dictionary<int, List<HourMinute>>();
|
| | | specialOpenTimes[openDayWeek] = new Dictionary<int, List<HourMinute>>();
|
| | | }
|
| | |
|
| | | var dayIndexOpenTimes = specificOpenTimes[openDayWeek];
|
| | | var dayIndexOpenTimes = specialOpenTimes[openDayWeek];
|
| | | var dayIndex = config.OpenServerDay;
|
| | | if (!dayIndexOpenTimes.ContainsKey(dayIndex))
|
| | | {
|
| | |
| | | return true;
|
| | | }
|
| | |
|
| | | var isSpecificDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | if (isSpecificDay && specificOpenTimes.ContainsKey(openDayWeek) && specificOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | if (isSpecialDay && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | var hourMinutes = specificOpenTimes[openDayWeek][dayIndex];
|
| | | for (int i = 0; i < hourMinutes.Count; i++)
|
| | | if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | if (hourMinutes[i].InOpenTime())
|
| | | var hourMinutes = specialOpenTimes[openDayWeek][dayIndex];
|
| | | for (int i = 0; i < hourMinutes.Count; i++)
|
| | | {
|
| | | return true;
|
| | | if (hourMinutes[i].InOpenTime())
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return false;
|
| | | return false;
|
| | | }
|
| | | else
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | public bool TryGetTodayNearestOpenTime(out HourMinute _hourMinute)
|
| | | {
|
| | | var isSpecificDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | if (isSpecificDay && specificOpenTimes.ContainsKey(openDayWeek) && specificOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | if (isSpecialDay)
|
| | | {
|
| | | var hour = TimeUtility.ServerNow.Hour;
|
| | | var minute = TimeUtility.ServerNow.Minute;
|
| | | var hourMinutes = specificOpenTimes[openDayWeek][dayIndex];
|
| | | _hourMinute = hourMinutes[hourMinutes.Count - 1];
|
| | | for (int i = 0; i < hourMinutes.Count; i++)
|
| | | if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | var hourMinute = hourMinutes[i];
|
| | | if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
|
| | | var hour = TimeUtility.ServerNow.Hour;
|
| | | var minute = TimeUtility.ServerNow.Minute;
|
| | | var hourMinutes = specialOpenTimes[openDayWeek][dayIndex];
|
| | | _hourMinute = hourMinutes[hourMinutes.Count - 1];
|
| | | for (int i = 0; i < hourMinutes.Count; i++)
|
| | | {
|
| | | _hourMinute = hourMinute;
|
| | | break;
|
| | | var hourMinute = hourMinutes[i];
|
| | | if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
|
| | | {
|
| | | _hourMinute = hourMinute;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return true;
|
| | | return true;
|
| | | }
|
| | | else
|
| | | {
|
| | | _hourMinute = default(HourMinute);
|
| | | return false;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | public bool ContainTimeNode(int week, int timeNode)
|
| | | {
|
| | | var hourMinutes = GetHourMinuteByWeek(week);
|
| | | var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | |
|
| | | List<HourMinute> hourMinutes = null;
|
| | | var dayDelta = (week == 0 ? 7 : week) - openDayWeek;
|
| | | if (TimeUtility.OpenWeekCnt < 1 && dayDelta < 0)
|
| | | {
|
| | | openTimes.TryGetValue(week, out hourMinutes);
|
| | | }
|
| | | else
|
| | | {
|
| | | hourMinutes = GetHourMinuteByWeek(week);
|
| | | }
|
| | |
|
| | | if (hourMinutes != null)
|
| | | {
|
| | | foreach (var item in hourMinutes)
|
| | |
| | | public List<HourMinute> GetHourMinuteByWeek(int week)
|
| | | {
|
| | | var isSpecificDay = TimeUtility.OpenWeekCnt <= 1;
|
| | | var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
|
| | | var dayIndex = TimeUtility.OpenDay + 1;
|
| | | if (isSpecificDay && specificOpenTimes.ContainsKey(openDayWeek) && specificOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | if (isSpecificDay)
|
| | | {
|
| | | return specificOpenTimes[openDayWeek][dayIndex];
|
| | | var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
|
| | | var dayDelta = ((week == 0 ? 7 : week) - openDayWeek) + TimeUtility.OpenWeekCnt * 7;
|
| | | var dayIndex = TimeUtility.OpenDay + 1 + dayDelta;
|
| | | if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
|
| | | {
|
| | | return specialOpenTimes[openDayWeek][dayIndex];
|
| | | }
|
| | | }
|
| | | else if (openTimes.ContainsKey(week))
|
| | | {
|