using System.Collections.Generic; using Gameplay.Common; using Gameplay.Net; using NLDPB; /// /// 军团数据 /// public partial class LegionManager { /// /// 军团广场军团数据 /// private List _legions = new List(); public List LegionList => _legions; public int LegionTotal; /// /// 是否团长 /// public bool IsPresident => _myLegion?.PresidentID == Actor.Instance.Base.GetProp(ActorProp.ActorId); /// /// 自己的军团 /// private Legion _myLegion; public Legion MyLegion => _myLegion; /// /// 自己军团成员列表 /// private List _myLegionMemberList; public List MyLegionMemberList => _myLegionMemberList; /// /// 申请加入列表 /// private List _applyMemberList; public List ApplyLegionMemberList => _applyMemberList; /// /// 申请的军团列表 /// private Dictionary _myApplyLegionDatas; public Dictionary MApplyLegionDatas => _myApplyLegionDatas; /// /// 通过服务器下发数据生成完整军团对象 /// /// /// public Legion ParseLegion(MSG_LegionData legionData) { return _ParseLegionData(legionData); } /// /// 转译Client军团对象为向服务器发送的对象 /// /// /// 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.TabIdxList) { legionData.TagIds.Add((uint)tagIdx); } return legionData; } private void _ParseLegionInfoDetail() { } #region 编辑军团信息 public void SetExamineType(LegionExamineType examineType) { _myLegion.ExamineType = examineType; } #endregion } /// /// 军团类 /// public class Legion { public uint ID; //军团ID public uint PresidentID; //团长ID public string Name; //军团名 public int HeadIndex; //头像索引 public int Level; //军团等级 public List TabIdxList; //标签索引列表 public int ManifestoID; //宣言索引 public int MinActorLevel; //招募最小等级限制 public int MemberCount; //成员数量 public List ApplyMembers; //申请成员列表 public LegionExamineType ExamineType; //审批类型 public List MemberList; //成员列表 public void _ParseLegionBase(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 = (LegionExamineType)legionBaseData.ExamineType; MinActorLevel = (int)legionBaseData.MinActorLevel; PresidentID = legionBaseData.RegimentalCommanderId; TabIdxList = new(); ApplyMembers = new(); Name = legionBaseData.Name; foreach (var id in tagIds) { TabIdxList.Add((int)id); } } public Legion(MSG_LegionData legionData) { if (legionData == null) { return; } ID = legionData.Id; Level = (int)legionData.Level; HeadIndex = (int)legionData.IconId; var tagIds = legionData.TagIds; MemberCount = (int)legionData.MemberCount; ManifestoID = (int)legionData.ManifestoId; ExamineType = (LegionExamineType)legionData.ExamineType; MinActorLevel = (int)legionData.MinActorLevel; TabIdxList = new(); MemberList = new(); Name = legionData.Name; foreach (var id in tagIds) { TabIdxList.Add((int)id); } } 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 = (LegionExamineType)legionBaseData.ExamineType; MinActorLevel = (int)legionBaseData.MinActorLevel; PresidentID = legionBaseData.RegimentalCommanderId; TabIdxList = new(); ApplyMembers = new(); Name = legionBaseData.Name; foreach (var id in tagIds) { TabIdxList.Add((int)id); } } public Legion() { ID = 0; //默认为0,创建时通知服务器需要传0 TabIdxList = new List(); MinActorLevel = GLConfig.Inst.data.LegionJoinLevelLimit; } public Legion(Legion legion) { if (legion == null) { return; } ID = legion.ID; Level = legion.Level; HeadIndex = legion.HeadIndex; TabIdxList = new List(legion.TabIdxList); MemberCount = legion.MemberCount; ManifestoID = legion.ManifestoID; ExamineType = legion.ExamineType; MinActorLevel = legion.MinActorLevel; MemberList = new(); Name = legion.Name; } } /// /// 军团成员数据 /// public class ActorLegionData { public uint ActorID; public string NickName; public int Level; public uint LastLogOutTime; //上次在线时间 public int WeekContribution; //周贡献 public int MonthContribution; //月贡献 public cfg.LegionCfg.Position Post; //职位 public uint OnLine; //不在线时=LastLogOutTime public bool IsOnLine => OnLine == 1; //是否在线 public LegionExamineStatus ExamineStatus; public ActorLegionData(MSG_LegionActorData actorData) { ActorID = actorData.ActorId; NickName = actorData.Nickname; Level = (int)actorData.Level; LastLogOutTime = actorData.LastLoginTime; WeekContribution = (int)actorData.WeekContribution; MonthContribution = (int)actorData.MonthContribution; Post = (cfg.LegionCfg.Position)actorData.Position; OnLine = actorData.IsOnline; ExamineStatus = (LegionExamineStatus)actorData.ExamineStatus; } } /// /// 申请军团数据 /// public class ApplyLegionData { public uint LegionID; public LegionExamineStatus ExamineStatus; public uint OpTime; public ApplyLegionData(MSG_Lg_Clt_ApplyData applyData) { LegionID = applyData.LegionId; ExamineStatus = (LegionExamineStatus)applyData.Status; OpTime = applyData.OpTime; } }