NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/LegionBattle/Data/LegionData.cs

86 lines
2.4 KiB
C#
Raw Normal View History

2025-02-08 15:14:52 +08:00
using NLDPB;
using System.Collections.Generic;
namespace Gameplay.LegionBattle
{
/// <summary>
2025-02-17 12:19:31 +08:00
/// 军团数据
2025-02-08 15:14:52 +08:00
/// </summary>
2025-02-17 12:19:31 +08:00
public sealed class LegionData
2025-02-08 15:14:52 +08:00
{
/// <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>
2025-02-19 17:50:08 +08:00
/// 阵营
/// </summary>
public BattlefieldActorCamp Camp { get; private set; }
/// <summary>
2025-02-17 12:19:31 +08:00
/// 成员数据
2025-02-08 15:14:52 +08:00
/// </summary>
2025-02-17 19:14:13 +08:00
public Dictionary<uint, LegionActorData> DicMember { get; private set; }
2025-02-08 15:14:52 +08:00
2025-02-19 17:50:08 +08:00
public LegionData(BattlefieldActorCamp camp)
2025-02-08 15:14:52 +08:00
{
2025-02-19 17:50:08 +08:00
Camp = camp;
2025-02-17 19:14:13 +08:00
DicMember = new();
2025-02-08 15:14:52 +08:00
}
2025-02-17 19:14:13 +08:00
/// <summary>
/// 初始化数据
/// </summary>
/// <param name="data"></param>
public void InitData(MSG_LB_Legion data)
2025-02-08 15:14:52 +08:00
{
2025-02-17 12:19:31 +08:00
ID = (int)data.Id;
Name = data.Name;
IconIndex = (int)data.Id;
2025-02-17 19:14:13 +08:00
2025-02-17 12:19:31 +08:00
for (int i = 0; i < data.Members.Count; ++i)
2025-02-08 15:51:47 +08:00
{
2025-02-17 19:14:13 +08:00
if (!DicMember.TryGetValue(data.Members[i].ActorId, out LegionActorData memberData))
{
2025-02-19 17:50:08 +08:00
memberData = new LegionActorData(Camp);
2025-02-17 19:14:13 +08:00
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))
2025-02-08 15:51:47 +08:00
{
2025-02-19 17:50:08 +08:00
memberData = new LegionActorData(Camp);
2025-02-17 19:14:13 +08:00
DicMember[data.Mercenary[i].ActorId] = memberData;
2025-02-08 15:51:47 +08:00
}
2025-02-17 19:14:13 +08:00
memberData.InitData(data.Mercenary[i], true);
2025-02-08 15:51:47 +08:00
}
2025-02-08 15:14:52 +08:00
}
/// <summary>
/// 设置军团战分数
/// </summary>
/// <param name="aScore"></param>
/// <param name="bScore"></param>
public void SetScore(int score)
{
Score = score;
}
}
}