86 lines
2.4 KiB
C#
86 lines
2.4 KiB
C#
using NLDPB;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Gameplay.LegionBattle
|
|
{
|
|
/// <summary>
|
|
/// 军团数据
|
|
/// </summary>
|
|
public sealed class LegionData
|
|
{
|
|
/// <summary>
|
|
/// 军团id
|
|
/// </summary>
|
|
public int ID { get; private set; }
|
|
/// <summary>
|
|
/// 军团名
|
|
/// </summary>
|
|
public string Name { get; private set; }
|
|
/// <summary>
|
|
/// 军团图标索引
|
|
/// </summary>
|
|
public int IconIndex { get; private set; }
|
|
/// <summary>
|
|
/// 军团战分数
|
|
/// </summary>
|
|
public int Score { get; private set; }
|
|
/// <summary>
|
|
/// 阵营
|
|
/// </summary>
|
|
public BattlefieldActorCamp Camp { get; private set; }
|
|
/// <summary>
|
|
/// 成员数据
|
|
/// </summary>
|
|
public Dictionary<uint, LegionActorData> DicMember { get; private set; }
|
|
|
|
public LegionData(BattlefieldActorCamp camp)
|
|
{
|
|
Camp = camp;
|
|
|
|
DicMember = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化数据
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
public void InitData(MSG_LB_Legion data)
|
|
{
|
|
ID = (int)data.Id;
|
|
Name = data.Name;
|
|
IconIndex = (int)data.Id;
|
|
|
|
for (int i = 0; i < data.Members.Count; ++i)
|
|
{
|
|
if (!DicMember.TryGetValue(data.Members[i].ActorId, out LegionActorData memberData))
|
|
{
|
|
memberData = new LegionActorData(Camp);
|
|
DicMember[data.Members[i].ActorId] = memberData;
|
|
}
|
|
|
|
memberData.InitData(data.Members[i], false);
|
|
}
|
|
|
|
for (int i = 0; i < data.Mercenary.Count; ++i)
|
|
{
|
|
if (!DicMember.TryGetValue(data.Mercenary[i].ActorId, out LegionActorData memberData))
|
|
{
|
|
memberData = new LegionActorData(Camp);
|
|
DicMember[data.Mercenary[i].ActorId] = memberData;
|
|
}
|
|
|
|
memberData.InitData(data.Mercenary[i], true);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置军团战分数
|
|
/// </summary>
|
|
/// <param name="aScore"></param>
|
|
/// <param name="bScore"></param>
|
|
public void SetScore(int score)
|
|
{
|
|
Score = score;
|
|
}
|
|
}
|
|
} |