NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Legion/LegionManager.Data.cs

151 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.Collections.Generic;
using Gameplay.Common;
using NLDPB;
/// <summary>
/// 军团数据
/// </summary>
public partial class LegionManager
{
/// <summary>
/// 军团广场军团数据
/// </summary>
private List<Legion> _legions = new List<Legion>();
/// <summary>
/// 自己的军团
/// </summary>
private Legion _myLegion;
/// <summary>
/// 通过服务器下发数据生成完整军团对象
/// </summary>
/// <param name="legionData"></param>
/// <returns></returns>
public Legion ParseLegion(MSG_LegionData legionData)
{
return _ParseLegionData(legionData);
}
/// <summary>
/// 通过服务器下发
/// </summary>
/// <param name="legionData"></param>
/// <returns></returns>
public Legion ParseLegion(Lg_Clt_LegionBase legionData)
{
return _ParseLegionData(legionData);
}
/// <summary>
/// 转译Client军团对象为向服务器发送的对象
/// </summary>
/// <param name="legion"></param>
/// <returns></returns>
private MSG_LegionData _TranslateLegion(Legion legion)
{
MSG_LegionData legionData = new MSG_LegionData();
legionData.Id = legion.ID;
legionData.IconId = (uint)legion.HeadIndex;
legionData.ManifestoId = (uint)legion.ManifestoID;
legionData.Level = (uint)legion.Level;
legionData.Name = legion.Name;
legionData.MemberCount = (uint)legion.MemberCount;
legionData.ExamineType = (uint)legion.ExamineType;
legionData.MinActorLevel = (uint)legion.MinActorLevel;
foreach (var tagIdx in legion.TagIdxList)
{
legionData.TagIds.Add((uint)tagIdx);
}
return legionData;
}
private void _ParseLegionInfoDetail()
{
}
}
/// <summary>
/// 军团类
/// </summary>
public class Legion
{
public uint ID; //军团ID
public uint PresidentID; //团长ID
public string Name; //军团名
public int HeadIndex; //头像索引
public int Level; //军团等级
public List<int> TagIdxList; //标签索引列表
public int ManifestoID; //宣言索引
public int MinActorLevel; //招募最小等级限制
public int MemberCount; //成员数量
public List<uint> ApplyMembers; //申请成员列表
public LegionExamineStatus ExamineType; //审批类型
public Legion(MSG_LegionData legionData)
{
if (legionData == null)
{
return;
}
ID = legionData.Id;
Level = (int)legionData.Level;
HeadIndex = (int)legionData.IconId;
var tagIds = legionData.TagIds;
var applyMembers = legionData.ApplyMembers;
MemberCount = (int)legionData.MemberCount;
ManifestoID = (int)legionData.ManifestoId;
ExamineType = (LegionExamineStatus)legionData.ExamineType;
MinActorLevel = (int)legionData.MinActorLevel;
TagIdxList = new();
ApplyMembers = new();
foreach (var id in tagIds)
{
TagIdxList.Add((int)id);
}
foreach (var memID in applyMembers)
{
ApplyMembers.Add(memID);
}
}
public Legion(Lg_Clt_LegionBase legionBaseData)
{
if (legionBaseData == null)
{
return;
}
ID = legionBaseData.Id;
Level = (int)legionBaseData.Level;
HeadIndex = (int)legionBaseData.IconId;
var tagIds = legionBaseData.TagIds;
//MemberCount = (int)legionData.MemberCount;
ManifestoID = (int)legionBaseData.ManifestoId;
ExamineType = (LegionExamineStatus)legionBaseData.ExamineType;
MinActorLevel = (int)legionBaseData.MinActorLevel;
TagIdxList = new();
ApplyMembers = new();
foreach (var id in tagIds)
{
TagIdxList.Add((int)id);
}
}
public Legion()
{
ID = 0; //默认为0创建时通知服务器需要传0
MinActorLevel = GLConfig.Inst.data.LegionJoinLevelLimit;
}
}
/// <summary>
/// 军团成员数据
/// </summary>
public class ActorLegionData
{
}