| | |
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | | public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
| | | public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
|
| | | {
|
| | | public override void Init()
|
| | | {
|
| | |
| | | PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRank;
|
| | | TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | | OpenServerActivityCenter.Instance.Register(0, this);
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | | if (_id == 125)
|
| | | {
|
| | | UpdateRedpoint();
|
| | | if (onStateUpate != null)
|
| | | {
|
| | | onStateUpate(0);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | | #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)
|
| | | {
|
| | |
| | |
|
| | | #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)
|
| | | {
|
| | |
| | |
|
| | | 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)
|
| | | {
|
| | |
| | | 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())
|
| | | {
|
| | |
| | | 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()
|
| | |
| | |
|
| | | public bool IsBossRebornOpen()
|
| | | {
|
| | | return bossRebornModel.IsOpen();
|
| | | return bossRebornModel.IsOpen;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | public interface IOpenServerActivity
|
| | | {
|
| | | bool IsOpen { get; }
|
| | | bool priorityOpen { get; }
|
| | |
|
| | | event Action<int> onStateUpate;
|
| | | }
|
| | | }
|
| | |
|