From b7961088385a401c6fdba03b1573a6fef2a66011 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期四, 25 十月 2018 15:56:08 +0800
Subject: [PATCH] 4318 【前端】【1.2】超值礼包拆分成精彩活动的3个礼包
---
System/DailyQuest/DayRemind.cs | 2
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs | 6
System/OpenServerActivity/OpenServerActivityWin.cs | 287 +++++++++++--------------
System/WindowJump/WindowJumpMgr.cs | 8
System/OpenServerActivity/OpenServerActivityCell.cs | 4
System/OpenServerActivity/OSGiftBehaviour.cs | 2
System/OpenServerActivity/OSGiftModel.cs | 234 ++++++++++++---------
System/OpenServerActivity/OpenServerGiftWin.cs | 109 +++------
8 files changed, 306 insertions(+), 346 deletions(-)
diff --git a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs
index dd03839..5ec6ae2 100644
--- a/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs
+++ b/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA16_tagMCSuperGiftInfo.cs
@@ -4,16 +4,14 @@
// AA 16 通知超值礼包信息 #tagMCSuperGiftInfo
public class HAA16_tagMCSuperGiftInfo : GameNetPackBasic {
- public uint GiftID; //商品ID
- public string EndtDate; // 结束日期 y-m-d
+ public uint StartTime;
public HAA16_tagMCSuperGiftInfo () {
_cmd = (ushort)0xAA16;
}
public override void ReadFromBytes (byte[] vBytes) {
- TransBytes (out GiftID, vBytes, NetDataType.DWORD);
- TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10);
+ TransBytes (out StartTime, vBytes, NetDataType.DWORD);
}
}
diff --git a/System/DailyQuest/DayRemind.cs b/System/DailyQuest/DayRemind.cs
index a18bf9d..25ee591 100644
--- a/System/DailyQuest/DayRemind.cs
+++ b/System/DailyQuest/DayRemind.cs
@@ -42,7 +42,6 @@
public const string POTENTIAL_NO_NOTIFY = "PotentialNoNotify";
public const string FLASHSALE_REDPOINT = "FlashSale_Redpoint";
public const string OSTIMEGIFT_REDPOINT = "OSTimeGift_Redpoint";
- public const string OSGIFT_REDPOINT = "OSGitf_Redpoint";
public const string TASK_SKILL_HOLE = "TaskSkillHole";
public const string RUNE_SPECIAL_HOLE = "RuneSpecialHole";
public const string LEAGUE_NOTICE_REDPOINT = "LeagueNoticeRedpoint";
@@ -97,7 +96,6 @@
SetDayRemind(POTENTIAL_NO_NOTIFY);
SetDayRemind(FLASHSALE_REDPOINT);
SetDayRemind(OSTIMEGIFT_REDPOINT);
- SetDayRemind(OSGIFT_REDPOINT);
SetDayRemind(TASK_SKILL_HOLE);
SetDayRemind(RUNE_SPECIAL_HOLE);
SetDayRemind(LEAGUE_NOTICE_REDPOINT);
diff --git a/System/OpenServerActivity/OSGiftBehaviour.cs b/System/OpenServerActivity/OSGiftBehaviour.cs
index 42dac9b..ab48c3f 100644
--- a/System/OpenServerActivity/OSGiftBehaviour.cs
+++ b/System/OpenServerActivity/OSGiftBehaviour.cs
@@ -166,7 +166,7 @@
return;
case StoreFunc.OSGift:
{
- if (giftModel.IsGiftOverdue(_storeConfig.ID))
+ if (!giftModel.IsGiftExist(_storeConfig.ID))
{
SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
return;
diff --git a/System/OpenServerActivity/OSGiftModel.cs b/System/OpenServerActivity/OSGiftModel.cs
index 03adb7f..8300872 100644
--- a/System/OpenServerActivity/OSGiftModel.cs
+++ b/System/OpenServerActivity/OSGiftModel.cs
@@ -9,9 +9,8 @@
{
public override void Init()
{
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
+ ParseConfig();
storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
- vipModel.firstChargeRewardEvent += FirstChargeRewardEvent;
OpenServerActivityCenter.Instance.Register(6, this);
}
@@ -20,9 +19,13 @@
}
+ public void OnBeforePlayerDataInitialize()
+ {
+ startSeconds = 0;
+ }
+
public void OnPlayerLoginOk()
{
- activate = CheckActivate();
if (onStateUpate != null)
{
onStateUpate(6);
@@ -31,25 +34,15 @@
}
public event Action<int> onStateUpate;
- public event Action timeLimitUpdate;
+ public event Action onSelectUpdate;
- public bool activate { get; private set; }
-
- StoreModel storeModel
- {
- get
- {
- return ModelCenter.Instance.GetModel<StoreModel>();
- }
- }
-
- VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
+ StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
public bool IsOpen
{
get
{
- return CheckActivate();
+ return IsExist();
}
}
@@ -57,25 +50,16 @@
{
get
{
- return OSGiftRedpoint.state == RedPointState.Simple;
- }
- }
-
- private void RefreshBuyShopLimitEvent()
- {
- bool _activate = CheckActivate();
- if (activate != _activate)
- {
- activate = _activate;
- if (onStateUpate != null)
+ for (int i = 0; i < redpoints.Count; i++)
{
- onStateUpate(6);
+ if (redpoints[i].state == RedPointState.Simple)
+ {
+ return true;
+ }
}
- UpdateRedpoint();
+ return false;
}
}
-
- public int timeOverdueGiftId { get; private set; }
public bool IsAdvance
{
@@ -85,80 +69,94 @@
}
}
- public DateTime overDueTime = DateTime.Now;
+ int m_SelectIndex = 0;
+ public int selectIndex
+ {
+ get { return m_SelectIndex; }
+ set
+ {
+ if (value != m_SelectIndex)
+ {
+ m_SelectIndex = value;
+ if (onSelectUpdate != null)
+ {
+ onSelectUpdate();
+ }
+ }
+ m_SelectIndex = value;
+ }
+ }
+
+ public int jumpGiftId { get; set; }
+
+ public List<SuperValueGift> gifts { get; private set; }
+ public List<int> alreadyOpens { get; private set; }
+ void ParseConfig()
+ {
+ gifts = new List<SuperValueGift>();
+ alreadyOpens = new List<int>();
+ var config = Config.Instance.Get<FuncConfigConfig>("SuperGiftTimeList");
+ var array = LitJson.JsonMapper.ToObject<int[][]>(config.Numerical1);
+ for (int i = 0; i < array.Length; i++)
+ {
+ gifts.Add(new SuperValueGift()
+ {
+ giftId = array[i][0],
+ openDays = array[i][1],
+ });
+ }
+
+ for (int i = 0; i < gifts.Count; i++)
+ {
+ redpoints.Add(new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20906 * 100 + i));
+ }
+ }
+
+ private void RefreshBuyShopLimitEvent()
+ {
+ UpdateRedpoint();
+ }
+
+ public uint startSeconds { get; private set; }
public void UpdateTime(HAA16_tagMCSuperGiftInfo package)
{
- timeOverdueGiftId = (int)package.GiftID;
- overDueTime = ParseOverdueTime(package.EndtDate);
- bool _activate = CheckActivate();
- if (activate != _activate)
+ startSeconds = package.StartTime;
+ if (onStateUpate != null)
{
- activate = _activate;
- if (onStateUpate != null)
- {
- onStateUpate(6);
- }
- }
- if (timeLimitUpdate != null)
- {
- timeLimitUpdate();
+ onStateUpate(6);
}
UpdateRedpoint();
}
- DateTime ParseOverdueTime(string _date)
+ public bool IsExist()
{
- var array = _date.Split('-');
- var year = int.Parse(array[0]);
- var month = int.Parse(array[1]);
- var day = int.Parse(array[2]);
- var time = new DateTime(year, month, day, 0, 0, 0);
- return time.AddDays(1);
- }
-
- private void FirstChargeRewardEvent()
- {
- bool _activate = CheckActivate();
- if (activate != _activate)
+ for (int i = 0; i < gifts.Count; i++)
{
- activate = _activate;
- if (onStateUpate != null)
- {
- onStateUpate(6);
- }
- }
- UpdateRedpoint();
- }
-
- public bool CheckActivate()
- {
- if (PlayerDatas.Instance.baseData.coinPointTotal == 0
- || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
- {
- return false;
- }
- List<StoreConfig> _list = null;
- StoreConfig.TryGetStoreConfigs((int)StoreFunc.OSGift,out _list);
- for (int i = 0; i < _list.Count; i++)
- {
- if (IsGiftOverdue(_list[i].ID))
+ if (!IsGiftExist(gifts[i].giftId))
{
continue;
}
- var _limit = storeModel.GetBuyShopLimit((uint)_list[i].ID);
- if (_limit == null || _limit.BuyCnt < _list[i].PurchaseNumber[0])
- {
- return true;
- }
+ return true;
}
return false;
}
- public bool IsGiftOverdue(int _id)
+ public bool IsGiftExist(int _id)
{
- if (_id == timeOverdueGiftId)
+ if (startSeconds == 0)
{
- return TimeUtility.ServerNow >= overDueTime;
+ return false;
+ }
+ var gift = gifts.Find((x) =>
+ {
+ return x.giftId == _id;
+ });
+ if (!gift.Equals(default(SuperValueGift)))
+ {
+ var startTime = TimeUtility.GetTime(startSeconds);
+ var endTime = startTime.AddDays(gift.openDays);
+ endTime = new DateTime(endTime.Year, endTime.Month, endTime.Day, 0, 0, 0);
+ return TimeUtility.ServerNow < endTime;
}
return true;
}
@@ -175,43 +173,75 @@
return false;
}
- private void PlayerDataRefreshInfoEvent(PlayerDataRefresh _type)
+ public void SetAreadyOpens()
{
- bool _activate = CheckActivate();
- if (_type == PlayerDataRefresh.ChangeCoinPointTotal && activate != _activate)
+ alreadyOpens.Clear();
+ for (int i = 0; i < gifts.Count; i++)
{
- activate = _activate;
- if (onStateUpate != null)
+ if (IsGiftExist(gifts[i].giftId))
{
- onStateUpate(6);
+ alreadyOpens.Add(i);
}
}
}
- public void OnBeforePlayerDataInitialize()
+ public int GetDefaultSelect()
{
- timeOverdueGiftId = 0;
+ for (int i = 0; i < alreadyOpens.Count; i++)
+ {
+ if (gifts[i].giftId == jumpGiftId)
+ {
+ jumpGiftId = 0;
+ return alreadyOpens[i];
+ }
+ }
+ jumpGiftId = 0;
+ for (int i = 0; i < alreadyOpens.Count; i++)
+ {
+ if (redpoints[alreadyOpens[i]].state == RedPointState.Simple)
+ {
+ return alreadyOpens[i];
+ }
+ }
+ return alreadyOpens[0];
}
- public void SetDayRemind()
+ bool GetDayRemind(int index)
{
- if (OSGiftRedpoint.state == RedPointState.Simple)
+ return LocalSave.GetInt(StringUtility.Contact("OSGift_", index, "_",
+ PlayerDatas.Instance.baseData.PlayerID), 0) == TimeUtility.Day;
+ }
+
+ public void SetDayRemind(int index)
+ {
+ if (redpoints[index].state == RedPointState.Simple)
{
- DayRemind.Instance.SetDayRemind(DayRemind.OSGIFT_REDPOINT, true);
+ LocalSave.SetInt(StringUtility.Contact("OSGift_", index, "_",
+ PlayerDatas.Instance.baseData.PlayerID), TimeUtility.Day);
UpdateRedpoint();
}
}
+ List<Redpoint> redpoints = new List<Redpoint>();
+
void UpdateRedpoint()
{
- OSGiftRedpoint.state = RedPointState.None;
- if (CheckActivate() && !DayRemind.Instance.GetDayRemind(DayRemind.OSGIFT_REDPOINT))
+ for (int i = 0; i < redpoints.Count; i++)
{
- OSGiftRedpoint.state = RedPointState.Simple;
+ redpoints[i].state = RedPointState.None;
+ if (IsGiftExist(gifts[i].giftId) && !IsGiftBuy(gifts[i].giftId)
+ && !GetDayRemind(i))
+ {
+ redpoints[i].state = RedPointState.Simple;
+ }
}
}
- public Redpoint OSGiftRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20906);
+ public struct SuperValueGift
+ {
+ public int giftId;
+ public int openDays;
+ }
}
}
diff --git a/System/OpenServerActivity/OpenServerActivityCell.cs b/System/OpenServerActivity/OpenServerActivityCell.cs
index 246d1a6..03ae9e6 100644
--- a/System/OpenServerActivity/OpenServerActivityCell.cs
+++ b/System/OpenServerActivity/OpenServerActivityCell.cs
@@ -37,8 +37,8 @@
[SerializeField] UIEffect m_TitleEffect;
public UIEffect titleEffect { get { return m_TitleEffect; } }
- private int m_Order = 0;
- public int order { get { return m_Order; } set { m_Order = value; } }
+ private int m_ActivityType = 0;
+ public int activityType { get { return m_ActivityType; } set { m_ActivityType = value; } }
public void ChangeState(TitleBtnState _state)
{
diff --git a/System/OpenServerActivity/OpenServerActivityWin.cs b/System/OpenServerActivity/OpenServerActivityWin.cs
index 9239b53..18d89d4 100644
--- a/System/OpenServerActivity/OpenServerActivityWin.cs
+++ b/System/OpenServerActivity/OpenServerActivityWin.cs
@@ -17,20 +17,25 @@
Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>();
ImpactRankModel m_ImpactRankModel;
- ImpactRankModel impactRankModel {
- get {
+ ImpactRankModel impactRankModel
+ {
+ get
+ {
return m_ImpactRankModel ?? (m_ImpactRankModel = ModelCenter.Instance.GetModel<ImpactRankModel>());
}
}
OSRedEnvelopeModel m_OSRedEnvelopeModel;
- OSRedEnvelopeModel envelopeModel {
- get {
+ OSRedEnvelopeModel envelopeModel
+ {
+ get
+ {
return m_OSRedEnvelopeModel ?? (m_OSRedEnvelopeModel = ModelCenter.Instance.GetModel<OSRedEnvelopeModel>());
}
}
FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
+ OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
List<int> openActivitys = new List<int>();
List<int> priorityActivitys = new List<int>();
@@ -58,7 +63,7 @@
{
m_ActivitySpreadDict[(int)m_CustomActivitys[i].activityType] = false;
}
- var impactDefaultType= impactRankModel.GetDefaultSelectType();
+ var impactDefaultType = impactRankModel.GetDefaultSelectType();
if (impactRankModel.IsLock(impactDefaultType))
{
impactDefaultType = impactRankModel.billRankCfgDict.Keys.First();
@@ -66,6 +71,7 @@
impactRankModel.presentSelectType = impactDefaultType;
impactRankModel.gotoImpactRankType = 0;
envelopeModel.selectType = 1;
+ giftModel.SetAreadyOpens();
GlobalTimeEvent.Instance.secondEvent += SecondEvent;
CheckAlreadyOpen();
UpdateFunctionBtns();
@@ -109,9 +115,27 @@
envelopeModel.selectType = envelopeModel.JumpType != 0 ? envelopeModel.JumpType : 1;
envelopeModel.JumpType = 0;
}
+ if (functionOrder == 6)
+ {
+ giftModel.selectIndex = giftModel.GetDefaultSelect();
+ }
UpdateFunctionBtns();
}
OnOpenActivity(functionOrder);
+
+ var index = functionOrder;
+ if (alreadyOpenActivitys.Contains(6))
+ {
+ if (functionOrder > 6)
+ {
+ index = functionOrder + giftModel.alreadyOpens.Count - 1;
+ }
+ else if (functionOrder == 6)
+ {
+ index = functionOrder + giftModel.selectIndex;
+ }
+ }
+ m_ActivityCtrl.JumpIndex(index);
}
protected override void OnAfterOpen()
@@ -155,6 +179,9 @@
{
case OpenServerActivityCenter.OSActivityType.OSRedpack:
envelopeModel.selectType = envelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple ? 1 : 2;
+ break;
+ case OpenServerActivityCenter.OSActivityType.OSGift:
+ giftModel.selectIndex = giftModel.GetDefaultSelect();
break;
}
}
@@ -244,16 +271,21 @@
private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
{
+ var activityType = 0;
+ activityType = _cell.index >= 1000 ? _cell.index / 1000 : _cell.index;
+ var extraValue = _cell.index % 1000;
+
var customActivity = m_CustomActivitys.Find((x) =>
{
- return (int)x.activityType == _cell.index;
+ return (int)x.activityType == activityType;
});
- bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon);
+ bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon)
+ || (customActivity.titleIcons != null && customActivity.titleIcons.Count > 0);
_cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown);
OperationBase operationBase;
- switch (_cell.index)
+ switch (activityType)
{
case 5:
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase))
@@ -298,37 +330,63 @@
break;
default:
_cell.title.gameObject.SetActive(!customIcon);
- _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+ if (!customIcon)
+ {
+ _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index));
+ }
break;
}
- _cell.order = _cell.index;
- _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + _cell.index;
- _cell.ChangeState(_cell.order == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
+
+ _cell.activityType = activityType;
+
+ _cell.titleImage.gameObject.SetActive(customIcon);
+ _cell.titleEffect.StopImediatly();
+ switch (activityType)
+ {
+ case 6:
+ _cell.redpoint.redpointId = 20906 * 100 + extraValue;
+ _cell.ChangeState(extraValue == giftModel.selectIndex && functionOrder == activityType
+ ? TitleBtnState.Click : TitleBtnState.Normal);
+ if (customIcon)
+ {
+ _cell.titleImage.SetSprite(customActivity.titleIcons[extraValue]);
+ _cell.titleImage.SetNativeSize();
+ }
+ if (customActivity.titleEffectIds != null && extraValue < customActivity.titleEffectIds.Count)
+ {
+ _cell.titleEffect.effect = customActivity.titleEffectIds[extraValue];
+ _cell.titleEffect.Play();
+ }
+ break;
+ default:
+ _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + activityType;
+ _cell.ChangeState(_cell.activityType == functionOrder ? TitleBtnState.Click : TitleBtnState.Normal);
+ if (customIcon)
+ {
+ _cell.titleImage.SetSprite(customActivity.titleIcon);
+ _cell.titleImage.SetNativeSize();
+ }
+ if (customActivity.titleEffectId != 0)
+ {
+ _cell.titleEffect.effect = customActivity.titleEffectId;
+ _cell.titleEffect.Play();
+ }
+ break;
+ }
+
_cell.downArrow.gameObject.SetActive(false);
_cell.upArrow.gameObject.SetActive(false);
- _cell.titleImage.gameObject.SetActive(customIcon);
- if (customIcon)
+ if (_cell.activityType == 0 || _cell.activityType == 2)
{
- _cell.titleImage.SetSprite(customActivity.titleIcon);
- _cell.titleImage.SetNativeSize();
- }
- _cell.titleEffect.StopImediatly();
- if (customActivity.titleEffectId != 0)
- {
- _cell.titleEffect.effect = customActivity.titleEffectId;
- _cell.titleEffect.Play();
+ _cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.activityType]);
+ _cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.activityType]);
}
- if (_cell.order == 0 || _cell.order == 2)
- {
- _cell.downArrow.gameObject.SetActive(m_ActivitySpreadDict[_cell.order]);
- _cell.upArrow.gameObject.SetActive(!m_ActivitySpreadDict[_cell.order]);
- }
_cell.funcBtn.onClick.RemoveAllListeners();
_cell.funcBtn.onClick.AddListener(() =>
{
- OnActivityClick(_cell.order);
+ OnActivityClick(_cell.activityType, extraValue);
});
}
@@ -402,6 +460,12 @@
m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 1);
m_ActivityCtrl.AddCell(ScrollerDataType.Normal, sort * 100 + 2);
break;
+ case 6:
+ for (int k = 0; k < giftModel.alreadyOpens.Count; k++)
+ {
+ m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort * 1000 + giftModel.alreadyOpens[k]);
+ }
+ break;
default:
m_ActivityCtrl.AddCell(ScrollerDataType.Header, sort);
break;
@@ -411,9 +475,9 @@
m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
}
- private void OnActivityClick(int _order)
+ private void OnActivityClick(int _order, int extra = 0)
{
- if (functionOrder == _order)
+ if (functionOrder == _order && _order != 6)
{
m_ActivitySpreadDict[_order] = !m_ActivitySpreadDict[_order];
UpdateFunctionBtns();
@@ -424,8 +488,20 @@
m_ActivitySpreadDict[functionOrder] = false;
m_ActivitySpreadDict[_order] = true;
}
- functionOrder = _order;
- OnOpenActivity(functionOrder);
+
+ if (functionOrder != _order)
+ {
+ functionOrder = _order;
+ OnOpenActivity(functionOrder);
+ }
+
+ switch (functionOrder)
+ {
+ case 6:
+ giftModel.selectIndex = extra;
+ break;
+ }
+
UpdateFunctionBtns();
}
@@ -435,164 +511,52 @@
switch (_order)
{
case 0:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<ImpactRankWin>();
- }
- else
- {
- WindowCenter.Instance.Open<ImpactRankWin>(true);
- }
+ WindowCenter.Instance.Open<ImpactRankWin>(true);
break;
case 1:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<ConsumeRebateWin>();
- }
- else
- {
- WindowCenter.Instance.Open<ConsumeRebateWin>(true);
- }
+ WindowCenter.Instance.Open<ConsumeRebateWin>(true);
break;
case 2:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<OpenServerRedEnvelopeWin>();
- }
- else
- {
- WindowCenter.Instance.Open<OpenServerRedEnvelopeWin>(true);
- }
+ WindowCenter.Instance.Open<OpenServerRedEnvelopeWin>(true);
break;
case 3:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<OSTimeLimitGiftWin>();
- }
- else
- {
- WindowCenter.Instance.Open<OSTimeLimitGiftWin>(true);
- }
+ WindowCenter.Instance.Open<OSTimeLimitGiftWin>(true);
break;
case 4:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<FlashSaleWin>();
- }
- else
- {
- WindowCenter.Instance.Open<FlashSaleWin>(true);
- }
+ WindowCenter.Instance.Open<FlashSaleWin>(true);
break;
case 5:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<MultipleExpWin>();
- }
- else
- {
- WindowCenter.Instance.Open<MultipleExpWin>(true);
- }
+ WindowCenter.Instance.Open<MultipleExpWin>(true);
break;
case 6:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<OpenServerGiftWin>();
- }
- else
- {
- WindowCenter.Instance.Open<OpenServerGiftWin>(true);
- }
+ WindowCenter.Instance.Open<OpenServerGiftWin>(true);
break;
case 7:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<LimitedTimePackageWin>();
- }
- else
- {
- WindowCenter.Instance.Open<LimitedTimePackageWin>(true);
- }
+ WindowCenter.Instance.Open<LimitedTimePackageWin>(true);
break;
case 8:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<NPracticePointWin>();
- }
- else
- {
- WindowCenter.Instance.Open<NPracticePointWin>(true);
- }
+ WindowCenter.Instance.Open<NPracticePointWin>(true);
break;
case 9:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<BossRebornWin>();
- }
- else
- {
- WindowCenter.Instance.Open<BossRebornWin>(true);
- }
+ WindowCenter.Instance.Open<BossRebornWin>(true);
break;
case 10:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<FairyJadeInvestmentWin>();
- }
- else
- {
- WindowCenter.Instance.Open<FairyJadeInvestmentWin>(true);
- }
+ WindowCenter.Instance.Open<FairyJadeInvestmentWin>(true);
break;
case 11:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<VipInvestWin>();
- }
- else
- {
- WindowCenter.Instance.Open<VipInvestWin>(true);
- }
+ WindowCenter.Instance.Open<VipInvestWin>(true);
break;
case 12:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<FairyLeagueNoticeWin>();
- }
- else
- {
- WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
- }
+ WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
break;
case 13:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<FairyGrabBossNoticeWin>();
- }
- else
- {
- WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true);
- }
+ WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true);
break;
case 14:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<FlashRushToBuyWin>();
- }
- else
- {
- WindowCenter.Instance.Open<FlashRushToBuyWin>(true);
- }
+ WindowCenter.Instance.Open<FlashRushToBuyWin>(true);
break;
case 15:
- if (windowState == WindowState.Opened)
- {
- WindowCenter.Instance.OpenWithoutAnimation<WishingPoolWin>();
- }
- else
- {
- WindowCenter.Instance.Open<WishingPoolWin>(true);
- }
+ WindowCenter.Instance.Open<WishingPoolWin>(true);
break;
}
}
@@ -679,6 +643,9 @@
public OpenServerActivityCenter.OSActivityType activityType;
public string titleIcon;
public int titleEffectId;
+
+ public List<string> titleIcons;
+ public List<int> titleEffectIds;
}
}
}
diff --git a/System/OpenServerActivity/OpenServerGiftWin.cs b/System/OpenServerActivity/OpenServerGiftWin.cs
index 42f54e8..f9788a0 100644
--- a/System/OpenServerActivity/OpenServerGiftWin.cs
+++ b/System/OpenServerActivity/OpenServerGiftWin.cs
@@ -15,7 +15,6 @@
public class OpenServerGiftWin : Window
{
[SerializeField] RectTransform m_ContainerDisplay;
- [SerializeField] Button[] m_CloseBtns;
[SerializeField] OSGiftBehaviour[] m_OSGifts;
[SerializeField] RectTransform m_ContainerTime;
[SerializeField] Text m_Overdue;
@@ -29,8 +28,6 @@
}
}
- int currentSelectId = 0;
-
OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } }
#region Built-in
protected override void BindController()
@@ -39,24 +36,20 @@
protected override void AddListeners()
{
- for (int i = 0; i < m_CloseBtns.Length; i++)
- {
- m_CloseBtns[i].onClick.AddListener(OnCloseClick);
- }
}
protected override void OnPreOpen()
{
- WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
- WindowCenter.Instance.windowAfterCloseEvent += windowAfterCloseEvent;
- model.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
- TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
- GlobalTimeEvent.Instance.secondEvent += SecondEvent;
- giftModel.timeLimitUpdate += TimeLimitUpdate;
- giftModel.SetDayRemind();
- Display();
+ if (!giftModel.alreadyOpens.Contains(giftModel.selectIndex))
+ {
+ giftModel.selectIndex = giftModel.alreadyOpens[0];
+ }
- m_ContainerDisplay.gameObject.SetActive(!WindowCenter.Instance.IsOpen<OffLineOnHookWin>());
+ model.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
+ GlobalTimeEvent.Instance.secondEvent += SecondEvent;
+ giftModel.onSelectUpdate += OnSelectUpdate;
+ giftModel.jumpGiftId = 0;
+ Display();
}
protected override void OnAfterOpen()
@@ -65,12 +58,9 @@
protected override void OnPreClose()
{
- WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterOpenEvent;
- WindowCenter.Instance.windowAfterCloseEvent -= windowAfterCloseEvent;
model.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent;
- TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
- giftModel.timeLimitUpdate -= TimeLimitUpdate;
+ giftModel.onSelectUpdate -= OnSelectUpdate;
}
protected override void OnAfterClose()
@@ -78,28 +68,12 @@
}
#endregion
- private void WindowAfterOpenEvent(Window _win)
- {
- if(_win is OffLineOnHookWin)
- {
- m_ContainerDisplay.gameObject.SetActive(false);
- }
- }
-
- private void windowAfterCloseEvent(Window _win)
- {
- if (_win is OffLineOnHookWin)
- {
- m_ContainerDisplay.gameObject.SetActive(true);
- }
- }
-
- private void RefreshBuyShopLimitEvent()
+ private void OnSelectUpdate()
{
Display();
}
- private void OnServerOpenDayRefresh()
+ private void RefreshBuyShopLimitEvent()
{
Display();
}
@@ -109,59 +83,48 @@
DisplayTimer();
}
- private void TimeLimitUpdate()
- {
- Display();
- }
-
void DisplayTimer()
{
- var seconds = (int)(giftModel.overDueTime - TimeUtility.ServerNow).TotalSeconds;
- if (giftModel.IsGiftOverdue(currentSelectId) || seconds <= 0)
+ if (giftModel.selectIndex >= 0 && giftModel.selectIndex < giftModel.gifts.Count)
{
- m_ContainerTime.gameObject.SetActive(false);
- m_Overdue.gameObject.SetActive(true);
- }
- else
- {
- m_ContainerTime.gameObject.SetActive(true);
- m_Overdue.gameObject.SetActive(false);
- m_Timer.text = TimeUtility.SecondsToDHMSCHS(seconds);
- m_Timer.color = UIHelper.GetUIColor(TextColType.Green);
+ var gift = giftModel.gifts[giftModel.selectIndex];
+ var startTime = TimeUtility.GetTime(giftModel.startSeconds);
+ var endTime = startTime.AddDays(gift.openDays);
+ endTime = new DateTime(endTime.Year, endTime.Month, endTime.Day, 0, 0, 0);
+ var seconds = (int)(endTime - TimeUtility.ServerNow).TotalSeconds;
+ if (seconds <= 0)
+ {
+ m_ContainerTime.gameObject.SetActive(false);
+ m_Overdue.gameObject.SetActive(true);
+ }
+ else
+ {
+ m_ContainerTime.gameObject.SetActive(true);
+ m_Overdue.gameObject.SetActive(false);
+ m_Timer.text = TimeUtility.SecondsToDHMSCHS(seconds);
+ m_Timer.color = UIHelper.GetUIColor(TextColType.Green);
+ }
}
}
private void Display()
{
- List<StoreConfig> _list = null;
- StoreConfig.TryGetStoreConfigs((int)StoreFunc.OSGift, out _list);
var _index = 0;
- for (int i = 0; i < _list.Count; i++)
+ for (int i = 0; i < giftModel.gifts.Count; i++)
{
- if (!giftModel.IsGiftOverdue(_list[i].ID))
+ if (giftModel.selectIndex == i)
{
- var _storeConfig = Config.Instance.Get<StoreConfig>(_list[i].ID);
- var _limit = model.GetBuyShopLimit((uint)_list[i].ID);
- if (_limit == null || _limit.BuyCnt < _storeConfig.PurchaseNumber[0])
- {
- _index = i;
- currentSelectId = _list[i].ID;
- m_OSGifts[i].Display(_list[i].ID);
- break;
- }
+ m_OSGifts[i].Display(giftModel.gifts[i].giftId);
+ _index = i;
+ break;
}
- _index = i;
}
+ giftModel.SetDayRemind(giftModel.selectIndex);
for (int i = 0; i < m_OSGifts.Length; i++)
{
m_OSGifts[i].gameObject.SetActive(_index == i);
}
DisplayTimer();
- }
-
- private void OnCloseClick()
- {
- CloseImmediately();
}
}
diff --git a/System/WindowJump/WindowJumpMgr.cs b/System/WindowJump/WindowJumpMgr.cs
index eea731f..7bd419b 100644
--- a/System/WindowJump/WindowJumpMgr.cs
+++ b/System/WindowJump/WindowJumpMgr.cs
@@ -837,7 +837,7 @@
var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
int giftId = 0;
int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
- if (!giftModel.CheckActivate())
+ if (!giftModel.IsGiftExist(giftId))
{
if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
|| !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
@@ -848,12 +848,16 @@
{
SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
}
- else if (giftModel.IsGiftOverdue(giftId))
+ else if (!giftModel.IsGiftExist(giftId))
{
SysNotifyMgr.Instance.ShowTip("MissSell");
}
return false;
}
+ else
+ {
+ giftModel.jumpGiftId = giftId;
+ }
break;
case JumpUIType.OpenServerGift:
return false;
--
Gitblit v1.8.0