少年修仙传客户端代码仓库
client_linchunjie
2018-10-10 c6bc396fe264cd53ba594e7430011c623cc26c4a
System/DailyQuest/DailyQuestData.cs
@@ -334,6 +334,74 @@
    }
    public int GetFirstOpenSurplusSeconds()
    {
        if (IsAfterFirstOpen())
        {
            return 0;
        }
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        for (int i = dayIndex; i <= maxDays; i++)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            {
                var days = i - dayIndex;
                var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
                var hour = TimeUtility.ServerNow.Hour;
                var minute = TimeUtility.ServerNow.Minute;
                var time = TimeUtility.ServerNow.AddDays(days);
                time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0);
                var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
                return Mathf.Max(0, seconds);
            }
        }
        return 0;
    }
    public bool IsAfterFirstOpen()
    {
        var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
        if (!isSpecialDay)
        {
            return true;
        }
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
        for (int i = 1; i <= maxDays; i++)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            {
                if (i < dayIndex)
                {
                    return true;
                }
                if (i == dayIndex)
                {
                    var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0];
                    var hour = TimeUtility.ServerNow.Hour;
                    var minute = TimeUtility.ServerNow.Minute;
                    if (hour < hourMinute.hourEnd ||
                        (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd))
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
                if (i > dayIndex)
                {
                    return false;
                }
            }
        }
        return true;
    }
    public bool ContainTimeNode(int week, int timeNode)
    {
        var openDayWeek = (int)TimeUtility.openServerDayOfWeek;