From 49677c0f2f36234b5e72b9a3041e2a517f046ae5 Mon Sep 17 00:00:00 2001 From: Somebody Date: Sun, 20 Apr 2025 16:30:36 +0800 Subject: [PATCH] style: cleanup code --- Command/Command/Cmd/CommandGiveall.cs | 12 +- Command/Command/Cmd/CommandMission.cs | 11 +- Command/Command/Cmd/CommandRelic.cs | 3 +- Command/Command/CommandArg.cs | 2 +- Common/Configuration/ConfigContainer.cs | 2 +- Common/Configuration/HotfixContainer.cs | 1 + .../Config/AdventureAbilityConfigListInfo.cs | 2 +- Common/Data/Config/Scene/FloorInfo.cs | 81 ++++---- Common/Data/Config/Scene/PropInfo.cs | 17 +- .../Config/Task/AdventureFireProjectile.cs | 8 +- .../Data/Config/Task/ByCharacterDamageType.cs | 2 - .../Data/Config/Task/PredicateConfigInfo.cs | 5 +- Common/Data/Custom/BannersConfig.cs | 2 - Common/Data/Excel/AvatarConfigExcel.cs | 4 +- Common/Data/Excel/MappingInfoExcel.cs | 10 +- Common/Data/Excel/MazeBuffExcel.cs | 2 +- Common/Data/Excel/RogueTournTitanTypeExcel.cs | 1 + Common/Data/GameData.cs | 25 ++- Common/Data/ResourceCache.cs | 36 ++-- Common/Data/ResourceManager.cs | 22 +-- Common/Database/Inventory/InventoryData.cs | 42 ++--- Common/Database/Inventory/OfferingData.cs | 4 +- Common/Database/Scene/SceneData.cs | 2 +- Common/Database/TrainParty/TrainData.cs | 11 +- .../Enums/Avatar/MultiPathAvatarTypeEnum.cs | 2 +- Common/Enums/RegionEnum.cs | 34 ++-- Common/Enums/Scene/PropTypeEnum.cs | 2 +- .../Message/LanguageCHS.cs | 3 +- .../Message/LanguageEN.cs | 1 + Common/Util/ConfigManager.cs | 12 +- Common/Util/CustomConverters.cs | 24 ++- DanhengKcpSharp/CmdIds.cs | 4 +- DanhengKcpSharp/DanhengListener.cs | 2 +- GameServer/Game/Avatar/AvatarManager.cs | 6 +- GameServer/Game/Battle/BattleInstance.cs | 4 - GameServer/Game/Battle/BattleManager.cs | 48 ++--- GameServer/Game/Battle/SceneSkillManager.cs | 35 ++-- .../Game/Challenge/ChallengeInstance.cs | 3 +- .../Game/ChessRogue/ChessRogueInstance.cs | 3 +- GameServer/Game/Gacha/GachaManager.cs | 10 +- GameServer/Game/Inventory/InventoryManager.cs | 24 ++- GameServer/Game/Inventory/OfferingManager.cs | 41 ++-- .../MissionHandlerMatchThreeFinishLevel.cs | 5 +- .../Handler/MissionHandlerTimeLineSetState.cs | 11 +- .../MissionHandlerTimeLineSetStateCnt.cs | 3 +- GameServer/Game/Player/PlayerInstance.cs | 8 - .../Game/RogueTourn/RogueTournInstance.cs | 16 +- .../Titan/RogueTitanBlessInstance.cs | 4 - .../Titan/RogueTitanBlessSelectMenu.cs | 41 ++-- GameServer/Game/Scene/Entity/EntityMonster.cs | 61 +++--- GameServer/Game/Scene/Entity/EntityProp.cs | 4 +- GameServer/Game/Scene/SceneEntityLoader.cs | 3 +- GameServer/Game/Scene/SceneInstance.cs | 49 +++-- .../Game/Task/AvatarTask/AbilityLevelTask.cs | 177 ++++++------------ .../Game/TrainParty/TrainPartyManager.cs | 2 +- GameServer/Plugin/Event/PluginEvent.cs | 4 - .../HandlerQuickStartCocoonStageCsReq.cs | 4 +- .../HandlerChangeEraFlipperDataCsReq.cs | 4 +- .../HandlerGetEraFlipperDataCsReq.cs | 2 +- .../Item/HandlerComposeSelectedRelicCsReq.cs | 4 +- .../MarkChest/HandlerUpdateMarkChestCsReq.cs | 11 +- .../Offering/HandlerGetOfferingInfoCsReq.cs | 3 +- .../Recv/Phone/HandlerSetPersonalCardCsReq.cs | 2 +- .../HandlerReserveStaminaExchangeCsReq.cs | 2 +- .../Recv/Scene/HandlerSceneCastSkillCsReq.cs | 8 +- .../Scene/HandlerStartCocoonStageCsReq.cs | 4 +- .../Tutorial/HandlerUnlockTutorialCsReq.cs | 2 +- .../HandlerUnlockTutorialGuideCsReq.cs | 2 +- .../PacketChangeEraFlipperDataScRsp.cs | 3 +- .../PacketEraFlipperDataChangeScNotify.cs | 6 +- .../PacketGetEraFlipperDataScRsp.cs | 3 +- .../Send/Item/PacketDiscardRecliScRsp.cs | 2 +- .../Packet/Send/Item/PacketLockRecliScRsp.cs | 4 +- .../Offering/PacketSubmitOfferingItemScRsp.cs | 5 +- .../Offering/PacketTakeOfferingRewardScRsp.cs | 5 +- .../Send/Phone/PacketGetPhoneDataScRsp.cs | 3 +- .../Player/PacketQueryProductInfoScRsp.cs | 15 +- .../PacketReserveStaminaExchangeScRsp.cs | 2 +- .../Send/Player/PacketServerAnnounceNotify.cs | 4 +- .../PacketGetPlayerBoardDataScRsp.cs | 3 +- .../PacketGetRechargeGiftInfoScRsp.cs | 2 +- .../PacketGetBigDataRecommendScRsp.cs | 2 +- .../PacketRelicSmartWearDeletePlanScRsp.cs | 2 +- .../PacketRelicSmartWearGetPlanScRsp.cs | 2 +- .../PacketRelicSmartWearUpdatePlanScRsp.cs | 2 +- ...cketHandleRogueCommonPendingActionScRsp.cs | 3 +- .../Send/Scene/PacketGetSceneMapInfoScRsp.cs | 2 + .../Send/Scene/PacketSceneCastSkillScRsp.cs | 3 +- .../Scene/PacketSceneGroupRefreshScNotify.cs | 6 +- .../PacketTrainPartyBuildDiyScRsp.cs | 2 +- Program/Generator/TournRoomGenerator.cs | 31 ++- Program/Program/EntryPoint.cs | 9 +- 92 files changed, 517 insertions(+), 605 deletions(-) diff --git a/Command/Command/Cmd/CommandGiveall.cs b/Command/Command/Cmd/CommandGiveall.cs index cf3abbb7..68b5a4c1 100644 --- a/Command/Command/Cmd/CommandGiveall.cs +++ b/Command/Command/Cmd/CommandGiveall.cs @@ -258,7 +258,7 @@ public class CommandGiveall : ICommand player.TrainPartyManager!.Data.Areas.Clear(); foreach (var excel in GameData.TrainPartyAreaConfigData.Where(excel => - !player.TrainPartyManager!.Data.Areas.ContainsKey(excel.Key))) + !player.TrainPartyManager!.Data.Areas.ContainsKey(excel.Key))) player.TrainPartyManager!.Data.Areas[excel.Key] = new TrainAreaInfo { AreaId = excel.Key, @@ -266,24 +266,22 @@ public class CommandGiveall : ICommand }; 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 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) - { 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; - } if (savedData.Count > 0) player.SceneData!.FloorSavedData[floorInfo.FloorID] = savedData; diff --git a/Command/Command/Cmd/CommandMission.cs b/Command/Command/Cmd/CommandMission.cs index 9a806561..6fd66186 100644 --- a/Command/Command/Cmd/CommandMission.cs +++ b/Command/Command/Cmd/CommandMission.cs @@ -1,5 +1,4 @@ using System.Text; -using EggLink.DanhengServer.Data.Config; using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Mission; using EggLink.DanhengServer.Internationalization; @@ -59,8 +58,8 @@ public class CommandMission : ICommand return; } - MissionManager mission = arg.Target!.Player!.MissionManager!; - List runningMissions = mission.GetRunningSubMissionList(); + var mission = arg.Target!.Player!.MissionManager!; + var runningMissions = mission.GetRunningSubMissionList(); if (runningMissions.Count == 0) { await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.NoRunningMissions")); @@ -81,7 +80,7 @@ public class CommandMission : ICommand value.Add(m.ID); } - + if ((arg.BasicArgs.Count == 1 && arg.BasicArgs[0] == "-all") || mission.Data.TrackingMainMissionId == 0) { //Show all the missions @@ -94,10 +93,12 @@ public class CommandMission : ICommand runningMissionMap[mission.Data.TrackingMainMissionId] = missionMap[mission.Data.TrackingMainMissionId]; await ShowMissionList(mission, runningMissionMap, arg); } + await Task.CompletedTask; } - public async ValueTask ShowMissionList(MissionManager mission, Dictionary> missionMap, CommandArg arg) + public async ValueTask ShowMissionList(MissionManager mission, Dictionary> missionMap, + CommandArg arg) { var possibleStuckIds = new List(); var morePossibleStuckIds = new List(); diff --git a/Command/Command/Cmd/CommandRelic.cs b/Command/Command/Cmd/CommandRelic.cs index 36fcb2f3..ca2abf0d 100644 --- a/Command/Command/Cmd/CommandRelic.cs +++ b/Command/Command/Cmd/CommandRelic.cs @@ -52,12 +52,13 @@ public class CommandRelic : ICommand await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } + subAffixes.Add((subId, subLevel)); } for (var i = 0; i < amount; i++) { - (var ret, var _) = await player.InventoryManager!.HandleRelic( + var (ret, _) = await player.InventoryManager!.HandleRelic( int.Parse(arg.BasicArgs[0]), ++player.InventoryManager!.Data.NextUniqueId, level, mainAffixId, subAffixes); diff --git a/Command/Command/CommandArg.cs b/Command/Command/CommandArg.cs index 51fd57d9..496f0d6d 100644 --- a/Command/Command/CommandArg.cs +++ b/Command/Command/CommandArg.cs @@ -15,7 +15,7 @@ public class CommandArg { if (string.IsNullOrEmpty(arg)) continue; var character = arg[0]; - if (!int.TryParse(character.ToString(), out var _) && character != '-') + if (!int.TryParse(character.ToString(), out _) && character != '-') { try { diff --git a/Common/Configuration/ConfigContainer.cs b/Common/Configuration/ConfigContainer.cs index c9fc9a28..2d58ede5 100644 --- a/Common/Configuration/ConfigContainer.cs +++ b/Common/Configuration/ConfigContainer.cs @@ -85,12 +85,12 @@ public class ServerOption public bool AutoCreateUser { get; set; } = true; public bool SavePersonalDebugFile { get; set; } = false; public int FarmingDropRate { get; set; } = 1; + public bool UseCache { get; set; } = true; public int ValidFarmingDropRate() { return Math.Max(Math.Min(FarmingDropRate, 999), 1); } - public bool UseCache { get; set; } = true; } public class ServerAnnounce diff --git a/Common/Configuration/HotfixContainer.cs b/Common/Configuration/HotfixContainer.cs index ae38634b..5275ab5c 100644 --- a/Common/Configuration/HotfixContainer.cs +++ b/Common/Configuration/HotfixContainer.cs @@ -8,6 +8,7 @@ public class HotfixContainer { [JsonConverter(typeof(StringEnumConverter))] public BaseRegionEnum Region { get; set; } = BaseRegionEnum.None; + public Dictionary HotfixData { get; set; } = []; } diff --git a/Common/Data/Config/AdventureAbilityConfigListInfo.cs b/Common/Data/Config/AdventureAbilityConfigListInfo.cs index 3f3a31a4..938e6afb 100644 --- a/Common/Data/Config/AdventureAbilityConfigListInfo.cs +++ b/Common/Data/Config/AdventureAbilityConfigListInfo.cs @@ -11,7 +11,7 @@ public class AdventureAbilityConfigListInfo public static AdventureAbilityConfigListInfo LoadFromJsonObject(JObject obj) { AdventureAbilityConfigListInfo info = new(); - + if (obj.ContainsKey(nameof(AbilityList))) info.AbilityList = obj[nameof(AbilityList)] ?.Select(x => AdventureAbilityConfigInfo.LoadFromJsonObject((x as JObject)!)).ToList() ?? []; diff --git a/Common/Data/Config/Scene/FloorInfo.cs b/Common/Data/Config/Scene/FloorInfo.cs index 68ecc098..fe513323 100644 --- a/Common/Data/Config/Scene/FloorInfo.cs +++ b/Common/Data/Config/Scene/FloorInfo.cs @@ -8,27 +8,30 @@ 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 string NavmapConfigPath { get; set; } = ""; - public List GroupInstanceList { get; set; } = []; - public List DimensionList { get; set; } = []; - [JsonProperty(ItemConverterType = typeof(StringEnumConverter))] public List LevelFeatureModules { get; set; } = []; - - [JsonConverter(typeof(ConcurrentBagConverter))] - public ConcurrentBag MapSections = []; - [JsonConverter(typeof(ConcurrentDictionaryConverter))] public ConcurrentDictionary CachedTeleports = []; [JsonConverter(typeof(ConcurrentDictionaryConverter))] public ConcurrentDictionary Groups = []; + [JsonIgnore] public bool Loaded; + + [JsonConverter(typeof(ConcurrentBagConverter))] + public ConcurrentBag MapSections = []; + [JsonConverter(typeof(ConcurrentBagConverter))] public ConcurrentBag UnlockedCheckpoints = []; - [JsonIgnore] public bool Loaded; + public int FloorID { get; set; } + public int StartGroupIndex { get; set; } + public int StartAnchorID { get; set; } + public string NavmapConfigPath { get; set; } = ""; + public List GroupInstanceList { get; set; } = []; + public List DimensionList { get; set; } = []; + + [JsonProperty(ItemConverterType = typeof(StringEnumConverter))] + public List LevelFeatureModules { get; set; } = []; + [JsonIgnore] public int StartGroupID { get; set; } [JsonIgnore] public List FloorSavedValue { get; set; } = []; @@ -51,37 +54,35 @@ public class FloorInfo // Cache anchors foreach (var group in Groups.Values) - { - foreach (var prop in group.PropList) - // Check if prop can be teleported to - if (prop.AnchorID > 0) + foreach (var prop in group.PropList) + // Check if prop can be teleported to + if (prop.AnchorID > 0) + { + // Put inside cached teleport list to send to client when they request map info + CachedTeleports.TryAdd(prop.MappingInfoID, prop); + UnlockedCheckpoints.Add(prop); + + // Force prop to be in the unlocked state + prop.State = PropStateEnum.CheckPointEnable; + } + else if (!string.IsNullOrEmpty(prop.InitLevelGraph)) + { + var json = prop.InitLevelGraph; + + // Hacky way to setup prop triggers + if (json.Contains("Maze_GroupProp_OpenTreasure_WhenMonsterDie")) { - // Put inside cached teleport list to send to client when they request map info - CachedTeleports.TryAdd(prop.MappingInfoID, prop); - UnlockedCheckpoints.Add(prop); - - // Force prop to be in the unlocked state - prop.State = PropStateEnum.CheckPointEnable; + //prop.Trigger = new TriggerOpenTreasureWhenMonsterDie(group.Id); } - else if (!string.IsNullOrEmpty(prop.InitLevelGraph)) + else if (json.Contains("Common_Console")) { - var json = prop.InitLevelGraph; - - // Hacky way to setup prop triggers - if (json.Contains("Maze_GroupProp_OpenTreasure_WhenMonsterDie")) - { - //prop.Trigger = new TriggerOpenTreasureWhenMonsterDie(group.Id); - } - else if (json.Contains("Common_Console")) - { - prop.CommonConsole = true; - } - - // Clear for garbage collection - prop.ValueSource = null; - prop.InitLevelGraph = null; + prop.CommonConsole = true; } - } + + // Clear for garbage collection + prop.ValueSource = null; + prop.InitLevelGraph = null; + } Loaded = true; } @@ -113,14 +114,12 @@ public class FloorDimensionInfo 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); } diff --git a/Common/Data/Config/Scene/PropInfo.cs b/Common/Data/Config/Scene/PropInfo.cs index 3245cbab..693d722e 100644 --- a/Common/Data/Config/Scene/PropInfo.cs +++ b/Common/Data/Config/Scene/PropInfo.cs @@ -52,17 +52,18 @@ public class PropInfo : PositionInfo list = []; info.PropTriggerCustomString.Add(value.ToString(), list); } + list.Add(ID); } else if (key.ToString().Contains("Door") || - key.ToString().Contains("Bridge") || - key.ToString().Contains("UnlockTarget") || - key.ToString().Contains("Rootcontamination") || - key.ToString().Contains("Portal")) + key.ToString().Contains("Bridge") || + key.ToString().Contains("UnlockTarget") || + key.ToString().Contains("Rootcontamination") || + key.ToString().Contains("Portal")) { var parts = value.ToString().Split(','); - if (parts.Length >= 2 && - int.TryParse(parts[0], out var keyId) && + if (parts.Length >= 2 && + int.TryParse(parts[0], out var keyId) && int.TryParse(parts[1], out var valueId)) { if (!UnlockDoorID.ContainsKey(keyId)) @@ -73,8 +74,8 @@ public class PropInfo : PositionInfo else if (key.ToString().Contains("Controller")) { var parts = value.ToString().Split(','); - if (parts.Length >= 2 && - int.TryParse(parts[0], out var keyId) && + if (parts.Length >= 2 && + int.TryParse(parts[0], out var keyId) && int.TryParse(parts[1], out var valueId)) { if (!UnlockControllerID.ContainsKey(keyId)) diff --git a/Common/Data/Config/Task/AdventureFireProjectile.cs b/Common/Data/Config/Task/AdventureFireProjectile.cs index fa28eeb8..762aa48b 100644 --- a/Common/Data/Config/Task/AdventureFireProjectile.cs +++ b/Common/Data/Config/Task/AdventureFireProjectile.cs @@ -1,11 +1,11 @@ using Newtonsoft.Json.Linq; -using System.CodeDom.Compiler; namespace EggLink.DanhengServer.Data.Config.Task; public class AdventureFireProjectile : TaskConfigInfo { public TargetEvaluator TargetType { get; set; } = new(); + //public ProjectileData Projectile { get; set; } public List OnProjectileHit { get; set; } = []; public List OnProjectileLifetimeFinish { get; set; } = []; @@ -34,10 +34,12 @@ public class AdventureFireProjectile : TaskConfigInfo info.OnProjectileHit.Add(item); foreach (var item in - obj[nameof(OnProjectileLifetimeFinish)]?.Select(x => TaskConfigInfo.LoadFromJsonObject((x as JObject)!)) ?? []) + obj[nameof(OnProjectileLifetimeFinish)] + ?.Select(x => TaskConfigInfo.LoadFromJsonObject((x as JObject)!)) ?? []) info.OnProjectileLifetimeFinish.Add(item); - if (obj.TryGetValue(nameof(WaitProjectileFinish), out value)) info.WaitProjectileFinish = value.ToObject(); + if (obj.TryGetValue(nameof(WaitProjectileFinish), out value)) + info.WaitProjectileFinish = value.ToObject(); if (obj.TryGetValue(nameof(MutexName), out value)) info.MutexName = value.ToObject()!; diff --git a/Common/Data/Config/Task/ByCharacterDamageType.cs b/Common/Data/Config/Task/ByCharacterDamageType.cs index 4fff6a0f..c96adf0f 100644 --- a/Common/Data/Config/Task/ByCharacterDamageType.cs +++ b/Common/Data/Config/Task/ByCharacterDamageType.cs @@ -1,5 +1,4 @@ using EggLink.DanhengServer.Enums.Avatar; -using EggLink.DanhengServer.Enums.Task; using Newtonsoft.Json; using Newtonsoft.Json.Converters; @@ -7,7 +6,6 @@ namespace EggLink.DanhengServer.Data.Config.Task; public class ByCharacterDamageType : PredicateConfigInfo { - [JsonConverter(typeof(StringEnumConverter))] public DamageTypeEnum DamageType { get; set; } = DamageTypeEnum.Fire; } \ No newline at end of file diff --git a/Common/Data/Config/Task/PredicateConfigInfo.cs b/Common/Data/Config/Task/PredicateConfigInfo.cs index 0ae66556..50340d22 100644 --- a/Common/Data/Config/Task/PredicateConfigInfo.cs +++ b/Common/Data/Config/Task/PredicateConfigInfo.cs @@ -15,10 +15,7 @@ public class PredicateConfigInfo : TaskConfigInfo var typeStr = info.Type.Replace("RPG.GameCore.", ""); var className = "EggLink.DanhengServer.Data.Config.Task." + typeStr; - if (typeStr == "ByIsContainAdventureModifier") - { - return ByIsContainAdventureModifier.LoadFromJsonObject(obj); - } + if (typeStr == "ByIsContainAdventureModifier") return ByIsContainAdventureModifier.LoadFromJsonObject(obj); var typeClass = System.Type.GetType(className); if (typeClass != null) diff --git a/Common/Data/Custom/BannersConfig.cs b/Common/Data/Custom/BannersConfig.cs index 301140a3..d97d4b89 100644 --- a/Common/Data/Custom/BannersConfig.cs +++ b/Common/Data/Custom/BannersConfig.cs @@ -131,14 +131,12 @@ public class BannerConfig } if (GachaType == GachaTypeEnum.AvatarUp) - { info.DecideItemInfo = new DecideItemInfo { DecideItemOrder = { decideOrder.Select(x => (uint)x) }, CHDOIBFEHLP = 1, JIGONEALCPC = { 11 } }; - } if (GachaId == 1001) { diff --git a/Common/Data/Excel/AvatarConfigExcel.cs b/Common/Data/Excel/AvatarConfigExcel.cs index 772d2b5f..52b57de4 100644 --- a/Common/Data/Excel/AvatarConfigExcel.cs +++ b/Common/Data/Excel/AvatarConfigExcel.cs @@ -1,6 +1,4 @@ -using System.Text.RegularExpressions; -using EggLink.DanhengServer.Data.Config; -using EggLink.DanhengServer.Enums.Avatar; +using EggLink.DanhengServer.Enums.Avatar; using EggLink.DanhengServer.Enums.Item; using Newtonsoft.Json; using Newtonsoft.Json.Converters; diff --git a/Common/Data/Excel/MappingInfoExcel.cs b/Common/Data/Excel/MappingInfoExcel.cs index 930c3130..bf485293 100644 --- a/Common/Data/Excel/MappingInfoExcel.cs +++ b/Common/Data/Excel/MappingInfoExcel.cs @@ -72,7 +72,7 @@ public class MappingInfoExcel : ExcelResource if (relicExcel == null) break; - if (!relicDrop.TryGetValue(baseRarity, out var _)) + if (!relicDrop.TryGetValue(baseRarity, out _)) { var value = new List(); relicDrop[baseRarity] = value; @@ -240,15 +240,11 @@ public class MappingInfoExcel : ExcelResource private void AddRelicToMap(MappingInfoItem relic, int rarity, Dictionary> relicsMap) { if (relicsMap.TryGetValue(rarity, out var value)) - { value.Add(relic); - } else - { relicsMap.Add(rarity, [relic]); - } } - + private int GetRelicCountByWorldLevel(int rarity) { return WorldLevel switch @@ -304,7 +300,7 @@ public class MappingInfoExcel : ExcelResource _ => 0 }; } - + private int LuckyRelicDropped() { return Random.Shared.Next(100) < 25 ? 1 : 0; diff --git a/Common/Data/Excel/MazeBuffExcel.cs b/Common/Data/Excel/MazeBuffExcel.cs index 385a4d62..a5521c20 100644 --- a/Common/Data/Excel/MazeBuffExcel.cs +++ b/Common/Data/Excel/MazeBuffExcel.cs @@ -2,7 +2,7 @@ namespace EggLink.DanhengServer.Data.Excel; -[ResourceEntity("MazeBuff.json,AvatarMazeBuff.json", isMultifile:true)] +[ResourceEntity("MazeBuff.json,AvatarMazeBuff.json", true)] public class MazeBuffExcel : ExcelResource { public int ID { get; set; } diff --git a/Common/Data/Excel/RogueTournTitanTypeExcel.cs b/Common/Data/Excel/RogueTournTitanTypeExcel.cs index dac03bbf..75a588e7 100644 --- a/Common/Data/Excel/RogueTournTitanTypeExcel.cs +++ b/Common/Data/Excel/RogueTournTitanTypeExcel.cs @@ -9,6 +9,7 @@ public class RogueTournTitanTypeExcel : ExcelResource { [JsonConverter(typeof(StringEnumConverter))] public RogueTitanTypeEnum RogueTitanType { get; set; } + [JsonConverter(typeof(StringEnumConverter))] public RogueTitanCategoryEnum RogueTitanCategory { get; set; } diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index 4cb13f07..5156cf68 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -40,13 +40,16 @@ public static class GameData #region Avatar public static Dictionary AvatarConfigData { get; private set; } = []; - public static Dictionary AdventureAbilityConfigListData { get; private set; } = []; + + public static Dictionary AdventureAbilityConfigListData { get; private set; } = + []; + public static Dictionary AvatarPromotionConfigData { get; private set; } = []; public static Dictionary AvatarExpItemConfigData { get; private set; } = []; public static Dictionary AvatarSkillTreeConfigData { get; private set; } = []; public static Dictionary AvatarSkinData { get; private set; } = []; public static Dictionary AvatarDemoConfigData { get; private set; } = []; - public static Dictionary ExpTypeData { get; private set; } = []; + public static Dictionary ExpTypeData { get; } = []; public static Dictionary MultiplePathAvatarConfigData { get; private set; } = []; @@ -112,7 +115,7 @@ public static class GameData public static Dictionary QuestDataData { get; private set; } = []; public static Dictionary FinishWayData { get; private set; } = []; - public static Dictionary PlayerLevelConfigData { get; private set; } = []; + public static Dictionary PlayerLevelConfigData { get; } = []; public static Dictionary BackGroundMusicData { get; private set; } = []; public static Dictionary ChatBubbleConfigData { get; private set; } = []; public static Dictionary RechargeConfigData { get; private set; } = []; @@ -123,14 +126,19 @@ public static class GameData #region Offering public static Dictionary OfferingTypeConfigData { get; private set; } = []; - public static Dictionary> OfferingLevelConfigData { get; private set; } = []; + + public static Dictionary> OfferingLevelConfigData + { + get; + private set; + } = []; #endregion #region Maze [JsonConverter(typeof(ConcurrentDictionaryConverter))] - public static ConcurrentDictionary FloorInfoData { get; private set; } = []; + public static ConcurrentDictionary FloorInfoData { get; } = []; public static Dictionary NpcDataData { get; private set; } = []; public static Dictionary MapEntranceData { get; private set; } = []; @@ -173,7 +181,7 @@ public static class GameData public static Dictionary ItemConfigData { get; private set; } = []; public static Dictionary ItemUseBuffDataData { get; private set; } = []; public static Dictionary EquipmentConfigData { get; private set; } = []; - public static Dictionary EquipmentExpTypeData { get; private set; } = []; + public static Dictionary EquipmentExpTypeData { get; } = []; public static Dictionary EquipmentExpItemConfigData { get; private set; } = []; public static Dictionary EquipmentPromotionConfigData { get; private set; } = @@ -280,8 +288,11 @@ public static class GameData public static Dictionary RogueTournWorkbenchFuncData { get; private set; } = []; public static Dictionary RogueTournFormulaData { get; private set; } = []; public static Dictionary RogueTournTitanTalentData { get; private set; } = []; - public static Dictionary RogueTournTitanTypeData { get; private set; } = + + public static Dictionary + RogueTournTitanTypeData { get; private set; } = []; + public static Dictionary RogueTournTitanBlessData { get; private set; } = []; public static Dictionary RogueTournHexAvatarBaseTypeData diff --git a/Common/Data/ResourceCache.cs b/Common/Data/ResourceCache.cs index c91c7c0c..fea2c3af 100644 --- a/Common/Data/ResourceCache.cs +++ b/Common/Data/ResourceCache.cs @@ -1,12 +1,12 @@ -using Newtonsoft.Json; +using System.IO.Compression; +using System.IO.MemoryMappedFiles; using System.Reflection; using System.Text; -using EggLink.DanhengServer.Util; using EggLink.DanhengServer.Data.Config.Scene; -using Newtonsoft.Json.Serialization; using EggLink.DanhengServer.Internationalization; -using System.IO.MemoryMappedFiles; -using System.IO.Compression; +using EggLink.DanhengServer.Util; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; namespace EggLink.DanhengServer.Data; @@ -33,6 +33,7 @@ public static class CompressionHelper { compressor.Write(data, 0, data.Length); } + return output.ToArray(); } catch @@ -88,10 +89,6 @@ public class IgnoreJsonIgnoreContractResolver : DefaultContractResolver public class ResourceCache { - public static Logger Logger { get; } = new("ResourceCache"); - public static string CachePath { get; } = ConfigManager.Config.Path.ConfigPath + "/Resource.cache"; - public static bool IsComplete { get; set; } = true; // Custom in errors to ignore some error - public static readonly JsonSerializerSettings Serializer = new() { ContractResolver = new IgnoreJsonIgnoreContractResolver(), @@ -103,6 +100,10 @@ public class ResourceCache } }; + public static Logger Logger { get; } = new("ResourceCache"); + public static string CachePath { get; } = ConfigManager.Config.Path.ConfigPath + "/Resource.cache"; + public static bool IsComplete { get; set; } = true; // Custom in errors to ignore some error + public static Task SaveCache() { return Task.Run(() => @@ -123,7 +124,7 @@ public class ResourceCache }; File.WriteAllText(CachePath, JsonConvert.SerializeObject(cacheData)); - Logger.Info(I18NManager.Translate("Server.ServerInfo.GeneratedItem", + Logger.Info(I18NManager.Translate("Server.ServerInfo.GeneratedItem", I18NManager.Translate("Word.Cache"))); }); } @@ -139,17 +140,18 @@ public class ResourceCache Parallel.ForEach( typeof(GameData).GetProperties(BindingFlags.Public | BindingFlags.Static), - prop => { + prop => + { if (cacheData.GameDataValues.TryGetValue(prop.Name, out var valueBytes)) prop.SetValue(null, JsonConvert.DeserializeObject( - Encoding.UTF8.GetString( - CompressionHelper.Decompress(valueBytes)), prop.PropertyType, Serializer + Encoding.UTF8.GetString( + CompressionHelper.Decompress(valueBytes)), prop.PropertyType, Serializer ) ); } ); - Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItem", + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItem", I18NManager.Translate("Word.Cache"))); return true; @@ -165,8 +167,10 @@ public class ResourceCache var emptyValue = propType.IsGenericType && propType.GetGenericTypeDefinition() == typeof(Dictionary<,>) ? Activator.CreateInstance(propType) : propType.IsGenericType && propType.GetGenericTypeDefinition() == typeof(List<>) - ? Activator.CreateInstance(propType) : propType.IsClass - ? Activator.CreateInstance(propType) : null; + ? Activator.CreateInstance(propType) + : propType.IsClass + ? Activator.CreateInstance(propType) + : null; prop.SetValue(null, emptyValue); } diff --git a/Common/Data/ResourceManager.cs b/Common/Data/ResourceManager.cs index 2fe22897..2c28d25c 100644 --- a/Common/Data/ResourceManager.cs +++ b/Common/Data/ResourceManager.cs @@ -56,12 +56,8 @@ public class ResourceManager // copy modifiers foreach (var value in GameData.AdventureAbilityConfigListData.Values) - { - foreach (var adventureModifierConfig in value.GlobalModifiers ?? []) - { - GameData.AdventureModifierData.Add(adventureModifierConfig.Key, adventureModifierConfig.Value); - } - } + foreach (var adventureModifierConfig in value.GlobalModifiers ?? []) + GameData.AdventureModifierData.Add(adventureModifierConfig.Key, adventureModifierConfig.Value); } public static void LoadExcel() @@ -208,7 +204,6 @@ public class ResourceManager // Load navmap infos FileInfo navmapFile = new(ConfigManager.Config.Path.ResourcePath + "/" + info.NavmapConfigPath); if (navmapFile.Exists) - { try { using var navmapReader = navmapFile.OpenRead(); @@ -217,8 +212,8 @@ public class ResourceManager var navmap = JsonConvert.DeserializeObject(navmapText); if (navmap != null) foreach (var area in navmap.AreaList) - foreach (var section in area.MinimapVolume.Sections) - info.MapSections.Add(section.ID); + foreach (var section in area.MinimapVolume.Sections) + info.MapSections.Add(section.ID); } catch (Exception ex) { @@ -227,7 +222,6 @@ public class ResourceManager I18NManager.Translate("Server.ServerInfo.FailedToReadItem", navmapFile.Name, I18NManager.Translate("Word.Error")), ex); } - } // Load group infos sequentially to maintain order foreach (var groupInfo in info.GroupInstanceList) @@ -443,15 +437,13 @@ public class ResourceManager var res2 = Parallel.ForEach(GameData.NpcMonsterDataData.Values, adventure => { - var adventurePath = adventure.ConfigEntityPath.Replace("_Entity.json", "_Ability.json").Replace("_Config.json", "_Ability.json") + var adventurePath = adventure.ConfigEntityPath.Replace("_Entity.json", "_Ability.json") + .Replace("_Config.json", "_Ability.json") .Replace("ConfigEntity", "ConfigAdventureAbility"); var path = ConfigManager.Config.Path.ResourcePath + "/" + adventurePath; var file = new FileInfo(path); - if (!file.Exists) - { - return; - } + if (!file.Exists) return; try { using var reader = file.OpenRead(); diff --git a/Common/Database/Inventory/InventoryData.cs b/Common/Database/Inventory/InventoryData.cs index 5aff1b47..2d63f903 100644 --- a/Common/Database/Inventory/InventoryData.cs +++ b/Common/Database/Inventory/InventoryData.cs @@ -40,6 +40,22 @@ public class ItemData public int EquipAvatar { get; set; } + public int CalcTotalExpGained() + { + if (Level <= 0) return Exp; + GameData.RelicConfigData.TryGetValue(ItemId, out var costExcel); + if (costExcel == null) return 0; + var exp = 0; + for (var i = 0; i < Level; i++) + { + GameData.RelicExpTypeData.TryGetValue(costExcel.ExpType * 100 + i, out var typeExcel); + if (typeExcel != null) + exp += typeExcel.Exp; + } + + return exp + Exp; + } + #region Action public void AddRandomRelicMainAffix() @@ -141,7 +157,7 @@ public class ItemData AddRandomRelicSubAffix(initSubAffixesCount); } - + public int LuckyRelicSubAffixCount() { return Random.Shared.Next(100) < 20 ? 1 : 0; @@ -149,22 +165,6 @@ public class ItemData #endregion - public int CalcTotalExpGained() - { - if (Level <= 0) return Exp; - GameData.RelicConfigData.TryGetValue(ItemId, out var costExcel); - if (costExcel == null) return 0; - var exp = 0; - for (var i = 0; i < Level; i++) - { - GameData.RelicExpTypeData.TryGetValue(costExcel.ExpType * 100 + i, out var typeExcel); - if (typeExcel != null) - exp += typeExcel.Exp; - } - - return exp + Exp; - } - #region Serialization public Material ToMaterialProto() @@ -320,10 +320,6 @@ public class ItemData public class ItemSubAffix { - public int Id { get; set; } - public int Count { get; set; } - public int Step { get; set; } - public ItemSubAffix() { } @@ -335,6 +331,10 @@ public class ItemSubAffix Step = Extensions.RandomInt(0, excel.StepNum * count + 1); } + public int Id { get; set; } + public int Count { get; set; } + public int Step { get; set; } + public void IncreaseStep(int stepNum) { Count++; diff --git a/Common/Database/Inventory/OfferingData.cs b/Common/Database/Inventory/OfferingData.cs index d753cc52..d84fb946 100644 --- a/Common/Database/Inventory/OfferingData.cs +++ b/Common/Database/Inventory/OfferingData.cs @@ -22,7 +22,9 @@ public class OfferingTypeData public OfferingInfo ToProto() { - var totalExp = CurExp + Enumerable.Range(1, Level).Select(level => GameData.OfferingLevelConfigData.GetValueOrDefault(OfferingId)?.GetValueOrDefault(level)).OfType().Sum(config => config.ItemCost); + var totalExp = CurExp + Enumerable.Range(1, Level) + .Select(level => GameData.OfferingLevelConfigData.GetValueOrDefault(OfferingId)?.GetValueOrDefault(level)) + .OfType().Sum(config => config.ItemCost); return new OfferingInfo { diff --git a/Common/Database/Scene/SceneData.cs b/Common/Database/Scene/SceneData.cs index 9cab31e8..be380362 100644 --- a/Common/Database/Scene/SceneData.cs +++ b/Common/Database/Scene/SceneData.cs @@ -41,7 +41,7 @@ public class ScenePropData public class ScenePropTimelineData { public bool BoolValue { get; set; } - public string ByteValue { get; set; } = ""; // Base64 + public string ByteValue { get; set; } = ""; // Base64 public PropTimelineInfo ToProto() { diff --git a/Common/Database/TrainParty/TrainData.cs b/Common/Database/TrainParty/TrainData.cs index c90eabd3..229c6d36 100644 --- a/Common/Database/TrainParty/TrainData.cs +++ b/Common/Database/TrainParty/TrainData.cs @@ -26,11 +26,14 @@ public class TrainAreaInfo StepIdList = { StepList.Select(x => (uint)x) }, VerifyStepIdList = { StepList.Select(x => (uint)x) }, Progress = 100, - DynamicInfo = { DynamicInfo.Select(x => new AreaDynamicInfo + DynamicInfo = { - DiceSlotId = (uint)x.Key, - DiyDynamicId = (uint)x.Value - }) } + DynamicInfo.Select(x => new AreaDynamicInfo + { + DiceSlotId = (uint)x.Key, + DiyDynamicId = (uint)x.Value + }) + } }; foreach (var step in StepList) diff --git a/Common/Enums/Avatar/MultiPathAvatarTypeEnum.cs b/Common/Enums/Avatar/MultiPathAvatarTypeEnum.cs index b869c1c0..df358e02 100644 --- a/Common/Enums/Avatar/MultiPathAvatarTypeEnum.cs +++ b/Common/Enums/Avatar/MultiPathAvatarTypeEnum.cs @@ -8,4 +8,4 @@ public enum MultiPathAvatarTypeEnum Memory = 8007, Mar_7thKnight = 1001, Mar_7thRogue = 1224 -} +} \ No newline at end of file diff --git a/Common/Enums/RegionEnum.cs b/Common/Enums/RegionEnum.cs index 1bc38b82..458d3cfc 100644 --- a/Common/Enums/RegionEnum.cs +++ b/Common/Enums/RegionEnum.cs @@ -2,27 +2,27 @@ namespace EggLink.DanhengServer.Enums; public enum BaseRegionEnum { - None = 0, + None = 0, CN = 1, OS = 2 } public enum RegionEnum { - PRODCN = 0, - SANDBOXCN = 1, - PRODOVERSEA = 2, - SANDBOXOVERSEA = 3, - PRODCNPRE = 4, - PRODOVERSEAPRE = 5, - TESTCN = 6, - TESTOVERSEA = 7, - PETCN = 8, - BETACN = 9, - BETACNPRE = 10, - BETAOVERSEA = 11, - PETOS = 12, - HOTFIXCN = 19, - HOTFIXOVERSEA = 20, - UNKNOWN = 21 + PRODCN = 0, + SANDBOXCN = 1, + PRODOVERSEA = 2, + SANDBOXOVERSEA = 3, + PRODCNPRE = 4, + PRODOVERSEAPRE = 5, + TESTCN = 6, + TESTOVERSEA = 7, + PETCN = 8, + BETACN = 9, + BETACNPRE = 10, + BETAOVERSEA = 11, + PETOS = 12, + HOTFIXCN = 19, + HOTFIXOVERSEA = 20, + UNKNOWN = 21 } \ No newline at end of file diff --git a/Common/Enums/Scene/PropTypeEnum.cs b/Common/Enums/Scene/PropTypeEnum.cs index 6865e732..fe77510c 100644 --- a/Common/Enums/Scene/PropTypeEnum.cs +++ b/Common/Enums/Scene/PropTypeEnum.cs @@ -34,4 +34,4 @@ public enum PropTypeEnum PROP_TIMELINE_CONTROL = 29, PROP_MAZE_JIGSAW = 30, PROP_DYNAMIC_POSITION = 31 -} +} \ No newline at end of file diff --git a/Common/Internationalization/Message/LanguageCHS.cs b/Common/Internationalization/Message/LanguageCHS.cs index 9ed12651..6c2de77d 100644 --- a/Common/Internationalization/Message/LanguageCHS.cs +++ b/Common/Internationalization/Message/LanguageCHS.cs @@ -264,7 +264,8 @@ public class GiveTextCHS /// public class GiveAllTextCHS { - public string Desc => "给予玩家全部指定类型的物品\navatar意为角色,equipment意为光锥,relic意为遗器,unlock意为气泡、手机壁纸、头像,train意为开拓者房间内容,pet意为宠物,path意为多命途角色命途"; + public string Desc => + "给予玩家全部指定类型的物品\navatar意为角色,equipment意为光锥,relic意为遗器,unlock意为气泡、手机壁纸、头像,train意为开拓者房间内容,pet意为宠物,path意为多命途角色命途"; public string Usage => "用法:/giveall avatar r<星魂> l<等级>\n\n" + diff --git a/Common/Internationalization/Message/LanguageEN.cs b/Common/Internationalization/Message/LanguageEN.cs index ef8f203c..1bd1889e 100644 --- a/Common/Internationalization/Message/LanguageEN.cs +++ b/Common/Internationalization/Message/LanguageEN.cs @@ -174,6 +174,7 @@ public class ServerInfoTextEN public string MissionEnabled => "Mission system enabled. This feature is still in development and may not work as expected. Please report any bugs to the developers."; + public string CacheLoadSkip => "Skipped cache loading."; public string ConfigMissing => "{0} is missing. Please check your resource folder: {1}, {2} may not be available."; diff --git a/Common/Util/ConfigManager.cs b/Common/Util/ConfigManager.cs index 3afc8fde..62c7accf 100644 --- a/Common/Util/ConfigManager.cs +++ b/Common/Util/ConfigManager.cs @@ -7,10 +7,10 @@ namespace EggLink.DanhengServer.Util; public static class ConfigManager { public static readonly Logger Logger = new("ConfigManager"); - public static ConfigContainer Config { get; private set; } = new(); private static readonly string ConfigFilePath = "Config.json"; - public static HotfixContainer Hotfix { get; private set; } = new(); private static readonly string HotfixFilePath = Config.Path.ConfigPath + "/Hotfix.json"; + public static ConfigContainer Config { get; private set; } = new(); + public static HotfixContainer Hotfix { get; private set; } = new(); public static void LoadConfig() { @@ -23,7 +23,7 @@ public static class ConfigManager var file = new FileInfo(ConfigFilePath); if (!file.Exists) { - Config = new() + Config = new ConfigContainer { MuipServer = { @@ -60,7 +60,7 @@ public static class ConfigManager foreach (var pre in prefix) if (GameConstants.GAME_VERSION[^1] == '5') for (var i = 1; i < 6; i++) - verList.Add(pre + GameConstants.GAME_VERSION + i.ToString()); + verList.Add(pre + GameConstants.GAME_VERSION + i); else verList.Add(pre + GameConstants.GAME_VERSION); @@ -79,8 +79,8 @@ public static class ConfigManager } foreach (var version in verList) - if (!Hotfix.HotfixData.TryGetValue(version, out var _)) - Hotfix.HotfixData[version] = new(); + if (!Hotfix.HotfixData.TryGetValue(version, out _)) + Hotfix.HotfixData[version] = new DownloadUrlConfig(); Logger.Info(I18NManager.Translate("Server.ServerInfo.CurrentVersion", GameConstants.GAME_VERSION)); diff --git a/Common/Util/CustomConverters.cs b/Common/Util/CustomConverters.cs index 352adbe6..dbb64e85 100644 --- a/Common/Util/CustomConverters.cs +++ b/Common/Util/CustomConverters.cs @@ -1,5 +1,5 @@ -using Newtonsoft.Json; using System.Collections.Concurrent; +using Newtonsoft.Json; namespace EggLink.DanhengServer.Util; @@ -12,37 +12,45 @@ public class ConcurrentBagConverter : JsonConverter> writer.WriteNull(); return; } + serializer.Serialize(writer, value.ToArray()); } - public override ConcurrentBag? ReadJson(JsonReader reader, Type objectType, ConcurrentBag? existingValue, bool hasExistingValue, JsonSerializer serializer) + public override ConcurrentBag? ReadJson(JsonReader reader, Type objectType, ConcurrentBag? existingValue, + bool hasExistingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) return null; - + var array = serializer.Deserialize(reader); return array != null ? new ConcurrentBag(array) : new ConcurrentBag(); } } -public class ConcurrentDictionaryConverter : JsonConverter> where TKey : notnull +public class ConcurrentDictionaryConverter : JsonConverter> + where TKey : notnull { - public override void WriteJson(JsonWriter writer, ConcurrentDictionary? value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, ConcurrentDictionary? value, + JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } + serializer.Serialize(writer, value.ToDictionary(kvp => kvp.Key, kvp => kvp.Value)); } - public override ConcurrentDictionary? ReadJson(JsonReader reader, Type objectType, ConcurrentDictionary? existingValue, bool hasExistingValue, JsonSerializer serializer) + public override ConcurrentDictionary? ReadJson(JsonReader reader, Type objectType, + ConcurrentDictionary? existingValue, bool hasExistingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) return null; - + var dictionary = serializer.Deserialize>(reader); - return dictionary != null ? new ConcurrentDictionary(dictionary) : new ConcurrentDictionary(); + return dictionary != null + ? new ConcurrentDictionary(dictionary) + : new ConcurrentDictionary(); } } \ No newline at end of file diff --git a/DanhengKcpSharp/CmdIds.cs b/DanhengKcpSharp/CmdIds.cs index 0b3c1c0c..d3e6c08d 100644 --- a/DanhengKcpSharp/CmdIds.cs +++ b/DanhengKcpSharp/CmdIds.cs @@ -2,8 +2,8 @@ namespace EggLink.DanhengServer.Kcp; public class CmdIds { - // None - public const int None = 0; + // None + public const int None = 0; // Packets public const int AcceptActivityExpeditionCsReq = 2530; diff --git a/DanhengKcpSharp/DanhengListener.cs b/DanhengKcpSharp/DanhengListener.cs index 97b80dbe..8ae00b55 100644 --- a/DanhengKcpSharp/DanhengListener.cs +++ b/DanhengKcpSharp/DanhengListener.cs @@ -121,7 +121,7 @@ public class DanhengListener var convId = Connections.GetNextAvailableIndex(); var convo = Multiplex?.CreateConversation(convId, rcv.RemoteEndPoint, ConvOpt); if (convo == null) return; - var con = (DanhengConnection)Activator.CreateInstance(BaseConnection, [convo, rcv.RemoteEndPoint])!; + var con = (DanhengConnection)Activator.CreateInstance(BaseConnection, convo, rcv.RemoteEndPoint)!; RegisterConnection(con); await SendHandshakeResponse(con, enet); } diff --git a/GameServer/Game/Avatar/AvatarManager.cs b/GameServer/Game/Avatar/AvatarManager.cs index fedc65b0..0b757c5b 100644 --- a/GameServer/Game/Avatar/AvatarManager.cs +++ b/GameServer/Game/Avatar/AvatarManager.cs @@ -100,6 +100,7 @@ public class AvatarManager : BasePlayerManager subAffix.Count = 1; subAffix.Step = 0; } + relic.IncreaseRandomRelicSubAffix(levelUpCnt); relic.ReforgeSubAffixes = relic.SubAffixes; relic.SubAffixes = subAffixesClone; @@ -133,9 +134,10 @@ public class AvatarManager : BasePlayerManager AvatarId = (uint)avatarId, UniqueId = (uint)plan.Key, OutsideRelicList = { plan.Value.OutsideRelic.Select(x => (uint)x) }, - InsideRelicList = { plan.Value.InsideRelic.Select(x => (uint)x) }, + InsideRelicList = { plan.Value.InsideRelic.Select(x => (uint)x) } }); } + return planList; } @@ -166,6 +168,6 @@ public class AvatarManager : BasePlayerManager public void DeleteRelicPlan(int uniqueId) { - Player.InventoryManager!.Data.RelicPlans[uniqueId] = new(); + Player.InventoryManager!.Data.RelicPlans[uniqueId] = new RelicPlanData(); } } \ No newline at end of file diff --git a/GameServer/Game/Battle/BattleInstance.cs b/GameServer/Game/Battle/BattleInstance.cs index 62b045dc..724a01e9 100644 --- a/GameServer/Game/Battle/BattleInstance.cs +++ b/GameServer/Game/Battle/BattleInstance.cs @@ -245,12 +245,8 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List x.BuffID == buff.BuffID && x.DynamicValues.Count == 0); - } - } foreach (var eventInstance in BattleEvents.Values) proto.BattleEvent.Add(eventInstance.ToProto()); diff --git a/GameServer/Game/Battle/BattleManager.cs b/GameServer/Game/Battle/BattleManager.cs index ce927c27..ee6f76af 100644 --- a/GameServer/Game/Battle/BattleManager.cs +++ b/GameServer/Game/Battle/BattleManager.cs @@ -18,7 +18,8 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) { public StageConfigExcel? NextBattleStageConfig { get; set; } - public async ValueTask StartBattle(IGameEntity attackEntity, List targetEntityList, bool isSkill) + public async ValueTask StartBattle(IGameEntity attackEntity, List targetEntityList, + bool isSkill) { if (Player.BattleInstance != null) return Player.BattleInstance; var targetList = new List(); @@ -29,7 +30,6 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) if (castAvatar != null) { foreach (var entity in targetEntityList) - { switch (entity) { case EntityMonster monster: @@ -39,26 +39,19 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) propList.Add(prop); break; } - } } else { var isAmbushed = targetEntityList.Any(entity => Player.SceneInstance!.AvatarInfo.ContainsKey(entity.EntityID)); - if (!isAmbushed) - { - return null; - } + if (!isAmbushed) return null; var monsterEntity = Player.SceneInstance!.Entities[attackEntity.EntityID]; if (monsterEntity is EntityMonster monster) targetList.Add(monster); } - if (targetList.Count == 0 && propList.Count == 0) - { - return null; - } + if (targetList.Count == 0 && propList.Count == 0) return null; foreach (var prop in propList) { @@ -84,10 +77,7 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) { var triggerBattle = targetList.Any(target => target.IsAlive); - if (!triggerBattle) - { - return null; - } + if (!triggerBattle) return null; var inst = Player.RogueManager!.GetRogueInstance(); if (inst is RogueMagicInstance { CurLevel.CurRoom.AdventureInstance: not null } magic) @@ -106,10 +96,11 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) if (NextBattleStageConfig != null) { - battleInstance = new BattleInstance(Player, Player.LineupManager!.GetCurLineup()!, [NextBattleStageConfig]) - { - WorldLevel = Player.Data.WorldLevel, - }; + battleInstance = + new BattleInstance(Player, Player.LineupManager!.GetCurLineup()!, [NextBattleStageConfig]) + { + WorldLevel = Player.Data.WorldLevel + }; NextBattleStageConfig = null; } @@ -140,9 +131,7 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) } if (mazeBuff != null && mazeBuff.BuffID != 0) // avoid adding a buff with ID 0 - { battleInstance.Buffs.Add(mazeBuff); - } battleInstance.AvatarInfo = avatarList; @@ -216,18 +205,12 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) if (Player.BattleInstance != null) return null; GameData.CocoonConfigData.TryGetValue(cocoonId * 100 + worldLevel, out var config); - if (config == null) - { - return null; - } + if (config == null) return null; wave = Math.Min(Math.Max(wave, 1), config.MaxWave); var cost = config.StaminaCost * wave; - if (Player.Data.Stamina < cost) - { - return null; - } + if (Player.Data.Stamina < cost) return null; List stageConfigExcels = []; for (var i = 0; i < wave; i++) @@ -239,10 +222,7 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) stageConfigExcels.Add(stageConfig); } - if (stageConfigExcels.Count == 0) - { - return null; - } + if (stageConfigExcels.Count == 0) return null; BattleInstance battleInstance = new(Player, Player.LineupManager!.GetCurLineup()!, stageConfigExcels) { @@ -256,7 +236,7 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player) { battleInstance = new BattleInstance(Player, Player.LineupManager!.GetCurLineup()!, [NextBattleStageConfig]) { - WorldLevel = Player.Data.WorldLevel, + WorldLevel = Player.Data.WorldLevel }; NextBattleStageConfig = null; } diff --git a/GameServer/Game/Battle/SceneSkillManager.cs b/GameServer/Game/Battle/SceneSkillManager.cs index 7c83081b..046a7368 100644 --- a/GameServer/Game/Battle/SceneSkillManager.cs +++ b/GameServer/Game/Battle/SceneSkillManager.cs @@ -12,28 +12,24 @@ public class SceneSkillManager(PlayerInstance player) : BasePlayerManager(player public async ValueTask OnCast(SceneCastSkillCsReq req) { // get entities - List targetEntities = []; // enemy - IGameEntity? attackEntity; // caster + List targetEntities = []; // enemy + IGameEntity? attackEntity; // caster List addEntityIds = []; foreach (var id in req.AssistMonsterEntityIdList) - { if (Player.SceneInstance!.Entities.TryGetValue((int)id, out var v)) { targetEntities.Add(v); addEntityIds.Add((int)id); } - } foreach (var info in req.AssistMonsterEntityInfo) + foreach (var id in info.EntityIdList) { - foreach (var id in info.EntityIdList) + if (addEntityIds.Contains((int)id)) continue; + if (Player.SceneInstance!.Entities.TryGetValue((int)id, out var v)) { - if (addEntityIds.Contains((int)id)) continue; - if (Player.SceneInstance!.Entities.TryGetValue((int)id, out var v)) - { - targetEntities.Add(v); - addEntityIds.Add((int)id); - } + targetEntities.Add(v); + addEntityIds.Add((int)id); } } @@ -44,7 +40,8 @@ public class SceneSkillManager(PlayerInstance player) : BasePlayerManager(player if (abilities == null || abilities.AbilityList.Count < 1) return new SkillResultData(Retcode.RetMazeNoAbility); - var abilityName = !string.IsNullOrEmpty(req.MazeAbilityStr) ? req.MazeAbilityStr: req.SkillIndex == 0 ? "NormalAtk01" : "MazeSkill"; + var abilityName = !string.IsNullOrEmpty(req.MazeAbilityStr) ? req.MazeAbilityStr : + req.SkillIndex == 0 ? "NormalAtk01" : "MazeSkill"; var targetAbility = abilities.AbilityList.Find(x => x.Name.Contains(abilityName)); if (targetAbility == null) { @@ -54,7 +51,8 @@ public class SceneSkillManager(PlayerInstance player) : BasePlayerManager(player } // execute ability - var res = await Player.TaskManager!.AbilityLevelTask.TriggerTasks(abilities, targetAbility.OnStart, attackEntity, targetEntities, req); + var res = await Player.TaskManager!.AbilityLevelTask.TriggerTasks(abilities, targetAbility.OnStart, + attackEntity, targetEntities, req); return new SkillResultData(Retcode.RetSucc, res.Instance, res.BattleInfos); } @@ -62,17 +60,16 @@ public class SceneSkillManager(PlayerInstance player) : BasePlayerManager(player private AdventureAbilityConfigListInfo? GetAbilityConfig(IGameEntity entity) { if (entity is EntityMonster monster) - { return GameData.AdventureAbilityConfigListData.GetValueOrDefault(monster.MonsterData.ID); - } - + if (entity is AvatarSceneInfo avatar) - { return GameData.AdventureAbilityConfigListData.GetValueOrDefault(avatar.AvatarInfo.GetAvatarId()); - } return null; } } -public record SkillResultData(Retcode RetCode, BattleInstance? Instance = null, List? TriggerBattleInfos = null); \ No newline at end of file +public record SkillResultData( + Retcode RetCode, + BattleInstance? Instance = null, + List? TriggerBattleInfos = null); \ No newline at end of file diff --git a/GameServer/Game/Challenge/ChallengeInstance.cs b/GameServer/Game/Challenge/ChallengeInstance.cs index c87e614d..dd083ff5 100644 --- a/GameServer/Game/Challenge/ChallengeInstance.cs +++ b/GameServer/Game/Challenge/ChallengeInstance.cs @@ -296,7 +296,8 @@ public class ChallengeInstance if (monsters == 0) await AdvanceStage(req); // Calculate rounds left - if (!(IsStory() && IsBoss())) RoundsLeft = (int)Math.Min(Math.Max(RoundsLeft - req.Stt.RoundCnt, 1), RoundsLeft); + if (!(IsStory() && IsBoss())) + RoundsLeft = (int)Math.Min(Math.Max(RoundsLeft - req.Stt.RoundCnt, 1), RoundsLeft); // Set saved technique points (This will be restored if the player resets the challenge) SavedMp = Player.LineupManager!.GetCurLineup()!.Mp; diff --git a/GameServer/Game/ChessRogue/ChessRogueInstance.cs b/GameServer/Game/ChessRogue/ChessRogueInstance.cs index c9ab884a..5579ac61 100644 --- a/GameServer/Game/ChessRogue/ChessRogueInstance.cs +++ b/GameServer/Game/ChessRogue/ChessRogueInstance.cs @@ -416,7 +416,8 @@ public class ChessRogueInstance : BaseRogueInstance CurCell = cell; cell.CellStatus = ChessRogueBoardCellStatus.Finish; - await Player.EnterSceneByEntranceId(cell.GetEntryId(), cell.RoomConfig!.AnchorGroup, cell.RoomConfig!.AnchorId, + await Player.EnterSceneByEntranceId(cell.GetEntryId(), cell.RoomConfig!.AnchorGroup, + cell.RoomConfig!.AnchorId, false); HistoryCell.Add(cell); diff --git a/GameServer/Game/Gacha/GachaManager.cs b/GameServer/Game/Gacha/GachaManager.cs index 75196583..6e806778 100644 --- a/GameServer/Game/Gacha/GachaManager.cs +++ b/GameServer/Game/Gacha/GachaManager.cs @@ -13,8 +13,6 @@ namespace EggLink.DanhengServer.GameServer.Game.Gacha; public class GachaManager : BasePlayerManager { - public GachaData GachaData { get; } - public GachaManager(PlayerInstance player) : base(player) { GachaData = DatabaseHelper.Instance!.GetInstanceOrCreateNew(player.Uid); @@ -29,13 +27,16 @@ public class GachaManager : BasePlayerManager } } + public GachaData GachaData { get; } + public List GetPurpleAvatars() { var purpleAvatars = new List(); foreach (var avatar in GameData.AvatarConfigData.Values) if (avatar.Rarity == RarityEnum.CombatPowerAvatarRarityType4 && !(GameData.MultiplePathAvatarConfigData.ContainsKey(avatar.AvatarID) && - GameData.MultiplePathAvatarConfigData[avatar.AvatarID].BaseAvatarID != avatar.AvatarID) && avatar.MaxRank > 0) + GameData.MultiplePathAvatarConfigData[avatar.AvatarID].BaseAvatarID != avatar.AvatarID) && + avatar.MaxRank > 0) purpleAvatars.Add(avatar.AvatarID); return purpleAvatars; } @@ -298,7 +299,8 @@ public class GachaManager : BasePlayerManager { GachaRandom = (uint)Random.Shared.Next(1000, 1999) }; - foreach (var banner in GameData.BannersConfig.Banners) proto.GachaInfoList.Add(banner.ToInfo(GachaData.GachaDecideOrder, GetGoldAvatars())); + foreach (var banner in GameData.BannersConfig.Banners) + proto.GachaInfoList.Add(banner.ToInfo(GachaData.GachaDecideOrder, GetGoldAvatars())); return proto; } diff --git a/GameServer/Game/Inventory/InventoryManager.cs b/GameServer/Game/Inventory/InventoryManager.cs index da0d6ec1..7950c9c7 100644 --- a/GameServer/Game/Inventory/InventoryManager.cs +++ b/GameServer/Game/Inventory/InventoryManager.cs @@ -14,7 +14,6 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; using Google.Protobuf.Collections; -using Microsoft.Net.Http.Headers; namespace EggLink.DanhengServer.GameServer.Game.Inventory; @@ -91,6 +90,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) value = []; Player.PlayerUnlockData.Skins[avatarId] = value; } + value.Add(itemId); await Player.SendPacket(new PacketUnlockAvatarSkinScNotify(itemId)); break; @@ -484,7 +484,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) // Generate relics var relicDrops = mapping.GenerateRelicDrops(); - + // Let AddItem notify relics count exceeding limit items.AddRange(Data.RelicItems.Count + relicDrops.Count - 1 > GameConstants.INVENTORY_MAX_RELIC ? relicDrops[..(GameConstants.INVENTORY_MAX_RELIC - Data.RelicItems.Count + 1)] @@ -535,7 +535,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) var initSubCnt = new Random().Next(3, 5); relic.AddRandomRelicSubAffix(initSubCnt - subAffixes.Count); - if (initSubCnt == 3 && level / 3 > 0) relic.AddRandomRelicSubAffix(1); // Random add init subAffixes + if (initSubCnt == 3 && level / 3 > 0) relic.AddRandomRelicSubAffix(); // Random add init subAffixes var remainUpCnt = level / 3 - (4 - initSubCnt) - subAffixes.Sum(x => x.Item2); relic.IncreaseRandomRelicSubAffix(remainUpCnt); // Level up @@ -582,7 +582,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) var relicId = (int)req.ComposeRelicId; GameData.RelicConfigData.TryGetValue(relicId, out var itemConfig); GameData.RelicSubAffixData.TryGetValue(itemConfig!.SubAffixGroup, out var subAffixConfig); - + // Add relic var mainAffix = (int)req.MainAffixId; var itemData = new ItemData @@ -596,7 +596,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) }; if (mainAffix == 0) itemData.AddRandomRelicMainAffix(); itemData.AddRandomRelicSubAffix(3 - itemData.SubAffixes.Count + itemData.LuckyRelicSubAffixCount()); - await AddItem(itemData, notify: false); + await AddItem(itemData, false); return itemData; } @@ -1276,9 +1276,11 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) } #endregion - + #region Mark - public async ValueTask LockItems(RepeatedField ids, bool isLocked, ItemMainTypeEnum itemType = ItemMainTypeEnum.Unknown) + + public async ValueTask LockItems(RepeatedField ids, bool isLocked, + ItemMainTypeEnum itemType = ItemMainTypeEnum.Unknown) { List targetItems; switch (itemType) @@ -1300,6 +1302,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) default: return false; } + if (targetItems.Count == 0) return false; var idPool = ids.ToList().ConvertAll(x => (int)x).ToFrozenSet(); var items = new List(); @@ -1315,7 +1318,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) return true; } - public async ValueTask DiscardItems(RepeatedField ids, bool discarded, ItemMainTypeEnum itemType = ItemMainTypeEnum.Unknown) + public async ValueTask DiscardItems(RepeatedField ids, bool discarded, + ItemMainTypeEnum itemType = ItemMainTypeEnum.Unknown) { List targetItems; switch (itemType) @@ -1337,6 +1341,7 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) default: return false; } + if (targetItems.Count == 0) return false; var idPool = ids.ToList().ConvertAll(x => (int)x).ToFrozenSet(); var items = new List(); @@ -1346,10 +1351,11 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) x.Discarded = discarded; items.Add(x); } - + if (items.Count <= 0) return false; await Player.SendPacket(new PacketPlayerSyncScNotify(items)); return true; } + #endregion } \ No newline at end of file diff --git a/GameServer/Game/Inventory/OfferingManager.cs b/GameServer/Game/Inventory/OfferingManager.cs index e6b424c2..b8cf2bd8 100644 --- a/GameServer/Game/Inventory/OfferingManager.cs +++ b/GameServer/Game/Inventory/OfferingManager.cs @@ -14,12 +14,9 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) public OfferingTypeData? GetOfferingData(int offeringId) { - if (Data.Offerings.TryGetValue(offeringId, out var offeringData)) - { - return offeringData; - } + if (Data.Offerings.TryGetValue(offeringId, out var offeringData)) return offeringData; - var gameData = GameData.OfferingTypeConfigData.GetValueOrDefault(offeringId); // create a new one + var gameData = GameData.OfferingTypeConfigData.GetValueOrDefault(offeringId); // create a new one if (gameData == null) return null; var unlockId = gameData.UnlockID; @@ -29,10 +26,7 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) State = OfferingState.Lock }; - if (Player.QuestManager!.UnlockHandler.GetUnlockStatus(unlockId)) - { - data.State = OfferingState.Open; - } + if (Player.QuestManager!.UnlockHandler.GetUnlockStatus(unlockId)) data.State = OfferingState.Open; Data.Offerings[offeringId] = data; @@ -62,10 +56,7 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) syncData.Add(offering); } - foreach (var data in syncData) - { - await Player.SendPacket(new PacketOfferingInfoScNotify(data)); - } + foreach (var data in syncData) await Player.SendPacket(new PacketOfferingInfoScNotify(data)); } public async ValueTask<(Retcode, OfferingTypeData? data)> SubmitOfferingItem(int offeringId) @@ -75,17 +66,18 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) var gameData = GameData.OfferingTypeConfigData.GetValueOrDefault(offeringId); if (gameData == null) return (Retcode.RetOfferingNotUnlock, null); - + if (offering.Level >= gameData.MaxLevel) return (Retcode.RetOfferingReachMaxLevel, offering); var item = Player.InventoryManager!.GetItem(gameData.ItemID); if (item is not { Count: >= 1 }) return (Retcode.RetOfferingItemNotEnough, offering); - + var exp = item.Count; while (true) { if (offering.Level >= gameData.MaxLevel) break; - var config = GameData.OfferingLevelConfigData.GetValueOrDefault(offeringId)?.GetValueOrDefault(offering.Level + 1); + var config = GameData.OfferingLevelConfigData.GetValueOrDefault(offeringId) + ?.GetValueOrDefault(offering.Level + 1); if (config == null) break; if (exp + offering.CurExp < config.ItemCost) @@ -105,7 +97,8 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) return (Retcode.RetSucc, offering); } - public async ValueTask<(Retcode, OfferingTypeData? data, List reward)> TakeOfferingReward(int offeringId, List takeList) + public async ValueTask<(Retcode, OfferingTypeData? data, List reward)> TakeOfferingReward(int offeringId, + List takeList) { var offering = GetOfferingData(offeringId); if (offering is not { State: OfferingState.Open }) return (Retcode.RetOfferingNotUnlock, null, []); @@ -114,24 +107,16 @@ public class OfferingManager(PlayerInstance player) : BasePlayerManager(player) if (gameData == null) return (Retcode.RetOfferingNotUnlock, offering, []); List rewardIdList = []; - foreach (var excel in takeList.Select(take => GameData.OfferingLevelConfigData.GetValueOrDefault(offeringId)?.GetValueOrDefault(take))) - { + foreach (var excel in takeList.Select(take => + GameData.OfferingLevelConfigData.GetValueOrDefault(offeringId)?.GetValueOrDefault(take))) if (excel != null && excel.Level <= offering.Level && !offering.TakenReward.Contains(excel.Level)) - { rewardIdList.Add(excel.RewardID); - } else - { return (Retcode.RetOfferingLevelNotUnlock, offering, []); - } - } offering.TakenReward.AddRange(takeList); List reward = []; - foreach (var id in rewardIdList) - { - reward.AddRange(await Player.InventoryManager!.HandleReward(id, sync:false)); - } + foreach (var id in rewardIdList) reward.AddRange(await Player.InventoryManager!.HandleReward(id, sync: false)); await Player.SendPacket(new PacketPlayerSyncScNotify(reward)); diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerMatchThreeFinishLevel.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerMatchThreeFinishLevel.cs index 4bdb05f8..d9796be6 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerMatchThreeFinishLevel.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerMatchThreeFinishLevel.cs @@ -3,7 +3,6 @@ using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Player; using EggLink.DanhengServer.Proto; -using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.GameServer.Game.Mission.FinishType.Handler; @@ -12,8 +11,8 @@ public class MissionHandlerMatchThreeFinishLevel : MissionFinishTypeHandler { public override async ValueTask HandleMissionFinishType(PlayerInstance player, SubMissionInfo info, object? arg) { - if(arg is MatchThreeLevelEndCsReq req) - if(req.LevelId == info.ParamInt1) + if (arg is MatchThreeLevelEndCsReq req) + if (req.LevelId == info.ParamInt1) await player.MissionManager!.FinishSubMission(info.ID); } diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetState.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetState.cs index 140a0bbd..c0a88fc0 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetState.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetState.cs @@ -1,8 +1,8 @@ -using EggLink.DanhengServer.Data.Config; +using System.Text; +using EggLink.DanhengServer.Data.Config; using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Player; -using System.Text; namespace EggLink.DanhengServer.GameServer.Game.Mission.FinishType.Handler; @@ -16,7 +16,7 @@ public class MissionHandlerTimeLineSetState : MissionFinishTypeHandler var propId = info.ParamInt2; var value = info.ParamStr1; - var data = player.GetScenePropTimelineData(floorId, groupId, propId); // get data + var data = player.GetScenePropTimelineData(floorId, groupId, propId); // get data if (data == null) return; // compare @@ -25,14 +25,15 @@ public class MissionHandlerTimeLineSetState : MissionFinishTypeHandler await player.MissionManager!.FinishSubMission(info.ID); } - public override async ValueTask HandleQuestFinishType(PlayerInstance player, QuestDataExcel quest, FinishWayExcel excel, object? arg) + public override async ValueTask HandleQuestFinishType(PlayerInstance player, QuestDataExcel quest, + FinishWayExcel excel, object? arg) { var floorId = excel.MazeFloorID; var groupId = excel.ParamInt1; var propId = excel.ParamInt2; var value = excel.ParamStr1; - var data = player.GetScenePropTimelineData(floorId, groupId, propId); // get data + var data = player.GetScenePropTimelineData(floorId, groupId, propId); // get data if (data == null) return; // compare diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetStateCnt.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetStateCnt.cs index acd2827f..6548607e 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetStateCnt.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerTimeLineSetStateCnt.cs @@ -14,7 +14,8 @@ public class MissionHandlerTimeLineSetStateCnt : MissionFinishTypeHandler await ValueTask.CompletedTask; } - public override async ValueTask HandleQuestFinishType(PlayerInstance player, QuestDataExcel quest, FinishWayExcel excel, object? arg) + public override async ValueTask HandleQuestFinishType(PlayerInstance player, QuestDataExcel quest, + FinishWayExcel excel, object? arg) { // TODO await ValueTask.CompletedTask; diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index 969d61ba..b4e5cb52 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -504,7 +504,6 @@ public class PlayerInstance(PlayerData data) case PropStateEnum.Closed: { foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupID)) - { if (p.Excel.PropType == PropTypeEnum.PROP_TREASURE_CHEST) { await p.SetState(PropStateEnum.ChestClosed); @@ -517,7 +516,6 @@ public class PlayerInstance(PlayerData data) { await p.SetState(PropStateEnum.Open); } - } break; } @@ -526,9 +524,7 @@ public class PlayerInstance(PlayerData data) foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupID).Where(p => p.Excel.PropType is not PropTypeEnum.PROP_TREASURE_CHEST && p.Excel.PropType != prop.Excel.PropType)) - { await p.SetState(PropStateEnum.Open); - } break; } @@ -572,15 +568,11 @@ public class PlayerInstance(PlayerData data) .Where(p => p.PropInfo.Name.Contains("Piece")).All(p => p.State == PropStateEnum.Closed); if (pieceDone) - { // set JigsawSir to open foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupID) .Where(p => p.PropInfo.Name.Contains("JigsawSir") && p.State != PropStateEnum.Closed)) - { await p.SetState(PropStateEnum.TriggerEnable); - } - } } break; diff --git a/GameServer/Game/RogueTourn/RogueTournInstance.cs b/GameServer/Game/RogueTourn/RogueTournInstance.cs index 90debab1..f4062486 100644 --- a/GameServer/Game/RogueTourn/RogueTournInstance.cs +++ b/GameServer/Game/RogueTourn/RogueTournInstance.cs @@ -46,7 +46,7 @@ public class RogueTournInstance : BaseRogueInstance EventManager = new RogueEventManager(player, this); BaseRerollCount = 0; - var t1 = RollTitanBless(1,true); + var t1 = RollTitanBless(1, true); t1.AsTask().Wait(); var t = RollFormula(1, [RogueFormulaCategoryEnum.Epic]); @@ -126,9 +126,7 @@ public class RogueTournInstance : BaseRogueInstance // check if era flipper if (Player.SceneInstance!.FloorInfo!.LevelFeatureModules.Contains(LevelFeatureTypeEnum.EraFlipper)) - { await Player.SendPacket(new PacketEraFlipperDataChangeScNotify(Player.SceneInstance!.FloorId)); - } // sync await Player.SendPacket(new PacketRogueTournLevelInfoUpdateScNotify(this, [CurLevel])); @@ -137,9 +135,8 @@ public class RogueTournInstance : BaseRogueInstance await Player.SendPacket(new PacketRogueTournTitanUpdateTitanBlessProgressScNotify(this)); if (TitanProgress >= 4) - { - await RollTitanBless(1, RogueTitanBlessInstance.EnhanceBlessList.Count / 3 >= RogueTitanBlessInstance.BlessTypeExcel.Count); - } + await RollTitanBless(1, + RogueTitanBlessInstance.EnhanceBlessList.Count / 3 >= RogueTitanBlessInstance.BlessTypeExcel.Count); } @@ -168,7 +165,7 @@ public class RogueTournInstance : BaseRogueInstance for (var i = 0; i < amount; i++) { var menu = new RogueTitanBlessSelectMenu(this); - menu.RollTitanBless(typeSelect:selectType); + menu.RollTitanBless(typeSelect: selectType); var action = menu.GetActionInstance(); RogueActions.Add(action.QueuePosition, action); } @@ -187,7 +184,6 @@ public class RogueTournInstance : BaseRogueInstance { var bless = action.RogueTitanBlessSelectMenu.Blesses.Find(x => x.TitanBlessID == blessId); if (bless != null) // check if bless is in the list - { if (!RogueTitanBlessInstance.BlessTypeExcel.Exists(x => x.TitanBlessID == blessId)) // check if bless already exists { @@ -206,12 +202,12 @@ public class RogueTournInstance : BaseRogueInstance await Player.SendPacket(new PacketSyncRogueCommonActionResultScNotify(RogueSubMode, bless.ToResultProto(RogueCommonActionResultSourceType.Select))); } - } RogueActions.Remove(action.QueuePosition); if (action.RogueTitanBlessSelectMenu.TypeSelect) await Player.SendPacket( - new PacketHandleRogueCommonPendingActionScRsp(action.QueuePosition, location, selectTitanBlessType: true)); + new PacketHandleRogueCommonPendingActionScRsp(action.QueuePosition, location, + selectTitanBlessType: true)); else await Player.SendPacket( new PacketHandleRogueCommonPendingActionScRsp(action.QueuePosition, location, diff --git a/GameServer/Game/RogueTourn/Titan/RogueTitanBlessInstance.cs b/GameServer/Game/RogueTourn/Titan/RogueTitanBlessInstance.cs index a8d64aac..b54db9e7 100644 --- a/GameServer/Game/RogueTourn/Titan/RogueTitanBlessInstance.cs +++ b/GameServer/Game/RogueTourn/Titan/RogueTitanBlessInstance.cs @@ -12,19 +12,15 @@ public class RogueTitanBlessInstance public void OnBattleStart(BattleInstance inst) { foreach (var bless in BlessTypeExcel) - { inst.Buffs.Add(new MazeBuff(bless.MazeBuffID, 1, -1) { WaveFlag = -1 }); - } foreach (var bless in EnhanceBlessList) - { inst.Buffs.Add(new MazeBuff(bless.MazeBuffID, 1, -1) { WaveFlag = -1 }); - } } } \ No newline at end of file diff --git a/GameServer/Game/RogueTourn/Titan/RogueTitanBlessSelectMenu.cs b/GameServer/Game/RogueTourn/Titan/RogueTitanBlessSelectMenu.cs index 71b3ec74..164283f6 100644 --- a/GameServer/Game/RogueTourn/Titan/RogueTitanBlessSelectMenu.cs +++ b/GameServer/Game/RogueTourn/Titan/RogueTitanBlessSelectMenu.cs @@ -15,7 +15,10 @@ public class RogueTitanBlessSelectMenu(RogueTournInstance rogue) public void RollTitanBless(int count = 3, bool typeSelect = false) { - var list = GameData.RogueTournTitanBlessData.Values.Where(x => GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == rogue.TitanCategory).ToList(); + var list = GameData.RogueTournTitanBlessData.Values.Where(x => + GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == + rogue.TitanCategory) + .ToList(); if (typeSelect) { @@ -24,37 +27,41 @@ public class RogueTitanBlessSelectMenu(RogueTournInstance rogue) // random 2 types if (rogue.TitanCategory != RogueTitanCategoryEnum.Night) { - var night = GameData.RogueTournTitanBlessData.Values.Where(x => GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == RogueTitanCategoryEnum.Night && x.TitanBlessLevel == 1).ToList().RandomElement(); + var night = GameData.RogueTournTitanBlessData.Values.Where(x => + GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == + RogueTitanCategoryEnum.Night && x.TitanBlessLevel == 1).ToList().RandomElement(); list.Add(night); } else if (rogue.TitanCategory == RogueTitanCategoryEnum.Day) { - var bless = rogue.RogueTitanBlessInstance.BlessTypeExcel.LastOrDefault(x => GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == RogueTitanCategoryEnum.Day); + var bless = rogue.RogueTitanBlessInstance.BlessTypeExcel.LastOrDefault(x => + GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == + RogueTitanCategoryEnum.Day); if (bless != null) { - var targetBless = GameData.RogueTournTitanBlessData.Values.FirstOrDefault(x => x.TitanType == bless.TitanType && x.TitanBlessLevel == bless.TitanBlessLevel + 1); - if (targetBless != null) - { - list.Add(targetBless); - } + var targetBless = GameData.RogueTournTitanBlessData.Values.FirstOrDefault(x => + x.TitanType == bless.TitanType && x.TitanBlessLevel == bless.TitanBlessLevel + 1); + if (targetBless != null) list.Add(targetBless); } } if (rogue.TitanCategory != RogueTitanCategoryEnum.Day) { - var day = GameData.RogueTournTitanBlessData.Values.Where(x => GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == RogueTitanCategoryEnum.Day && x.TitanBlessLevel == 1).ToList().RandomElement(); + var day = GameData.RogueTournTitanBlessData.Values.Where(x => + GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == + RogueTitanCategoryEnum.Day && x.TitanBlessLevel == 1).ToList().RandomElement(); list.Add(day); } else if (rogue.TitanCategory == RogueTitanCategoryEnum.Night) { - var bless = rogue.RogueTitanBlessInstance.BlessTypeExcel.LastOrDefault(x => GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == RogueTitanCategoryEnum.Night); + var bless = rogue.RogueTitanBlessInstance.BlessTypeExcel.LastOrDefault(x => + GameData.RogueTournTitanTypeData.GetValueOrDefault(x.TitanType)?.RogueTitanCategory == + RogueTitanCategoryEnum.Night); if (bless != null) { - var targetBless = GameData.RogueTournTitanBlessData.Values.FirstOrDefault(x => x.TitanType == bless.TitanType && x.TitanBlessLevel == bless.TitanBlessLevel + 1); - if (targetBless != null) - { - list.Add(targetBless); - } + var targetBless = GameData.RogueTournTitanBlessData.Values.FirstOrDefault(x => + x.TitanType == bless.TitanType && x.TitanBlessLevel == bless.TitanBlessLevel + 1); + if (targetBless != null) list.Add(targetBless); } } } @@ -90,7 +97,9 @@ public class RogueTitanBlessSelectMenu(RogueTournInstance rogue) { return new RogueTitanBlessSelectInfo { - BlessSelectType = TypeSelect ? TitanBlessSelectType.KSelectTitanBlessType : TitanBlessSelectType.KSelectTitanBlessEnhance, + BlessSelectType = TypeSelect + ? TitanBlessSelectType.KSelectTitanBlessType + : TitanBlessSelectType.KSelectTitanBlessEnhance, TitanBlessIdList = { Blesses.Select(x => (uint)x.TitanBlessID) }, SelectHintId = (uint)(TypeSelect ? 310001 : 310002) }; diff --git a/GameServer/Game/Scene/Entity/EntityMonster.cs b/GameServer/Game/Scene/Entity/EntityMonster.cs index b4872a74..385e9cdd 100644 --- a/GameServer/Game/Scene/Entity/EntityMonster.cs +++ b/GameServer/Game/Scene/Entity/EntityMonster.cs @@ -1,7 +1,6 @@ using EggLink.DanhengServer.Data; using EggLink.DanhengServer.Data.Config.Scene; using EggLink.DanhengServer.Data.Excel; -using EggLink.DanhengServer.Database.Avatar; using EggLink.DanhengServer.Database.Inventory; using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Battle; @@ -9,7 +8,6 @@ using EggLink.DanhengServer.GameServer.Game.Scene.Component; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; -using System.Numerics; namespace EggLink.DanhengServer.GameServer.Game.Scene.Entity; @@ -106,6 +104,36 @@ public class EntityMonster( return proto; } + public List Modifiers { get; set; } = []; + + public async ValueTask AddModifier(string modifierName) + { + if (Modifiers.Contains(modifierName)) return; + + GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); + GameData.AdventureAbilityConfigListData.TryGetValue(MonsterData.ID, out var ability); + if (modifier == null || ability == null) return; + + await Scene.Player.TaskManager!.AbilityLevelTask.TriggerTasks(ability, modifier.OnCreate, this, [], + new SceneCastSkillCsReq()); + + Modifiers.Add(modifierName); + } + + public async ValueTask RemoveModifier(string modifierName) + { + if (!Modifiers.Contains(modifierName)) return; + + GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); + GameData.AdventureAbilityConfigListData.TryGetValue(MonsterData.ID, out var ability); + if (modifier == null || ability == null) return; + + await Scene.Player.TaskManager!.AbilityLevelTask.TriggerTasks(ability, modifier.OnDestroy, this, [], + new SceneCastSkillCsReq()); + + Modifiers.Remove(modifierName); + } + public async ValueTask RemoveBuff(int buffId) { if (!GameData.MazeBuffData.TryGetValue(buffId * 10 + 1, out var buffExcel)) return; @@ -140,33 +168,4 @@ public class EntityMonster( await Scene.RemoveEntity(this); return dropItems; } - - public List Modifiers { get; set; } = []; - public async ValueTask AddModifier(string modifierName) - { - if (Modifiers.Contains(modifierName)) return; - - GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); - GameData.AdventureAbilityConfigListData.TryGetValue(MonsterData.ID, out var ability); - if (modifier == null || ability == null) return; - - await Scene.Player.TaskManager!.AbilityLevelTask.TriggerTasks(ability, modifier.OnCreate, this, [], - new SceneCastSkillCsReq()); - - Modifiers.Add(modifierName); - } - - public async ValueTask RemoveModifier(string modifierName) - { - if (!Modifiers.Contains(modifierName)) return; - - GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); - GameData.AdventureAbilityConfigListData.TryGetValue(MonsterData.ID, out var ability); - if (modifier == null || ability == null) return; - - await Scene.Player.TaskManager!.AbilityLevelTask.TriggerTasks(ability, modifier.OnDestroy, this, [], - new SceneCastSkillCsReq()); - - Modifiers.Remove(modifierName); - } } \ No newline at end of file diff --git a/GameServer/Game/Scene/Entity/EntityProp.cs b/GameServer/Game/Scene/Entity/EntityProp.cs index 80a68d4b..ce97a57a 100644 --- a/GameServer/Game/Scene/Entity/EntityProp.cs +++ b/GameServer/Game/Scene/Entity/EntityProp.cs @@ -19,9 +19,9 @@ public class EntityProp(SceneInstance scene, MazePropExcel excel, GroupInfo grou public MazePropExcel Excel { get; set; } = excel; public PropInfo PropInfo { get; set; } = prop; public GroupInfo Group { get; set; } = group; + public ScenePropTimelineData? PropTimelineData { get; set; } public int EntityID { get; set; } public int GroupID { get; set; } = group.Id; - public ScenePropTimelineData? PropTimelineData { get; set; } public async ValueTask AddBuff(SceneBuff buff) { @@ -42,12 +42,10 @@ public class EntityProp(SceneInstance scene, MazePropExcel excel, GroupInfo grou }; if (PropTimelineData != null) - { prop.ExtraInfo = new PropExtraInfo { TimelineInfo = PropTimelineData.ToProto() }; - } return new SceneEntityInfo { diff --git a/GameServer/Game/Scene/SceneEntityLoader.cs b/GameServer/Game/Scene/SceneEntityLoader.cs index 8fb4c57a..fa5b34cc 100644 --- a/GameServer/Game/Scene/SceneEntityLoader.cs +++ b/GameServer/Game/Scene/SceneEntityLoader.cs @@ -217,7 +217,8 @@ public class SceneEntityLoader(SceneInstance scene) Scene.Groups.Remove(group.Id); - if (refreshed) await Scene.Player.SendPacket(new PacketSceneGroupRefreshScNotify(Scene.Player, removeEntity: removeList)); + if (refreshed) + await Scene.Player.SendPacket(new PacketSceneGroupRefreshScNotify(Scene.Player, removeEntity: removeList)); } public virtual async ValueTask LoadNpc(NpcInfo info, GroupInfo group, bool sendPacket = false) diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index 371d9b03..9771f138 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -1,6 +1,5 @@ using EggLink.DanhengServer.Data; using EggLink.DanhengServer.Data.Config.Scene; -using EggLink.DanhengServer.Data.Config.Task; using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Database.Avatar; using EggLink.DanhengServer.Enums.Scene; @@ -15,7 +14,6 @@ using EggLink.DanhengServer.GameServer.Game.RogueMagic.Scene; using EggLink.DanhengServer.GameServer.Game.RogueTourn.Scene; using EggLink.DanhengServer.GameServer.Game.Scene.Component; using EggLink.DanhengServer.GameServer.Game.Scene.Entity; -using EggLink.DanhengServer.GameServer.Game.Task.AvatarTask; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; @@ -127,7 +125,7 @@ public class SceneInstance sceneInfo.FloorSavedData[value.Name] = value.DefaultValue; foreach (var value in floorData ?? []) - sceneInfo.FloorSavedData[value.Key] = value.Value; + sceneInfo.FloorSavedData[value.Key] = value.Value; // mission Player.MissionManager!.OnLoadScene(sceneInfo); @@ -294,15 +292,9 @@ public class SceneInstance if (sendPacket && !notSendPacket) await Player.SendPacket(new PacketSceneGroupRefreshScNotify(Player, addAvatar, removeAvatar)); - foreach (var avatar in removeAvatar) - { - Entities.Remove(avatar.EntityID); - } + foreach (var avatar in removeAvatar) Entities.Remove(avatar.EntityID); - foreach (var avatar in addAvatar) - { - Entities.Add(avatar.EntityID, avatar); - } + foreach (var avatar in addAvatar) Entities.Add(avatar.EntityID, avatar); } public void SyncGroupInfo() @@ -483,7 +475,8 @@ public class SceneInstance #endregion } -public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, PlayerInstance player) : IGameEntity, IGameModifier +public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, PlayerInstance player) + : IGameEntity, IGameModifier { public AvatarInfo AvatarInfo = avatarInfo; public AvatarType AvatarType = avatarType; @@ -535,7 +528,8 @@ public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, Playe foreach (var sceneBuff in BuffList) { - if (!GameData.MazeBuffData.TryGetValue(sceneBuff.BuffId * 10 + sceneBuff.BuffLevel, out var buffExcel)) continue; + if (!GameData.MazeBuffData.TryGetValue(sceneBuff.BuffId * 10 + sceneBuff.BuffLevel, out var buffExcel)) + continue; await RemoveModifier(buffExcel.ModifierName); } @@ -548,19 +542,6 @@ public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, Playe return AvatarInfo.ToSceneEntityInfo(AvatarType); } - public async ValueTask RemoveBuff(int buffId) - { - if (!GameData.MazeBuffData.TryGetValue(buffId * 10 + 1, out var buffExcel)) return; - - var buff = BuffList.Find(x => x.BuffId == buffId); - if (buff == null) return; - - BuffList.Remove(buff); - await player.SendPacket(new PacketSyncEntityBuffChangeListScNotify(this, [buff])); - - await RemoveModifier(buffExcel.ModifierName); - } - public List Modifiers { get; set; } = []; public async ValueTask AddModifier(string modifierName) @@ -595,6 +576,20 @@ public class AvatarSceneInfo(AvatarInfo avatarInfo, AvatarType avatarType, Playe await player.TaskManager!.AbilityLevelTask.TriggerTasks(avatarAbility, modifier.OnDestroy, this, [], new SceneCastSkillCsReq()); - Modifiers.Remove(modifierName); ; + Modifiers.Remove(modifierName); + ; + } + + public async ValueTask RemoveBuff(int buffId) + { + if (!GameData.MazeBuffData.TryGetValue(buffId * 10 + 1, out var buffExcel)) return; + + var buff = BuffList.Find(x => x.BuffId == buffId); + if (buff == null) return; + + BuffList.Remove(buff); + await player.SendPacket(new PacketSyncEntityBuffChangeListScNotify(this, [buff])); + + await RemoveModifier(buffExcel.ModifierName); } } \ No newline at end of file diff --git a/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs b/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs index 642f1637..11403e20 100644 --- a/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs +++ b/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs @@ -18,32 +18,46 @@ public class AbilityLevelTask(PlayerInstance player) { public PlayerInstance Player { get; set; } = player; + #region Selector + + public List TargetAlias(TargetEvaluator selector, IGameEntity casterEntity, + List targetEntities) + { + if (selector is TargetAlias target) + { + if (target.Alias == "AllEnemy") return targetEntities; + + if (target.Alias == "Caster") return [casterEntity]; + + if (target.Alias == "AbilityTargetEntity") return targetEntities; + + if (target.Alias == "ParamEntity") return targetEntities; + } + + return []; + } + + #endregion + #region Manage - public async ValueTask TriggerTasks(AdventureAbilityConfigListInfo abilities, List tasks, IGameEntity casterEntity, List targetEntities, SceneCastSkillCsReq req) + public async ValueTask TriggerTasks(AdventureAbilityConfigListInfo abilities, + List tasks, IGameEntity casterEntity, List targetEntities, SceneCastSkillCsReq req) { BattleInstance? instance = null; List battleInfos = []; foreach (var task in tasks) - { try { var res = await TriggerTask(new AbilityLevelParam(abilities, task, casterEntity, targetEntities, req)); - if (res.BattleInfos != null) - { - battleInfos.AddRange(res.BattleInfos); - } + if (res.BattleInfos != null) battleInfos.AddRange(res.BattleInfos); - if (res.Instance != null) - { - instance = res.Instance; - } + if (res.Instance != null) instance = res.Instance; } catch (Exception e) { Logger.GetByClassName().Error("An error occured, ", e); } - } return new AbilityLevelResult(instance, battleInfos); } @@ -58,15 +72,9 @@ public class AbilityLevelTask(PlayerInstance player) if (method != null) { var res = method.Invoke(this, [param]); - if (res is AbilityLevelResult result) - { - return result; - } + if (res is AbilityLevelResult result) return result; - if (res is ValueTask valueTask) - { - return await valueTask; - } + if (res is ValueTask valueTask) return await valueTask; } } catch @@ -95,55 +103,34 @@ public class AbilityLevelTask(PlayerInstance player) { var resp = method.Invoke(this, [param with { Act = predicateTaskList.Predicate }]); if (resp is true) - { foreach (var task in predicateTaskList.SuccessTaskList) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); - if (result.Instance != null) - { - instance = result.Instance; - } + if (result.Instance != null) instance = result.Instance; } - } else - { foreach (var task in predicateTaskList.FailedTaskList) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); - if (result.Instance != null) - { - instance = result.Instance; - } + if (result.Instance != null) instance = result.Instance; } - } } else { foreach (var task in predicateTaskList.FailedTaskList) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); - if (result.Instance != null) - { - instance = result.Instance; - } + if (result.Instance != null) instance = result.Instance; } } } + return new AbilityLevelResult(instance, battleInfos); } @@ -158,16 +145,14 @@ public class AbilityLevelTask(PlayerInstance player) var method = GetType().GetMethod(methodName); if (method != null) { - var resp = method.Invoke(this, [adventureTriggerAttack.AttackTargetType, param.CasterEntity, param.TargetEntities]); + var resp = method.Invoke(this, + [adventureTriggerAttack.AttackTargetType, param.CasterEntity, param.TargetEntities]); if (resp is List target) { foreach (var task in adventureTriggerAttack.OnAttack) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); } if (target.Count > 0 && adventureTriggerAttack.TriggerBattle) @@ -175,10 +160,7 @@ public class AbilityLevelTask(PlayerInstance player) foreach (var task in adventureTriggerAttack.OnBattle) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); } foreach (var entity in param.TargetEntities) @@ -190,7 +172,8 @@ public class AbilityLevelTask(PlayerInstance player) battleInfos.Add(new HitMonsterInstance(entity.EntityID, type)); } - instance = await Player.BattleManager!.StartBattle(param.CasterEntity, param.TargetEntities, param.Request.SkillIndex == 1); + instance = await Player.BattleManager!.StartBattle(param.CasterEntity, param.TargetEntities, + param.Request.SkillIndex == 1); } } } @@ -213,13 +196,10 @@ public class AbilityLevelTask(PlayerInstance player) var resp = method.Invoke(this, [addMazeBuff.TargetType, param.CasterEntity, param.TargetEntities]); if (resp is List target) - { foreach (var entity in target) - { - await entity.AddBuff(new SceneBuff(addMazeBuff.ID, 1, (param.CasterEntity as AvatarSceneInfo)?.AvatarInfo.GetAvatarId() ?? 0, + await entity.AddBuff(new SceneBuff(addMazeBuff.ID, 1, + (param.CasterEntity as AvatarSceneInfo)?.AvatarInfo.GetAvatarId() ?? 0, addMazeBuff.LifeTime.FixedValue.Value < -1 ? 20 : -1)); - } - } } } @@ -236,10 +216,7 @@ public class AbilityLevelTask(PlayerInstance player) foreach (var task in adventureFireProjectile.OnProjectileHit) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); if (result.Instance != null) instance = result.Instance; @@ -248,10 +225,7 @@ public class AbilityLevelTask(PlayerInstance player) foreach (var task in adventureFireProjectile.OnProjectileLifetimeFinish) { var result = await TriggerTask(param with { Act = task }); - if (result.BattleInfos != null) - { - battleInfos.AddRange(result.BattleInfos); - } + if (result.BattleInfos != null) battleInfos.AddRange(result.BattleInfos); if (result.Instance != null) instance = result.Instance; @@ -288,10 +262,7 @@ public class AbilityLevelTask(PlayerInstance player) public async ValueTask DestroySummonUnit(AbilityLevelParam param) { - if (param.Act is CreateSummonUnit createSummonUnit) - { - await Player.SceneInstance!.ClearSummonUnit(); // TODO - } + if (param.Act is CreateSummonUnit createSummonUnit) await Player.SceneInstance!.ClearSummonUnit(); // TODO return new AbilityLevelResult(); } @@ -303,10 +274,7 @@ public class AbilityLevelTask(PlayerInstance player) GameData.AdventureModifierData.TryGetValue(addAdventureModifier.ModifierName, out var modifier); if (modifier == null) return new AbilityLevelResult(); - if (param.CasterEntity is IGameModifier mod) - { - await mod.AddModifier(addAdventureModifier.ModifierName); - } + if (param.CasterEntity is IGameModifier mod) await mod.AddModifier(addAdventureModifier.ModifierName); } return new AbilityLevelResult(); @@ -319,10 +287,7 @@ public class AbilityLevelTask(PlayerInstance player) GameData.AdventureModifierData.TryGetValue(removeAdventureModifier.ModifierName, out var modifier); if (modifier == null) return new AbilityLevelResult(); - if (param.CasterEntity is IGameModifier mod) - { - await mod.RemoveModifier(removeAdventureModifier.ModifierName); - } + if (param.CasterEntity is IGameModifier mod) await mod.RemoveModifier(removeAdventureModifier.ModifierName); } return new AbilityLevelResult(); @@ -359,52 +324,14 @@ public class AbilityLevelTask(PlayerInstance player) #endregion - #region Selector - - public List TargetAlias(TargetEvaluator selector, IGameEntity casterEntity, List targetEntities) - { - if (selector is TargetAlias target) - { - if (target.Alias == "AllEnemy") - { - return targetEntities; - } - - if (target.Alias == "Caster") - { - return [casterEntity]; - } - - if (target.Alias == "AbilityTargetEntity") - { - return targetEntities; - } - - if (target.Alias == "ParamEntity") - { - return targetEntities; - } - } - - return []; - } - - #endregion - #region Predicate public bool ByAllowInstantKill(AbilityLevelParam param) { foreach (var targetEntity in param.TargetEntities) - { if (targetEntity is EntityMonster monster) - { if (monster.MonsterData.Rank < MonsterRankEnum.Elite) - { return true; - } - } - } return false; } @@ -423,7 +350,6 @@ public class AbilityLevelTask(PlayerInstance player) [byIsContain.TargetType, param.CasterEntity, param.TargetEntities]); if (resp is List target) - { foreach (var entity in target) { if (entity is not IGameModifier modifier) continue; @@ -433,11 +359,11 @@ public class AbilityLevelTask(PlayerInstance player) break; } } - } } return result; } + return false; } @@ -446,4 +372,9 @@ public class AbilityLevelTask(PlayerInstance player) public record AbilityLevelResult(BattleInstance? Instance = null, List? BattleInfos = null); -public record AbilityLevelParam(AdventureAbilityConfigListInfo AdventureAbility, TaskConfigInfo Act, IGameEntity CasterEntity, List TargetEntities, SceneCastSkillCsReq Request); \ No newline at end of file +public record AbilityLevelParam( + AdventureAbilityConfigListInfo AdventureAbility, + TaskConfigInfo Act, + IGameEntity CasterEntity, + List TargetEntities, + SceneCastSkillCsReq Request); \ No newline at end of file diff --git a/GameServer/Game/TrainParty/TrainPartyManager.cs b/GameServer/Game/TrainParty/TrainPartyManager.cs index df570cc0..07115059 100644 --- a/GameServer/Game/TrainParty/TrainPartyManager.cs +++ b/GameServer/Game/TrainParty/TrainPartyManager.cs @@ -39,7 +39,7 @@ public class TrainPartyManager(PlayerInstance player) : BasePlayerManager(player EEBNAAPBKCN = 30, CurFund = (uint)Data.Fund, AreaList = { Data.Areas.Values.Select(x => x.ToProto()) }, - DynamicIdList = { GameData.TrainPartyDynamicConfigData.Select(x => (uint)x.Key) }, + DynamicIdList = { GameData.TrainPartyDynamicConfigData.Select(x => (uint)x.Key) } }; return proto; diff --git a/GameServer/Plugin/Event/PluginEvent.cs b/GameServer/Plugin/Event/PluginEvent.cs index 640cf12c..ec93bc76 100644 --- a/GameServer/Plugin/Event/PluginEvent.cs +++ b/GameServer/Plugin/Event/PluginEvent.cs @@ -106,10 +106,6 @@ public static class PluginEvent #endregion - #region Common - - #endregion - #region Event public static event OnPlayerHeartBeatHandler? OnPlayerHeartBeat; diff --git a/GameServer/Server/Packet/Recv/Adventure/HandlerQuickStartCocoonStageCsReq.cs b/GameServer/Server/Packet/Recv/Adventure/HandlerQuickStartCocoonStageCsReq.cs index da511118..c2d706c8 100644 --- a/GameServer/Server/Packet/Recv/Adventure/HandlerQuickStartCocoonStageCsReq.cs +++ b/GameServer/Server/Packet/Recv/Adventure/HandlerQuickStartCocoonStageCsReq.cs @@ -10,7 +10,9 @@ public class HandlerQuickStartCocoonStageCsReq : Handler public override async Task OnHandle(Connection connection, byte[] header, byte[] data) { var req = QuickStartCocoonStageCsReq.Parser.ParseFrom(data); - var battle = await connection.Player!.BattleManager!.StartCocoonStage((int)req.CocoonId, (int)req.Wave, (int)req.WorldLevel); + var battle = + await connection.Player!.BattleManager!.StartCocoonStage((int)req.CocoonId, (int)req.Wave, + (int)req.WorldLevel); connection.Player.SceneInstance?.ClearSummonUnit(); if (battle != null) diff --git a/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs b/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs index 5e941f21..75db9cc1 100644 --- a/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs +++ b/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs @@ -11,8 +11,8 @@ public class HandlerChangeEraFlipperDataCsReq : Handler { var req = ChangeEraFlipperDataCsReq.Parser.ParseFrom(data); - int floorId = connection.Player!.SceneInstance!.FloorId; + var floorId = connection.Player!.SceneInstance!.FloorId; await connection.SendPacket(new PacketChangeEraFlipperDataScRsp(req)); await connection.SendPacket(new PacketEraFlipperDataChangeScNotify(req, floorId)); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/EraFlipper/HandlerGetEraFlipperDataCsReq.cs b/GameServer/Server/Packet/Recv/EraFlipper/HandlerGetEraFlipperDataCsReq.cs index f343c037..6ee0d253 100644 --- a/GameServer/Server/Packet/Recv/EraFlipper/HandlerGetEraFlipperDataCsReq.cs +++ b/GameServer/Server/Packet/Recv/EraFlipper/HandlerGetEraFlipperDataCsReq.cs @@ -13,4 +13,4 @@ public class HandlerGetEraFlipperDataCsReq : Handler await connection.SendPacket(new PacketGetEraFlipperDataScRsp(connection.Player!)); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/Item/HandlerComposeSelectedRelicCsReq.cs b/GameServer/Server/Packet/Recv/Item/HandlerComposeSelectedRelicCsReq.cs index b79d3b45..3c6b1bba 100644 --- a/GameServer/Server/Packet/Recv/Item/HandlerComposeSelectedRelicCsReq.cs +++ b/GameServer/Server/Packet/Recv/Item/HandlerComposeSelectedRelicCsReq.cs @@ -14,9 +14,11 @@ public class HandlerComposeSelectedRelicCsReq : Handler var player = connection.Player!; if (player.InventoryManager!.Data.RelicItems.Count >= GameConstants.INVENTORY_MAX_RELIC) { - await connection.SendPacket(new PacketComposeSelectedRelicScRsp(req.ComposeId, Retcode.RetRelicExceedLimit)); + await connection.SendPacket( + new PacketComposeSelectedRelicScRsp(req.ComposeId, Retcode.RetRelicExceedLimit)); return; } + var item = await player.InventoryManager.ComposeRelic(req); if (item == null) { diff --git a/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs b/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs index f572065e..6e32e35f 100644 --- a/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs +++ b/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs @@ -16,7 +16,6 @@ public class HandlerUpdateMarkChestCsReq : Handler List markedChestData = []; foreach (var markChestInfo in req.MarkChestInfoList) - { markedChestData.Add(new SceneMarkedChestData { ConfigId = (int)markChestInfo.ConfigId, @@ -24,15 +23,13 @@ public class HandlerUpdateMarkChestCsReq : Handler GroupId = (int)markChestInfo.GroupId, PlaneId = (int)markChestInfo.PlaneId }); - } - foreach (var chestData in (player.SceneData!.MarkedChestData.GetValueOrDefault((int)req.FuncId) ?? []).Where(chestData => markedChestData.All(x => - !(x.ConfigId == chestData.ConfigId && x.FloorId == chestData.FloorId && - x.GroupId == chestData.GroupId)))) - { + foreach (var chestData in (player.SceneData!.MarkedChestData.GetValueOrDefault((int)req.FuncId) ?? []).Where( + chestData => markedChestData.All(x => + !(x.ConfigId == chestData.ConfigId && x.FloorId == chestData.FloorId && + x.GroupId == chestData.GroupId)))) // Add the existing marked chest data if it is not in the new marked chest data markedChestData.Add(chestData); - } player.SceneData!.MarkedChestData[(int)req.FuncId] = markedChestData; diff --git a/GameServer/Server/Packet/Recv/Offering/HandlerGetOfferingInfoCsReq.cs b/GameServer/Server/Packet/Recv/Offering/HandlerGetOfferingInfoCsReq.cs index 1c760995..b439e633 100644 --- a/GameServer/Server/Packet/Recv/Offering/HandlerGetOfferingInfoCsReq.cs +++ b/GameServer/Server/Packet/Recv/Offering/HandlerGetOfferingInfoCsReq.cs @@ -13,7 +13,8 @@ public class HandlerGetOfferingInfoCsReq : Handler var req = GetOfferingInfoCsReq.Parser.ParseFrom(data); List dataList = []; - dataList.AddRange(req.OfferingIdList.Select(id => connection.Player!.OfferingManager!.GetOfferingData((int)id)).OfType()); + dataList.AddRange(req.OfferingIdList.Select(id => connection.Player!.OfferingManager!.GetOfferingData((int)id)) + .OfType()); await connection.SendPacket(new PacketGetOfferingInfoScRsp(dataList)); } diff --git a/GameServer/Server/Packet/Recv/Phone/HandlerSetPersonalCardCsReq.cs b/GameServer/Server/Packet/Recv/Phone/HandlerSetPersonalCardCsReq.cs index f8704528..bf542cb8 100644 --- a/GameServer/Server/Packet/Recv/Phone/HandlerSetPersonalCardCsReq.cs +++ b/GameServer/Server/Packet/Recv/Phone/HandlerSetPersonalCardCsReq.cs @@ -1,7 +1,7 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Phone; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; - + namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Phone; [Opcode(CmdIds.SetPersonalCardCsReq)] diff --git a/GameServer/Server/Packet/Recv/Player/HandlerReserveStaminaExchangeCsReq.cs b/GameServer/Server/Packet/Recv/Player/HandlerReserveStaminaExchangeCsReq.cs index 8357d163..9646da03 100644 --- a/GameServer/Server/Packet/Recv/Player/HandlerReserveStaminaExchangeCsReq.cs +++ b/GameServer/Server/Packet/Recv/Player/HandlerReserveStaminaExchangeCsReq.cs @@ -7,7 +7,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Player; [Opcode(CmdIds.ReserveStaminaExchangeCsReq)] public class HandlerReserveStaminaExchangeCsReq : Handler { - public async override Task OnHandle(Connection connection, byte[] header, byte[] data) + public override async Task OnHandle(Connection connection, byte[] header, byte[] data) { var req = ReserveStaminaExchangeCsReq.Parser.ParseFrom(data); var player = connection.Player; diff --git a/GameServer/Server/Packet/Recv/Scene/HandlerSceneCastSkillCsReq.cs b/GameServer/Server/Packet/Recv/Scene/HandlerSceneCastSkillCsReq.cs index dcaab3be..e832e73c 100644 --- a/GameServer/Server/Packet/Recv/Scene/HandlerSceneCastSkillCsReq.cs +++ b/GameServer/Server/Packet/Recv/Scene/HandlerSceneCastSkillCsReq.cs @@ -14,10 +14,8 @@ public class HandlerSceneCastSkillCsReq : Handler var player = connection.Player!; var res = await player.SceneSkillManager!.OnCast(req); - await connection.SendPacket(new PacketSceneCastSkillScRsp(res.RetCode, req.CastEntityId, res.Instance, res.TriggerBattleInfos ?? [])); - if (res.Instance != null) - { - await player.SceneInstance!.ClearSummonUnit(); - } + await connection.SendPacket(new PacketSceneCastSkillScRsp(res.RetCode, req.CastEntityId, res.Instance, + res.TriggerBattleInfos ?? [])); + if (res.Instance != null) await player.SceneInstance!.ClearSummonUnit(); } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/Scene/HandlerStartCocoonStageCsReq.cs b/GameServer/Server/Packet/Recv/Scene/HandlerStartCocoonStageCsReq.cs index efb5dfab..21007de0 100644 --- a/GameServer/Server/Packet/Recv/Scene/HandlerStartCocoonStageCsReq.cs +++ b/GameServer/Server/Packet/Recv/Scene/HandlerStartCocoonStageCsReq.cs @@ -10,7 +10,9 @@ public class HandlerStartCocoonStageCsReq : Handler public override async Task OnHandle(Connection connection, byte[] header, byte[] data) { var req = StartCocoonStageCsReq.Parser.ParseFrom(data); - var battle = await connection.Player!.BattleManager!.StartCocoonStage((int)req.CocoonId, (int)req.Wave, (int)req.WorldLevel); + var battle = + await connection.Player!.BattleManager!.StartCocoonStage((int)req.CocoonId, (int)req.Wave, + (int)req.WorldLevel); connection.Player.SceneInstance?.ClearSummonUnit(); if (battle != null) diff --git a/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialCsReq.cs b/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialCsReq.cs index 94640382..855929e5 100644 --- a/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialCsReq.cs +++ b/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialCsReq.cs @@ -11,7 +11,7 @@ public class HandlerUnlockTutorialCsReq : Handler { var req = UnlockTutorialCsReq.Parser.ParseFrom(data); var player = connection.Player!; - if (!player.TutorialData!.Tutorials.TryGetValue((int)req.TutorialId, out var _)) + if (!player.TutorialData!.Tutorials.TryGetValue((int)req.TutorialId, out _)) player.TutorialData!.Tutorials.Add((int)req.TutorialId, TutorialStatus.TutorialUnlock); await connection.SendPacket(new PacketUnlockTutorialScRsp(req.TutorialId)); diff --git a/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialGuideCsReq.cs b/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialGuideCsReq.cs index d62120bc..ccad0014 100644 --- a/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialGuideCsReq.cs +++ b/GameServer/Server/Packet/Recv/Tutorial/HandlerUnlockTutorialGuideCsReq.cs @@ -11,7 +11,7 @@ public class HandlerUnlockTutorialGuideCsReq : Handler { var req = UnlockTutorialGuideCsReq.Parser.ParseFrom(data); var player = connection.Player!; - if (!player.TutorialGuideData!.Tutorials.TryGetValue((int)req.GroupId, out var _)) + if (!player.TutorialGuideData!.Tutorials.TryGetValue((int)req.GroupId, out _)) player.TutorialGuideData!.Tutorials.Add((int)req.GroupId, TutorialStatus.TutorialUnlock); await connection.SendPacket(new PacketUnlockTutorialGuideScRsp(req.GroupId)); diff --git a/GameServer/Server/Packet/Send/EraFlipper/PacketChangeEraFlipperDataScRsp.cs b/GameServer/Server/Packet/Send/EraFlipper/PacketChangeEraFlipperDataScRsp.cs index 44da6787..6e789f7d 100644 --- a/GameServer/Server/Packet/Send/EraFlipper/PacketChangeEraFlipperDataScRsp.cs +++ b/GameServer/Server/Packet/Send/EraFlipper/PacketChangeEraFlipperDataScRsp.cs @@ -2,6 +2,7 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper; + public class PacketChangeEraFlipperDataScRsp : BasePacket { public PacketChangeEraFlipperDataScRsp(ChangeEraFlipperDataCsReq req) : base(CmdIds.ChangeEraFlipperDataScRsp) @@ -13,4 +14,4 @@ public class PacketChangeEraFlipperDataScRsp : BasePacket SetData(proto); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/EraFlipper/PacketEraFlipperDataChangeScNotify.cs b/GameServer/Server/Packet/Send/EraFlipper/PacketEraFlipperDataChangeScNotify.cs index dc6fc135..23eb7253 100644 --- a/GameServer/Server/Packet/Send/EraFlipper/PacketEraFlipperDataChangeScNotify.cs +++ b/GameServer/Server/Packet/Send/EraFlipper/PacketEraFlipperDataChangeScNotify.cs @@ -2,9 +2,11 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper; + public class PacketEraFlipperDataChangeScNotify : BasePacket { - public PacketEraFlipperDataChangeScNotify(ChangeEraFlipperDataCsReq req, int floorId) : base(CmdIds.EraFlipperDataChangeScNotify) + public PacketEraFlipperDataChangeScNotify(ChangeEraFlipperDataCsReq req, int floorId) : base( + CmdIds.EraFlipperDataChangeScNotify) { var proto = new EraFlipperDataChangeScNotify { @@ -24,4 +26,4 @@ public class PacketEraFlipperDataChangeScNotify : BasePacket SetData(proto); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/EraFlipper/PacketGetEraFlipperDataScRsp.cs b/GameServer/Server/Packet/Send/EraFlipper/PacketGetEraFlipperDataScRsp.cs index cdc80fc8..191c868e 100644 --- a/GameServer/Server/Packet/Send/EraFlipper/PacketGetEraFlipperDataScRsp.cs +++ b/GameServer/Server/Packet/Send/EraFlipper/PacketGetEraFlipperDataScRsp.cs @@ -3,6 +3,7 @@ using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper; + public class PacketGetEraFlipperDataScRsp : BasePacket { public PacketGetEraFlipperDataScRsp(PlayerInstance player) : base(CmdIds.GetEraFlipperDataScRsp) @@ -11,4 +12,4 @@ public class PacketGetEraFlipperDataScRsp : BasePacket SetData(proto); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Item/PacketDiscardRecliScRsp.cs b/GameServer/Server/Packet/Send/Item/PacketDiscardRecliScRsp.cs index c9d41043..3621017d 100644 --- a/GameServer/Server/Packet/Send/Item/PacketDiscardRecliScRsp.cs +++ b/GameServer/Server/Packet/Send/Item/PacketDiscardRecliScRsp.cs @@ -11,7 +11,7 @@ public class PacketDiscardRelicScRsp : BasePacket if (success) proto.IsDiscard = isDiscard; else proto.Retcode = (uint)Retcode.RetFail; - + SetData(proto); } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs b/GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs index fd9004df..1a622858 100644 --- a/GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs +++ b/GameServer/Server/Packet/Send/Item/PacketLockRecliScRsp.cs @@ -8,9 +8,9 @@ public class PacketLockRelicScRsp : BasePacket public PacketLockRelicScRsp(bool success) : base(CmdIds.LockRelicScRsp) { LockRelicScRsp proto = new(); - + if (!success) proto.Retcode = (uint)Retcode.RetFail; - + SetData(proto); } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Offering/PacketSubmitOfferingItemScRsp.cs b/GameServer/Server/Packet/Send/Offering/PacketSubmitOfferingItemScRsp.cs index f571555b..02a5e460 100644 --- a/GameServer/Server/Packet/Send/Offering/PacketSubmitOfferingItemScRsp.cs +++ b/GameServer/Server/Packet/Send/Offering/PacketSubmitOfferingItemScRsp.cs @@ -13,10 +13,7 @@ public class PacketSubmitOfferingItemScRsp : BasePacket Retcode = (uint)ret }; - if (data != null) - { - proto.OfferingInfo = data.ToProto(); - } + if (data != null) proto.OfferingInfo = data.ToProto(); SetData(proto); } diff --git a/GameServer/Server/Packet/Send/Offering/PacketTakeOfferingRewardScRsp.cs b/GameServer/Server/Packet/Send/Offering/PacketTakeOfferingRewardScRsp.cs index abd8cfa8..13a41d17 100644 --- a/GameServer/Server/Packet/Send/Offering/PacketTakeOfferingRewardScRsp.cs +++ b/GameServer/Server/Packet/Send/Offering/PacketTakeOfferingRewardScRsp.cs @@ -6,11 +6,12 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Offering; public class PacketTakeOfferingRewardScRsp : BasePacket { - public PacketTakeOfferingRewardScRsp(Retcode ret, OfferingTypeData? data, List reward) : base(CmdIds.TakeOfferingRewardScRsp) + public PacketTakeOfferingRewardScRsp(Retcode ret, OfferingTypeData? data, List reward) : base( + CmdIds.TakeOfferingRewardScRsp) { var proto = new TakeOfferingRewardScRsp { - Retcode = (uint)ret, + Retcode = (uint)ret }; if (data != null) diff --git a/GameServer/Server/Packet/Send/Phone/PacketGetPhoneDataScRsp.cs b/GameServer/Server/Packet/Send/Phone/PacketGetPhoneDataScRsp.cs index 0a57c0e5..2dd302a3 100644 --- a/GameServer/Server/Packet/Send/Phone/PacketGetPhoneDataScRsp.cs +++ b/GameServer/Server/Packet/Send/Phone/PacketGetPhoneDataScRsp.cs @@ -1,5 +1,4 @@ -using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.GameServer.Game.Player; +using EggLink.DanhengServer.GameServer.Game.Player; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; diff --git a/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs b/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs index f2949c96..50cf729c 100644 --- a/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs @@ -11,13 +11,16 @@ public class PacketQueryProductInfoScRsp : BasePacket var proto = new QueryProductInfoScRsp { //PEKJLBINDGG = (ulong)Extensions.GetUnixSec() + 8640000, // 100 day - ProductList = { GameData.RechargeConfigData.Values.Where(x => x.GiftType != 1).Select(x => new Product + ProductList = { - EndTime = uint.MaxValue, - GiftType = (ProductGiftType)x.GiftType, - PriceTier = x.TierID, - ProductId = x.ProductID - }) } + GameData.RechargeConfigData.Values.Where(x => x.GiftType != 1).Select(x => new Product + { + EndTime = uint.MaxValue, + GiftType = (ProductGiftType)x.GiftType, + PriceTier = x.TierID, + ProductId = x.ProductID + }) + } }; SetData(proto); diff --git a/GameServer/Server/Packet/Send/Player/PacketReserveStaminaExchangeScRsp.cs b/GameServer/Server/Packet/Send/Player/PacketReserveStaminaExchangeScRsp.cs index 948983e7..93d95053 100644 --- a/GameServer/Server/Packet/Send/Player/PacketReserveStaminaExchangeScRsp.cs +++ b/GameServer/Server/Packet/Send/Player/PacketReserveStaminaExchangeScRsp.cs @@ -8,7 +8,7 @@ public class PacketReserveStaminaExchangeScRsp : BasePacket public PacketReserveStaminaExchangeScRsp(uint amount) : base(CmdIds.ReserveStaminaExchangeScRsp) { var proto = new ReserveStaminaExchangeScRsp(); - + if (amount > 0) proto.Num = amount; else proto.Retcode = (uint)Retcode.RetFail; diff --git a/GameServer/Server/Packet/Send/Player/PacketServerAnnounceNotify.cs b/GameServer/Server/Packet/Send/Player/PacketServerAnnounceNotify.cs index 49173340..4098b538 100644 --- a/GameServer/Server/Packet/Send/Player/PacketServerAnnounceNotify.cs +++ b/GameServer/Server/Packet/Send/Player/PacketServerAnnounceNotify.cs @@ -15,9 +15,9 @@ public class PacketServerAnnounceNotify : BasePacket BeginTime = Extensions.GetUnixSec(), EndTime = Extensions.GetUnixSec() + 3600, ConfigId = 1, - BannerText = ConfigManager.Config.ServerOption.ServerAnnounce.AnnounceContent // TODO + BannerText = ConfigManager.Config.ServerOption.ServerAnnounce.AnnounceContent // TODO }); if (ConfigManager.Config.ServerOption.ServerAnnounce.EnableAnnounce) SetData(proto); } -} +} \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/PlayerBoard/PacketGetPlayerBoardDataScRsp.cs b/GameServer/Server/Packet/Send/PlayerBoard/PacketGetPlayerBoardDataScRsp.cs index ffb1b097..010ea5a6 100644 --- a/GameServer/Server/Packet/Send/PlayerBoard/PacketGetPlayerBoardDataScRsp.cs +++ b/GameServer/Server/Packet/Send/PlayerBoard/PacketGetPlayerBoardDataScRsp.cs @@ -14,7 +14,8 @@ public class PacketGetPlayerBoardDataScRsp : BasePacket CurrentHeadIconId = (uint)player.Data.HeadIcon, PersonalCardId = (uint)player.Data.PersonalCard, UnlockedPersonalCardList = { player.PlayerUnlockData!.PersonalCards.Select(x => (uint)x) }, - UnlockedHeadIconList = { player.PlayerUnlockData!.HeadIcons.Select(x => new HeadIconData { Id = (uint)x }) }, + UnlockedHeadIconList = + { player.PlayerUnlockData!.HeadIcons.Select(x => new HeadIconData { Id = (uint)x }) }, AssistAvatarIdList = { player.AvatarManager!.AvatarData.AssistAvatars.Select(x => (uint)x) }, DisplayAvatarVec = new DisplayAvatarVec() }; diff --git a/GameServer/Server/Packet/Send/RechargeGift/PacketGetRechargeGiftInfoScRsp.cs b/GameServer/Server/Packet/Send/RechargeGift/PacketGetRechargeGiftInfoScRsp.cs index 58e54608..b0198384 100644 --- a/GameServer/Server/Packet/Send/RechargeGift/PacketGetRechargeGiftInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/RechargeGift/PacketGetRechargeGiftInfoScRsp.cs @@ -21,7 +21,7 @@ public class PacketGetRechargeGiftInfoScRsp : BasePacket x.GiftIDList.Select(h => new RechargeGiftData { Status = RechargeGiftStatus.Received, - Index = (uint)x.GiftIDList.IndexOf(h), + Index = (uint)x.GiftIDList.IndexOf(h) }) } }) diff --git a/GameServer/Server/Packet/Send/Recommend/PacketGetBigDataRecommendScRsp.cs b/GameServer/Server/Packet/Send/Recommend/PacketGetBigDataRecommendScRsp.cs index 4c949c7f..55b014ee 100644 --- a/GameServer/Server/Packet/Send/Recommend/PacketGetBigDataRecommendScRsp.cs +++ b/GameServer/Server/Packet/Send/Recommend/PacketGetBigDataRecommendScRsp.cs @@ -6,7 +6,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Recommend; public class PacketGetBigDataRecommendScRsp : BasePacket { public PacketGetBigDataRecommendScRsp(uint avatarId, BigDataRecommendType type) - : base(CmdIds.GetBigDataRecommendScRsp) + : base(CmdIds.GetBigDataRecommendScRsp) { var proto = new GetBigDataRecommendScRsp { diff --git a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearDeletePlanScRsp.cs b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearDeletePlanScRsp.cs index bb82c1de..0d9d05a0 100644 --- a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearDeletePlanScRsp.cs +++ b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearDeletePlanScRsp.cs @@ -6,7 +6,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Recommend; public class PacketRelicSmartWearDeletePlanScRsp : BasePacket { public PacketRelicSmartWearDeletePlanScRsp(uint uniqueId) - : base(CmdIds.RelicSmartWearDeletePlanScRsp) + : base(CmdIds.RelicSmartWearDeletePlanScRsp) { var proto = new RelicSmartWearDeletePlanScRsp { diff --git a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearGetPlanScRsp.cs b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearGetPlanScRsp.cs index 2efd3457..eb415342 100644 --- a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearGetPlanScRsp.cs +++ b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearGetPlanScRsp.cs @@ -6,7 +6,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Recommend; public class PacketRelicSmartWearGetPlanScRsp : BasePacket { public PacketRelicSmartWearGetPlanScRsp(uint avatarId, List relicPlan) - : base(CmdIds.RelicSmartWearGetPlanScRsp) + : base(CmdIds.RelicSmartWearGetPlanScRsp) { var proto = new RelicSmartWearGetPlanScRsp { diff --git a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearUpdatePlanScRsp.cs b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearUpdatePlanScRsp.cs index eefbd8f9..f88b8880 100644 --- a/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearUpdatePlanScRsp.cs +++ b/GameServer/Server/Packet/Send/Recommend/PacketRelicSmartWearUpdatePlanScRsp.cs @@ -6,7 +6,7 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Recommend; public class PacketRelicSmartWearUpdatePlanScRsp : BasePacket { public PacketRelicSmartWearUpdatePlanScRsp(RelicSmartWearPlan relicPlan) - : base(CmdIds.RelicSmartWearUpdatePlanScRsp) + : base(CmdIds.RelicSmartWearUpdatePlanScRsp) { var proto = new RelicSmartWearUpdatePlanScRsp { diff --git a/GameServer/Server/Packet/Send/RogueCommon/PacketHandleRogueCommonPendingActionScRsp.cs b/GameServer/Server/Packet/Send/RogueCommon/PacketHandleRogueCommonPendingActionScRsp.cs index 8ea28b3d..0e7c7a82 100644 --- a/GameServer/Server/Packet/Send/RogueCommon/PacketHandleRogueCommonPendingActionScRsp.cs +++ b/GameServer/Server/Packet/Send/RogueCommon/PacketHandleRogueCommonPendingActionScRsp.cs @@ -8,7 +8,8 @@ public class PacketHandleRogueCommonPendingActionScRsp : BasePacket { public PacketHandleRogueCommonPendingActionScRsp(int queuePosition, int queueLocation, bool selectBuff = false, bool selectMiracle = false, bool selectBonus = false, bool selectFormula = false, - bool reforgeBuff = false, bool selectMagicUnit = false, bool selectScepter = false, bool selectTitanBlessEnhance = false, bool selectTitanBlessType = false, + bool reforgeBuff = false, bool selectMagicUnit = false, bool selectScepter = false, + bool selectTitanBlessEnhance = false, bool selectTitanBlessType = false, RogueBuffSelectMenu? menu = null) : base( CmdIds.HandleRogueCommonPendingActionScRsp) { diff --git a/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs b/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs index b8ca4e5e..c7eb801d 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs @@ -89,7 +89,9 @@ public class PacketGetSceneMapInfoScRsp : BasePacket foreach (var section in sections ?? []) mazeMap.LightenSectionList.Add((uint)section); } else + { mazeMap.LightenSectionList.AddRange(floorInfo.MapSections.Select(x => (uint)x)); + } rsp.SceneMapInfo.Add(mazeMap); } diff --git a/GameServer/Server/Packet/Send/Scene/PacketSceneCastSkillScRsp.cs b/GameServer/Server/Packet/Send/Scene/PacketSceneCastSkillScRsp.cs index 109de06a..ac6fe6a8 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketSceneCastSkillScRsp.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketSceneCastSkillScRsp.cs @@ -33,7 +33,8 @@ public class PacketSceneCastSkillScRsp : BasePacket SetData(proto); } - public PacketSceneCastSkillScRsp(Retcode retCode, uint castEntityId, BattleInstance? battle, List hitMonsters) : + public PacketSceneCastSkillScRsp(Retcode retCode, uint castEntityId, BattleInstance? battle, + List hitMonsters) : base(CmdIds.SceneCastSkillScRsp) { var proto = new SceneCastSkillScRsp diff --git a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs index f7e465e3..87b267dc 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs @@ -8,7 +8,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; public class PacketSceneGroupRefreshScNotify : BasePacket { - public PacketSceneGroupRefreshScNotify(PlayerInstance player, List? addEntity = null, List? removeEntity = null) + public PacketSceneGroupRefreshScNotify(PlayerInstance player, List? addEntity = null, + List? removeEntity = null) : base(CmdIds.SceneGroupRefreshScNotify) { var proto = new SceneGroupRefreshScNotify @@ -59,7 +60,8 @@ public class PacketSceneGroupRefreshScNotify : BasePacket SetData(proto); } - public PacketSceneGroupRefreshScNotify(PlayerInstance player, IGameEntity? addEntity = null, IGameEntity? removeEntity = null) : + public PacketSceneGroupRefreshScNotify(PlayerInstance player, IGameEntity? addEntity = null, + IGameEntity? removeEntity = null) : this(player, addEntity == null ? [] : [addEntity], removeEntity == null ? [] : [removeEntity]) { } diff --git a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs index 0ff48f15..82f9de96 100644 --- a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs +++ b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs @@ -15,7 +15,7 @@ public class PacketTrainPartyBuildDiyScRsp : BasePacket } : new TrainPartyBuildDiyScRsp { - AreaId = (uint)area.AreaId, + AreaId = (uint)area.AreaId }; SetData(proto); diff --git a/Program/Generator/TournRoomGenerator.cs b/Program/Generator/TournRoomGenerator.cs index 120eeb1d..ee30a10a 100644 --- a/Program/Generator/TournRoomGenerator.cs +++ b/Program/Generator/TournRoomGenerator.cs @@ -4,7 +4,6 @@ using EggLink.DanhengServer.Data.Custom; using EggLink.DanhengServer.Enums.TournRogue; using EggLink.DanhengServer.Util; using Newtonsoft.Json; -using Swashbuckle.AspNetCore.SwaggerGen; namespace EggLink.DanhengServer.Program.Generator; @@ -12,6 +11,7 @@ public static class TournRoomGenerator { public static List AllowedFloorIdList { get; set; } = [80601001, 80602001, 80603001, 80604001]; public static List SavedRoomInstanceList { get; set; } = []; + public static void GenerateFile(string path) { // get floor info @@ -24,17 +24,16 @@ public static class TournRoomGenerator Dictionary> contentGroupId = []; var info = GameData.FloorInfoData.Values.First(x => x.FloorID == floorId); - foreach (var groupInfo in info.GroupInstanceList.Where(x => !x.IsDelete && x.Name.Contains("RogueModule_Tournament") && !x.Name.Contains("Tpl_"))) + foreach (var groupInfo in info.GroupInstanceList.Where(x => + !x.IsDelete && x.Name.Contains("RogueModule_Tournament") && !x.Name.Contains("Tpl_"))) { if (groupInfo.Name.Contains("_Area")) { if (areaGroupId > 0 && baseModuleId > 0 && contentGroupId.Count > 0) - { foreach (var group in contentGroupId) - { - FlushRoom(GameData.MapEntranceData.First(x => x.Value.FloorID == floorId).Key, areaGroupId, baseModuleId, group.Value, group.Key); - } - } + FlushRoom(GameData.MapEntranceData.First(x => x.Value.FloorID == floorId).Key, areaGroupId, + baseModuleId, group.Value, group.Key); + contentGroupId.Clear(); areaGroupId = groupInfo.ID; @@ -44,12 +43,10 @@ public static class TournRoomGenerator if (groupInfo.Name.Contains("_Base")) { if (areaGroupId > 0 && baseModuleId > 0 && contentGroupId.Count > 0) - { foreach (var group in contentGroupId) - { - FlushRoom(GameData.MapEntranceData.First(x => x.Value.FloorID == floorId).Key, areaGroupId, baseModuleId, group.Value, group.Key); - } - } + FlushRoom(GameData.MapEntranceData.First(x => x.Value.FloorID == floorId).Key, areaGroupId, + baseModuleId, group.Value, group.Key); + contentGroupId.Clear(); baseModuleId = groupInfo.ID; @@ -102,22 +99,24 @@ public static class TournRoomGenerator } // save - File.AppendAllText(path, JsonConvert.SerializeObject(SavedRoomInstanceList, Formatting.Indented), Encoding.UTF8); + File.AppendAllText(path, JsonConvert.SerializeObject(SavedRoomInstanceList, Formatting.Indented), + Encoding.UTF8); // log Logger.GetByClassName().Info($"Generated in {path} Successfully!"); } - public static void FlushRoom(int entranceId, int areaGroupId, int baseGroupId, List contentGroupIds, RogueTournRoomTypeEnum type) + public static void FlushRoom(int entranceId, int areaGroupId, int baseGroupId, List contentGroupIds, + RogueTournRoomTypeEnum type) { SavedRoomInstanceList.Add(new RogueTournRoomConfig { AnchorGroup = baseGroupId, AnchorId = 1, - DefaultLoadBasicGroup = { areaGroupId, baseGroupId}, + DefaultLoadBasicGroup = { areaGroupId, baseGroupId }, DefaultLoadGroup = contentGroupIds, EntranceId = entranceId, - RoomType = type, + RoomType = type }); } } \ No newline at end of file diff --git a/Program/Program/EntryPoint.cs b/Program/Program/EntryPoint.cs index 165b1ef7..73a6eda3 100644 --- a/Program/Program/EntryPoint.cs +++ b/Program/Program/EntryPoint.cs @@ -134,7 +134,8 @@ public class EntryPoint if (File.Exists(ResourceCache.CachePath)) if (ConfigManager.Config.ServerOption.UseCache) { - Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Cache"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.Cache"))); isCache = ResourceCache.LoadCache(); // Clear all game data if cache loading fails @@ -152,13 +153,15 @@ public class EntryPoint if (!isCache) { - Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.GameData"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.GameData"))); ResourceManager.LoadGameData(); // Async process cache saving if (ConfigManager.Config.ServerOption.UseCache && ResourceCache.IsComplete) { - Logger.Warn(I18NManager.Translate("Server.ServerInfo.WaitingItem", I18NManager.Translate("Word.Cache"))); + Logger.Warn(I18NManager.Translate("Server.ServerInfo.WaitingItem", + I18NManager.Translate("Word.Cache"))); _ = ResourceCache.SaveCache(); } }