From 01b217225f37e85d75a6534896180355e2a90cc4 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 15 十一月 2018 14:33:31 +0800
Subject: [PATCH] 4798 【前端】【1.3】日常界面-限时活动界面今日活动开启时间色值修改,新增已错过活动
---
System/DailyQuest/DailyQuestBehaviour.cs | 10 ++++
System/DailyQuest/DailyQuestModel.cs | 76 +++++++++++++++++++++-----------------
2 files changed, 51 insertions(+), 35 deletions(-)
diff --git a/System/DailyQuest/DailyQuestBehaviour.cs b/System/DailyQuest/DailyQuestBehaviour.cs
index 15f9778..ef70efa 100644
--- a/System/DailyQuest/DailyQuestBehaviour.cs
+++ b/System/DailyQuest/DailyQuestBehaviour.cs
@@ -20,6 +20,7 @@
[SerializeField] Text m_PracticePoint;
[SerializeField] Text m_UnLockCondition;
[SerializeField] TextEx m_Supplementary;
+ [SerializeField] FontColorSizeConfig m_TimeColor;
[SerializeField] Text m_AssistPoint;
[SerializeField] Text m_GotoTxt;
[SerializeField] Image m_Icon;
@@ -27,6 +28,7 @@
[SerializeField] Button m_Goto;
[SerializeField] Button m_Func;
[SerializeField] Text m_FuncDisplay;
+ [SerializeField] RectTransform m_TimeMiss;
[SerializeField] Transform m_Complete;
[SerializeField] Transform m_Locked;
[SerializeField] RedpointBehaviour m_RedpointBehaviour;
@@ -40,7 +42,6 @@
DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
-
TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
DailyQuestModel.DailyQuestState state = DailyQuestModel.DailyQuestState.Normal;
@@ -215,6 +216,7 @@
m_AssistPoint.gameObject.SetActive(state == DailyQuestModel.DailyQuestState.Completed);
m_Goto.gameObject.SetActive(state == DailyQuestModel.DailyQuestState.Normal || state == DailyQuestModel.DailyQuestState.CanBuyTimes);
m_Complete.gameObject.SetActive(false);
+ m_TimeMiss.gameObject.SetActive(false);
switch (state)
{
@@ -226,11 +228,17 @@
HourMinute hourMinute;
if (model.TryGetOpenTime(data.id, out openTime2) && openTime2.TryGetTodayNearestOpenTime(out hourMinute))
{
+ if (hourMinute.AfterOpenTime(TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute) && completedTimes == 0)
+ {
+ m_TimeMiss.gameObject.SetActive(true);
+ }
m_Supplementary.text = StringUtility.Contact(Language.Get("DailyQuestWin_OpenTime"), hourMinute.ToOpenTime());
+ m_Supplementary.color = m_TimeColor.GetColorSize("TodayColor").color;
}
else
{
m_Supplementary.text = openTime2.ToOpenTimeString();
+ m_Supplementary.color = m_TimeColor.GetColorSize("NotTodayColor").color;
}
break;
case DailyQuestModel.DailyQuestState.CanBuyTimes:
diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index 6d06421..ed07e0c 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -12,7 +12,7 @@
{
[XLua.LuaCallCSharp]
- public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
+ public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
{
const int DAILYQUEST_REDPOINTID = 78000;
@@ -690,71 +690,79 @@
var unLock1 = IsDailyQuestUnLock(_lhs);
var unLock2 = IsDailyQuestUnLock(_rhs);
- if (unLock1 && !unLock2)
+ DailyQuestOpenTime openTime1;
+ TryGetOpenTime(_lhs, out openTime1);
+
+ DailyQuestOpenTime openTime2;
+ TryGetOpenTime(_rhs, out openTime2);
+
+ var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
+ var isActiveDay1 = openTime1.always || openTime1.GetHourMinuteByWeek(dayOfWeek) != null;
+ var isActiveDay2 = openTime2.always || openTime2.GetHourMinuteByWeek(dayOfWeek) != null;
+
+ var inOpenTime1 = openTime1.InOpenTime();
+ var inOpenTime2 = openTime2.InOpenTime();
+
+ var serverHour = TimeUtility.ServerNow.Hour;
+ var serverMinute = TimeUtility.ServerNow.Minute;
+ HourMinute hourMinute1;
+ var miss1 = openTime1.TryGetTodayNearestOpenTime(out hourMinute1) && hourMinute1.AfterOpenTime(serverHour, serverMinute);
+ HourMinute hourMinute2;
+ var miss2 = openTime2.TryGetTodayNearestOpenTime(out hourMinute2) && hourMinute2.AfterOpenTime(serverHour, serverMinute);
+
+ if ((unLock1 && inOpenTime1) && !(unLock2 && inOpenTime2))
{
return -1;
}
- else if (!unLock1 && unLock2)
+ else if (!(unLock1 && inOpenTime1) && (unLock2 && inOpenTime2))
{
return 1;
}
else
{
- DailyQuestOpenTime openTime1;
- TryGetOpenTime(_lhs, out openTime1);
-
- DailyQuestOpenTime openTime2;
- TryGetOpenTime(_rhs, out openTime2);
-
- var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
- var isActiveDay1 = openTime1.always || openTime1.GetHourMinuteByWeek(dayOfWeek) != null;
- var isActiveDay2 = openTime2.always || openTime2.GetHourMinuteByWeek(dayOfWeek) != null;
-
- if (isActiveDay1 && !isActiveDay2)
+ if ((unLock1 && isActiveDay1 && !miss1) && !(unLock2 && isActiveDay2 && !miss2))
{
return -1;
}
- else if (!isActiveDay1 && isActiveDay2)
+ else if (!(unLock1 && isActiveDay1 && !miss1) && (unLock2 && isActiveDay2 && !miss2))
{
return 1;
}
else
{
- var inOpenTime1 = openTime1.InOpenTime();
- var inOpenTime2 = openTime2.InOpenTime();
-
- if (inOpenTime1 && !inOpenTime2)
+ if ((unLock1 && !isActiveDay1) && !(unLock2 && !isActiveDay2))
{
return -1;
}
- else if (!inOpenTime1 && inOpenTime2)
+ else if (!(unLock1 && !isActiveDay1) && (unLock2 && !isActiveDay2))
{
return 1;
}
- else if (!inOpenTime1 && !inOpenTime2)
+ else
{
- HourMinute hourMinute1;
- var beforeOpenTime1 = openTime1.TryGetTodayNearestOpenTime(out hourMinute1);
-
- HourMinute hourMinute2;
- var beforeOpenTime2 = openTime2.TryGetTodayNearestOpenTime(out hourMinute2);
-
- if (beforeOpenTime1 && !beforeOpenTime2)
+ if (unLock1 && !unLock2)
{
return -1;
}
- else if (!beforeOpenTime1 && beforeOpenTime2)
+ else if (!unLock1 && unLock2)
{
return 1;
}
else
{
- return HourMinute.Compare(hourMinute1, hourMinute2);
+ if (!miss1 && miss2)
+ {
+ return -1;
+ }
+ else if (miss1 && !miss2)
+ {
+ return 1;
+ }
+ else
+ {
+ return _lhs < _rhs ? -1 : 1;
+ }
}
- }
- else
- {
- return _lhs < _rhs ? -1 : 1;
}
}
}
--
Gitblit v1.8.0