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/BossReborn/BossRebornModel.cs | 314 ++++++++++++++++++++++++++++-----------------------
1 files changed, 172 insertions(+), 142 deletions(-)
diff --git a/System/BossReborn/BossRebornModel.cs b/System/BossReborn/BossRebornModel.cs
index b82ea63..095a25b 100644
--- a/System/BossReborn/BossRebornModel.cs
+++ b/System/BossReborn/BossRebornModel.cs
@@ -4,147 +4,177 @@
using System;
using TableConfig;
-namespace Snxxz.UI
-{
- public class BossRebornModel : Model
- {
- int m_BossRebornIntegral = 0;
- public int bossRebornIntegral {
- get { return m_BossRebornIntegral; }
- set {
- if (m_BossRebornIntegral != value)
- {
- m_BossRebornIntegral = value;
- if (bossRebornIntergralEvent != null)
- {
- bossRebornIntergralEvent();
- }
- }
- }
- }
-
- int m_BossRebornInderalTotal = 0;
- public int bossRebornIndegralTotal {
- get { return m_BossRebornInderalTotal; }
- set { m_BossRebornInderalTotal = value; }
- }
-
- public int surplusSecond { get { return OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.BossReborn); } }
-
- public event Action bossRebornIntergralEvent;
- public event Action<int> bossTaskStateChangeEvent;
- Dictionary<int, BossRebornTask> bossRebornTasks = new Dictionary<int, BossRebornTask>();
-
- const int bossRebornPointId = 20909;
- public Redpoint bossRebornPoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, bossRebornPointId);
-
- public override void Init()
- {
- ParseConfig();
- }
-
- public override void UnInit()
- {
- }
-
- public bool IsOpen()
- {
- return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.BossReborn);
- }
-
- public void UpdateTaskBaseInfos(HAB04_tagMCBossRebornInfo.tagMCBossRebornTaskInfo[] _tasks)
- {
- foreach (var task in _tasks)
- {
- if (bossRebornTasks.ContainsKey(task.TaskID))
- {
- bossRebornTasks[task.TaskID].UpdateActivityBaseData(task);
- }
- else
- {
- bossRebornTasks[task.TaskID] = new BossRebornTask(task);
- }
- }
- }
-
- public List<BossRebornTask> GetTasks()
- {
- return new List<BossRebornTask>(bossRebornTasks.Values);
- }
-
- public BossRebornTask GetTaskData(int _id)
- {
- if (!bossRebornTasks.ContainsKey(_id))
- {
- bossRebornTasks[_id] = new BossRebornTask(_id);
- }
-
- return bossRebornTasks[_id];
- }
-
- public void RequestTaskReward(int _id)
- {
- var sendInfo = new CA504_tagCMPlayerGetReward();
- sendInfo.RewardType = (int)GotServerRewardType.Def_RewardType_BossReborn;
- sendInfo.DataEx = (uint)_id;
- sendInfo.DataExStrLen = 0;
- sendInfo.DataExStr = string.Empty;
- GameNetSystem.Instance.SendInfo(sendInfo);
- }
-
- public void UpdateTaskData(HAB03_tagMCBossRebornPlayerInfo _serverInfo)
- {
- foreach (var info in _serverInfo.DataList)
- {
- var id = info.ActID;
- var data = GetTaskData(id);
- var oldState = data.GetState();
- data.UpdateActivityData(info.CurTimes, info.GotTimes);
- var newState = data.GetState();
-
- if (oldState != newState && bossTaskStateChangeEvent != null)
- {
- bossTaskStateChangeEvent(id);
- }
- }
-
- UpdateRedpoint();
- }
-
- private void UpdateRedpoint()
- {
- if (!IsOpen())
- {
- bossRebornPoint.state = RedPointState.None;
- }
- else
- {
- var rewardable = false;
- foreach (var task in bossRebornTasks.Values)
- {
- if (task.GetState() == BossRebornTask.State.Rewardable)
- {
- rewardable = true;
- break;
- }
- }
-
- bossRebornPoint.state = rewardable ? RedPointState.Simple : RedPointState.None;
- }
- }
-
- private void ParseConfig()
- {
- var keys = ConfigManager.Instance.GetAllKeys<BossRebornConfig>();
- foreach (var key in keys)
- {
- var id = int.Parse(key);
- bossRebornTasks[id] = new BossRebornTask(id);
- }
- }
-
- }
-
-
+namespace Snxxz.UI
+{
+ public class BossRebornModel : Model, IOpenServerActivity
+ {
+ int m_BossRebornIntegral = 0;
+ public int bossRebornIntegral {
+ get { return m_BossRebornIntegral; }
+ set {
+ if (m_BossRebornIntegral != value)
+ {
+ m_BossRebornIntegral = value;
+ if (bossRebornIntergralEvent != null)
+ {
+ bossRebornIntergralEvent();
+ }
+ }
+ }
+ }
+
+ int m_BossRebornInderalTotal = 0;
+ public int bossRebornIndegralTotal {
+ get { return m_BossRebornInderalTotal; }
+ set { m_BossRebornInderalTotal = value; }
+ }
+
+ public int surplusSecond { get { return OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.BossReborn); } }
+
+ public bool priorityOpen
+ {
+ get
+ {
+ return bossRebornPoint.state == RedPointState.Simple;
+ }
+ }
+
+ public event Action bossRebornIntergralEvent;
+ public event Action<int> bossTaskStateChangeEvent;
+ public event Action<int> onStateUpate;
+
+ Dictionary<int, BossRebornTask> bossRebornTasks = new Dictionary<int, BossRebornTask>();
+
+ const int bossRebornPointId = 20909;
+ public Redpoint bossRebornPoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, bossRebornPointId);
+
+ public override void Init()
+ {
+ OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
+ OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
+ OpenServerActivityCenter.Instance.Register(9, this);
+ }
+
+ public override void UnInit()
+ {
+ OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
+ OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
+ }
+
+ private void OperationEndEvent(Operation type, int state)
+ {
+ if (type == Operation.BossReborn&&state==0)
+ {
+ if (onStateUpate != null)
+ {
+ onStateUpate(9);
+ }
+ }
+ }
+
+ private void OperationStartEvent(Operation type, int state)
+ {
+ if (type == Operation.BossReborn && state == 0)
+ {
+ if (onStateUpate != null)
+ {
+ onStateUpate(9);
+ }
+ }
+ }
+
+ public bool IsOpen
+ {
+ get
+ {
+ return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.BossReborn);
+ }
+ }
+
+ public void UpdateTaskBaseInfos(HAB04_tagMCBossRebornInfo.tagMCBossRebornTaskInfo[] _tasks)
+ {
+ foreach (var task in _tasks)
+ {
+ if (bossRebornTasks.ContainsKey(task.TaskID))
+ {
+ bossRebornTasks[task.TaskID].UpdateActivityBaseData(task);
+ }
+ else
+ {
+ bossRebornTasks[task.TaskID] = new BossRebornTask(task);
+ }
+ }
+ }
+
+ public List<BossRebornTask> GetTasks()
+ {
+ return new List<BossRebornTask>(bossRebornTasks.Values);
+ }
+
+ public BossRebornTask GetTaskData(int _id)
+ {
+ if (!bossRebornTasks.ContainsKey(_id))
+ {
+ bossRebornTasks[_id] = new BossRebornTask(_id);
+ }
+
+ return bossRebornTasks[_id];
+ }
+
+ public void RequestTaskReward(int _id)
+ {
+ var sendInfo = new CA504_tagCMPlayerGetReward();
+ sendInfo.RewardType = (int)GotServerRewardType.Def_RewardType_BossReborn;
+ sendInfo.DataEx = (uint)_id;
+ sendInfo.DataExStrLen = 0;
+ sendInfo.DataExStr = string.Empty;
+ GameNetSystem.Instance.SendInfo(sendInfo);
+ }
+
+ public void UpdateTaskData(HAB03_tagMCBossRebornPlayerInfo _serverInfo)
+ {
+ foreach (var info in _serverInfo.DataList)
+ {
+ var id = info.ActID;
+ var data = GetTaskData(id);
+ var oldState = data.GetState();
+ data.UpdateActivityData(info.CurTimes, info.GotTimes);
+ var newState = data.GetState();
+
+ if (oldState != newState && bossTaskStateChangeEvent != null)
+ {
+ bossTaskStateChangeEvent(id);
+ }
+ }
+
+ UpdateRedpoint();
+ }
+
+ private void UpdateRedpoint()
+ {
+ if (!IsOpen)
+ {
+ bossRebornPoint.state = RedPointState.None;
+ }
+ else
+ {
+ var rewardable = false;
+ foreach (var task in bossRebornTasks.Values)
+ {
+ if (task.GetState() == BossRebornTask.State.Rewardable)
+ {
+ rewardable = true;
+ break;
+ }
+ }
+
+ bossRebornPoint.state = rewardable ? RedPointState.Simple : RedPointState.None;
+ }
+ }
+
+
+ }
+
+
}
--
Gitblit v1.8.0