| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | namespace Snxxz.UI |
| | | { |
| | | public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize |
| | | { |
| | | private bool showTip = false; |
| | | public override void Init() |
| | | { |
| | | OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent; |
| | | OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent; |
| | | WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent; |
| | | StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; |
| | | |
| | | } |
| | | |
| | | private void OnStageLoadFinish() |
| | | { |
| | | if (!(StageManager.Instance.CurrentStage is DungeonStage)) |
| | | { |
| | | showTip = true; |
| | | } |
| | | } |
| | | |
| | | private void WindowAfterOpenEvent(Window _win) |
| | | { |
| | | if (_win is MainInterfaceWin && StageManager.Instance.CurrentStage is DungeonStage && showTip) |
| | | { |
| | | OperationBase operationBase; |
| | | if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase) |
| | | && operationBase.InDay(TimeUtility.ServerNow) && operationBase.SatisfyOpenCondition()) |
| | | { |
| | | OperationMultiExp operation = operationBase as OperationMultiExp; |
| | | if (operationBase.allDay || operation.InTime(TimeUtility.ServerNow)) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("ExpActivity_Goahead", |
| | | operation.GetMultipleCHS()); |
| | | } |
| | | else |
| | | { |
| | | for (int i = 0; i < operationBase.times.Count; i++) |
| | | { |
| | | if (operationBase.times[i].SideOfTime(TimeUtility.ServerNow) == -1) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("ExpActivity_Ready", |
| | | operation.GetMultipleCHS(), |
| | | operationBase.times[i].ToString()); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | showTip = false; |
| | | } |
| | | } |
| | | |
| | | public void OnBeforePlayerDataInitialize() |
| | | { |
| | | } |
| | | |
| | | public void OnPlayerLoginOk() |
| | | { |
| | | UpdateRedpoint(); |
| | | } |
| | | |
| | | public override void UnInit() |
| | | { |
| | | OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; |
| | | OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent; |
| | | WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterOpenEvent; |
| | | } |
| | | |
| | | private void OperationStartEvent(Operation type, int state) |
| | | { |
| | | if (type == Operation.MultipleExp && state == 1) |
| | | { |
| | | UpdateRedpoint(); |
| | | } |
| | | } |
| | | |
| | | private void OperationTimeUpdateEvent(Operation _type) |
| | | { |
| | | if (_type == Operation.MultipleExp) |
| | | { |
| | | UpdateRedpoint(); |
| | | } |
| | | } |
| | | |
| | | public Redpoint multipleExpRedpoint = new Redpoint(201, 20106); |
| | | |
| | | public void SetDayRemind() |
| | | { |
| | | if (multipleExpRedpoint.state == RedPointState.Simple) |
| | | { |
| | | DayRemind.Instance.SetDayRemind(DayRemind.MULTIPLE_EXP_REDPOINT, true); |
| | | UpdateRedpoint(); |
| | | } |
| | | } |
| | | |
| | | public bool Open() |
| | | { |
| | | OperationBase operation; |
| | | OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operation); |
| | | return operation != null && operation.SatisfyOpenCondition() && operation.InDay(TimeUtility.ServerNow); |
| | | } |
| | | |
| | | private void UpdateRedpoint() |
| | | { |
| | | multipleExpRedpoint.state = RedPointState.None; |
| | | if (DayRemind.Instance.GetDayRemind(DayRemind.MULTIPLE_EXP_REDPOINT) |
| | | || !Open()) |
| | | { |
| | | multipleExpRedpoint.state = RedPointState.None; |
| | | return; |
| | | } |
| | | multipleExpRedpoint.state = RedPointState.Simple; |
| | | } |
| | | } |
| | | } |
| | | |
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | namespace Snxxz.UI
|
| | | {
|
| | | public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
|
| | | {
|
| | | private bool showTip = false;
|
| | | private bool todayRemind = false;
|
| | | public override void Init()
|
| | | {
|
| | | OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
|
| | | OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
|
| | | OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
|
| | | WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
|
| | | StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
|
| | | OpenServerActivityCenter.Instance.Register(5, this);
|
| | | }
|
| | |
|
| | | private void OnStageLoadFinish()
|
| | | {
|
| | | if (!(StageManager.Instance.CurrentStage is DungeonStage))
|
| | | {
|
| | | showTip = true;
|
| | | todayRemind = false;
|
| | | }
|
| | | }
|
| | |
|
| | | private void WindowAfterOpenEvent(Window _win)
|
| | | {
|
| | | if (_win is MainInterfaceWin && StageManager.Instance.CurrentStage is DungeonStage && showTip)
|
| | | {
|
| | | OperationBase operationBase;
|
| | | if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operationBase)
|
| | | && operationBase.InDay(TimeUtility.ServerNow) && operationBase.SatisfyOpenCondition())
|
| | | {
|
| | | OperationMultiExp operation = operationBase as OperationMultiExp;
|
| | | if (operationBase.allDay || operation.InTime(TimeUtility.ServerNow))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("ExpActivity_Goahead",
|
| | | operation.GetMultipleCHS());
|
| | | }
|
| | | else
|
| | | {
|
| | | for (int i = 0; i < operationBase.times.Count; i++)
|
| | | {
|
| | | if (operationBase.times[i].SideOfTime(TimeUtility.ServerNow) == -1)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("ExpActivity_Ready",
|
| | | operation.GetMultipleCHS(),
|
| | | operationBase.times[i].ToString());
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | showTip = false;
|
| | | }
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | UpdateRedpoint();
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | | {
|
| | | OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
|
| | | OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
|
| | | OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
|
| | | WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterOpenEvent;
|
| | | }
|
| | |
|
| | | private void OperationStartEvent(Operation type, int state)
|
| | | {
|
| | | if (type == Operation.MultipleExp && state == 1)
|
| | | {
|
| | | UpdateRedpoint();
|
| | | if (onStateUpate != null)
|
| | | {
|
| | | onStateUpate(5);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void OperationEndEvent(Operation type, int state)
|
| | | {
|
| | | if (type == Operation.MultipleExp && state == 1)
|
| | | {
|
| | | UpdateRedpoint();
|
| | | if (onStateUpate != null)
|
| | | {
|
| | | onStateUpate(5);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void OperationTimeUpdateEvent(Operation _type)
|
| | | {
|
| | | if (_type == Operation.MultipleExp)
|
| | | {
|
| | | UpdateRedpoint();
|
| | | }
|
| | | }
|
| | |
|
| | | public Redpoint multipleExpRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20905);
|
| | |
|
| | | public event Action<int> onStateUpate;
|
| | |
|
| | | public bool IsOpen
|
| | | {
|
| | | get
|
| | | {
|
| | | return Open();
|
| | | }
|
| | | }
|
| | |
|
| | | public bool priorityOpen
|
| | | {
|
| | | get
|
| | | {
|
| | | return multipleExpRedpoint.state == RedPointState.Simple;
|
| | | }
|
| | | }
|
| | |
|
| | | public void SetDayRemind()
|
| | | {
|
| | | if (multipleExpRedpoint.state == RedPointState.Simple)
|
| | | {
|
| | | todayRemind = true;
|
| | | UpdateRedpoint();
|
| | | }
|
| | | }
|
| | |
|
| | | public bool Open()
|
| | | {
|
| | | OperationBase operation;
|
| | | OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipleExp, out operation);
|
| | | return operation != null && operation.SatisfyOpenCondition() && operation.InDay(TimeUtility.ServerNow);
|
| | | }
|
| | |
|
| | | private void UpdateRedpoint()
|
| | | {
|
| | | multipleExpRedpoint.state = RedPointState.None;
|
| | | if (todayRemind || !Open())
|
| | | {
|
| | | multipleExpRedpoint.state = RedPointState.None;
|
| | | return;
|
| | | }
|
| | | multipleExpRedpoint.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|