From f4f3fa42b993e53e9a7c0ed52e751d0eb259cc6c Mon Sep 17 00:00:00 2001 From: letheriver2007 Date: Tue, 28 Jan 2025 08:14:54 +0800 Subject: [PATCH] refactor: update TrainParty system --- Command/Command/Cmd/CommandGiveall.cs | 54 ++++--- Common/Data/Config/Scene/FloorInfo.cs | 55 ++++---- Common/Data/Excel/ItemConfigExcel.cs | 3 +- .../Data/Excel/TrainPartyCardConfigExcel.cs | 19 --- .../Data/Excel/TrainPartyGridConfigExcel.cs | 18 --- .../Excel/TrainPartyPassengerConfigExcel.cs | 1 - Common/Data/Excel/TrainPartyTeamExcel.cs | 21 --- Common/Data/GameData.cs | 3 - .../Database/TrainParty/GameTrainPartyData.cs | 113 --------------- Common/Database/TrainParty/TrainData.cs | 46 ++++++ Common/Enums/Scene/GameModeTypeEnum.cs | 3 +- GameServer/Game/Scene/SceneInstance.cs | 13 +- .../Game/TrainParty/TrainPartyManager.cs | 133 +++--------------- ...ndlerTrainPartyAddBuildDynamicBuffCsReq.cs | 13 -- ...acketTrainPartyAddBuildDynamicBuffScRsp.cs | 17 --- .../PacketTrainPartyBuildDiyScRsp.cs | 10 +- 16 files changed, 131 insertions(+), 391 deletions(-) delete mode 100644 Common/Data/Excel/TrainPartyCardConfigExcel.cs delete mode 100644 Common/Data/Excel/TrainPartyGridConfigExcel.cs delete mode 100644 Common/Data/Excel/TrainPartyTeamExcel.cs delete mode 100644 Common/Database/TrainParty/GameTrainPartyData.cs create mode 100644 Common/Database/TrainParty/TrainData.cs delete mode 100644 GameServer/Server/Packet/Recv/TrainParty/HandlerTrainPartyAddBuildDynamicBuffCsReq.cs delete mode 100644 GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyAddBuildDynamicBuffScRsp.cs diff --git a/Command/Command/Cmd/CommandGiveall.cs b/Command/Command/Cmd/CommandGiveall.cs index 935dc332..ce420c71 100644 --- a/Command/Command/Cmd/CommandGiveall.cs +++ b/Command/Command/Cmd/CommandGiveall.cs @@ -1,9 +1,9 @@ using EggLink.DanhengServer.Data; using EggLink.DanhengServer.Database.Avatar; using EggLink.DanhengServer.Database.Inventory; +using EggLink.DanhengServer.Database.TrainParty; using EggLink.DanhengServer.Enums.Item; using EggLink.DanhengServer.GameServer.Server.Packet.Send.PlayerSync; -using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Internationalization; namespace EggLink.DanhengServer.Command.Command.Cmd; @@ -252,34 +252,44 @@ public class CommandGiveall : ICommand return; } - foreach (var grid in GameData.TrainPartyGridConfigData.Keys) await player.TrainPartyManager!.AddGrid(grid); + // Reset + player.TrainPartyManager!.Data.Fund = 1000000; + player.TrainPartyManager!.Data.Areas.Clear(); - foreach (var card in GameData.TrainPartyCardConfigData.Keys) await player.TrainPartyManager!.AddCard(card); - - foreach (var area in player.TrainPartyManager!.TrainPartyData.Areas) - foreach (var step in GameData.TrainPartyStepConfigData.Values.Where(stepExcel => GameData - .TrainPartyAreaGoalConfigData.First(x => x.Value.AreaID == area.Value.AreaId).Value - .StepGroupList.Contains(stepExcel.GroupID))) - area.Value.StepList.Add(step.ID); - - Dictionary update = []; - player.SceneData!.FloorSavedData[player.SceneInstance!.FloorId] = []; - foreach (var savedValue in player.SceneInstance!.FloorInfo!.FloorSavedValue) - if (savedValue.Name.StartsWith("Build_") || savedValue.Name == "Onboarded") + foreach (var excel in GameData.TrainPartyAreaConfigData.Where(excel => + !player.TrainPartyManager!.Data.Areas.ContainsKey(excel.Key))) + player.TrainPartyManager!.Data.Areas[excel.Key] = new TrainAreaInfo { - player.SceneData!.FloorSavedData[player.SceneInstance!.FloorId][savedValue.Name] = 1; - update.TryAdd(savedValue.Name, 1); - } - else if (savedValue.Name.StartsWith("Progress_")) + AreaId = excel.Key, + StepList = [] + }; + + foreach (var area in player.TrainPartyManager!.Data.Areas) + foreach (var step in GameData.TrainPartyStepConfigData.Values.Where(stepExcel => + GameData.TrainPartyAreaGoalConfigData.FirstOrDefault(x => + x.Value.AreaID == area.Value.AreaId).Value.StepGroupList.Contains(stepExcel.GroupID))) + area.Value.StepList.Add(step.ID); + + foreach (var floorInfo in GameData.FloorInfoData.Values) + { + var savedData = new Dictionary(); + + foreach (var floorSavedValue in floorInfo.FloorSavedValue) { - player.SceneData!.FloorSavedData[player.SceneInstance!.FloorId][savedValue.Name] = 100; - update.TryAdd(savedValue.Name, 100); + if (floorSavedValue.Name.StartsWith("Build_") || floorSavedValue.Name == "Onboarded") + savedData[floorSavedValue.Name] = 1; + else if (floorSavedValue.Name.StartsWith("Progress_")) + savedData[floorSavedValue.Name] = 100; + else if (floorSavedValue.Name.StartsWith("Connection_") || floorSavedValue.Name.StartsWith("Utility_")) + savedData[floorSavedValue.Name] = 0; } - await player.SendPacket(new PacketUpdateFloorSavedValueNotify(update, player)); + if (savedData.Count > 0) + player.SceneData!.FloorSavedData[floorInfo.FloorID] = savedData; + } await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18NManager.Translate("Word.TrainItem"), "1")); + I18NManager.Translate("Word.TrainParty"), "1")); } [CommandMethod("0 path")] diff --git a/Common/Data/Config/Scene/FloorInfo.cs b/Common/Data/Config/Scene/FloorInfo.cs index 8508f7ab..e5252ac8 100644 --- a/Common/Data/Config/Scene/FloorInfo.cs +++ b/Common/Data/Config/Scene/FloorInfo.cs @@ -7,28 +7,23 @@ namespace EggLink.DanhengServer.Data.Config.Scene; public class FloorInfo { + public int FloorID { get; set; } + public int StartGroupIndex { get; set; } + public int StartAnchorID { get; set; } + public List GroupInstanceList { get; set; } = []; + public List DimensionList { get; set; } = []; + [JsonConverter(typeof(ConcurrentDictionaryConverter))] public ConcurrentDictionary CachedTeleports = []; [JsonConverter(typeof(ConcurrentDictionaryConverter))] public ConcurrentDictionary Groups = []; - [JsonIgnore] public bool Loaded; - [JsonConverter(typeof(ConcurrentBagConverter))] public ConcurrentBag UnlockedCheckpoints = []; - public int FloorID { get; set; } - public int StartGroupIndex { get; set; } - public int StartAnchorID { get; set; } - - public List GroupInstanceList { get; set; } = []; - public List SavedValues { get; set; } = []; - public List CustomValues { get; set; } = []; - public List DimensionList { get; set; } = []; - + [JsonIgnore] public bool Loaded; [JsonIgnore] public int StartGroupID { get; set; } - [JsonIgnore] public List FloorSavedValue { get; set; } = []; public AnchorInfo? GetAnchorInfo(int groupId, int anchorId) @@ -39,6 +34,7 @@ public class FloorInfo return group.AnchorList.Find(info => info.ID == anchorId); } + public void OnLoad() { if (Loaded) return; @@ -47,19 +43,9 @@ public class FloorInfo foreach (var dimension in DimensionList) dimension.OnLoad(this); - FloorSavedValue.AddRange(SavedValues); // Cache anchors foreach (var group in Groups.Values) { - foreach (var condition in group.SavedValueCondition.Conditions.Where(x => - SavedValues.Find(s => s.Name == x.SavedValueName) == null)) - FloorSavedValue.Add(new FloorSavedValueInfo - { - DefaultValue = 0, - ID = -1, - Name = condition.SavedValueName - }); - foreach (var prop in group.PropList) // Check if prop can be teleported to if (prop.AnchorID > 0) @@ -110,22 +96,33 @@ public class FloorSavedValueInfo public int DefaultValue { get; set; } } -public class FloorCustomValueInfo -{ - public int ID { get; set; } - public string Name { get; set; } = string.Empty; - public string DefaultValue { get; set; } = string.Empty; -} - public class FloorDimensionInfo { public int ID { get; set; } + public List SavedValues { get; set; } = []; public List GroupIndexList { get; set; } = []; [JsonIgnore] public List GroupIDList { get; set; } = []; public void OnLoad(FloorInfo floor) { + foreach (var data in SavedValues) + { + floor.FloorSavedValue.Add(new FloorSavedValueInfo + { + ID = data.ID, + Name = data.Name, + DefaultValue = data.MaxValue + }); + } + foreach (var index in GroupIndexList) GroupIDList.Add(floor.GroupInstanceList[index].ID); } +} + +public class DimensionSavedValues +{ + public int ID { get; set; } + public string Name { get; set; } = string.Empty; + public int MaxValue { get; set; } } \ No newline at end of file diff --git a/Common/Data/Excel/ItemConfigExcel.cs b/Common/Data/Excel/ItemConfigExcel.cs index ce103081..20c1655d 100644 --- a/Common/Data/Excel/ItemConfigExcel.cs +++ b/Common/Data/Excel/ItemConfigExcel.cs @@ -6,7 +6,8 @@ namespace EggLink.DanhengServer.Data.Excel; [ResourceEntity("ItemConfig.json,ItemConfigAvatar.json,ItemConfigAvatarPlayerIcon.json," + "ItemConfigAvatarRank.json,ItemConfigBook.json,ItemConfigDisk.json," + - "ItemConfigEquipment.json,ItemConfigRelic.json,ItemPlayerCard.json", true)] + "ItemConfigEquipment.json,ItemConfigRelic.json,ItemPlayerCard.json," + + "ItemConfigTrainDynamic.json", true)] public class ItemConfigExcel : ExcelResource { // General item data diff --git a/Common/Data/Excel/TrainPartyCardConfigExcel.cs b/Common/Data/Excel/TrainPartyCardConfigExcel.cs deleted file mode 100644 index be81e2c1..00000000 --- a/Common/Data/Excel/TrainPartyCardConfigExcel.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace EggLink.DanhengServer.Data.Excel; - -[ResourceEntity("TrainPartyCardConfig.json")] -public class TrainPartyCardConfigExcel : ExcelResource -{ - public int CardID { get; set; } - public int UpgradeLevel { get; set; } - public int Rarity { get; set; } - - public override int GetId() - { - return CardID; - } - - public override void Loaded() - { - GameData.TrainPartyCardConfigData[CardID] = this; - } -} \ No newline at end of file diff --git a/Common/Data/Excel/TrainPartyGridConfigExcel.cs b/Common/Data/Excel/TrainPartyGridConfigExcel.cs deleted file mode 100644 index daee4244..00000000 --- a/Common/Data/Excel/TrainPartyGridConfigExcel.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace EggLink.DanhengServer.Data.Excel; - -[ResourceEntity("TrainPartyGridConfig.json")] -public class TrainPartyGridConfigExcel : ExcelResource -{ - public int GridID { get; set; } - public List ParamList { get; set; } = []; - - public override int GetId() - { - return GridID; - } - - public override void Loaded() - { - GameData.TrainPartyGridConfigData.Add(GridID, this); - } -} \ No newline at end of file diff --git a/Common/Data/Excel/TrainPartyPassengerConfigExcel.cs b/Common/Data/Excel/TrainPartyPassengerConfigExcel.cs index b10a51e7..02e14be0 100644 --- a/Common/Data/Excel/TrainPartyPassengerConfigExcel.cs +++ b/Common/Data/Excel/TrainPartyPassengerConfigExcel.cs @@ -4,7 +4,6 @@ public class TrainPartyPassengerConfigExcel : ExcelResource { public int PassengerID { get; set; } - public int PassengerQuest { get; set; } public override int GetId() { diff --git a/Common/Data/Excel/TrainPartyTeamExcel.cs b/Common/Data/Excel/TrainPartyTeamExcel.cs deleted file mode 100644 index 302858c6..00000000 --- a/Common/Data/Excel/TrainPartyTeamExcel.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace EggLink.DanhengServer.Data.Excel; - -[ResourceEntity("TrainPartyTeam.json")] -public class TrainPartyTeamExcel : ExcelResource -{ - public int TeamID { get; set; } - public int InitialMeetingSkill { get; set; } - public int LeaderWorkingBuffID { get; set; } - public int GridNum { get; set; } - public List PassengerList { get; set; } = []; - - public override int GetId() - { - return TeamID; - } - - public override void Loaded() - { - GameData.TrainPartyTeamData.Add(TeamID, this); - } -} \ No newline at end of file diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index d5ebcb69..c9d380b2 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -157,11 +157,8 @@ public static class GameData public static Dictionary TrainPartyAreaGoalConfigData { get; private set; } = []; - public static Dictionary TrainPartyTeamData { get; private set; } = []; public static Dictionary TrainPartyStepConfigData { get; private set; } = []; public static Dictionary TrainPartyDynamicConfigData { get; private set; } = []; - public static Dictionary TrainPartyGridConfigData { get; private set; } = []; - public static Dictionary TrainPartyCardConfigData { get; private set; } = []; #endregion diff --git a/Common/Database/TrainParty/GameTrainPartyData.cs b/Common/Database/TrainParty/GameTrainPartyData.cs deleted file mode 100644 index a8eee1c4..00000000 --- a/Common/Database/TrainParty/GameTrainPartyData.cs +++ /dev/null @@ -1,113 +0,0 @@ -using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.Proto; -using SqlSugar; - -namespace EggLink.DanhengServer.Database.TrainParty; - -[SugarTable("train_party_data")] -public class GameTrainPartyData : BaseDatabaseDataHelper -{ - [SugarColumn(IsJson = true, ColumnDataType = "TEXT")] - public Dictionary Areas { get; set; } = []; - - [SugarColumn(IsJson = true, ColumnDataType = "TEXT")] - public Dictionary Grids { get; set; } = []; - - [SugarColumn(IsJson = true, ColumnDataType = "TEXT")] - public Dictionary Cards { get; set; } = []; - - public int UniqueId { get; set; } = 1; -} - -public class GameTrainPartyGridInfo -{ - public int GridId { get; set; } - public int UniqueId { get; set; } - - public TrainPartyGameGrid ToProto() - { - return new TrainPartyGameGrid - { - GridId = (uint)GridId, - UniqueId = (uint)UniqueId, - GHFAIHLCELN = (uint)UniqueId - }; - } -} - -public class GameTrainPartyCardInfo -{ - public int CardId { get; set; } - public int UniqueId { get; set; } - - public TrainPartyGameCard ToProto() - { - return new TrainPartyGameCard - { - CardId = (uint)CardId, - UniqueId = (uint)UniqueId - }; - } -} - -public class GameTrainPartyAreaInfo -{ - public int AreaId { get; set; } - public List StepList { get; set; } = []; - public Dictionary DynamicInfo { get; set; } = []; - - public TrainPartyArea ToProto() - { - var info = new TrainPartyArea - { - AreaId = (uint)AreaId, - StepIdList = { StepList.Select(x => (uint)x) }, - AreaStepInfo = new AreaStepInfo - { - AreaGlobalId = (uint)GameData.TrainPartyAreaGoalConfigData.First(x => x.Value.AreaID == AreaId).Key, - AreaStepList = - { - StepList.Select(x => new BuildAreaStep - { - StepId = (uint)x, - Status = BuildGoalStep.Finish - }) - } - }, - Progress = 100, - DynamicInfo = - { - DynamicInfo.Select(x => new AreaDynamicInfo - { - DiceSlotId = (uint)x.Key, - DiyDynamicId = (uint)x.Value - }) - } - }; - - foreach (var step in StepList) - { - GameData.TrainPartyStepConfigData.TryGetValue(step, out var stepExcel); - if (stepExcel == null) continue; - - info.StaticPropIdList.AddRange(stepExcel.StaticPropIDList.Select(x => (uint)x)); - } - - return info; - } - - public int GetCoinCost() - { - var cost = 0; - - foreach (var step in StepList) - { - GameData.TrainPartyStepConfigData.TryGetValue(step, out var stepExcel); - if (stepExcel == null) continue; - - cost += stepExcel.CoinCost; - } - - return cost; - } -} \ No newline at end of file diff --git a/Common/Database/TrainParty/TrainData.cs b/Common/Database/TrainParty/TrainData.cs new file mode 100644 index 00000000..c90eabd3 --- /dev/null +++ b/Common/Database/TrainParty/TrainData.cs @@ -0,0 +1,46 @@ +using EggLink.DanhengServer.Data; +using EggLink.DanhengServer.Proto; +using SqlSugar; + +namespace EggLink.DanhengServer.Database.TrainParty; + +[SugarTable("TrainParty")] +public class TrainData : BaseDatabaseDataHelper +{ + public int Fund { get; set; } + [SugarColumn(IsJson = true)] public Dictionary Areas { get; set; } = []; +} + +public class TrainAreaInfo +{ + public int AreaId { get; set; } + public List StepList { get; set; } = []; + public Dictionary DynamicInfo { get; set; } = []; + + public TrainPartyArea ToProto() + { + var info = new TrainPartyArea + { + AreaId = (uint)AreaId, + AreaStepInfo = new AreaStepInfo(), + StepIdList = { StepList.Select(x => (uint)x) }, + VerifyStepIdList = { StepList.Select(x => (uint)x) }, + Progress = 100, + DynamicInfo = { DynamicInfo.Select(x => new AreaDynamicInfo + { + DiceSlotId = (uint)x.Key, + DiyDynamicId = (uint)x.Value + }) } + }; + + foreach (var step in StepList) + { + GameData.TrainPartyStepConfigData.TryGetValue(step, out var stepExcel); + if (stepExcel == null) continue; + + info.StaticPropIdList.AddRange(stepExcel.StaticPropIDList.Select(x => (uint)x)); + } + + return info; + } +} \ No newline at end of file diff --git a/Common/Enums/Scene/GameModeTypeEnum.cs b/Common/Enums/Scene/GameModeTypeEnum.cs index f041ebe3..e251152d 100644 --- a/Common/Enums/Scene/GameModeTypeEnum.cs +++ b/Common/Enums/Scene/GameModeTypeEnum.cs @@ -22,5 +22,6 @@ public enum GameModeTypeEnum TournRogue = 17, RelicRogue = 18, ArcadeRogue = 19, - MagicRogue = 20 + MagicRogue = 20, + TrainParty = 21 } \ No newline at end of file diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index c188b429..ff5c9d94 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -51,7 +51,7 @@ public class SceneInstance { SceneInfo sceneInfo = new() { - WorldId = (uint)(Excel.WorldID == 100 ? Player.LastWorldId : Excel.WorldID), + WorldId = (uint)(Excel.WorldID == 100 ? GameConstants.LAST_TRAIN_WORLD_ID : Excel.WorldID), GameModeType = (uint)GameModeType, PlaneId = (uint)PlaneId, FloorId = (uint)FloorId, @@ -125,17 +125,6 @@ public class SceneInstance foreach (var value in floorData ?? []) sceneInfo.FloorSavedData[value.Key] = value.Value; - foreach (var value in FloorInfo?.CustomValues ?? []) - if (floorData != null && floorData.TryGetValue(value.Name, out var v)) - { - sceneInfo.FloorSavedData[value.Name] = v; - } - else - { - _ = int.TryParse(value.DefaultValue, out var x); - sceneInfo.FloorSavedData[value.Name] = x; - } - // mission Player.MissionManager!.OnLoadScene(sceneInfo); diff --git a/GameServer/Game/TrainParty/TrainPartyManager.cs b/GameServer/Game/TrainParty/TrainPartyManager.cs index eb2f3390..b437fe61 100644 --- a/GameServer/Game/TrainParty/TrainPartyManager.cs +++ b/GameServer/Game/TrainParty/TrainPartyManager.cs @@ -1,64 +1,19 @@ using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Database; using EggLink.DanhengServer.Database.TrainParty; using EggLink.DanhengServer.GameServer.Game.Player; using EggLink.DanhengServer.Proto; -using EggLink.DanhengServer.Util; -using GameTrainPartyCardInfo = EggLink.DanhengServer.Database.TrainParty.GameTrainPartyCardInfo; namespace EggLink.DanhengServer.GameServer.Game.TrainParty; -public class TrainPartyManager : BasePlayerManager +public class TrainPartyManager(PlayerInstance player) : BasePlayerManager(player) { - public TrainPartyManager(PlayerInstance player) : base(player) + public TrainData Data { get; } = + DatabaseHelper.Instance!.GetInstanceOrCreateNew(player.Uid); + + public TrainAreaInfo? SetDynamicId(int areaId, int slotId, int dynamicId) { - TrainPartyData = - DatabaseHelper.Instance!.GetInstanceOrCreateNew(player.Uid); - - foreach (var excel in GameData.TrainPartyAreaConfigData.Where(excel => - !TrainPartyData.Areas.ContainsKey(excel.Key))) - TrainPartyData.Areas[excel.Key] = new GameTrainPartyAreaInfo - { - AreaId = excel.Key, - StepList = [excel.Value.FirstStep] - }; - - TeamExcel = GameData.TrainPartyTeamData.Values.ToList().RandomElement(); - } - - public GameTrainPartyData TrainPartyData { get; } - public TrainPartyTeamExcel TeamExcel { get; } - - public async ValueTask AddCard(int cardId) - { - if (TrainPartyData.Cards.Values.FirstOrDefault(x => x.CardId == cardId) != null) return; - - var uniqueId = TrainPartyData.UniqueId++; - TrainPartyData.Cards.Add(uniqueId, new GameTrainPartyCardInfo - { - CardId = cardId, - UniqueId = uniqueId - }); - - await ValueTask.CompletedTask; - } - - public async ValueTask AddGrid(int gridId) - { - var uniqueId = TrainPartyData.UniqueId++; - TrainPartyData.Grids.Add(uniqueId, new GameTrainPartyGridInfo - { - GridId = gridId, - UniqueId = uniqueId - }); - - await ValueTask.CompletedTask; - } - - public GameTrainPartyAreaInfo? SetDynamicId(int areaId, int slotId, int dynamicId) - { - if (!TrainPartyData.Areas.TryGetValue(areaId, out var area)) return null; + if (!Data.Areas.TryGetValue(areaId, out var area)) return null; area.DynamicInfo[slotId] = dynamicId; @@ -70,9 +25,8 @@ public class TrainPartyManager : BasePlayerManager var proto = new TrainPartyData { TrainPartyInfo = ToPartyInfo(), - PassengerInfo = ToPassengerInfo(), - TrainPartyGameInfo = ToGameInfo(), - AIANOFKNLHG = 6 + PassengerInfo = ToPassenger(), + UnlockAreaNum = 6 }; return proto; @@ -82,72 +36,27 @@ public class TrainPartyManager : BasePlayerManager { var proto = new TrainPartyInfo { - AreaList = { TrainPartyData.Areas.Values.Select(x => x.ToProto()) }, - CoinCost = (uint)TrainPartyData.Areas.Values.Sum(x => x.GetCoinCost()), - DynamicIdList = { GameData.TrainPartyDynamicConfigData.Select(x => (uint)x.Key) } + EEBNAAPBKCN = 30, + CoinCost = (uint)Data.Fund, + AreaList = { Data.Areas.Values.Select(x => x.ToProto()) }, + DynamicIdList = { GameData.TrainPartyDynamicConfigData.Select(x => (uint)x.Key) }, }; return proto; } - public TrainPartyPassengerInfo ToPassengerInfo() + public static TrainPartyPassengerInfo ToPassenger() { - return new TrainPartyPassengerInfo - { - PassengerInfoList = + var info = new TrainPartyPassengerInfo(); + info.PassengerInfoList.AddRange( + GameData.TrainPartyPassengerConfigData.Select(x => { - GameData.TrainPartyPassengerConfigData.Select(x => new TrainPartyPassenger + return new TrainPartyPassenger { PassengerId = (uint)x.Key - }) - } - }; - } - - public TrainPartyGameInfo ToGameInfo() - { - return new TrainPartyGameInfo - { - TeamId = (uint)TeamExcel.TeamID, - TrainActionInfo = new TrainPartyActionInfo(), - TrainPassengerInfo = ToGamePassengerInfo(), - TrainPartyGridInfo = ToGameGridInfo(), - TrainPartyItemInfo = ToGameItemInfo() - }; - } - - public TrainPartyGamePassengerInfo ToGamePassengerInfo() - { - return new TrainPartyGamePassengerInfo - { - PassengerList = - { - TeamExcel.PassengerList.Select(x => new TrainPartyGamePassenger - { - PassengerId = (uint)x - }) - }, - CurPassengerId = (uint)TeamExcel.PassengerList.RandomElement(), - MtRankId = 104 - }; - } - - public TrainPartyGameGridInfo ToGameGridInfo() - { - return new TrainPartyGameGridInfo - { - GridList = { TrainPartyData.Grids.Values.Select(x => x.ToProto()) } - }; - } - - public TrainPartyGameItemInfo ToGameItemInfo() - { - return new TrainPartyGameItemInfo - { - TrainPartyCardInfo = new TrainPartyGameCardInfo - { - TrainPartyCardInfo = { TrainPartyData.Cards.Values.Select(x => x.ToProto()) } - } - }; + }; + }) + ); + return info; } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/TrainParty/HandlerTrainPartyAddBuildDynamicBuffCsReq.cs b/GameServer/Server/Packet/Recv/TrainParty/HandlerTrainPartyAddBuildDynamicBuffCsReq.cs deleted file mode 100644 index 12c3ed5c..00000000 --- a/GameServer/Server/Packet/Recv/TrainParty/HandlerTrainPartyAddBuildDynamicBuffCsReq.cs +++ /dev/null @@ -1,13 +0,0 @@ -using EggLink.DanhengServer.GameServer.Server.Packet.Send.TrainParty; -using EggLink.DanhengServer.Kcp; - -namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.TrainParty; - -[Opcode(CmdIds.TrainPartyAddBuildDynamicBuffCsReq)] -public class HandlerTrainPartyAddBuildDynamicBuffCsReq : Handler -{ - public override async Task OnHandle(Connection connection, byte[] header, byte[] data) - { - await connection.SendPacket(new PacketTrainPartyAddBuildDynamicBuffScRsp()); - } -} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyAddBuildDynamicBuffScRsp.cs b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyAddBuildDynamicBuffScRsp.cs deleted file mode 100644 index 6da0bd89..00000000 --- a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyAddBuildDynamicBuffScRsp.cs +++ /dev/null @@ -1,17 +0,0 @@ -using EggLink.DanhengServer.Kcp; -using EggLink.DanhengServer.Proto; - -namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.TrainParty; - -public class PacketTrainPartyAddBuildDynamicBuffScRsp : BasePacket -{ - public PacketTrainPartyAddBuildDynamicBuffScRsp() : base(CmdIds.TrainPartyAddBuildDynamicBuffScRsp) - { - var proto = new TrainPartyAddBuildDynamicBuffScRsp - { - BuffId = 102 - }; - - SetData(proto); - } -} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs index 1bdd34ec..0ff48f15 100644 --- a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs +++ b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs @@ -6,7 +6,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.TrainParty; public class PacketTrainPartyBuildDiyScRsp : BasePacket { - public PacketTrainPartyBuildDiyScRsp(GameTrainPartyAreaInfo? area) : base(CmdIds.TrainPartyBuildDiyScRsp) + public PacketTrainPartyBuildDiyScRsp(TrainAreaInfo? area) : base(CmdIds.TrainPartyBuildDiyScRsp) { var proto = area == null ? new TrainPartyBuildDiyScRsp @@ -16,14 +16,6 @@ public class PacketTrainPartyBuildDiyScRsp : BasePacket : new TrainPartyBuildDiyScRsp { AreaId = (uint)area.AreaId, - DynamicInfo = - { - area.DynamicInfo.Select(x => new AreaDynamicInfo - { - DiceSlotId = (uint)x.Key, - DiyDynamicId = (uint)x.Value - }) - } }; SetData(proto);