From 83f2f92d2d40f03f565a2b2ccf8ab1b0fa3b9306 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 14 八月 2018 16:40:43 +0800
Subject: [PATCH] 暂时提交精彩活动修改
---
System/OpenServerActivity/ImpactRankModel.cs | 170 ++++++++++++++++++++++----------------------------------
1 files changed, 68 insertions(+), 102 deletions(-)
diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 227c8ed..3ceb88a 100644
--- a/System/OpenServerActivity/ImpactRankModel.cs
+++ b/System/OpenServerActivity/ImpactRankModel.cs
@@ -7,7 +7,7 @@
namespace Snxxz.UI
{
- public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+ public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
{
public override void Init()
{
@@ -15,6 +15,7 @@
PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRank;
TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ OpenServerActivityCenter.Instance.Register(0, this);
}
public override void UnInit()
@@ -49,6 +50,10 @@
if (_id == 125)
{
UpdateRedpoint();
+ if (onStateUpate != null)
+ {
+ onStateUpate(0);
+ }
}
}
@@ -416,6 +421,8 @@
#region 鍗忚
public event Action OnAwardGetEvent;
+ public event Action<int> onStateUpate;
+
private Dictionary<int, OpenServerPlayerData> impactAwardGetDict = new Dictionary<int, OpenServerPlayerData>();
public void UpdateGetState(HAB17_tagMCOpenServerCampaignAwardList _package)
{
@@ -619,59 +626,65 @@
#region 涓荤晫闈㈢壒鏁�
public bool OSCEffectOpen { get; set; }
+
+ public bool IsOpen
+ {
+ get
+ {
+ return TimeUtility.OpenDay < openServerActivityDays && FuncOpen.Instance.IsFuncOpen(125);
+ }
+ }
+
+ public bool priorityOpen
+ {
+ get
+ {
+ var state = impactRankRedpoint.state;
+ return state == RedPointState.Simple || state == RedPointState.GetReward;
+ }
+ }
#endregion
}
public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
{
- ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }
- OSRedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
- OSTimeLimitGiftModel timeLimitGiftModel { get { return ModelCenter.Instance.GetModel<OSTimeLimitGiftModel>(); } }
- FlashSaleModel flashSaleModel { get { return ModelCenter.Instance.GetModel<FlashSaleModel>(); } }
-
- ConsumeRebateModel consumeRebateModel { get { return ModelCenter.Instance.GetModel<ConsumeRebateModel>(); } }
-
- MultipleExpModel multipleExpModel { get { return ModelCenter.Instance.GetModel<MultipleExpModel>(); } }
BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
MultipleRealmPointModel multipleRealmModel { get { return ModelCenter.Instance.GetModel<MultipleRealmPointModel>(); } }
public event Action openServerActivityStateChange;
+ Dictionary<int, IOpenServerActivity> openServerActivitys = new Dictionary<int, IOpenServerActivity>();
+
public OpenServerActivityCenter()
{
TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
- FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
- OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
}
- private void OperationAdvanceEvent(Operation type)
+ public void Register(int funcOrder, IOpenServerActivity activity)
{
- if (type == Operation.FlashSale)
+ if (!openServerActivitys.ContainsKey(funcOrder))
{
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
+ openServerActivitys.Add(funcOrder, activity);
+ activity.onStateUpate += OnStateUpate;
+ }
+ }
+
+ private void OnStateUpate(int _order)
+ {
+ if (openServerActivityStateChange != null)
+ {
+ openServerActivityStateChange();
}
}
private void OperationEndEvent(Operation type, int state)
{
- if ((type == Operation.FlashSale || type == Operation.BossReborn
- || type == Operation.ConsumeRebate || type == Operation.GiftPackage
+ if ((type == Operation.BossReborn|| type == Operation.GiftPackage
|| type == Operation.MultipRealmPoint)
&& state == 0)
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
- if ((type == Operation.MultipleExp)
- && state == 1)
{
if (openServerActivityStateChange != null)
{
@@ -682,30 +695,9 @@
private void OperationStartEvent(Operation type, int state)
{
- if ((type == Operation.FlashSale || type == Operation.BossReborn
- || type == Operation.ConsumeRebate || type == Operation.GiftPackage
+ if ((type == Operation.BossReborn|| type == Operation.GiftPackage
|| type == Operation.MultipRealmPoint)
&& state == 0)
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
- if ((type == Operation.MultipleExp)
- && state == 1)
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
- }
-
- private void OnFuncStateChangeEvent(int _id)
- {
- if (_id == 125 || _id == (int)FuncOpenEnum.OpenServerRedEnvelope
- || _id == 132)
{
if (openServerActivityStateChange != null)
{
@@ -725,35 +717,13 @@
public bool IsAnyActivityOpen(out int _functionOrder)
{
_functionOrder = 0;
- if (IsImpactRankOpen())
+ foreach (var _order in openServerActivitys.Keys)
{
- _functionOrder = 0;
- return true;
- }
- if (IsConsumeRebateOpen())
- {
- _functionOrder = 1;
- return true;
- }
- if (IsRedEnvelopeOpen())
- {
- _functionOrder = 2;
- return true;
- }
- if (IsTimeLimitGiftOpen())
- {
- _functionOrder = 3;
- return true;
- }
- if (IsFlashSaleOpen())
- {
- _functionOrder = 4;
- return true;
- }
- if (IsMultipleExpOpen())
- {
- _functionOrder = 5;
- return true;
+ if (openServerActivitys[_order].IsOpen)
+ {
+ _functionOrder = _order;
+ return true;
+ }
}
if (IsMultipleRealmOpen())
{
@@ -769,34 +739,22 @@
return false;
}
- public bool IsImpactRankOpen()
+ public bool IsActivityOpen(int _funcOrder)
{
- return TimeUtility.OpenDay < impactRankModel.openServerActivityDays && FuncOpen.Instance.IsFuncOpen(125);
+ if (openServerActivitys.ContainsKey(_funcOrder))
+ {
+ return openServerActivitys[_funcOrder].IsOpen;
+ }
+ return false;
}
- public bool IsRedEnvelopeOpen()
+ public bool IsPriorityOpenOpen(int _funcOrder)
{
- return TimeUtility.OpenDay < envelopeModel.openDays && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OpenServerRedEnvelope);
- }
-
- public bool IsTimeLimitGiftOpen()
- {
- return TimeUtility.CreateDays <= timeLimitGiftModel.openDays && FuncOpen.Instance.IsFuncOpen(132);
- }
-
- public bool IsFlashSaleOpen()
- {
- return flashSaleModel.IsOpen || flashSaleModel.InAdvanceOpen;
- }
-
- public bool IsConsumeRebateOpen()
- {
- return consumeRebateModel.IsOpen;
- }
-
- public bool IsMultipleExpOpen()
- {
- return multipleExpModel.Open();
+ if (openServerActivitys.ContainsKey(_funcOrder))
+ {
+ return openServerActivitys[_funcOrder].priorityOpen;
+ }
+ return false;
}
public bool IsMultipleRealmOpen()
@@ -811,9 +769,17 @@
public bool IsBossRebornOpen()
{
- return bossRebornModel.IsOpen();
+ return bossRebornModel.IsOpen;
}
}
+
+ public interface IOpenServerActivity
+ {
+ bool IsOpen { get; }
+ bool priorityOpen { get; }
+
+ event Action<int> onStateUpate;
+ }
}
--
Gitblit v1.8.0