| | |
| | | [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; }
|
| | |
| | | public List<Item> inspireRewards { get; private set; }
|
| | |
|
| | | public event Action allianceBossStateRefresh;
|
| | | public event Action allianceBossLineRefresh;
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | |
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | isActivityOver = false;
|
| | | m_AllianceBossLines.Clear();
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | |
| | |
|
| | | 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()
|
| | |
| | | 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)
|
| | |
| | | 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;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|