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