From b184efc783735b0787e9c8ed1f86713c27a83634 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期二, 18 九月 2018 11:18:20 +0800
Subject: [PATCH] 2209 【前端】限时礼包按钮和界面提前开启
---
System/Vip/LimitedTimePackageWin.cs | 58 +++++++++++++++----
System/Vip/LimitedTimePackageTime.cs | 84 ++++++++++++++++++---------
System/Vip/LimitedTimePackageModel.cs | 2
3 files changed, 103 insertions(+), 41 deletions(-)
diff --git a/System/Vip/LimitedTimePackageModel.cs b/System/Vip/LimitedTimePackageModel.cs
index 4fc80fc..16c5926 100644
--- a/System/Vip/LimitedTimePackageModel.cs
+++ b/System/Vip/LimitedTimePackageModel.cs
@@ -143,7 +143,7 @@
public bool IsExpired()
{
bool IsBool = false;
- IsBool = OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.GiftPackage);
+ IsBool =(OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.GiftPackage)|| OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage));
bool IsBuyBool = false;
OperationBase operationBase;
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
diff --git a/System/Vip/LimitedTimePackageTime.cs b/System/Vip/LimitedTimePackageTime.cs
index 791fcfb..13043c5 100644
--- a/System/Vip/LimitedTimePackageTime.cs
+++ b/System/Vip/LimitedTimePackageTime.cs
@@ -11,55 +11,83 @@
public class LimitedTimePackageTime:MonoBehaviour {
- [SerializeField] Text m_LimitedTimePackageTime_text;
+ [SerializeField] TimerBehaviour m_Time;
+ [SerializeField] RectTransform m_ContainerAdvance;
+ [SerializeField] Text m_AdvanceTime;
private void OnEnable()
{
GlobalTimeEvent.Instance.secondEvent += secondEvent;
+ OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
}
private void OnDisable()
{
GlobalTimeEvent.Instance.secondEvent -= secondEvent;
+ OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
+ }
+
+ private void DayResetEvent(int resetType)
+ {
+ secondEvent();
}
private void secondEvent()
{
- int time = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.GiftPackage);
- if (time <= 0)
+ OperationBase operationBase;
+ if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
{
- if (m_LimitedTimePackageTime_text.gameObject.activeSelf)
+ var operation = (operationBase as GiftPackageClass);
+ bool inAdvance = false;
+ var seconds = 0;
+ if (operation.InAdvanceTime(TimeUtility.ServerNow))
{
- m_LimitedTimePackageTime_text.gameObject.SetActive(false);
- }
- return;
- }
- if (time>86400)
- {
- if (m_LimitedTimePackageTime_text.gameObject.activeSelf)
- {
- m_LimitedTimePackageTime_text.gameObject.SetActive(false);
- }
- }
- else
- {
- if (!m_LimitedTimePackageTime_text.gameObject.activeSelf)
- {
- m_LimitedTimePackageTime_text.gameObject.SetActive(true);
- }
- if (time<3600)
- {
- m_LimitedTimePackageTime_text.text = TimeUtility.SecondsToHMS(time);
- m_LimitedTimePackageTime_text.color = UIHelper.GetUIColor(TextColType.Red);
-
+ inAdvance = true;
+ seconds = operation.GetSecondsBeforeStart(TimeUtility.ServerNow);
}
else
{
- m_LimitedTimePackageTime_text.text = TimeUtility.SecondsToHMS(time);
- m_LimitedTimePackageTime_text.color = UIHelper.GetUIColor(TextColType.Green);
+ seconds = operation.GetResetSurplusTime();
+ }
+
+ m_ContainerAdvance.gameObject.SetActive(inAdvance);
+ if (inAdvance)
+ {
+ if (m_Time.gameObject.activeSelf)
+ {
+ DisplayTime(0);
+ }
+ DisplayAdvance(seconds);
+ }
+ else
+ {
+ if (seconds * TimeSpan.TicksPerSecond >= TimeSpan.TicksPerDay || seconds <= 0)
+ {
+ if (m_Time.gameObject.activeSelf)
+ {
+ DisplayTime(0);
+ }
+ }
+ else
+ {
+ m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
+ if (!m_Time.gameObject.activeSelf)
+ {
+ DisplayTime(seconds);
+ }
+ }
}
}
}
+ void DisplayTime(int seconds)
+ {
+ m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red);
+ m_Time.Begin(DateTime.Now.AddTicks(seconds * TimeSpan.TicksPerSecond));
+ }
+ void DisplayAdvance(int seconds)
+ {
+ m_AdvanceTime.text = Language.Get("OperationAdvanceOpen", TimeUtility.SecondsToHMS(seconds));
+ }
}
}
diff --git a/System/Vip/LimitedTimePackageWin.cs b/System/Vip/LimitedTimePackageWin.cs
index 373cc89..e2b7c63 100644
--- a/System/Vip/LimitedTimePackageWin.cs
+++ b/System/Vip/LimitedTimePackageWin.cs
@@ -107,9 +107,19 @@
if (limitedTimePackageItemModel.IsExpired())
{
- m_Buy_Btn.interactable = false;
- time = 0;
- limitedTimePackageItemModel.OpenFreePlat(str, gift.gifts[0].rmb, gift.gifts[0].OrderInfo);
+ if (OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage))
+ {
+ SysNotifyMgr.Instance.ShowTip("LimitGilt1");
+ return;
+ }
+ else
+ {
+ m_Buy_Btn.interactable = false;
+ time = 0;
+ limitedTimePackageItemModel.OpenFreePlat(str, gift.gifts[0].rmb, gift.gifts[0].OrderInfo);
+ return;
+ }
+
}
else
{
@@ -160,8 +170,8 @@
}
}
}
- // m_Text_ActivityTimeTo.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), operation.ToDisplayTime());
}
+ DisplaySurplusTime();
}
@@ -190,18 +200,42 @@
}
private void secondEvent()
{
- int time = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.GiftPackage);
- if (time <= 0)
+ DisplaySurplusTime();
+ }
+ private void DisplaySurplusTime()
+ {
+ OperationBase operationBase;
+ OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase);
+ var seconds = 0;
+ var inAdvance = false;
+ if (operationBase != null)
{
- m_Text_ActivityTimeTo.text = Language.Get("LimitGift2");
+ if (operationBase.InAdvanceTime(TimeUtility.ServerNow))
+ {
+ inAdvance = true;
+ seconds = operationBase.GetSecondsBeforeStart(TimeUtility.ServerNow);
+ }
+ else
+ {
+ GiftPackageClass operation = operationBase as GiftPackageClass;
+ seconds = operation.GetResetSurplusTime();
+ }
}
- if (time > 0)
+ if (seconds > 0)
{
- string str = String.Format(Language.Get("LimitGift1"), TimeUtility.SecondsToDHMSCHS(time));
- m_Text_ActivityTimeTo.text = str;
- // m_Text_ActivityTimeTo.color = UIHelper.GetUIColor(TextColType.Green);
+ if (inAdvance)
+ {
+ m_Text_ActivityTimeTo.text = Language.Get("OperationAdvanceOpen", TimeUtility.SecondsToDHMSCHS(seconds));
+ }
+ else
+ {
+ m_Text_ActivityTimeTo.text = Language.Get("LimitGift1", TimeUtility.SecondsToDHMSCHS(seconds));
+ }
}
-
+ else
+ {
+ m_Text_ActivityTimeTo.text = Language.Get("ActivityEnd");
+ }
}
#endregion
--
Gitblit v1.8.0