From 01638bd36dd973e2e925b3b41045b157f3e64d4e Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 10 十月 2018 15:48:19 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/DailyQuest/DailyQuestData.cs |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/System/DailyQuest/DailyQuestData.cs b/System/DailyQuest/DailyQuestData.cs
index da10ba2..3da5b1e 100644
--- a/System/DailyQuest/DailyQuestData.cs
+++ b/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;

--
Gitblit v1.8.0