From 2f723e5320ef618985cc9ea8f71deafd3e4bec36 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期二, 16 四月 2019 11:35:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/DailyQuest/DailyQuestModel.cs |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index 37332d5..be931c8 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -64,7 +64,7 @@
         Dictionary<int, int> dungeonToDailyQuestTable = new Dictionary<int, int>();
         Dictionary<int, int> dailyActionToDailyQuestTable = new Dictionary<int, int>();
         List<DailyQuestActiveValueReward> dailyQuestActiveValueRewards = new List<DailyQuestActiveValueReward>();
-        Dictionary<int, int> dailyQuestCompletedTimes = new Dictionary<int, int>();//闄や簡鍓湰鐨勫叾浠栦换鍔℃斁鍦ㄨ繖閲�
+        Dictionary<int, DailyQuestTimes> dailyQuestTimes = new Dictionary<int, DailyQuestTimes>();//闄や簡鍓湰鐨勫叾浠栦换鍔℃斁鍦ㄨ繖閲�
         Dictionary<int, DailyQuestOpenTime> dailyQuestOpenTimes = new Dictionary<int, DailyQuestOpenTime>();
         Dictionary<int, Dictionary<int, List<int>>> questCalendar = new Dictionary<int, Dictionary<int, List<int>>>();
 
@@ -197,6 +197,20 @@
             return false;
         }
 
+        public bool TryGetDailyQuestTimes(int _id, out DailyQuestTimes _dailyQuestTime)
+        {
+            _dailyQuestTime = default(DailyQuestTimes);
+            var config = DailyQuestConfig.Get(_id);
+            if (config != null && config.RelatedType == 1)
+            {
+                return dailyQuestTimes.TryGetValue(config.RelatedID, out _dailyQuestTime);
+            }
+            else
+            {
+                return false;
+            }
+        }
+
         public bool IsDailyQuestUnLock(int _dailyQuestId)
         {
             var config = DailyQuestConfig.Get(_dailyQuestId);
@@ -249,6 +263,16 @@
                         {
                             case 11:
                                 return Math.Max(dailyQuestOpenTime.DayTimes, GetDailyQuestCompletedTimes(_dailyQuestId));
+                            case 25:
+                                if (dailyQuestTimes.ContainsKey(config.RelatedID))
+                                {
+                                    return dailyQuestOpenTime.DayTimes + dailyQuestTimes[config.RelatedID].dayBuyTimes
+                                        + dailyQuestTimes[config.RelatedID].dayUseItemTimes;
+                                }
+                                else
+                                {
+                                    return dailyQuestOpenTime.DayTimes;
+                                }
                             default:
                                 return dailyQuestOpenTime.DayReKind > 0 ? dailyQuestOpenTime.DayTimes : dailyQuestOpenTime.WeekTimes;
                         }
@@ -270,9 +294,9 @@
             switch (config.RelatedType)
             {
                 case 1:
-                    if (dailyQuestCompletedTimes.ContainsKey(config.RelatedID))
+                    if (dailyQuestTimes.ContainsKey(config.RelatedID))
                     {
-                        return dailyQuestCompletedTimes[config.RelatedID];
+                        return dailyQuestTimes[config.RelatedID].completeTimes;
                     }
                     else
                     {
@@ -295,9 +319,9 @@
 
         public int GetDailyQuestCompletedNums(int relatedID)
         {
-            if (dailyQuestCompletedTimes.ContainsKey(relatedID))
+            if (dailyQuestTimes.ContainsKey(relatedID))
             {
-                return dailyQuestCompletedTimes[relatedID];
+                return dailyQuestTimes[relatedID].completeTimes;
             }
             else
             {
@@ -337,11 +361,19 @@
                 var dailyAction = _serverInfo.ActionInfo[i];
                 if (dailyAction.DayFinishCnt > 0)
                 {
-                    dailyQuestCompletedTimes[(int)dailyAction.ActionID] = dailyAction.DayFinishCnt;
+                    dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
+                    {
+                        completeTimes = dailyAction.DayFinishCnt,
+                        dayBuyTimes = dailyAction.DayBuyTimes,
+                        dayUseItemTimes = dailyAction.DayItemTimes,
+                    };
                 }
                 else
                 {
-                    dailyQuestCompletedTimes[(int)dailyAction.ActionID] = (int)dailyAction.WeekFinishCnt;
+                    dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
+                    {
+                        completeTimes = (int)dailyAction.WeekFinishCnt,
+                    };
                 }
 
                 if (dailyActionToDailyQuestTable.ContainsKey((int)dailyAction.ActionID))
@@ -835,17 +867,32 @@
                         switch (config.RelatedID)
                         {
                             case 11:
-                                var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
-                                if (completedTimes >= dailyQuestOpenTime.DayTimes + GeneralDefine.runeTowerSweepBuyTimes)
                                 {
-                                    return DailyQuestState.Completed;
-                                }
-                                else
-                                {
-                                    return DailyQuestState.CanBuyTimes;
+                                    var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
+                                    if (completedTimes >= dailyQuestOpenTime.DayTimes + GeneralDefine.runeTowerSweepBuyTimes)
+                                    {
+                                        return DailyQuestState.Completed;
+                                    }
+                                    else
+                                    {
+                                        return DailyQuestState.CanBuyTimes;
+                                    }
                                 }
                             case 19:
                                 return DailyQuestState.Normal;
+                            case 25:
+                                {
+                                    var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
+                                    if (completedTimes >= dailyQuestOpenTime.DayTimes +
+                                        dailyQuestOpenTime.DayBuyTimes + dailyQuestOpenTime.DayItemAddTimes)
+                                    {
+                                        return DailyQuestState.Completed;
+                                    }
+                                    else
+                                    {
+                                        return DailyQuestState.CanBuyTimes;
+                                    }
+                                }
                             default:
                                 return DailyQuestState.Completed;
                         }

--
Gitblit v1.8.0