using Gameplay.Net; using System.Collections.Generic; using Gameplay.Net; using NLDPB; public partial class LegionManager { #region Data private MercenaryActor _myMercenaryActor; public MercenaryActor MyMercenaryActor => _myMercenaryActor; /// /// 雇佣兵列表 /// private List _mercenarySignUpList = new(); public List MercenarySignUpList { get { return _mercenarySignUpList; } set { _mercenarySignUpList = value; } } private List _legionMercenaryHireDatas = new(); public List LegionMercenaryHireDatas { get { return _legionMercenaryHireDatas; } set { _legionMercenaryHireDatas = value; } } public MercenaryData MercenarySearchData { get; set; } public void InitMercenaryActor() { if(_myMercenaryActor == null) _myMercenaryActor = new MercenaryActor(); } #endregion #region 通信 /// /// 申请雇佣兵列表 /// public void ReqGetMercenaryList(int page, MercenaryDataSortType sortType) { NetHelper.ReqMercenarySignUpData((uint)page, sortType); } /// /// 申请军团招募列表 /// /// public void ReqGetMercenaryHireData(int page, LegionHireSortType sortType) { NetHelper.ReqMercenaryHireData((uint)page, sortType); } public void ReqGetMercenarySearchData(uint uid) { NetHelper.ReqMercenarySignUpDataSearch(uid); } /// /// 注册雇佣兵 /// /// public void ReqMercenarySignUp(int cost) { NetHelper.ReqMercenarySignUp((uint)cost); } public void ReqLegionPostHiring(MercenaryHire hire) { NetHelper.ReqLegionPostHiring(hire); } /// /// 申请加入、招募 /// /// public void ReqMercenaryApplyJoin(uint legionID) { NetHelper.ReqMercenaryApplyJoin(legionID); } public void ReqLegionMercenaryHire(uint mercenaryID) { NetHelper.ReqLegionMercenaryHire(mercenaryID); } #endregion #region API public bool CheckIsSignUp() { return _myMercenaryActor?.SignUpStatus == MercenarySignUpStatus.MssNone; } public bool CheckIsLegionHired() { return _myMercenaryActor?.HireLegionID > 0; } /// /// 是否在一个军团中 /// /// public bool CheckIsInLegion() { return _myLegion != null || CheckIsLegionHired(); } /// /// 是否散人玩家 /// /// public bool CheckIsFree() { return !CheckIsSignUp() && !CheckIsLegionHired(); } #endregion } #region Class /// /// 自身的雇佣兵相关数据 /// public class MercenaryActor { public int SignUpCost; public MercenarySignUpStatus SignUpStatus; public uint HireLegionID; public int HireLegionLevel; public int HireLegionHead; public string HireLegionName; } /// /// 军团雇佣的雇佣兵信息 /// public class LegionMercenaryData { public int HireCost; public int Total; //总招募数量 public List MercenaryMemberList; public List MercenaryApplyList; } public class MercenaryMember { } /// /// 客户端发起招募结构 /// public class MercenaryHire { public int Count; public int LimitLevel; public int Cost; public bool AutoApprove; public MercenaryHire(int count, int limitLevel, int cost, bool autoApprove) { Count = count; LimitLevel = limitLevel; Cost = cost; AutoApprove = autoApprove; } } /// /// 军团发布的雇佣兵招募数据 /// public class LegionMercenaryHireData { public uint ID; public string Name; public int Level; public int MinLevel; public int Total; public int Current; public int HireCost; public LegionMercenaryHireData(MSG_LegionMercenaryHireData data) { ID = data.Id; Name = data.Name; Level = (int)data.Level; MinLevel = (int)data.MinLevel; Total = (int)data.Total; Current = (int)data.Current; HireCost = (int)data.HireCost; } } /// /// 雇佣兵数据 /// public class MercenaryData { public uint ActorID; public string Name; public int KillNum; public int Level; public int Cost; public MercenarySignUpStatus Status; public MercenaryData(MSG_MercenarySignUpData mercenarySignUpData) { ActorID = mercenarySignUpData.ActorId; Name = mercenarySignUpData.Name; KillNum = (int)mercenarySignUpData.KillNum; Level = (int)mercenarySignUpData.Level; Cost = (int)mercenarySignUpData.Cost; Status = (MercenarySignUpStatus)mercenarySignUpData.Status; } } #endregion