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