From 2c3ba44af2b76e327c473accc064d16a1433696f Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 10 四月 2019 13:54:12 +0800
Subject: [PATCH] 6477 【前端】【2.0】仙盟boss进入界面修改

---
 System/FairyAu/AllianceBossModel.cs |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/System/FairyAu/AllianceBossModel.cs b/System/FairyAu/AllianceBossModel.cs
index bb53003..dc789de 100644
--- a/System/FairyAu/AllianceBossModel.cs
+++ b/System/FairyAu/AllianceBossModel.cs
@@ -8,6 +8,10 @@
     [XLua.Hotfix]
     public class AllianceBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
     {
+        List<int> m_BossIds = new List<int>();
+        Dictionary<int, List<Item>> m_Items = new Dictionary<int, List<Item>>();
+        Dictionary<int, AllianceBossLine> m_AllianceBossLines = new Dictionary<int, AllianceBossLine>();
+
         public const int DATAMAPID = 31260;
         public bool isActivityOver { get; private set; }
         public int participateLimit { get; private set; }
@@ -15,6 +19,7 @@
         public List<Item> inspireRewards { get; private set; }
 
         public event Action allianceBossStateRefresh;
+        public event Action allianceBossLineRefresh;
 
         public override void Init()
         {
@@ -24,6 +29,7 @@
         public void OnBeforePlayerDataInitialize()
         {
             isActivityOver = false;
+            m_AllianceBossLines.Clear();
         }
 
         public void OnPlayerLoginOk()
@@ -32,6 +38,21 @@
 
         public override void UnInit()
         {
+        }
+
+        public int GetBossNpcId(int index)
+        {
+            return index < m_BossIds.Count ? m_BossIds[index] : 0;
+        }
+
+        public bool TryGetItems(int index, out List<Item> items)
+        {
+            return m_Items.TryGetValue(index, out items);
+        }
+
+        public bool TryGetBossLine(int index, out AllianceBossLine bossLine)
+        {
+            return m_AllianceBossLines.TryGetValue(index, out bossLine);
         }
 
         void ParseConfig()
@@ -51,6 +72,30 @@
                     count = item[1],
                 });
             }
+
+            config = FuncConfigConfig.Get("AllianceBoss");
+            m_BossIds.AddRange(ConfigParse.GetMultipleStr<int>(config.Numerical1));
+            m_Items.Add(0, new List<Item>());
+            var itemsArray = ConfigParse.GetMultipleStr<int>(config.Numerical2);
+            for (int i = 0; i < itemsArray.Length; i++)
+            {
+                m_Items[0].Add(new Item()
+                {
+                    id = itemsArray[i],
+                    count = 1,
+                });
+            }
+
+            m_Items.Add(1, new List<Item>());
+            itemsArray = ConfigParse.GetMultipleStr<int>(config.Numerical2);
+            for (int i = 0; i < itemsArray.Length; i++)
+            {
+                m_Items[1].Add(new Item()
+                {
+                    id = itemsArray[i],
+                    count = 1,
+                });
+            }
         }
 
         public void ReceivePackage(HA40C_tagGCAllFamilyBossInfo package)
@@ -61,6 +106,37 @@
                 allianceBossStateRefresh();
             }
         }
+
+        public void ReceivePackage(HA007_tagGCFBLinePlayerCnt package)
+        {
+            if (package.MapID != DATAMAPID)
+            {
+                return;
+            }
+
+            m_AllianceBossLines.Clear();
+
+            for (int i = 0; i < package.Count; i++)
+            {
+                var data = package.FBLineInfoList[i];
+                m_AllianceBossLines[data.FBLineID] = new AllianceBossLine()
+                {
+                    playerCount = data.PlayerCnt,
+                    hp = int.Parse(data.ExtraStr)
+                };
+            }
+
+            if (allianceBossLineRefresh != null)
+            {
+                allianceBossLineRefresh();
+            }
+        }
+
+        public struct AllianceBossLine
+        {
+            public int playerCount;
+            public int hp;
+        }
     }
 }
 

--
Gitblit v1.8.0