From 0012445c0109fa67987800a1bac8f32e989b2d19 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 15 八月 2018 15:16:01 +0800
Subject: [PATCH] Merge branch 'master' into leonard
---
System/OpenServerActivity/ImpactRankModel.cs | 209 +++++++++++++++-------------------------------------
1 files changed, 61 insertions(+), 148 deletions(-)
diff --git a/System/OpenServerActivity/ImpactRankModel.cs b/System/OpenServerActivity/ImpactRankModel.cs
index 227c8ed..9a72876 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)
{
@@ -522,7 +529,8 @@
{
var _redpoint = m_Redpoints[_type];
_redpoint.state = RedPointState.None;
- if (IsMissImpactRank(_type) || !IsActivityClose(_type))
+ bool _locked = IsLock(_type);
+ if (IsMissImpactRank(_type) || _locked)
{
return;
}
@@ -551,7 +559,7 @@
}
}
}
- else
+ else if (IsActivityClose(_type))
{
var _start = (_cfg as OSCBillRankAwardConfig).RankA;
var _end = (_cfg as OSCBillRankAwardConfig).RankB;
@@ -619,98 +627,51 @@
#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 OperationEndEvent(Operation type, int state)
+ private void OnStateUpate(int _order)
{
- if ((type == Operation.FlashSale || type == Operation.BossReborn
- || type == Operation.ConsumeRebate || type == Operation.GiftPackage
- || type == Operation.MultipRealmPoint)
- && state == 0)
+ if (openServerActivityStateChange != null)
{
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
- if ((type == Operation.MultipleExp)
- && state == 1)
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
- }
-
- private void OperationStartEvent(Operation type, int state)
- {
- if ((type == Operation.FlashSale || type == Operation.BossReborn
- || type == Operation.ConsumeRebate || 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)
- {
- openServerActivityStateChange();
- }
+ openServerActivityStateChange();
}
}
@@ -725,95 +686,47 @@
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 (IsMultipleRealmOpen())
- {
- _functionOrder = 8;
- return true;
- }
-
- if (IsBossRebornOpen())
- {
- _functionOrder = 9;
- return true;
+ if (openServerActivitys[_order].IsOpen)
+ {
+ _functionOrder = _order;
+ return true;
+ }
}
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();
- }
-
- public bool IsMultipleRealmOpen()
- {
- return multipleRealmModel.IsOpen;
+ if (openServerActivitys.ContainsKey(_funcOrder))
+ {
+ return openServerActivitys[_funcOrder].priorityOpen;
+ }
+ return false;
}
public void ProcessErrorTip()
{
SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
}
+ }
- public bool IsBossRebornOpen()
- {
- return bossRebornModel.IsOpen();
- }
+ public interface IOpenServerActivity
+ {
+ bool IsOpen { get; }
+ bool priorityOpen { get; }
+ event Action<int> onStateUpate;
}
}
--
Gitblit v1.8.0