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

78 lines
2.1 KiB
C#

using System.Collections.Generic;
using NLDPB;
namespace Gameplay.LegionBattle
{
public partial class LegionBattleManager
{
#region 军团战外部
public List<BattleMemberInfo> BattleMemberInfos = new ();
public BattlefieldActorCamp MyCamp;
public int MapID;
#endregion
}
public class BattleMemberInfo
{
public uint ActorID;
public int Hp;
public int Attack;
public int Def;
public float MoveTime;
public int Level;
public BattlefieldActorCamp Camp;
public string Name;
public bool IsMercenary;
public BattleMemberInfo(MSG_LB_Member lbMemberInfo, bool isMercenary = false)
{
ActorID = lbMemberInfo.ActorId;
Hp = (int)lbMemberInfo.HpMax;
Attack = (int)lbMemberInfo.Attack;
Def = (int)lbMemberInfo.Defence;
MoveTime = lbMemberInfo.MoveTime;
Name = lbMemberInfo.Name;
Level = (int)lbMemberInfo.Level;
IsMercenary = isMercenary;
}
}
public class BattleMemberGroup
{
public int ActorID;
public int HeadIconIndex;
public string Name;
public int Level;
public List<BattleTeam> Teams = new();
public bool IsMercenary;
public BattleMemberGroup(MSG_LB_Member lbMember, bool isMercenary = false)
{
ActorID = (int)lbMember.ActorId;
HeadIconIndex = (int)lbMember.HeadIcon;
Name = lbMember.Name;
Level = (int)lbMember.Level;
IsMercenary = isMercenary;
foreach (var team in lbMember.Teams)
{
Teams.Add(new BattleTeam(team));
}
}
}
public class BattleTeam
{
public int CommanderID;
public List<int> UnitIDs = new();
public BattleTeam(MSG_LB_Team lbTeam)
{
CommanderID = (int)lbTeam.Commander;
foreach (var unit in lbTeam.Units)
{
UnitIDs.Add((int)unit);
}
}
}
}