151 lines
4.3 KiB
C#
151 lines
4.3 KiB
C#
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
|
||
{
|
||
|
||
} |