diff --git a/Command/Command/Cmd/CommandScene.cs b/Command/Command/Cmd/CommandScene.cs index 455b4e47..2dfb99f7 100644 --- a/Command/Command/Cmd/CommandScene.cs +++ b/Command/Command/Cmd/CommandScene.cs @@ -3,7 +3,6 @@ using EggLink.DanhengServer.Enums.Scene; using EggLink.DanhengServer.GameServer.Game.Scene.Entity; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Internationalization; -using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.Command.Command.Cmd; @@ -105,15 +104,9 @@ public class CommandScene : ICommand } var scene = arg.Target!.Player!.SceneInstance!; - foreach (var groupId in scene.Groups) - { - await scene.UpdateGroupProperty(groupId, "Lock", 0); - } + foreach (var groupId in scene.Groups) await scene.UpdateGroupProperty(groupId, "Lock", 0); - foreach (var groupId in scene.Groups) - { - await scene.UpdateGroupProperty(groupId, "PlateArrived", 2); - } + foreach (var groupId in scene.Groups) await scene.UpdateGroupProperty(groupId, "PlateArrived", 2); if (arg.Target.Player.SceneInstance!.FloorId == 20431001) { @@ -124,17 +117,13 @@ public class CommandScene : ICommand // update floor saved data if (arg.Target.Player.SceneData!.FloorSavedData.TryGetValue(arg.Target.Player.SceneInstance!.FloorId, out var savedData)) - { savedData[savedValueName] = savedValue; - } else - { arg.Target.Player.SceneData!.FloorSavedData[arg.Target.Player.SceneInstance!.FloorId] = new Dictionary { { savedValueName, savedValue } }; - } // send packet to client await arg.Target.Player.SendPacket( diff --git a/Common/Configuration/ConfigContainer.cs b/Common/Configuration/ConfigContainer.cs index 89de91b7..7577fb85 100644 --- a/Common/Configuration/ConfigContainer.cs +++ b/Common/Configuration/ConfigContainer.cs @@ -86,7 +86,7 @@ public class ServerOption public LogOption LogOption { get; set; } = new(); public ServerConfig ServerConfig { get; set; } = new(); public int FarmingDropRate { get; set; } = 1; - public bool UseCache { get; set; } = false; // didnt recommend + public bool UseCache { get; set; } = false; // didnt recommend public int ValidFarmingDropRate() { @@ -98,7 +98,7 @@ public class ServerConfig { public bool RunDispatch { get; set; } = true; public string FromDispatchBaseUrl { get; set; } = ""; - public bool RunGateway { get; set; } = true; // if run gateway, also run game server + public bool RunGateway { get; set; } = true; // if run gateway, also run game server public List Regions { get; set; } = []; } diff --git a/Common/Data/Config/Scene/GroupInfo.cs b/Common/Data/Config/Scene/GroupInfo.cs index 9a41460c..608c01ee 100644 --- a/Common/Data/Config/Scene/GroupInfo.cs +++ b/Common/Data/Config/Scene/GroupInfo.cs @@ -7,7 +7,6 @@ using EggLink.DanhengServer.Enums.Task; using EggLink.DanhengServer.Util; using Newtonsoft.Json; using Newtonsoft.Json.Converters; -using Spectre.Console; namespace EggLink.DanhengServer.Data.Config.Scene; @@ -54,56 +53,40 @@ public class GroupInfo foreach (var prop in PropList) prop.Load(this); foreach (var source in ValueSource?.Values ?? []) - { if (source["Key"]?.ToString() == "FSV") { var value = source["Value"]; if (value != null) ControlFloorSavedValue.Add(value.ToString()); } - } foreach (var info in LevelGraphConfig?.OnInitSequece ?? []) - { - foreach (var configInfo in info.TaskList) - { - if (configInfo is TriggerBattle battle) - { - if (battle.EventID.GetValue() > 0) - RelatedBattleId.Add(battle.EventID.GetValue()); - } - } - } + foreach (var configInfo in info.TaskList) + if (configInfo is TriggerBattle battle) + if (battle.EventID.GetValue() > 0) + RelatedBattleId.Add(battle.EventID.GetValue()); foreach (var info in LevelGraphConfig?.OnStartSequece ?? []) - { - foreach (var configInfo in info.TaskList) - { - if (configInfo is TriggerBattle battle) - { - if (battle.EventID.GetValue() > 0) - RelatedBattleId.Add(battle.EventID.GetValue()); - } - } - } + foreach (var configInfo in info.TaskList) + if (configInfo is TriggerBattle battle) + if (battle.EventID.GetValue() > 0) + RelatedBattleId.Add(battle.EventID.GetValue()); if (LoadSide != GroupLoadSideEnum.Client) return; foreach (var info in AtmosphereCondition.Conditions) - { if (info.TryGetValue("SubMissionID", out var value) && value is long v) { // try cast to int var missionId = (int)v; RelatedMissionId.Add(missionId); } - } } } public class AtmosphereCondition { public List> Conditions { get; set; } = []; - + [JsonConverter(typeof(StringEnumConverter))] public OperationEnum Operation { get; set; } = OperationEnum.And; } @@ -135,7 +118,10 @@ public class LoadCondition conditionChecks.Add(CheckFunc); continue; - bool CheckFunc() => status == condition.Phase; + bool CheckFunc() + { + return status == condition.Phase; + } } else { @@ -149,7 +135,10 @@ public class LoadCondition conditionChecks.Add(CheckFunc); continue; - bool CheckFunc() => status == condition.Phase; + bool CheckFunc() + { + return status == condition.Phase; + } } return Operation switch @@ -184,7 +173,10 @@ public class SavedValueLoadCondition conditionChecks.Add(CheckFunc); continue; - bool CheckFunc() => UtilTools.CompareNumberByOperationEnum(status, condition.Value, condition.Operation); + bool CheckFunc() + { + return UtilTools.CompareNumberByOperationEnum(status, condition.Value, condition.Operation); + } } switch (Operation) diff --git a/Common/Data/Excel/ChallengeConfigExcel.cs b/Common/Data/Excel/ChallengeConfigExcel.cs index a51dd67b..0706bb6a 100644 --- a/Common/Data/Excel/ChallengeConfigExcel.cs +++ b/Common/Data/Excel/ChallengeConfigExcel.cs @@ -1,5 +1,4 @@ using Newtonsoft.Json; -using System.Threading; namespace EggLink.DanhengServer.Data.Excel; diff --git a/Common/Data/Excel/ChallengePeakBossConfigExcel.cs b/Common/Data/Excel/ChallengePeakBossConfigExcel.cs index df101a86..c9163b51 100644 --- a/Common/Data/Excel/ChallengePeakBossConfigExcel.cs +++ b/Common/Data/Excel/ChallengePeakBossConfigExcel.cs @@ -1,6 +1,3 @@ -using EggLink.DanhengServer.Data.Custom; -using Newtonsoft.Json; - namespace EggLink.DanhengServer.Data.Excel; [ResourceEntity("ChallengePeakBossConfig.json")] diff --git a/Common/Data/Excel/ChallengePeakConfigExcel.cs b/Common/Data/Excel/ChallengePeakConfigExcel.cs index 58d633d6..3c47cbb5 100644 --- a/Common/Data/Excel/ChallengePeakConfigExcel.cs +++ b/Common/Data/Excel/ChallengePeakConfigExcel.cs @@ -1,4 +1,3 @@ -using EggLink.DanhengServer.Data.Custom; using Newtonsoft.Json; namespace EggLink.DanhengServer.Data.Excel; @@ -17,7 +16,9 @@ public class ChallengePeakConfigExcel : ExcelResource public List NpcMonsterIDList { get; set; } = []; public List NormalTargetList { get; set; } = []; - [JsonIgnore] public Dictionary> ChallengeMonsters { get; } = []; + [JsonIgnore] + public Dictionary> ChallengeMonsters { get; } = []; + [JsonIgnore] public ChallengePeakBossConfigExcel? BossExcel { get; set; } public override int GetId() @@ -31,8 +32,8 @@ public class ChallengePeakConfigExcel : ExcelResource ChallengeMonsters.Add(MazeGroupID, []); for (var i = 0; i < ConfigIDList.Count; i++) - { - ChallengeMonsters[MazeGroupID].Add(new ChallengeConfigExcel.ChallengeMonsterInfo(ConfigIDList[i], NpcMonsterIDList[i], EventIDList[i])); - } + ChallengeMonsters[MazeGroupID] + .Add(new ChallengeConfigExcel.ChallengeMonsterInfo(ConfigIDList[i], NpcMonsterIDList[i], + EventIDList[i])); } } \ No newline at end of file diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index f89c8703..eb96191a 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -59,7 +59,7 @@ public static class GameData public static Dictionary MazeSkillData { 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; } = []; @@ -76,7 +76,10 @@ public static class GameData public static Dictionary ChallengeConfigData { get; private set; } = []; public static Dictionary ChallengeTargetData { get; private set; } = []; public static Dictionary ChallengeGroupData { get; private set; } = []; - public static Dictionary ChallengePeakGroupConfigData { get; private set; } = []; + + public static Dictionary ChallengePeakGroupConfigData { get; private set; } = + []; + public static Dictionary ChallengePeakConfigData { get; private set; } = []; public static Dictionary ChallengePeakBossConfigData { get; private set; } = []; public static Dictionary> ChallengeRewardData { get; private set; } = []; @@ -131,7 +134,7 @@ public static class GameData public static Dictionary AchievementDataData { get; private set; } = []; 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; } = []; @@ -154,10 +157,10 @@ public static class GameData #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; } = []; + public static Dictionary MapEntranceData { get; } = []; public static Dictionary MazePlaneData { get; private set; } = []; public static Dictionary MazePuzzleSwitchHandData { get; private set; } = []; public static Dictionary MazeChestData { get; private set; } = []; @@ -200,7 +203,7 @@ public static class GameData public static Dictionary ItemUseBuffDataData { get; private set; } = []; public static Dictionary ItemUseDataData { 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; } = diff --git a/Common/Data/ResourceCache.cs b/Common/Data/ResourceCache.cs index 2682d825..d85f36ab 100644 --- a/Common/Data/ResourceCache.cs +++ b/Common/Data/ResourceCache.cs @@ -142,19 +142,21 @@ public class ResourceCache typeof(GameData).GetProperties(BindingFlags.Public | BindingFlags.Static), prop => { - try + try { - Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", $"{prop.DeclaringType?.Name}.{prop.Name}")); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + $"{prop.DeclaringType?.Name}.{prop.Name}")); if (cacheData.GameDataValues.TryGetValue(prop.Name, out var valueBytes)) prop.SetValue(null, JsonConvert.DeserializeObject( Encoding.UTF8.GetString( CompressionHelper.Decompress(valueBytes)), prop.PropertyType, Serializer ) ); - } - catch (Exception e) + } + catch (Exception e) { - Logger.Error(I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", $"{prop.DeclaringType?.Name}.{prop.Name}")); + Logger.Error(I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", + $"{prop.DeclaringType?.Name}.{prop.Name}")); Logger.Error(e.Message); } } diff --git a/Common/Data/ResourceManager.cs b/Common/Data/ResourceManager.cs index 9f4a687a..ed0139a0 100644 --- a/Common/Data/ResourceManager.cs +++ b/Common/Data/ResourceManager.cs @@ -47,7 +47,8 @@ public class ResourceManager GameData.RogueMiracleGroupData = LoadCustomFile>>("Rogue Miracle Group", "RogueMiracleGroup") ?? []; GameData.SceneRainbowGroupPropertyData = - LoadCustomFile("Scene Rainbow Group Property", "SceneRainbowGroupProperty") ?? new SceneRainbowGroupPropertyConfig(); + LoadCustomFile("Scene Rainbow Group Property", + "SceneRainbowGroupProperty") ?? new SceneRainbowGroupPropertyConfig(); GameData.RogueMiracleEffectData = LoadCustomFile("Rogue Miracle Effect", "RogueMiracleEffectGen") ?? new RogueMiracleEffectConfig(); diff --git a/Common/Database/Avatar/AvatarData.cs b/Common/Database/Avatar/AvatarData.cs index 78525a67..4e04cb51 100644 --- a/Common/Database/Avatar/AvatarData.cs +++ b/Common/Database/Avatar/AvatarData.cs @@ -1,5 +1,4 @@ using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Database.Inventory; using EggLink.DanhengServer.Database.Player; using EggLink.DanhengServer.Enums.Avatar; @@ -284,6 +283,7 @@ public class FormalAvatarInfo : BaseAvatarInfo } }; } + public List ToAvatarPathProto() { var res = new List(); @@ -537,13 +537,10 @@ public class PathInfo(int pathId) public Dictionary GetSkillTree() { - if (EnhanceInfos.TryGetValue(EnhanceId, out var enhance)) - { - return enhance.SkillTree; - } + if (EnhanceInfos.TryGetValue(EnhanceId, out var enhance)) return enhance.SkillTree; EnhanceInfos[EnhanceId] = new EnhanceInfo(EnhanceId); - + // create default skill tree var avatarExcel = GameData.AvatarConfigData.GetValueOrDefault(PathId); if (avatarExcel == null) return []; @@ -551,10 +548,7 @@ public class PathInfo(int pathId) var skills = avatarExcel.DefaultSkillTree.GetValueOrDefault(EnhanceId); if (skills == null) return []; - foreach (var skill in skills) - { - EnhanceInfos[EnhanceId].SkillTree.Add(skill.PointID, skill.Level); - } + foreach (var skill in skills) EnhanceInfos[EnhanceId].SkillTree.Add(skill.PointID, skill.Level); return EnhanceInfos[EnhanceId].SkillTree; } diff --git a/Common/Database/Challenge/ChallengeData.cs b/Common/Database/Challenge/ChallengeData.cs index 80fe2209..f8ce720a 100644 --- a/Common/Database/Challenge/ChallengeData.cs +++ b/Common/Database/Challenge/ChallengeData.cs @@ -10,11 +10,13 @@ public class ChallengeData : BaseDatabaseDataHelper [SugarColumn(IsJson = true)] public Dictionary History { get; set; } = new(); [SugarColumn(IsNullable = true)] public string? ChallengeInstance { get; set; } - [SugarColumn] public string Instance { get; set; } = ""; // placeholder + [SugarColumn] public string Instance { get; set; } = ""; // placeholder [SugarColumn(IsJson = true)] public Dictionary TakenRewards { get; set; } = new(); [SugarColumn(IsJson = true)] public Dictionary PeakLevelDatas { get; set; } = new(); - [SugarColumn(IsJson = true)] public Dictionary PeakBossLevelDatas { get; set; } = new(); + + [SugarColumn(IsJson = true)] + public Dictionary PeakBossLevelDatas { get; set; } = new(); public void Delete(int challengeId) { diff --git a/Common/Database/Friend/FriendRecordData.cs b/Common/Database/Friend/FriendRecordData.cs index 3f28a3da..7f7dea97 100644 --- a/Common/Database/Friend/FriendRecordData.cs +++ b/Common/Database/Friend/FriendRecordData.cs @@ -7,8 +7,13 @@ namespace EggLink.DanhengServer.Database.Friend; [SugarTable("friend_record_data")] public class FriendRecordData : BaseDatabaseDataHelper { - [SugarColumn(IsJson = true)] public List DevelopmentInfos { get; set; } = []; // max 20 entries - [SugarColumn(IsJson = true)] public Dictionary ChallengeGroupStatistics { get; set; } = []; // cur group statistics + [SugarColumn(IsJson = true)] + public List DevelopmentInfos { get; set; } = []; // max 20 entries + + [SugarColumn(IsJson = true)] + public Dictionary ChallengeGroupStatistics { get; set; } = + []; // cur group statistics + public uint NextRecordId { get; set; } public void AddAndRemoveOld(FriendDevelopmentInfoPb info) @@ -18,14 +23,10 @@ public class FriendRecordData : BaseDatabaseDataHelper // if param equal remove foreach (var infoPb in same.ToArray()) - { // ReSharper disable once UsageOfDefaultStructEquality if (infoPb.Params.SequenceEqual(info.Params)) - { // remove DevelopmentInfos.Remove(infoPb); - } - } DevelopmentInfos.Add(info); } @@ -112,43 +113,28 @@ public class ChallengeGroupStatisticsPb if (MemoryGroupStatistics != null) { foreach (var memoryGroupStatistic in MemoryGroupStatistics.Values) - { proto.GroupTotalStars += memoryGroupStatistic.Stars; - } var maxFloor = MemoryGroupStatistics.Values.MaxBy(x => x.Level); - if (maxFloor != null) - { - proto.MemoryGroup = maxFloor.ToProto(); - } + if (maxFloor != null) proto.MemoryGroup = maxFloor.ToProto(); } if (StoryGroupStatistics != null) { foreach (var storyGroupStatistic in StoryGroupStatistics.Values) - { proto.GroupTotalStars += storyGroupStatistic.Stars; - } var maxFloor = StoryGroupStatistics.Values.MaxBy(x => x.Level); - if (maxFloor != null) - { - proto.StoryGroup = maxFloor.ToProto(); - } + if (maxFloor != null) proto.StoryGroup = maxFloor.ToProto(); } if (BossGroupStatistics != null) { foreach (var bossGroupStatistic in BossGroupStatistics.Values) - { proto.GroupTotalStars += bossGroupStatistic.Stars; - } var maxFloor = BossGroupStatistics.Values.MaxBy(x => x.Level); - if (maxFloor != null) - { - proto.BossGroup = maxFloor.ToProto(); - } + if (maxFloor != null) proto.BossGroup = maxFloor.ToProto(); } return proto; diff --git a/Common/Database/Scene/SceneData.cs b/Common/Database/Scene/SceneData.cs index 95bb041b..a63ff3f8 100644 --- a/Common/Database/Scene/SceneData.cs +++ b/Common/Database/Scene/SceneData.cs @@ -51,10 +51,7 @@ public class SceneData : BaseDatabaseDataHelper public int GetFloorSavedValue(int floorId, string key) { - if (FloorSavedData.TryGetValue(floorId, out var data) && data.TryGetValue(key, out var value)) - { - return value; - } + if (FloorSavedData.TryGetValue(floorId, out var data) && data.TryGetValue(key, out var value)) return value; // get default value if not found var floor = GameData.GetFloorInfo(floorId); @@ -70,10 +67,7 @@ public class SceneData : BaseDatabaseDataHelper if (floor == null) return []; var savedValues = new Dictionary(); - foreach (var value in floor.FloorSavedValue) - { - savedValues[value.Name] = GetFloorSavedValue(floorId, value.Name); - } + foreach (var value in floor.FloorSavedValue) savedValues[value.Name] = GetFloorSavedValue(floorId, value.Name); return savedValues; } diff --git a/Common/Util/UtilTools.cs b/Common/Util/UtilTools.cs index c702a5d8..762ed4b5 100644 --- a/Common/Util/UtilTools.cs +++ b/Common/Util/UtilTools.cs @@ -1,6 +1,5 @@ -using EggLink.DanhengServer.Enums; +using System.Globalization; using EggLink.DanhengServer.Enums.Task; -using System.Globalization; namespace EggLink.DanhengServer.Util; @@ -23,20 +22,15 @@ public static class UtilTools if (actions.Count == 0) return defaultValue; foreach (var action in actions) - { try { var returnValue = action.Invoke(); - if (!returnValue) - { - return false; - } + if (!returnValue) return false; } catch { // ignored } - } return true; } @@ -45,20 +39,16 @@ public static class UtilTools { if (actions.Count == 0) return defaultValue; foreach (var action in actions) - { try { var returnValue = action.Invoke(); - if (returnValue) - { - return true; - } + if (returnValue) return true; } catch { // ignored } - } + return false; } diff --git a/DanhengKcpSharp/DanhengListener.cs b/DanhengKcpSharp/DanhengListener.cs index c6c856a3..6cd7ec78 100644 --- a/DanhengKcpSharp/DanhengListener.cs +++ b/DanhengKcpSharp/DanhengListener.cs @@ -8,6 +8,8 @@ namespace EggLink.DanhengServer.Kcp; public class DanhengListener { + public delegate DanhengConnection ConnectionCreatedHandler(KcpConversation conversation, IPEndPoint remote); + private static UdpClient? UDPClient; private static IPEndPoint? ListenAddress; private static IKcpTransport? KCPTransport; @@ -25,7 +27,6 @@ public class DanhengListener KeepAliveOptions = new KcpKeepAliveOptions(1000, 30000) }; - public delegate DanhengConnection ConnectionCreatedHandler(KcpConversation conversation, IPEndPoint remote); public static ConnectionCreatedHandler? CreateConnection { get; set; } = null; private static Socket? UDPListener => UDPClient?.Client; diff --git a/DanhengKcpSharp/PacketLogHelper.cs b/DanhengKcpSharp/PacketLogHelper.cs index 61db2a6e..c8bcfece 100644 --- a/DanhengKcpSharp/PacketLogHelper.cs +++ b/DanhengKcpSharp/PacketLogHelper.cs @@ -8,16 +8,12 @@ namespace EggLink.DanhengServer.Kcp; public static class PacketLogHelper { - private delegate IMessage ParseIMessage(byte[] data); private static ConcurrentDictionary CachedParsers { get; } = []; public static string ConvertPacketToJson(ushort opcode, byte[] payload) { var descriptor = GetParser(opcode); - if (descriptor == null) - { - throw new Exception(); - } + if (descriptor == null) throw new Exception(); var message = descriptor(payload); var formatter = JsonFormatter.Default; @@ -27,10 +23,7 @@ public static class PacketLogHelper private static ParseIMessage? GetParser(ushort opcode) { - if (CachedParsers.TryGetValue(opcode, out var parser)) - { - return parser; - } + if (CachedParsers.TryGetValue(opcode, out var parser)) return parser; lock (CachedParsers) { @@ -42,7 +35,7 @@ public static class PacketLogHelper if (typ == null) return null; var desc = typ.GetProperty("Descriptor", BindingFlags.Public | BindingFlags.Static); if (desc?.GetMethod == null) return null; - + // get parser if (desc.GetValue(null) is not MessageDescriptor parserProperty) return null; @@ -60,4 +53,6 @@ public static class PacketLogHelper return parser; } } + + private delegate IMessage ParseIMessage(byte[] data); } \ No newline at end of file diff --git a/GameServer/Game/Avatar/AvatarManager.cs b/GameServer/Game/Avatar/AvatarManager.cs index 115c3859..97f6db29 100644 --- a/GameServer/Game/Avatar/AvatarManager.cs +++ b/GameServer/Game/Avatar/AvatarManager.cs @@ -50,14 +50,12 @@ public class AvatarManager(PlayerInstance player) : BasePlayerManager(player) AvatarData.FormalAvatars.Add(avatar); if (avatarExcel.Rarity == RarityEnum.CombatPowerAvatarRarityType5 && avatarExcel.AvatarID <= 3000) - { // add development Player.FriendRecordData!.AddAndRemoveOld(new FriendDevelopmentInfoPb { DevelopmentType = DevelopmentType.DevelopmentUnlockAvatar, Params = { { "AvatarId", (uint)avatarExcel.AvatarID } } }); - } if (sync) await Player.SendPacket(new PacketPlayerSyncScNotify(avatar)); diff --git a/GameServer/Game/Battle/BattleInstance.cs b/GameServer/Game/Battle/BattleInstance.cs index a4813ef3..4be84aa6 100644 --- a/GameServer/Game/Battle/BattleInstance.cs +++ b/GameServer/Game/Battle/BattleInstance.cs @@ -237,10 +237,13 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List new SceneMonster + MonsterList = { - MonsterId = (uint)x - }) } + waveIds.Select(x => new SceneMonster + { + MonsterId = (uint)x + }) + } }); } } @@ -279,16 +282,12 @@ public class BattleInstance(PlayerInstance player, LineupInfo lineup, List NextBattleMonsterIds { get; set; } = []; - public async ValueTask StartBattle(BaseGameEntity attackEntity, List targetEntityList, + public async ValueTask StartBattle(BaseGameEntity attackEntity, + List targetEntityList, bool isSkill) { if (Player.BattleInstance != null) return Player.BattleInstance; diff --git a/GameServer/Game/Challenge/ChallengeEntityLoader.cs b/GameServer/Game/Challenge/ChallengeEntityLoader.cs index d53f0434..1c62de29 100644 --- a/GameServer/Game/Challenge/ChallengeEntityLoader.cs +++ b/GameServer/Game/Challenge/ChallengeEntityLoader.cs @@ -65,17 +65,15 @@ public class ChallengeEntityLoader(SceneInstance scene, PlayerInstance player) : // Get current stage monster infos var stages = instance.GetStageMonsters(); - if (!stages.TryGetValue(group.Id, out var challengeMonsters)) - { - return null; - } + if (!stages.TryGetValue(group.Id, out var challengeMonsters)) return null; // Get challenge monster info if (challengeMonsters.All(x => x.ConfigId != info.ID)) return null; var challengeMonsterInfo = challengeMonsters.First(x => x.ConfigId == info.ID); // Get excels from game data - if (!GameData.NpcMonsterDataData.TryGetValue(challengeMonsterInfo.NpcMonsterId, out var npcMonsterExcel)) return null; + if (!GameData.NpcMonsterDataData.TryGetValue(challengeMonsterInfo.NpcMonsterId, out var npcMonsterExcel)) + return null; // Create monster from group monster info var entity = new EntityMonster(Scene, info.ToPositionProto(), info.ToRotationProto(), group.Id, info.ID, diff --git a/GameServer/Game/Challenge/ChallengeManager.cs b/GameServer/Game/Challenge/ChallengeManager.cs index 04d195ff..5e7dd6d6 100644 --- a/GameServer/Game/Challenge/ChallengeManager.cs +++ b/GameServer/Game/Challenge/ChallengeManager.cs @@ -10,7 +10,6 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Challenge; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Proto.ServerSide; using Google.Protobuf; -using System; using static EggLink.DanhengServer.GameServer.Plugin.Event.PluginEvent; namespace EggLink.DanhengServer.GameServer.Game.Challenge; @@ -285,7 +284,6 @@ public class ChallengeManager(PlayerInstance player) : BasePlayerManager(player) var proto = ChallengeDataPb.Parser.ParseFrom(protoByte); if (proto != null) - { ChallengeInstance = proto.ChallengeTypeCase switch { ChallengeDataPb.ChallengeTypeOneofCase.Memory => new ChallengeMemoryInstance(Player, proto), @@ -294,11 +292,8 @@ public class ChallengeManager(PlayerInstance player) : BasePlayerManager(player) ChallengeDataPb.ChallengeTypeOneofCase.Boss => new ChallengeBossInstance(Player, proto), _ => null }; - } else - { ChallengeData.ChallengeInstance = null; - } } public void SaveBattleRecord(BaseLegacyChallengeInstance inst) diff --git a/GameServer/Game/Challenge/Definitions/BaseChallengeInstance.cs b/GameServer/Game/Challenge/Definitions/BaseChallengeInstance.cs index 19199262..66f52f41 100644 --- a/GameServer/Game/Challenge/Definitions/BaseChallengeInstance.cs +++ b/GameServer/Game/Challenge/Definitions/BaseChallengeInstance.cs @@ -13,7 +13,6 @@ public abstract class BaseChallengeInstance(PlayerInstance player, ChallengeData public virtual void OnBattleStart(BattleInstance battle) { - } public virtual async ValueTask OnBattleEnd(BattleInstance battle, PVEBattleResultCsReq req) @@ -23,5 +22,7 @@ public abstract class BaseChallengeInstance(PlayerInstance player, ChallengeData public abstract Dictionary> GetStageMonsters(); - public virtual void OnUpdate() { } + public virtual void OnUpdate() + { + } } \ No newline at end of file diff --git a/GameServer/Game/Challenge/Definitions/BaseLegacyChallengeInstance.cs b/GameServer/Game/Challenge/Definitions/BaseLegacyChallengeInstance.cs index 38ef8ff0..f6142b88 100644 --- a/GameServer/Game/Challenge/Definitions/BaseLegacyChallengeInstance.cs +++ b/GameServer/Game/Challenge/Definitions/BaseLegacyChallengeInstance.cs @@ -6,11 +6,12 @@ using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.GameServer.Game.Challenge.Definitions; -public abstract class BaseLegacyChallengeInstance(PlayerInstance player, ChallengeDataPb data) : BaseChallengeInstance(player, data) +public abstract class BaseLegacyChallengeInstance(PlayerInstance player, ChallengeDataPb data) + : BaseChallengeInstance(player, data) { - public abstract CurChallenge ToProto(); public bool IsWin { get; set; } public abstract ChallengeConfigExcel Config { get; } + public abstract CurChallenge ToProto(); public abstract uint GetStars(); public abstract int GetCurrentExtraLineupType(); diff --git a/GameServer/Game/Challenge/Instances/ChallengeBossInstance.cs b/GameServer/Game/Challenge/Instances/ChallengeBossInstance.cs index 782cf71c..000bbd95 100644 --- a/GameServer/Game/Challenge/Instances/ChallengeBossInstance.cs +++ b/GameServer/Game/Challenge/Instances/ChallengeBossInstance.cs @@ -12,11 +12,11 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Proto.ServerSide; using EggLink.DanhengServer.Util; -using SqlSugar; namespace EggLink.DanhengServer.GameServer.Game.Challenge.Instances; -public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data) : BaseLegacyChallengeInstance(player, data) +public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data) + : BaseLegacyChallengeInstance(player, data) { #region Properties @@ -99,7 +99,7 @@ public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data) }, RoundCount = (uint)Config.ChallengeCountDown, ScoreId = Data.Boss.ScoreStage1, - ScoreTwo = Data.Boss.ScoreStage2, + ScoreTwo = Data.Boss.ScoreStage2 }; } @@ -292,7 +292,7 @@ public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data) Player.FriendRecordData!.AddAndRemoveOld(new FriendDevelopmentInfoPb { DevelopmentType = DevelopmentType.DevelopmentBossChallenge, - Params = {{ "ChallengeId", (uint)Config.ID } } + Params = { { "ChallengeId", (uint)Config.ID } } }); } else @@ -333,6 +333,5 @@ public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data) Player.ChallengeManager!.SaveInstance(this); } - #endregion } \ No newline at end of file diff --git a/GameServer/Game/Challenge/Instances/ChallengeMemoryInstance.cs b/GameServer/Game/Challenge/Instances/ChallengeMemoryInstance.cs index 84a1e388..6d2849b4 100644 --- a/GameServer/Game/Challenge/Instances/ChallengeMemoryInstance.cs +++ b/GameServer/Game/Challenge/Instances/ChallengeMemoryInstance.cs @@ -14,11 +14,30 @@ using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.GameServer.Game.Challenge.Instances; -public class ChallengeMemoryInstance(PlayerInstance player, ChallengeDataPb data) : BaseLegacyChallengeInstance(player, data) +public class ChallengeMemoryInstance(PlayerInstance player, ChallengeDataPb data) + : BaseLegacyChallengeInstance(player, data) { #region Properties - public override ChallengeConfigExcel Config { get; } = GameData.ChallengeConfigData[(int)data.Memory.ChallengeMazeId]; + public override ChallengeConfigExcel Config { get; } = + GameData.ChallengeConfigData[(int)data.Memory.ChallengeMazeId]; + + #endregion + + #region Serialization + + public override CurChallenge ToProto() + { + return new CurChallenge + { + ChallengeId = Data.Memory.ChallengeMazeId, + DeadAvatarNum = Data.Memory.DeadAvatarNum, + ExtraLineupType = (ExtraLineupType)Data.Memory.CurrentExtraLineup, + Status = (ChallengeStatus)Data.Memory.CurStatus, + StageInfo = new ChallengeCurBuffInfo(), + RoundCount = (uint)(Config.ChallengeCountDown - Data.Memory.RoundsLeft) + }; + } #endregion @@ -61,23 +80,6 @@ public class ChallengeMemoryInstance(PlayerInstance player, ChallengeDataPb data #endregion - #region Serialization - - public override CurChallenge ToProto() - { - return new CurChallenge - { - ChallengeId = Data.Memory.ChallengeMazeId, - DeadAvatarNum = Data.Memory.DeadAvatarNum, - ExtraLineupType = (ExtraLineupType)Data.Memory.CurrentExtraLineup, - Status = (ChallengeStatus)Data.Memory.CurStatus, - StageInfo = new ChallengeCurBuffInfo(), - RoundCount = (uint)(Config.ChallengeCountDown - Data.Memory.RoundsLeft) - }; - } - - #endregion - #region Handlers public override void OnBattleStart(BattleInstance battle) diff --git a/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs b/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs index 96a54145..5a5620fc 100644 --- a/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs +++ b/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs @@ -16,15 +16,6 @@ namespace EggLink.DanhengServer.GameServer.Game.Challenge.Instances; public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data) : BaseChallengeInstance(player, data) { - - #region Properties - - public ChallengePeakConfigExcel Config { get; } = GameData.ChallengePeakConfigData[(int)data.Peak.CurrentPeakLevelId]; - public List AllBattleTargets { get; } = []; - public bool IsWin { get; private set; } - - #endregion - #region Setter & Getter public override Dictionary> GetStageMonsters() @@ -35,16 +26,24 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data) monsters.Add(Config.MazeGroupID, []); for (var i = 0; i < Config.ConfigIDList.Count; i++) - { monsters[Config.MazeGroupID].Add(new ChallengeConfigExcel.ChallengeMonsterInfo(Config.ConfigIDList[i], Config.NpcMonsterIDList[i], Config.BossExcel.HardEventIDList[i])); - } return monsters; } #endregion + #region Properties + + public ChallengePeakConfigExcel Config { get; } = + GameData.ChallengePeakConfigData[(int)data.Peak.CurrentPeakLevelId]; + + public List AllBattleTargets { get; } = []; + public bool IsWin { get; private set; } + + #endregion + //#region Serialization //#endregion @@ -54,12 +53,10 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data) public override void OnBattleStart(BattleInstance battle) { foreach (var peakBuff in Data.Peak.Buffs) - { battle.Buffs.Add(new MazeBuff((int)peakBuff, 1, -1) { WaveFlag = -1 }); - } if (Data.Peak.IsHard && Config.BossExcel != null) { @@ -99,11 +96,12 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data) Data.Peak.Stars = res.Item1; Data.Peak.RoundCnt = req.Stt.RoundCnt; IsWin = true; - + await Player.SendPacket(new PacketChallengePeakSettleScNotify(this, res.Item2)); // Call MissionManager - await Player.MissionManager!.HandleFinishType(MissionFinishTypeEnum.ChallengePeakBattleFinish, this); + await Player.MissionManager!.HandleFinishType(MissionFinishTypeEnum.ChallengePeakBattleFinish, + this); await Player.ChallengePeakManager!.SaveHistory(this, res.Item2); @@ -158,10 +156,7 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data) } } - if (Data.Peak.IsHard && Config.BossExcel != null) - { - stars = 3; - } + if (Data.Peak.IsHard && Config.BossExcel != null) stars = 3; return (Math.Min(stars, 3), finishedIds); } diff --git a/GameServer/Game/Challenge/Instances/ChallengeStoryInstance.cs b/GameServer/Game/Challenge/Instances/ChallengeStoryInstance.cs index 98403381..65891a70 100644 --- a/GameServer/Game/Challenge/Instances/ChallengeStoryInstance.cs +++ b/GameServer/Game/Challenge/Instances/ChallengeStoryInstance.cs @@ -14,11 +14,37 @@ using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.GameServer.Game.Challenge.Instances; -public class ChallengeStoryInstance(PlayerInstance player, ChallengeDataPb data) : BaseLegacyChallengeInstance(player, data) +public class ChallengeStoryInstance(PlayerInstance player, ChallengeDataPb data) + : BaseLegacyChallengeInstance(player, data) { #region Properties - public override ChallengeConfigExcel Config { get; } = GameData.ChallengeConfigData[(int)data.Story.ChallengeMazeId]; + public override ChallengeConfigExcel Config { get; } = + GameData.ChallengeConfigData[(int)data.Story.ChallengeMazeId]; + + #endregion + + #region Serialization + + public override CurChallenge ToProto() + { + return new CurChallenge + { + ChallengeId = Data.Story.ChallengeMazeId, + ExtraLineupType = (ExtraLineupType)Data.Story.CurrentExtraLineup, + Status = (ChallengeStatus)Data.Story.CurStatus, + StageInfo = new ChallengeCurBuffInfo + { + CurStoryBuffs = new ChallengeStoryBuffList + { + BuffList = { Data.Story.Buffs } + } + }, + RoundCount = (uint)Config.ChallengeCountDown, + ScoreId = Data.Story.ScoreStage1, + ScoreTwo = Data.Story.ScoreStage2 + }; + } #endregion @@ -78,30 +104,6 @@ public class ChallengeStoryInstance(PlayerInstance player, ChallengeDataPb data) #endregion - #region Serialization - - public override CurChallenge ToProto() - { - return new CurChallenge - { - ChallengeId = Data.Story.ChallengeMazeId, - ExtraLineupType = (ExtraLineupType)Data.Story.CurrentExtraLineup, - Status = (ChallengeStatus)Data.Story.CurStatus, - StageInfo = new ChallengeCurBuffInfo - { - CurStoryBuffs = new ChallengeStoryBuffList - { - BuffList = { Data.Story.Buffs } - } - }, - RoundCount = (uint)Config.ChallengeCountDown, - ScoreId = Data.Story.ScoreStage1, - ScoreTwo = Data.Story.ScoreStage2 - }; - } - - #endregion - #region Handlers public override void OnBattleStart(BattleInstance battle) diff --git a/GameServer/Game/ChallengePeak/ChallengePeakManager.cs b/GameServer/Game/ChallengePeak/ChallengePeakManager.cs index 31d92b29..920b39c1 100644 --- a/GameServer/Game/ChallengePeak/ChallengePeakManager.cs +++ b/GameServer/Game/ChallengePeak/ChallengePeakManager.cs @@ -12,18 +12,19 @@ using ChallengePeakLevelInfo = EggLink.DanhengServer.Proto.ChallengePeakLevelInf namespace EggLink.DanhengServer.GameServer.Game.ChallengePeak; /// -/// this class is used to manage the challenge peak for a player -/// but the challenge instance shouldnt be stored here ( see ChallengeManager ) +/// this class is used to manage the challenge peak for a player +/// but the challenge instance shouldnt be stored here ( see ChallengeManager ) /// -/// +/// public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(player) { public bool BossIsHard { get; set; } = true; + public ChallengePeakLevelInfo GetChallengePeakInfo(int groupId) { var proto = new ChallengePeakLevelInfo { - PeakGroupId = (uint)groupId, + PeakGroupId = (uint)groupId }; var data = GameData.ChallengePeakGroupConfigData.GetValueOrDefault(groupId); @@ -69,7 +70,7 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla // boss var bossLevelId = data.BossLevelID; if (bossLevelId <= 0) return proto; - + var bossLevelData = GameData.ChallengePeakBossConfigData.GetValueOrDefault(bossLevelId); if (bossLevelData == null) return proto; @@ -83,7 +84,8 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla HashSet targetIds = []; HashSet avatarIds = []; - if (Player.ChallengeManager!.ChallengeData.PeakBossLevelDatas.TryGetValue(bossLevelId << 2 | 0, out var bossPbData)) // easy (is hard = 0) + if (Player.ChallengeManager!.ChallengeData.PeakBossLevelDatas.TryGetValue((bossLevelId << 2) | 0, + out var bossPbData)) // easy (is hard = 0) { bossProto.PeakEasyBoss.PeakLevelAvatarIdList.AddRange(bossPbData.BaseAvatarList); bossProto.PeakEasyBoss.BossDisplayAvatarIdList.AddRange(bossPbData.BaseAvatarList); @@ -92,18 +94,13 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla bossProto.PeakEasyBoss.IsFinished = true; bossProto.PeakEasyBoss.BuffId = bossPbData.BuffId; - foreach (var targetId in bossPbData.FinishedTargetList) - { - targetIds.Add(targetId); - } + foreach (var targetId in bossPbData.FinishedTargetList) targetIds.Add(targetId); - foreach (var avatarId in bossPbData.BaseAvatarList) - { - avatarIds.Add(avatarId); - } + foreach (var avatarId in bossPbData.BaseAvatarList) avatarIds.Add(avatarId); } - if (Player.ChallengeManager!.ChallengeData.PeakBossLevelDatas.TryGetValue(bossLevelId << 2 | 1, out var bossHardPbData)) // easy (is hard = 1) + if (Player.ChallengeManager!.ChallengeData.PeakBossLevelDatas.TryGetValue((bossLevelId << 2) | 1, + out var bossHardPbData)) // easy (is hard = 1) { bossProto.IsUltraBossWin = true; bossProto.PeakHardBoss.PeakLevelAvatarIdList.AddRange(bossHardPbData.BaseAvatarList); @@ -113,15 +110,9 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla bossProto.PeakHardBoss.IsFinished = true; bossProto.PeakHardBoss.BuffId = bossHardPbData.BuffId; - foreach (var targetId in bossHardPbData.FinishedTargetList) - { - targetIds.Add(targetId); - } + foreach (var targetId in bossHardPbData.FinishedTargetList) targetIds.Add(targetId); - foreach (var avatarId in bossHardPbData.BaseAvatarList) - { - avatarIds.Add(avatarId); - } + foreach (var avatarId in bossHardPbData.BaseAvatarList) avatarIds.Add(avatarId); } foreach (var avatarId in avatarIds) @@ -156,7 +147,7 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla { LevelId = (int)lineup.PeakLevelId, BaseAvatarList = avatarIds - }; // reset + }; // reset } await Player.SendPacket(new PacketChallengePeakGroupDataUpdateScNotify(GetChallengePeakInfo(groupId))); @@ -168,22 +159,21 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla { // is hard var isHard = inst.Data.Peak.IsHard; - var levelId = (int)inst.Data.Peak.CurrentPeakLevelId << 2 | (isHard ? 1 : 0); + var levelId = ((int)inst.Data.Peak.CurrentPeakLevelId << 2) | (isHard ? 1 : 0); // get old data if (Player.ChallengeManager!.ChallengeData.PeakBossLevelDatas.TryGetValue(levelId, out var oldData) && oldData.FinishedTargetList.Count > targetIds.Count && oldData.RoundCnt < inst.Data.Peak.RoundCnt) - { // better data already exists, do not overwrite return; - } // Save boss data var data = new ChallengePeakBossLevelData { LevelId = (int)inst.Data.Peak.CurrentPeakLevelId, IsHard = isHard, - BaseAvatarList = Player.LineupManager!.GetCurLineup()?.BaseAvatars?.Select(x => (uint)x.BaseAvatarId).ToList() ?? [], + BaseAvatarList = Player.LineupManager!.GetCurLineup()?.BaseAvatars?.Select(x => (uint)x.BaseAvatarId) + .ToList() ?? [], RoundCnt = inst.Data.Peak.RoundCnt, BuffId = inst.Data.Peak.Buffs.FirstOrDefault(), FinishedTargetList = targetIds, @@ -201,9 +191,7 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla { var targetFrameId = data.PeakStar + 226000; if (Player.Data.HeadFrame.HeadFrameId < targetFrameId) - { await Player.SetPlayerHeadFrameId(targetFrameId, long.MaxValue); - } } } else @@ -214,15 +202,14 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla // get old data if (Player.ChallengeManager!.ChallengeData.PeakLevelDatas.TryGetValue(levelId, out var oldData) && oldData.FinishedTargetList.Count > targetIds.Count && oldData.RoundCnt < inst.Data.Peak.RoundCnt) - { // better data already exists, do not overwrite return; - } var data = new ChallengePeakLevelData { LevelId = levelId, - BaseAvatarList = Player.LineupManager!.GetCurLineup()?.BaseAvatars?.Select(x => (uint)x.BaseAvatarId).ToList() ?? [], + BaseAvatarList = Player.LineupManager!.GetCurLineup()?.BaseAvatars?.Select(x => (uint)x.BaseAvatarId) + .ToList() ?? [], RoundCnt = inst.Data.Peak.RoundCnt, FinishedTargetList = targetIds, PeakStar = (uint)targetIds.Count @@ -231,7 +218,9 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla Player.ChallengeManager!.ChallengeData.PeakLevelDatas[levelId] = data; } - await Player.SendPacket(new PacketChallengePeakGroupDataUpdateScNotify(GetChallengePeakInfo((int)inst.Data.Peak.CurrentPeakGroupId))); + await Player.SendPacket( + new PacketChallengePeakGroupDataUpdateScNotify( + GetChallengePeakInfo((int)inst.Data.Peak.CurrentPeakGroupId))); } public async ValueTask StartChallenge(int levelId, uint buffId, List avatarIdList) @@ -255,21 +244,17 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla // Get lineup var lineup = Player.LineupManager!.GetExtraLineup(ExtraLineupType.LineupChallenge)!; if (avatarIds.Count > 0) - { lineup.BaseAvatars = avatarIds.Select(x => new LineupAvatarInfo { BaseAvatarId = x }).ToList(); - } else - { lineup.BaseAvatars = Player.ChallengeManager!.ChallengeData.PeakLevelDatas.GetValueOrDefault(levelId) ?.BaseAvatarList .Select(x => new LineupAvatarInfo { BaseAvatarId = (int)x }).ToList() ?? []; - } // Set technique points to full lineup.Mp = 5; // Max Mp @@ -304,10 +289,7 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla if (excel.BossExcel != null) data.Peak.IsHard = BossIsHard; - if (buffId > 0) - { - data.Peak.Buffs.Add(buffId); - } + if (buffId > 0) data.Peak.Buffs.Add(buffId); var instance = new ChallengePeakInstance(Player, data); diff --git a/GameServer/Game/ChessRogue/ChessRogueInstance.cs b/GameServer/Game/ChessRogue/ChessRogueInstance.cs index 7e1561af..e8ee11f9 100644 --- a/GameServer/Game/ChessRogue/ChessRogueInstance.cs +++ b/GameServer/Game/ChessRogue/ChessRogueInstance.cs @@ -1,5 +1,4 @@ -using System.Reflection; -using EggLink.DanhengServer.Data; +using EggLink.DanhengServer.Data; using EggLink.DanhengServer.Data.Config.AdventureAbility; using EggLink.DanhengServer.Data.Custom; using EggLink.DanhengServer.Data.Excel; diff --git a/GameServer/Game/Inventory/InventoryManager.cs b/GameServer/Game/Inventory/InventoryManager.cs index 250aafb4..c15b7e0f 100644 --- a/GameServer/Game/Inventory/InventoryManager.cs +++ b/GameServer/Game/Inventory/InventoryManager.cs @@ -1,4 +1,5 @@ -using EggLink.DanhengServer.Data; +using System.Collections.Frozen; +using EggLink.DanhengServer.Data; using EggLink.DanhengServer.Database; using EggLink.DanhengServer.Database.Friend; using EggLink.DanhengServer.Database.Inventory; @@ -14,7 +15,6 @@ using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; using Google.Protobuf.Collections; -using System.Collections.Frozen; namespace EggLink.DanhengServer.GameServer.Game.Inventory; @@ -67,14 +67,12 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) itemData = await PutItem(itemId, 1, rank, level: level, uniqueId: ++Data.NextUniqueId); if (itemConfig.Rarity == ItemRarityEnum.SuperRare) - { // add development Player.FriendRecordData!.AddAndRemoveOld(new FriendDevelopmentInfoPb { DevelopmentType = DevelopmentType.DevelopmentUnlockEquipment, Params = { { "EquipmentTid", (uint)itemConfig.ID } } }); - } break; case ItemMainTypeEnum.Usable: switch (itemConfig.ItemSubType) @@ -715,7 +713,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) { for (var i = 0; i < count; i++) // do count times { - if (useConfig.PreviewSkillPoint != 0) await Player.LineupManager!.GainMp((int)useConfig.PreviewSkillPoint); + if (useConfig.PreviewSkillPoint != 0) + await Player.LineupManager!.GainMp((int)useConfig.PreviewSkillPoint); if (baseAvatarId > 0) { @@ -746,7 +745,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) if (useConfig.PreviewPowerPercent != 0) { avatar.SetCurSp( - Math.Min(Math.Max(avatar.CurrentHp + (int)(useConfig.PreviewPowerPercent * 10000), 0), 10000), + Math.Min(Math.Max(avatar.CurrentHp + (int)(useConfig.PreviewPowerPercent * 10000), 0), + 10000), extraLineup); await Player.SendPacket(new PacketSyncLineupNotify(Player.LineupManager.GetCurLineup()!)); @@ -757,7 +757,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) // team use if (useConfig.PreviewHPRecoveryPercent != 0) { - Player.LineupManager!.GetCurLineup()!.Heal((int)(useConfig.PreviewHPRecoveryPercent * 10000), true); + Player.LineupManager!.GetCurLineup()!.Heal((int)(useConfig.PreviewHPRecoveryPercent * 10000), + true); await Player.SendPacket(new PacketSyncLineupNotify(Player.LineupManager.GetCurLineup()!)); } @@ -771,7 +772,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) if (useConfig.PreviewPowerPercent != 0) { - Player.LineupManager!.GetCurLineup()!.AddPercentSp((int)(useConfig.PreviewPowerPercent * 10000)); + Player.LineupManager!.GetCurLineup()!.AddPercentSp((int)(useConfig.PreviewPowerPercent * + 10000)); await Player.SendPacket(new PacketSyncLineupNotify(Player.LineupManager.GetCurLineup()!)); } @@ -791,12 +793,8 @@ public class InventoryManager(PlayerInstance player) : BasePlayerManager(player) } if (GameData.ItemUseDataData.TryGetValue(dataId, out var useData)) - { foreach (var rewardId in useData.UseParam) - { resItemDatas.AddRange(await HandleReward(rewardId, true)); - } - } // remove item await RemoveItem(itemId, count); diff --git a/GameServer/Game/Lineup/LineupManager.cs b/GameServer/Game/Lineup/LineupManager.cs index 17372069..a65696fe 100644 --- a/GameServer/Game/Lineup/LineupManager.cs +++ b/GameServer/Game/Lineup/LineupManager.cs @@ -167,13 +167,10 @@ public class LineupManager : BasePlayerManager var trial = Player.AvatarManager!.GetTrialAvatar(avatarId, refresh); if (trial != null) { - if (GameData.MultiplePathAvatarConfigData.TryGetValue(trial.AvatarId, out var pathExcel) && pathExcel.Gender != GenderTypeEnum.GENDER_NONE) - { + if (GameData.MultiplePathAvatarConfigData.TryGetValue(trial.AvatarId, out var pathExcel) && + pathExcel.Gender != GenderTypeEnum.GENDER_NONE) if (pathExcel.Gender != (GenderTypeEnum)Player.Data.CurrentGender) - { continue; - } - } trial.CheckLevel(worldLevel); lineup.BaseAvatars!.Add(new LineupAvatarInfo diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerChallengeFinish.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerChallengeFinish.cs index bf9a01a5..a7f5ce61 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerChallengeFinish.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerChallengeFinish.cs @@ -1,7 +1,6 @@ using EggLink.DanhengServer.Data.Config; using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Enums.Mission; -using EggLink.DanhengServer.GameServer.Game.Challenge; using EggLink.DanhengServer.GameServer.Game.Challenge.Definitions; using EggLink.DanhengServer.GameServer.Game.Player; diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerGroupPropertyValue.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerGroupPropertyValue.cs index 58f92d07..e0079791 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerGroupPropertyValue.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerGroupPropertyValue.cs @@ -20,7 +20,8 @@ public class MissionHandlerGroupPropertyValue : MissionFinishTypeHandler if (prop == value) 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; diff --git a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerWorldLevel.cs b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerWorldLevel.cs index 937b386a..79bf524e 100644 --- a/GameServer/Game/Mission/FinishType/Handler/MissionHandlerWorldLevel.cs +++ b/GameServer/Game/Mission/FinishType/Handler/MissionHandlerWorldLevel.cs @@ -4,6 +4,7 @@ using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Player; namespace EggLink.DanhengServer.GameServer.Game.Mission.FinishType.Handler; + [MissionFinishType(MissionFinishTypeEnum.WorldLevel)] public class MissionHandlerWorldLevel : MissionFinishTypeHandler { @@ -12,7 +13,8 @@ public class MissionHandlerWorldLevel : 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) { await player.QuestManager!.UpdateQuestProgress(quest.QuestID, player.Data.WorldLevel); } diff --git a/GameServer/Game/Mission/MissionManager.cs b/GameServer/Game/Mission/MissionManager.cs index 53519418..de57eb02 100644 --- a/GameServer/Game/Mission/MissionManager.cs +++ b/GameServer/Game/Mission/MissionManager.cs @@ -646,30 +646,24 @@ public class MissionManager(PlayerInstance player) : BasePlayerManager(player) HashSet mainIds = []; foreach (var mainMission in GameData.MainMissionData.Values) - { - foreach (var subMission in mainMission.MissionInfo.SubMissionList) + foreach (var subMission in mainMission.MissionInfo.SubMissionList) + if (targetSubIds.Contains(subMission.ID)) { - if (targetSubIds.Contains(subMission.ID)) + info.SceneMissionInfo.SubMissionStatusList.Add(new Proto.Mission { - info.SceneMissionInfo.SubMissionStatusList.Add(new Proto.Mission - { - Id = (uint)subMission.ID, - Status = GetSubMissionStatus(subMission.ID).ToProto(), - Progress = (uint)GetMissionProgress(subMission.ID) - }); + Id = (uint)subMission.ID, + Status = GetSubMissionStatus(subMission.ID).ToProto(), + Progress = (uint)GetMissionProgress(subMission.ID) + }); - mainIds.Add(mainMission.MainMissionID); - } + mainIds.Add(mainMission.MainMissionID); } - } foreach (var mainId in mainIds) - { if (GetMainMissionStatus(mainId) == MissionPhaseEnum.Finish) info.SceneMissionInfo.FinishedMainMissionIdList.Add((uint)mainId); else if (GetMainMissionStatus(mainId) == MissionPhaseEnum.Accept) info.SceneMissionInfo.UnfinishedMainMissionIdList.Add((uint)mainId); - } } #endregion diff --git a/GameServer/Game/Mission/StoryLineManager.cs b/GameServer/Game/Mission/StoryLineManager.cs index 6ec55a33..a239fa79 100644 --- a/GameServer/Game/Mission/StoryLineManager.cs +++ b/GameServer/Game/Mission/StoryLineManager.cs @@ -12,7 +12,8 @@ namespace EggLink.DanhengServer.GameServer.Game.Mission; public class StoryLineManager(PlayerInstance player) : BasePlayerManager(player) { - public StoryLineData StoryLineData { get; set; } = DatabaseHelper.Instance!.GetInstanceOrCreateNew(player.Uid); + public StoryLineData StoryLineData { get; set; } = + DatabaseHelper.Instance!.GetInstanceOrCreateNew(player.Uid); public async ValueTask CheckIfEnterStoryLine() { @@ -221,4 +222,4 @@ public class StoryLineManager(PlayerInstance player) : BasePlayerManager(player) { await Player.SendPacket(new PacketStoryLineInfoScNotify(Player)); } -} +} \ No newline at end of file diff --git a/GameServer/Game/Player/Components/SwitchHandComponent.cs b/GameServer/Game/Player/Components/SwitchHandComponent.cs index f8d10cf1..ffc592cf 100644 --- a/GameServer/Game/Player/Components/SwitchHandComponent.cs +++ b/GameServer/Game/Player/Components/SwitchHandComponent.cs @@ -26,10 +26,7 @@ public class SwitchHandComponent(PlayerInstance player) : BasePlayerComponent(pl { var excel = GameData.MazePuzzleSwitchHandData.GetValueOrDefault(configId); if (excel == null) return (Retcode.RetInteractConfigNotExist, null); - if (Player.SceneData!.SwitchHandData.TryGetValue(configId, out var info)) - { - return (Retcode.RetSucc, info); - } + if (Player.SceneData!.SwitchHandData.TryGetValue(configId, out var info)) return (Retcode.RetSucc, info); // create a new one info = new SwitchHandInfo @@ -39,7 +36,8 @@ public class SwitchHandComponent(PlayerInstance player) : BasePlayerComponent(pl // set default values var floorInfo = GameData.GetFloorInfo(excel.FloorID); if (floorInfo == null) return (Retcode.RetInteractConfigNotExist, null); - if (!floorInfo.Groups.TryGetValue(excel.SwitchHandID[0], out var groupInfo)) return (Retcode.RetReqParaInvalid, null); + if (!floorInfo.Groups.TryGetValue(excel.SwitchHandID[0], out var groupInfo)) + return (Retcode.RetReqParaInvalid, null); var prop = groupInfo.PropList.FirstOrDefault(x => x.ID == excel.SwitchHandID[1]); if (prop == null) return (Retcode.RetReqParaInvalid, null); diff --git a/GameServer/Game/Player/PlayerInstance.SceneActions.cs b/GameServer/Game/Player/PlayerInstance.SceneActions.cs index 33c40f61..2b53d27f 100644 --- a/GameServer/Game/Player/PlayerInstance.SceneActions.cs +++ b/GameServer/Game/Player/PlayerInstance.SceneActions.cs @@ -79,32 +79,32 @@ public partial class PlayerInstance switch (newState) { case PropStateEnum.Closed: - { - foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupId)) - if (p.Excel.PropType == PropTypeEnum.PROP_TREASURE_CHEST) - { - await p.SetState(PropStateEnum.ChestClosed); - } - else if (p.Excel.PropType == prop.Excel.PropType) - { - // Skip - } - else - { - await p.SetState(PropStateEnum.Open); - } - - break; - } - case PropStateEnum.Open: - { - 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)) + { + foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupId)) + if (p.Excel.PropType == PropTypeEnum.PROP_TREASURE_CHEST) + { + await p.SetState(PropStateEnum.ChestClosed); + } + else if (p.Excel.PropType == prop.Excel.PropType) + { + // Skip + } + else + { await p.SetState(PropStateEnum.Open); + } - break; - } + break; + } + case PropStateEnum.Open: + { + 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; + } } break; @@ -142,9 +142,7 @@ public partial class PlayerInstance if (prop.Excel.ID == 104039) { foreach (var p in SceneInstance.GetEntitiesInGroup(prop.GroupId)) - { await p.SetState(newState); - } await MissionManager!.OnPlayerInteractWithProp(); } @@ -378,7 +376,8 @@ public partial class PlayerInstance Data.Pos = pos; Data.Rot = rot; var notSendMove = true; - if (planeId != Data.PlaneId || floorId != Data.FloorId || entryId != Data.EntryId || SceneInstance == null || !mapTp) + if (planeId != Data.PlaneId || floorId != Data.FloorId || entryId != Data.EntryId || SceneInstance == null || + !mapTp) { if (SceneInstance != null) await SceneInstance.OnDestroy(); diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index f80c95a1..8cf36e36 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -238,13 +238,9 @@ public partial class PlayerInstance(PlayerData data) if (ConfigManager.Config.ServerOption.EnableMission) await MissionManager!.AcceptMainMissionByCondition(); foreach (var friendDevelopmentInfoPb in FriendRecordData.DevelopmentInfos.ToArray()) - { if (Extensions.GetUnixSec() - friendDevelopmentInfoPb.Time >= TimeSpan.TicksPerDay * 7 / TimeSpan.TicksPerSecond) - { FriendRecordData.DevelopmentInfos.Remove(friendDevelopmentInfoPb); - } - } await QuestManager!.AcceptQuestByCondition(); } @@ -497,7 +493,8 @@ public partial class PlayerInstance(PlayerData data) public T GetComponent() where T : BasePlayerComponent { - return Components.OfType().FirstOrDefault() ?? throw new InvalidOperationException($"Component {typeof(T)} not found."); + return Components.OfType().FirstOrDefault() ?? + throw new InvalidOperationException($"Component {typeof(T)} not found."); } #endregion diff --git a/GameServer/Game/Raid/RaidManager.cs b/GameServer/Game/Raid/RaidManager.cs index 43c77f56..9d94457c 100644 --- a/GameServer/Game/Raid/RaidManager.cs +++ b/GameServer/Game/Raid/RaidManager.cs @@ -61,7 +61,8 @@ public class RaidManager : BasePlayerManager #region Player Action - public async ValueTask EnterRaid(int raidId, int worldLevel, List? avatarList = null, bool enterSaved = false) + public async ValueTask EnterRaid(int raidId, int worldLevel, List? avatarList = null, + bool enterSaved = false) { if (RaidData.CurRaidId != 0) return null; @@ -279,9 +280,7 @@ public class RaidManager : BasePlayerManager GameData.MainMissionData.TryGetValue(missionId, out var mission); if (mission?.MissionInfo.SubMissionList == null) continue; foreach (var i in mission.MissionInfo.SubMissionList.Select(x => x.LevelFloorID).ToHashSet()) - { floorIds.Add(i); - } } dict.Remove(worldLevel); @@ -302,4 +301,4 @@ public class RaidManager : BasePlayerManager } #endregion -} +} \ No newline at end of file diff --git a/GameServer/Game/Scene/Component/EraFlipperSceneComponent.cs b/GameServer/Game/Scene/Component/EraFlipperSceneComponent.cs index 7134144d..ee2499ec 100644 --- a/GameServer/Game/Scene/Component/EraFlipperSceneComponent.cs +++ b/GameServer/Game/Scene/Component/EraFlipperSceneComponent.cs @@ -51,10 +51,7 @@ public class EraFlipperSceneComponent(SceneInstance scene) : BaseSceneComponent( foreach (var data in dataList) { SceneInst.Player.SceneData!.EraFlipperData.RegionState[(int)data.EraFlipperRegionId] = (int)data.State; - if (data.EraFlipperRegionId == CurRegionId) - { - RegionState = (int)data.State; - } + if (data.EraFlipperRegionId == CurRegionId) RegionState = (int)data.State; } } } \ No newline at end of file diff --git a/GameServer/Game/Scene/Component/RainbowSceneComponent.cs b/GameServer/Game/Scene/Component/RainbowSceneComponent.cs index dcbf9c02..758127dd 100644 --- a/GameServer/Game/Scene/Component/RainbowSceneComponent.cs +++ b/GameServer/Game/Scene/Component/RainbowSceneComponent.cs @@ -15,7 +15,7 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce CurTargetPuzzleGroupId = SceneInst.Player.SceneData!.FloorTargetPuzzleGroupData.GetValueOrDefault(SceneInst.FloorId, 0); - SceneInst.GroupPropertyUpdated += GroupPropertyUpdated; + SceneInst.GroupPropertyUpdated += GroupPropertyUpdated; return ValueTask.CompletedTask; } @@ -39,7 +39,6 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce private async ValueTask ExecuteRainbowActions(List actions) { foreach (var action in actions) - { switch (action.ActionType) { case SceneActionTypeEnum.Unknown: @@ -66,7 +65,6 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce await CallCurrentTargetPuzzlePropertyChanged(action.Params); break; } - } } private async ValueTask SetGroupProperty(Dictionary param) @@ -116,10 +114,8 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce // check if group property value equal to target value var groupPropertyValue = SceneInst.GetGroupProperty(groupId, propertyName); if (groupPropertyValue == propertyValue) - { // execute actions await ExecuteRainbowActions(actions); - } } private async ValueTask SetFloorSavedValue(Dictionary param) @@ -136,7 +132,7 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce private async ValueTask CallCurrentTargetPuzzlePropertyAction(Dictionary param) { var propertyName = (string)(param.GetValueOrDefault("PropertyName") ?? string.Empty); - + if (string.IsNullOrEmpty(propertyName)) return; // get current target puzzle group actions @@ -147,7 +143,8 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce var propertyAction = modifiedGroupActions.GetValueOrDefault(propertyName); // get cur actions - var targetActions = propertyAction?.GetValueOrDefault(SceneInst.GetGroupProperty(CurTargetPuzzleGroupId, propertyName)); + var targetActions = + propertyAction?.GetValueOrDefault(SceneInst.GetGroupProperty(CurTargetPuzzleGroupId, propertyName)); if (targetActions == null) return; // execute actions @@ -158,7 +155,7 @@ public class RainbowSceneComponent(SceneInstance scene) : BaseSceneComponent(sce { var propertyName = (string)(param.GetValueOrDefault("PropertyName") ?? string.Empty); var propertyValue = (int)(long)(param.GetValueOrDefault("PropertyValue") ?? 0); - + if (string.IsNullOrEmpty(propertyName)) return; // get current target puzzle group actions diff --git a/GameServer/Game/Scene/Entity/EntityMonster.cs b/GameServer/Game/Scene/Entity/EntityMonster.cs index b40f2724..e0039cbb 100644 --- a/GameServer/Game/Scene/Entity/EntityMonster.cs +++ b/GameServer/Game/Scene/Entity/EntityMonster.cs @@ -37,6 +37,36 @@ public class EntityMonster( public override int EntityId { get; set; } = 0; public override int GroupId { get; set; } = groupId; + 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 override async ValueTask AddBuff(SceneBuff buff) { if (!GameData.MazeBuffData.TryGetValue(buff.BuffId * 10 + buff.BuffLevel, out var buffExcel)) return; @@ -102,36 +132,6 @@ 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; diff --git a/GameServer/Game/Scene/SceneEntityLoader.cs b/GameServer/Game/Scene/SceneEntityLoader.cs index 5af4d089..6c3c1eb2 100644 --- a/GameServer/Game/Scene/SceneEntityLoader.cs +++ b/GameServer/Game/Scene/SceneEntityLoader.cs @@ -77,7 +77,8 @@ public class SceneEntityLoader(SceneInstance scene) Scene.Groups.Remove(group.Id); } else if (!group.SavedValueCondition.IsTrue( - Scene.Player.SceneData!.GetFloorSavedValues(Scene.FloorId))) // condition: Saved Value Condition + Scene.Player.SceneData! + .GetFloorSavedValues(Scene.FloorId))) // condition: Saved Value Condition { foreach (var entity in Scene.Entities.Values.Where(entity => entity.GroupId == group.Id)) { @@ -173,7 +174,7 @@ public class SceneEntityLoader(SceneInstance scene) if (info.RelatedBattleId.Count > 0 && !Scene.Player.MissionManager!.GetRunningSubMissionList().Any(x => x.FinishType == MissionFinishTypeEnum.StageWin && info.RelatedBattleId.Contains(x.ParamInt1))) - return null; // mission not activated + return null; // mission not activated // TODO atmosphere conditions diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index f9e3fba2..8947e0a7 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -3,6 +3,7 @@ using EggLink.DanhengServer.Data.Config.Scene; using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Database.Avatar; using EggLink.DanhengServer.Enums.Avatar; +using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.Enums.Scene; using EggLink.DanhengServer.GameServer.Game.Activity.Loaders; using EggLink.DanhengServer.GameServer.Game.Battle; @@ -18,8 +19,6 @@ using EggLink.DanhengServer.GameServer.Game.Scene.Entity; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene; using EggLink.DanhengServer.Proto; using EggLink.DanhengServer.Util; -using System.Management; -using EggLink.DanhengServer.Enums.Mission; namespace EggLink.DanhengServer.GameServer.Game.Scene; @@ -94,9 +93,7 @@ public class SceneInstance .GetValueOrDefault(entity.Value.GroupId, []); foreach (var info in property.Values.Where(x => x.Side != GroupPropertySideEnum.ClientOnly)) - { resProperty.Add(info.Name, savedProp.GetValueOrDefault(info.Name, info.DefaultValue)); - } groups.Add(new SceneEntityGroupInfo { @@ -104,6 +101,7 @@ public class SceneInstance GroupPropertyMap = { resProperty } }); } + groups[groups.FindIndex(x => x.GroupId == entity.Value.GroupId)].EntityList.Add(entity.Value.ToProto()); } @@ -117,9 +115,7 @@ public class SceneInstance .GetValueOrDefault(groupId, []); foreach (var info in property.Values.Where(x => x.Side != GroupPropertySideEnum.ClientOnly)) - { resProperty.Add(info.Name, savedProp.GetValueOrDefault(info.Name, info.DefaultValue)); - } groups.Add(new SceneEntityGroupInfo { @@ -247,12 +243,13 @@ public class SceneInstance EntityLoader = new TrialActivityEntityLoader(this, Player); break; default: - EntityLoader = Player.StoryLineManager?.StoryLineData.CurStoryLineId != 0 ? new StoryLineEntityLoader(this) : new SceneEntityLoader(this); + EntityLoader = Player.StoryLineManager?.StoryLineData.CurStoryLineId != 0 + ? new StoryLineEntityLoader(this) + : new SceneEntityLoader(this); break; } foreach (var module in floor.LevelFeatureModules.ToHashSet()) - { switch (module) { case LevelFeatureTypeEnum.EraFlipper: @@ -262,12 +259,9 @@ public class SceneInstance Components.Add(new RotatableRegionSceneComponent(this)); break; } - } if (GameData.SceneRainbowGroupPropertyData.FloorProperty.ContainsKey(FloorId)) - { Components.Add(new RainbowSceneComponent(this)); - } System.Threading.Tasks.Task.Run(async () => { await EntityLoader.LoadEntity(); }).Wait(); @@ -281,13 +275,15 @@ public class SceneInstance #region Event public delegate ValueTask GroupPropertyUpdateArg(GroupPropertyRefreshData data); + public event GroupPropertyUpdateArg? GroupPropertyUpdated; #endregion #region Scene Actions - public async ValueTask UpdateGroupProperty(int groupId, string name, int value, bool callEvent = true) + public async ValueTask UpdateGroupProperty(int groupId, string name, int value, + bool callEvent = true) { // save if (!Player.SceneData!.GroupPropertyData.TryGetValue(FloorId, out var groupData)) @@ -318,13 +314,9 @@ public class SceneInstance if (callEvent && GroupPropertyUpdated != null) await GroupPropertyUpdated(res); if (name == "SGP_PuzzleState" && group.ControlFloorSavedValue.Count > 0) - { // set fsv foreach (var key in group.ControlFloorSavedValue) - { await UpdateFloorSavedValue(key, value); - } - } return res; } @@ -337,7 +329,7 @@ public class SceneInstance Player.SceneData.FloorSavedData[FloorId] = floorSavedData; } - if (FloorInfo?.FloorSavedValue.All(x => x.Name != name) == true) return; // not exist + if (FloorInfo?.FloorSavedValue.All(x => x.Name != name) == true) return; // not exist floorSavedData[name] = value; @@ -490,10 +482,7 @@ public class SceneInstance public async ValueTask InitializeComponents() { - foreach (var component in Components) - { - await component.Initialize(); - } + foreach (var component in Components) await component.Initialize(); } public T? GetComponent() where T : BaseSceneComponent @@ -724,10 +713,6 @@ public class SceneInstance public class AvatarSceneInfo : BaseGameEntity, IGameModifier { - public BaseAvatarInfo AvatarInfo { get; set; } - public AvatarType AvatarType { get; set; } - public PlayerInstance Player { get; set; } - public AvatarSceneInfo(BaseAvatarInfo avatarInfo, AvatarType avatarType, PlayerInstance player) { AvatarInfo = avatarInfo; @@ -752,10 +737,49 @@ public class AvatarSceneInfo : BaseGameEntity, IGameModifier } } + public BaseAvatarInfo AvatarInfo { get; set; } + public AvatarType AvatarType { get; set; } + public PlayerInstance Player { get; set; } + public override int EntityId { get; set; } public override int GroupId { get; set; } = 0; + public List Modifiers { get; set; } = []; + + public async ValueTask AddModifier(string modifierName) + { + if (Modifiers.Contains(modifierName)) return; + Modifiers.Add(modifierName); + + GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); + GameData.AdventureAbilityConfigListData.TryGetValue(AvatarInfo.AvatarId, out var avatarAbility); + if (modifier == null || avatarAbility == null) return; + + await Player.TaskManager!.AbilityLevelTask.TriggerTasks(avatarAbility, modifier.OnCreate, this, [], + new SceneCastSkillCsReq + { + TargetMotion = new MotionInfo + { + Pos = Player.Data.Pos?.ToProto() ?? new Vector(), + Rot = Player.Data.Rot?.ToProto() ?? new Vector() + } + }); + } + + public async ValueTask RemoveModifier(string modifierName) + { + if (!Modifiers.Contains(modifierName)) return; + + Modifiers.Remove(modifierName); + GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); + GameData.AdventureAbilityConfigListData.TryGetValue(AvatarInfo.AvatarId, out var avatarAbility); + if (modifier == null || avatarAbility == null) return; + + await Player.TaskManager!.AbilityLevelTask.TriggerTasks(avatarAbility, modifier.OnDestroy, this, [], + new SceneCastSkillCsReq()); + } + public override async ValueTask AddBuff(SceneBuff buff) { if (!GameData.MazeBuffData.TryGetValue(buff.BuffId * 10 + buff.BuffLevel, out var buffExcel)) return; @@ -819,41 +843,6 @@ public class AvatarSceneInfo : BaseGameEntity, IGameModifier }; } - public List Modifiers { get; set; } = []; - - public async ValueTask AddModifier(string modifierName) - { - if (Modifiers.Contains(modifierName)) return; - Modifiers.Add(modifierName); - - GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); - GameData.AdventureAbilityConfigListData.TryGetValue(AvatarInfo.AvatarId, out var avatarAbility); - if (modifier == null || avatarAbility == null) return; - - await Player.TaskManager!.AbilityLevelTask.TriggerTasks(avatarAbility, modifier.OnCreate, this, [], - new SceneCastSkillCsReq - { - TargetMotion = new MotionInfo - { - Pos = Player.Data.Pos?.ToProto() ?? new Vector(), - Rot = Player.Data.Rot?.ToProto() ?? new Vector() - } - }); - } - - public async ValueTask RemoveModifier(string modifierName) - { - if (!Modifiers.Contains(modifierName)) return; - - Modifiers.Remove(modifierName); - GameData.AdventureModifierData.TryGetValue(modifierName, out var modifier); - GameData.AdventureAbilityConfigListData.TryGetValue(AvatarInfo.AvatarId, out var avatarAbility); - if (modifier == null || avatarAbility == null) return; - - await Player.TaskManager!.AbilityLevelTask.TriggerTasks(avatarAbility, modifier.OnDestroy, this, [], - new SceneCastSkillCsReq()); - } - public async ValueTask RemoveBuff(int buffId) { if (!GameData.MazeBuffData.TryGetValue(buffId * 10 + 1, out var buffExcel)) return; diff --git a/GameServer/Game/Shop/ShopService.cs b/GameServer/Game/Shop/ShopService.cs index 2ea792da..43be32e2 100644 --- a/GameServer/Game/Shop/ShopService.cs +++ b/GameServer/Game/Shop/ShopService.cs @@ -3,7 +3,6 @@ using EggLink.DanhengServer.Database.Inventory; using EggLink.DanhengServer.Enums.Item; using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Game.Player; -using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Game.Shop; @@ -32,7 +31,7 @@ public class ShopService(PlayerInstance player) : BasePlayerManager(player) { var item = await Player.InventoryManager!.AddItem(itemConfig.ID, count, false); if (item != null) - { + { if (GameData.ItemUseDataData.TryGetValue(item.ItemId, out var useData) && useData.IsAutoUse) { var res = await Player.InventoryManager!.UseItem(item.ItemId); diff --git a/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs b/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs index 1159b49c..331621d4 100644 --- a/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs +++ b/GameServer/Game/Task/AvatarTask/AbilityLevelTask.cs @@ -46,7 +46,8 @@ public class AbilityLevelTask(PlayerInstance player) #region Manage public async ValueTask TriggerTasks(AdventureAbilityConfigListInfo abilities, - List tasks, BaseGameEntity casterEntity, List targetEntities, SceneCastSkillCsReq req, + List tasks, BaseGameEntity casterEntity, List targetEntities, + SceneCastSkillCsReq req, string? modifierName = null) { BattleInstance? instance = null; @@ -98,7 +99,7 @@ public class AbilityLevelTask(PlayerInstance player) if (methodProp == null) return null; method = (ExecuteTask)Delegate.CreateDelegate(typeof(ExecuteTask), this, methodProp); - _cachedTasks[methodName] = method; // cached + _cachedTasks[methodName] = method; // cached return method; } @@ -127,13 +128,9 @@ public class AbilityLevelTask(PlayerInstance player) { var resp = await method(param with { Act = predicateTaskList.Predicate }); if (resp is not bool r) - { res = false; - } else - { res = predicateTaskList.Predicate.Inverse ? !r : r; - } } if (res) diff --git a/GameServer/Game/Task/AvatarTask/SummonUnitLevelTask.cs b/GameServer/Game/Task/AvatarTask/SummonUnitLevelTask.cs index f1e464ed..b50f9ff7 100644 --- a/GameServer/Game/Task/AvatarTask/SummonUnitLevelTask.cs +++ b/GameServer/Game/Task/AvatarTask/SummonUnitLevelTask.cs @@ -1,9 +1,9 @@ -using EggLink.DanhengServer.Data.Config.Task; +using System.Collections.Concurrent; +using EggLink.DanhengServer.Data.Config.Task; using EggLink.DanhengServer.GameServer.Game.Scene; using EggLink.DanhengServer.GameServer.Game.Scene.Entity; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup; using EggLink.DanhengServer.Proto; -using System.Collections.Concurrent; using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.GameServer.Game.Task.AvatarTask; @@ -12,7 +12,8 @@ public class SummonUnitLevelTask { #region Task Condition - public async ValueTask ByIsContainAdventureModifier(TaskConfigInfo act, List targetEntities, + public async ValueTask ByIsContainAdventureModifier(TaskConfigInfo act, + List targetEntities, EntitySummonUnit? summonUnit) { await ValueTask.CompletedTask; @@ -24,7 +25,8 @@ public class SummonUnitLevelTask #region Manage - public void TriggerTasks(List tasks, List targetEntities, EntitySummonUnit? summonUnit) + public void TriggerTasks(List tasks, List targetEntities, + EntitySummonUnit? summonUnit) { foreach (var task in tasks) TriggerTask(task, targetEntities, summonUnit); } @@ -55,12 +57,13 @@ public class SummonUnitLevelTask if (methodProp == null) return null; method = (ExecuteTask)Delegate.CreateDelegate(typeof(ExecuteTask), this, methodProp); - _cachedTasks[methodName] = method; // cached + _cachedTasks[methodName] = method; // cached return method; } - private delegate ValueTask ExecuteTask(TaskConfigInfo act, List targetEntities, EntitySummonUnit? summonUnit); + private delegate ValueTask ExecuteTask(TaskConfigInfo act, List targetEntities, + EntitySummonUnit? summonUnit); private readonly ConcurrentDictionary _cachedTasks = []; diff --git a/GameServer/Game/Task/LevelTask.cs b/GameServer/Game/Task/LevelTask.cs index 6f7d1a11..89f56c15 100644 --- a/GameServer/Game/Task/LevelTask.cs +++ b/GameServer/Game/Task/LevelTask.cs @@ -1,4 +1,5 @@ -using EggLink.DanhengServer.Data.Config; +using System.Collections.Concurrent; +using EggLink.DanhengServer.Data.Config; using EggLink.DanhengServer.Data.Config.Scene; using EggLink.DanhengServer.Data.Config.Task; using EggLink.DanhengServer.Data.Excel; @@ -7,9 +8,7 @@ using EggLink.DanhengServer.Enums.Scene; using EggLink.DanhengServer.Enums.Task; using EggLink.DanhengServer.GameServer.Game.Player; using EggLink.DanhengServer.GameServer.Game.Scene.Entity; -using EggLink.DanhengServer.GameServer.Game.Task.AvatarTask; using EggLink.DanhengServer.Proto; -using System.Collections.Concurrent; namespace EggLink.DanhengServer.GameServer.Game.Task; @@ -19,7 +18,8 @@ public class LevelTask(PlayerInstance player) #region Prop Target - public async ValueTask TargetFetchAdvPropEx(TargetEvaluator act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask TargetFetchAdvPropEx(TargetEvaluator act, SubMissionData subMission, + GroupInfo? group = null) { await ValueTask.CompletedTask; @@ -71,12 +71,13 @@ public class LevelTask(PlayerInstance player) if (methodProp == null) return null; method = (ExecuteTask)Delegate.CreateDelegate(typeof(ExecuteTask), this, methodProp); - _cachedTasks[methodName] = method; // cached + _cachedTasks[methodName] = method; // cached return method; } - private delegate ValueTask ExecuteTask(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null); + private delegate ValueTask ExecuteTask(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null); private readonly ConcurrentDictionary _cachedTasks = []; @@ -102,7 +103,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask TriggerCustomString(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask TriggerCustomString(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is TriggerCustomString triggerCustomString) { @@ -128,7 +130,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask EnterMapByCondition(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask EnterMapByCondition(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is EnterMapByCondition enterMapByCondition) await Player.EnterSceneByEntranceId(enterMapByCondition.EntranceID.GetValue(), 0, 0, true); @@ -136,7 +139,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask TriggerPerformance(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask TriggerPerformance(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is TriggerPerformance triggerPerformance) { @@ -153,7 +157,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask PredicateTaskList(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask PredicateTaskList(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is PredicateTaskList predicateTaskList) { @@ -175,7 +180,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask ChangePropState(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ChangePropState(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (subMission.SubMissionInfo?.FinishType != MissionFinishTypeEnum.PropState) return null; @@ -209,7 +215,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask CreateTrialPlayer(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask CreateTrialPlayer(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (subMission.SubMissionInfo?.FinishType == MissionFinishTypeEnum.GetTrialAvatar) await Player.LineupManager!.AddAvatarToCurTeam(subMission.SubMissionInfo.ParamInt1); @@ -221,7 +228,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask ReplaceTrialPlayer(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ReplaceTrialPlayer(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (subMission.SubMissionInfo?.FinishType == MissionFinishTypeEnum.GetTrialAvatar) { @@ -241,7 +249,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask StoryLineReplaceTrialPlayer(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask StoryLineReplaceTrialPlayer(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (subMission.SubMissionInfo?.FinishType == MissionFinishTypeEnum.StoryLineAddTrialAvatar) { @@ -253,7 +262,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask ReplaceVirtualTeam(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ReplaceVirtualTeam(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (Player.LineupManager!.GetCurLineup()?.IsExtraLineup() != true) return null; @@ -314,7 +324,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask DestroyTrialPlayer(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask DestroyTrialPlayer(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (subMission.SubMissionInfo?.FinishType == MissionFinishTypeEnum.DelTrialAvatar) await Player.LineupManager!.RemoveAvatarFromCurTeam(subMission.SubMissionInfo.ParamInt1); @@ -322,7 +333,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask ChangeGroupState(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ChangeGroupState(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (group != null) foreach (var entity in Player.SceneInstance?.Entities.Values.ToList() ?? []) @@ -346,7 +358,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask TriggerEntityEvent(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask TriggerEntityEvent(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is TriggerEntityEvent triggerEntityEvent) if (group != null) @@ -359,7 +372,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask PropSetupUITrigger(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask PropSetupUITrigger(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is PropSetupUITrigger propSetupUiTrigger) foreach (var task in propSetupUiTrigger.ButtonCallback) @@ -370,7 +384,8 @@ public class LevelTask(PlayerInstance player) return null; } - public async ValueTask PropStateExecute(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask PropStateExecute(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { if (act is PropStateExecute propStateExecute) { @@ -392,7 +407,8 @@ public class LevelTask(PlayerInstance player) #region Task Condition - public async ValueTask ByCompareSubMissionState(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ByCompareSubMissionState(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { await ValueTask.CompletedTask; @@ -405,7 +421,8 @@ public class LevelTask(PlayerInstance player) return false; } - public async ValueTask ByCompareFloorSavedValue(TaskConfigInfo act, SubMissionData subMission, GroupInfo? group = null) + public async ValueTask ByCompareFloorSavedValue(TaskConfigInfo act, SubMissionData subMission, + GroupInfo? group = null) { await ValueTask.CompletedTask; diff --git a/GameServer/Plugin/Event/PluginEvent.cs b/GameServer/Plugin/Event/PluginEvent.cs index 5593fd16..341263cc 100644 --- a/GameServer/Plugin/Event/PluginEvent.cs +++ b/GameServer/Plugin/Event/PluginEvent.cs @@ -1,6 +1,5 @@ using EggLink.DanhengServer.Command; using EggLink.DanhengServer.GameServer.Game.Battle; -using EggLink.DanhengServer.GameServer.Game.Challenge; using EggLink.DanhengServer.GameServer.Game.Challenge.Definitions; using EggLink.DanhengServer.GameServer.Game.Player; using EggLink.DanhengServer.GameServer.Game.Scene; diff --git a/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs b/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs index 0f25f1d3..498a1a1f 100644 --- a/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs +++ b/GameServer/Server/Packet/Recv/EraFlipper/HandlerChangeEraFlipperDataCsReq.cs @@ -1,5 +1,4 @@ -using EggLink.DanhengServer.Enums.Mission; -using EggLink.DanhengServer.GameServer.Game.Scene.Component; +using EggLink.DanhengServer.GameServer.Game.Scene.Component; using EggLink.DanhengServer.GameServer.Server.Packet.Send.EraFlipper; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; diff --git a/GameServer/Server/Packet/Recv/EraFlipper/HandlerResetEraFlipperDataCsReq.cs b/GameServer/Server/Packet/Recv/EraFlipper/HandlerResetEraFlipperDataCsReq.cs index 81aa7258..668c5fa4 100644 --- a/GameServer/Server/Packet/Recv/EraFlipper/HandlerResetEraFlipperDataCsReq.cs +++ b/GameServer/Server/Packet/Recv/EraFlipper/HandlerResetEraFlipperDataCsReq.cs @@ -20,7 +20,8 @@ public class HandlerResetEraFlipperDataCsReq : Handler } // leave - await connection.SendPacket(new PacketResetEraFlipperDataScRsp(component.CurRegionId, component.RegionState, req.PAHMAGPFDDJ)); + await connection.SendPacket( + new PacketResetEraFlipperDataScRsp(component.CurRegionId, component.RegionState, req.PAHMAGPFDDJ)); component.LeaveFlipperRegion(); } diff --git a/GameServer/Server/Packet/Recv/MiscModule/HandlerMazeKillDirectCsReq.cs b/GameServer/Server/Packet/Recv/MiscModule/HandlerMazeKillDirectCsReq.cs index aa437d45..27e0047d 100644 --- a/GameServer/Server/Packet/Recv/MiscModule/HandlerMazeKillDirectCsReq.cs +++ b/GameServer/Server/Packet/Recv/MiscModule/HandlerMazeKillDirectCsReq.cs @@ -16,14 +16,10 @@ public class HandlerMazeKillDirectCsReq : Handler { if (!connection.Player!.SceneInstance!.Entities.TryGetValue((int)entityId, out var entity)) continue; if (entity is EntityMonster monster) - { await monster.Kill(); - } else - { // remove entity if it's not a monster connection.Player.SceneInstance.Entities.Remove((int)entityId); - } } await connection.SendPacket(new PacketMazeKillDirectScRsp(req.EntityList.ToList())); diff --git a/GameServer/Server/Packet/Recv/Player/HandlerPlayerGetTokenCsReq.cs b/GameServer/Server/Packet/Recv/Player/HandlerPlayerGetTokenCsReq.cs index 322425d6..7076cc06 100644 --- a/GameServer/Server/Packet/Recv/Player/HandlerPlayerGetTokenCsReq.cs +++ b/GameServer/Server/Packet/Recv/Player/HandlerPlayerGetTokenCsReq.cs @@ -22,7 +22,8 @@ public class HandlerPlayerGetTokenCsReq : Handler // call dispatch /get_account_info api to get account info int uid; - if (ConfigManager.Config.ServerOption.ServerConfig.RunDispatch || string.IsNullOrEmpty(ConfigManager.Config.ServerOption.ServerConfig.FromDispatchBaseUrl)) + if (ConfigManager.Config.ServerOption.ServerConfig.RunDispatch || + string.IsNullOrEmpty(ConfigManager.Config.ServerOption.ServerConfig.FromDispatchBaseUrl)) { // dispatch running, use local db var account = DatabaseHelper.Instance?.GetInstance(int.Parse(req.AccountUid)); diff --git a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandDataCsReq.cs b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandDataCsReq.cs index 19c6d68f..d542363a 100644 --- a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandDataCsReq.cs +++ b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandDataCsReq.cs @@ -17,13 +17,9 @@ public class HandlerSwitchHandDataCsReq : Handler { var info = component.GetHandInfo((int)req.ConfigId); if (info.Item2 == null) - { await connection.SendPacket(new PacketSwitchHandDataScRsp(info.Item1)); - } else - { await connection.SendPacket(new PacketSwitchHandDataScRsp(info.Item2)); - } } else { diff --git a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandFinishCsReq.cs b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandFinishCsReq.cs index b6e04341..44902671 100644 --- a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandFinishCsReq.cs +++ b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandFinishCsReq.cs @@ -14,12 +14,8 @@ public class HandlerSwitchHandFinishCsReq : Handler var info = component.GetHandInfo(component.RunningHandConfigId); component.RunningHandConfigId = 0; if (info.Item2 == null) - { await connection.SendPacket(new PacketSwitchHandFinishScRsp(info.Item1)); - } else - { await connection.SendPacket(new PacketSwitchHandFinishScRsp(info.Item2)); - } } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetGameCsReq.cs b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetGameCsReq.cs index 0caebe57..50a21643 100644 --- a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetGameCsReq.cs +++ b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetGameCsReq.cs @@ -16,12 +16,8 @@ public class HandlerSwitchHandResetGameCsReq : Handler var info = component.UpdateHandInfo(req.ResetHandInfo); if (info.Item2 == null) - { await connection.SendPacket(new PacketSwitchHandResetGameScRsp(info.Item1)); - } else - { await connection.SendPacket(new PacketSwitchHandResetGameScRsp(info.Item2)); - } } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetHandPosCsReq.cs b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetHandPosCsReq.cs index 06e9bc07..19c2f366 100644 --- a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetHandPosCsReq.cs +++ b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandResetHandPosCsReq.cs @@ -14,7 +14,7 @@ public class HandlerSwitchHandResetHandPosCsReq : Handler var req = SwitchHandResetHandPosCsReq.Parser.ParseFrom(data); var component = connection.Player!.GetComponent(); - + var info = component.GetHandInfo((int)req.ConfigId); if (info.Item2 == null) { diff --git a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandUpdateCsReq.cs b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandUpdateCsReq.cs index 1f592a26..4937ac3c 100644 --- a/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandUpdateCsReq.cs +++ b/GameServer/Server/Packet/Recv/SwitchHand/HandlerSwitchHandUpdateCsReq.cs @@ -15,12 +15,8 @@ public class HandlerSwitchHandUpdateCsReq : Handler var component = connection.Player!.GetComponent(); var info = component.UpdateHandInfo(req.OperationHandInfo); if (info.Item2 == null) - { await connection.SendPacket(new PacketSwitchHandUpdateScRsp(info.Item1, req.HandOperationInfo)); - } else - { await connection.SendPacket(new PacketSwitchHandUpdateScRsp(info.Item2, req.HandOperationInfo)); - } } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Challenge/PacketChallengeBossPhaseSettleNotify.cs b/GameServer/Server/Packet/Send/Challenge/PacketChallengeBossPhaseSettleNotify.cs index 0c9f58cc..febd4b84 100644 --- a/GameServer/Server/Packet/Send/Challenge/PacketChallengeBossPhaseSettleNotify.cs +++ b/GameServer/Server/Packet/Send/Challenge/PacketChallengeBossPhaseSettleNotify.cs @@ -1,5 +1,4 @@ -using EggLink.DanhengServer.GameServer.Game.Challenge; -using EggLink.DanhengServer.GameServer.Game.Challenge.Instances; +using EggLink.DanhengServer.GameServer.Game.Challenge.Instances; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; diff --git a/GameServer/Server/Packet/Send/Challenge/PacketChallengeSettleNotify.cs b/GameServer/Server/Packet/Send/Challenge/PacketChallengeSettleNotify.cs index d236faaa..f5c18118 100644 --- a/GameServer/Server/Packet/Send/Challenge/PacketChallengeSettleNotify.cs +++ b/GameServer/Server/Packet/Send/Challenge/PacketChallengeSettleNotify.cs @@ -1,5 +1,4 @@ -using EggLink.DanhengServer.GameServer.Game.Challenge; -using EggLink.DanhengServer.GameServer.Game.Challenge.Definitions; +using EggLink.DanhengServer.GameServer.Game.Challenge.Definitions; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; diff --git a/GameServer/Server/Packet/Send/Challenge/PacketGetChallengeGroupStatisticsScRsp.cs b/GameServer/Server/Packet/Send/Challenge/PacketGetChallengeGroupStatisticsScRsp.cs index 1c999e37..c0692178 100644 --- a/GameServer/Server/Packet/Send/Challenge/PacketGetChallengeGroupStatisticsScRsp.cs +++ b/GameServer/Server/Packet/Send/Challenge/PacketGetChallengeGroupStatisticsScRsp.cs @@ -1,13 +1,13 @@ using EggLink.DanhengServer.Database.Friend; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; -using System.Linq; namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Challenge; public class PacketGetChallengeGroupStatisticsScRsp : BasePacket { - public PacketGetChallengeGroupStatisticsScRsp(uint groupId, ChallengeGroupStatisticsPb? data) : base(CmdIds.GetChallengeGroupStatisticsScRsp) + public PacketGetChallengeGroupStatisticsScRsp(uint groupId, ChallengeGroupStatisticsPb? data) : base( + CmdIds.GetChallengeGroupStatisticsScRsp) { var proto = new GetChallengeGroupStatisticsScRsp { @@ -15,22 +15,13 @@ public class PacketGetChallengeGroupStatisticsScRsp : BasePacket }; var maxMemory = data?.MemoryGroupStatistics?.Values.MaxBy(x => x.Level); - if (maxMemory != null) - { - proto.MemoryGroup = maxMemory.ToProto(); - } + if (maxMemory != null) proto.MemoryGroup = maxMemory.ToProto(); var maxStory = data?.StoryGroupStatistics?.Values.MaxBy(x => x.Level); - if (maxStory != null) - { - proto.StoryGroup = maxStory.ToProto(); - } + if (maxStory != null) proto.StoryGroup = maxStory.ToProto(); var maxBoss = data?.BossGroupStatistics?.Values.MaxBy(x => x.Level); - if (maxBoss != null) - { - proto.BossGroup = maxBoss.ToProto(); - } + if (maxBoss != null) proto.BossGroup = maxBoss.ToProto(); SetData(proto); } diff --git a/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakGroupDataUpdateScNotify.cs b/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakGroupDataUpdateScNotify.cs index a530c061..4458bd70 100644 --- a/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakGroupDataUpdateScNotify.cs +++ b/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakGroupDataUpdateScNotify.cs @@ -5,7 +5,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.ChallengePeak; public class PacketChallengePeakGroupDataUpdateScNotify : BasePacket { - public PacketChallengePeakGroupDataUpdateScNotify(ChallengePeakLevelInfo info) : base(CmdIds.ChallengePeakGroupDataUpdateScNotify) + public PacketChallengePeakGroupDataUpdateScNotify(ChallengePeakLevelInfo info) : base( + CmdIds.ChallengePeakGroupDataUpdateScNotify) { var proto = new ChallengePeakGroupDataUpdateScNotify { diff --git a/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakSettleScNotify.cs b/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakSettleScNotify.cs index 65f0eca3..db5aaf82 100644 --- a/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakSettleScNotify.cs +++ b/GameServer/Server/Packet/Send/ChallengePeak/PacketChallengePeakSettleScNotify.cs @@ -6,7 +6,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.ChallengePeak; public class PacketChallengePeakSettleScNotify : BasePacket { - public PacketChallengePeakSettleScNotify(ChallengePeakInstance inst, List targetIdList) : base(CmdIds.ChallengePeakSettleScNotify) + public PacketChallengePeakSettleScNotify(ChallengePeakInstance inst, List targetIdList) : base( + CmdIds.ChallengePeakSettleScNotify) { var proto = new ChallengePeakSettleScNotify { diff --git a/GameServer/Server/Packet/Send/ChallengePeak/PacketGetChallengePeakDataScRsp.cs b/GameServer/Server/Packet/Send/ChallengePeak/PacketGetChallengePeakDataScRsp.cs index 05f5ec0d..a4f6a059 100644 --- a/GameServer/Server/Packet/Send/ChallengePeak/PacketGetChallengePeakDataScRsp.cs +++ b/GameServer/Server/Packet/Send/ChallengePeak/PacketGetChallengePeakDataScRsp.cs @@ -15,9 +15,7 @@ public class PacketGetChallengePeakDataScRsp : BasePacket }; foreach (var groupId in GameData.ChallengePeakGroupConfigData.Keys) - { proto.ChallengePeakLevelList.Add(player.ChallengePeakManager!.GetChallengePeakInfo(groupId)); - } SetData(proto); } diff --git a/GameServer/Server/Packet/Send/ChallengePeak/PacketSetChallengePeakBossHardModeScRsp.cs b/GameServer/Server/Packet/Send/ChallengePeak/PacketSetChallengePeakBossHardModeScRsp.cs index 30c8ce94..a00e4fb3 100644 --- a/GameServer/Server/Packet/Send/ChallengePeak/PacketSetChallengePeakBossHardModeScRsp.cs +++ b/GameServer/Server/Packet/Send/ChallengePeak/PacketSetChallengePeakBossHardModeScRsp.cs @@ -5,7 +5,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.ChallengePeak; public class PacketSetChallengePeakBossHardModeScRsp : BasePacket { - public PacketSetChallengePeakBossHardModeScRsp(uint groupId, bool isHard) : base(CmdIds.SetChallengePeakBossHardModeScRsp) + public PacketSetChallengePeakBossHardModeScRsp(uint groupId, bool isHard) : base( + CmdIds.SetChallengePeakBossHardModeScRsp) { var proto = new SetChallengePeakBossHardModeScRsp { diff --git a/GameServer/Server/Packet/Send/Friend/PacketGetFriendBattleRecordDetailScRsp.cs b/GameServer/Server/Packet/Send/Friend/PacketGetFriendBattleRecordDetailScRsp.cs index 85725c16..5eaf6354 100644 --- a/GameServer/Server/Packet/Send/Friend/PacketGetFriendBattleRecordDetailScRsp.cs +++ b/GameServer/Server/Packet/Send/Friend/PacketGetFriendBattleRecordDetailScRsp.cs @@ -10,7 +10,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.Friend; public class PacketGetFriendBattleRecordDetailScRsp : BasePacket { - public PacketGetFriendBattleRecordDetailScRsp(FriendRecordData recordData, ChallengeData challengeData, AvatarData avatarData) : base( + public PacketGetFriendBattleRecordDetailScRsp(FriendRecordData recordData, ChallengeData challengeData, + AvatarData avatarData) : base( CmdIds.GetFriendBattleRecordDetailScRsp) { var proto = new GetFriendBattleRecordDetailScRsp @@ -35,7 +36,7 @@ public class PacketGetFriendBattleRecordDetailScRsp : BasePacket { var stt = new PreLevelStatistics { - PeakLevelId = (uint)preId, + PeakLevelId = (uint)preId }; var rec = challengeData.PeakLevelDatas.GetValueOrDefault(preId); @@ -51,7 +52,9 @@ public class PacketGetFriendBattleRecordDetailScRsp : BasePacket Index = index++, Id = x, AvatarType = AvatarType.AvatarFormalType, - Level = (uint)(avatarData.FormalAvatars.Find(avatar => avatar.BaseAvatarId == x)?.Level ?? 1) + Level = + (uint)(avatarData.FormalAvatars.Find(avatar => avatar.BaseAvatarId == x)?.Level ?? + 1) }) } }; @@ -62,10 +65,9 @@ public class PacketGetFriendBattleRecordDetailScRsp : BasePacket peakRec.PreLevelSttList.Add(stt); } - var bossRec = challengeData.PeakBossLevelDatas.GetValueOrDefault(data.BossLevelID << 2 | 1); - bossRec ??= challengeData.PeakBossLevelDatas.GetValueOrDefault(data.BossLevelID << 2 | 0); + var bossRec = challengeData.PeakBossLevelDatas.GetValueOrDefault((data.BossLevelID << 2) | 1); + bossRec ??= challengeData.PeakBossLevelDatas.GetValueOrDefault((data.BossLevelID << 2) | 0); if (bossRec != null) - { peakRec.BossLevelStt = new BossLevelStatistics { PeakLevelId = (uint)bossRec.LevelId, @@ -79,13 +81,14 @@ public class PacketGetFriendBattleRecordDetailScRsp : BasePacket Index = (uint)index, Id = x, AvatarType = AvatarType.AvatarFormalType, - Level = (uint)(avatarData.FormalAvatars.Find(avatar => avatar.BaseAvatarId == x)?.Level ?? 1) + Level = + (uint)(avatarData.FormalAvatars.Find(avatar => avatar.BaseAvatarId == x)?.Level ?? + 1) }) } }, LeastRoundsCount = bossRec.RoundCnt }; - } proto.PeakRecord.Add(peakRec); } @@ -101,5 +104,5 @@ public class PacketGetFriendBattleRecordDetailScRsp : BasePacket }; SetData(proto); - } + } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/Friend/PacketGetFriendDevelopmentInfoScRsp.cs b/GameServer/Server/Packet/Send/Friend/PacketGetFriendDevelopmentInfoScRsp.cs index 0f2160ac..9a60ce76 100644 --- a/GameServer/Server/Packet/Send/Friend/PacketGetFriendDevelopmentInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/Friend/PacketGetFriendDevelopmentInfoScRsp.cs @@ -20,13 +20,9 @@ public class PacketGetFriendDevelopmentInfoScRsp : BasePacket public PacketGetFriendDevelopmentInfoScRsp(FriendRecordData data) : base(CmdIds.GetFriendDevelopmentInfoScRsp) { foreach (var friendDevelopmentInfoPb in data.DevelopmentInfos.ToArray()) - { if (Extensions.GetUnixSec() - friendDevelopmentInfoPb.Time >= TimeSpan.TicksPerDay * 7 / TimeSpan.TicksPerSecond) - { data.DevelopmentInfos.Remove(friendDevelopmentInfoPb); - } - } var proto = new GetFriendDevelopmentInfoScRsp { diff --git a/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs b/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs index cf071b2d..03e03295 100644 --- a/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/Player/PacketQueryProductInfoScRsp.cs @@ -13,12 +13,13 @@ public class PacketQueryProductInfoScRsp : BasePacket //PEKJLBINDGG = (ulong)Extensions.GetUnixSec() + 8640000, // 100 day ProductList = { - GameData.RechargeConfigData.Values.Where(x => x.ProductID.Contains("chn") && !x.ProductID.Contains("cloud")).Select(x => new Product - { - GiftType = (ProductGiftType)x.GiftType, - PriceTier = x.TierID, - ProductId = x.ProductID - }) + GameData.RechargeConfigData.Values + .Where(x => x.ProductID.Contains("chn") && !x.ProductID.Contains("cloud")).Select(x => new Product + { + GiftType = (ProductGiftType)x.GiftType, + PriceTier = x.TierID, + ProductId = x.ProductID + }) } }; diff --git a/GameServer/Server/Packet/Send/PlayerSync/PacketPlayerSyncScNotify.cs b/GameServer/Server/Packet/Send/PlayerSync/PacketPlayerSyncScNotify.cs index 68497037..4c013844 100644 --- a/GameServer/Server/Packet/Send/PlayerSync/PacketPlayerSyncScNotify.cs +++ b/GameServer/Server/Packet/Send/PlayerSync/PacketPlayerSyncScNotify.cs @@ -16,10 +16,7 @@ public class PacketPlayerSyncScNotify : BasePacket { var proto = new PlayerSyncScNotify(); - foreach (var data in datas) - { - data.SyncData(proto); - } + foreach (var data in datas) data.SyncData(proto); SetData(proto); } diff --git a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs index 2824d58f..9376dffc 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketSceneGroupRefreshScNotify.cs @@ -67,7 +67,8 @@ public class PacketSceneGroupRefreshScNotify : BasePacket { } - public PacketSceneGroupRefreshScNotify(SceneInstance scene, List refreshDataList) :base(CmdIds.SceneGroupRefreshScNotify) + public PacketSceneGroupRefreshScNotify(SceneInstance scene, List refreshDataList) : base( + CmdIds.SceneGroupRefreshScNotify) { var proto = new SceneGroupRefreshScNotify { @@ -83,6 +84,7 @@ public class PacketSceneGroupRefreshScNotify : BasePacket list = []; refreshDataDict[data.GroupId] = list; } + list.Add(data); } @@ -95,14 +97,12 @@ public class PacketSceneGroupRefreshScNotify : BasePacket }; foreach (var data in dataList) - { group.RefreshProperty.Add(new ScenePropertyRefreshInfo { GroupNewPropertyValue = data.NewValue, GroupOldPropertyValue = data.OldValue, GroupPropertyName = data.PropertyName }); - } proto.GroupRefreshList.Add(group); } diff --git a/GameServer/Server/Packet/Send/Scene/PacketUpdateGroupPropertyScRsp.cs b/GameServer/Server/Packet/Send/Scene/PacketUpdateGroupPropertyScRsp.cs index 201a5f48..170a0ab1 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketUpdateGroupPropertyScRsp.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketUpdateGroupPropertyScRsp.cs @@ -15,7 +15,8 @@ public class PacketUpdateGroupPropertyScRsp : BasePacket SetData(proto); } - public PacketUpdateGroupPropertyScRsp(GroupPropertyRefreshData data, UpdateGroupPropertyCsReq req) : base(CmdIds.UpdateGroupPropertyScRsp) + public PacketUpdateGroupPropertyScRsp(GroupPropertyRefreshData data, UpdateGroupPropertyCsReq req) : base( + CmdIds.UpdateGroupPropertyScRsp) { var proto = new UpdateGroupPropertyScRsp { diff --git a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandCoinUpdateScRsp.cs b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandCoinUpdateScRsp.cs index 090bde9a..b12367ef 100644 --- a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandCoinUpdateScRsp.cs +++ b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandCoinUpdateScRsp.cs @@ -13,6 +13,7 @@ public class PacketSwitchHandCoinUpdateScRsp : BasePacket }; SetData(proto); } + public PacketSwitchHandCoinUpdateScRsp(uint coinNum) : base(CmdIds.SwitchHandCoinUpdateScRsp) { var proto = new SwitchHandCoinUpdateScRsp diff --git a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandResetGameScRsp.cs b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandResetGameScRsp.cs index 0a1acbfc..9fe7a86b 100644 --- a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandResetGameScRsp.cs +++ b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandResetGameScRsp.cs @@ -15,6 +15,7 @@ public class PacketSwitchHandResetGameScRsp : BasePacket SetData(proto); } + public PacketSwitchHandResetGameScRsp(Retcode ret) : base(CmdIds.SwitchHandResetGameScRsp) { var proto = new SwitchHandResetGameScRsp diff --git a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandUpdateScRsp.cs b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandUpdateScRsp.cs index 0d804779..5ad37fd3 100644 --- a/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandUpdateScRsp.cs +++ b/GameServer/Server/Packet/Send/SwitchHand/PacketSwitchHandUpdateScRsp.cs @@ -6,7 +6,8 @@ namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.SwitchHand; public class PacketSwitchHandUpdateScRsp : BasePacket { - public PacketSwitchHandUpdateScRsp(SwitchHandInfo info, HandOperationInfo? operationInfo) : base(CmdIds.SwitchHandUpdateScRsp) + public PacketSwitchHandUpdateScRsp(SwitchHandInfo info, HandOperationInfo? operationInfo) : base( + CmdIds.SwitchHandUpdateScRsp) { var proto = new SwitchHandUpdateScRsp { @@ -16,7 +17,8 @@ public class PacketSwitchHandUpdateScRsp : BasePacket SetData(proto); } - public PacketSwitchHandUpdateScRsp(Retcode ret, HandOperationInfo? operationInfo) : base(CmdIds.SwitchHandUpdateScRsp) + public PacketSwitchHandUpdateScRsp(Retcode ret, HandOperationInfo? operationInfo) : base( + CmdIds.SwitchHandUpdateScRsp) { var proto = new SwitchHandUpdateScRsp { diff --git a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs index 10234314..0562989d 100644 --- a/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs +++ b/GameServer/Server/Packet/Send/TrainParty/PacketTrainPartyBuildDiyScRsp.cs @@ -16,11 +16,14 @@ public class PacketTrainPartyBuildDiyScRsp : BasePacket : new TrainPartyBuildDiyScRsp { AreaId = (uint)area.AreaId, - DynamicInfo = { area.DynamicInfo.Select(x => new AreaDynamicInfo + DynamicInfo = { - DiceSlotId = (uint)x.Key, - DiyDynamicId = (uint)x.Value - }) }, + area.DynamicInfo.Select(x => new AreaDynamicInfo + { + DiceSlotId = (uint)x.Key, + DiyDynamicId = (uint)x.Value + }) + } //FFLPKLLDHLM = {new CIKOHJNAGON // TODO update //{ // AreaId = (uint)area.AreaId, diff --git a/GameServer/Server/ServerUtils.cs b/GameServer/Server/ServerUtils.cs index ee3e37a2..d9aac6fc 100644 --- a/GameServer/Server/ServerUtils.cs +++ b/GameServer/Server/ServerUtils.cs @@ -1,4 +1,6 @@ -using EggLink.DanhengServer.Enums.Rogue; +using System.Reflection; +using EggLink.DanhengServer.Enums.Rogue; +using EggLink.DanhengServer.GameServer.Game.ChessRogue; using EggLink.DanhengServer.GameServer.Game.ChessRogue.Modifier.ModifierEffect; using EggLink.DanhengServer.GameServer.Game.Lobby; using EggLink.DanhengServer.GameServer.Game.Mission; @@ -6,8 +8,6 @@ using EggLink.DanhengServer.GameServer.Game.Mission.FinishAction; using EggLink.DanhengServer.GameServer.Game.Mission.FinishType; using EggLink.DanhengServer.GameServer.Game.MultiPlayer; using EggLink.DanhengServer.GameServer.Game.Rogue.Event; -using System.Reflection; -using EggLink.DanhengServer.GameServer.Game.ChessRogue; namespace EggLink.DanhengServer.GameServer.Server; diff --git a/Program/Handbook/HandbookGenerator.cs b/Program/Handbook/HandbookGenerator.cs index d55ab792..73d2b02a 100644 --- a/Program/Handbook/HandbookGenerator.cs +++ b/Program/Handbook/HandbookGenerator.cs @@ -231,7 +231,8 @@ public static class HandbookGenerator } } - public static string GetNameFromTextMap(BigInteger key, Dictionary map, Dictionary fallback) + public static string GetNameFromTextMap(BigInteger key, Dictionary map, + Dictionary fallback) { if (map.TryGetValue(key, out var value)) return value; if (fallback.TryGetValue(key, out value)) return value; diff --git a/Program/Program/EntryPoint.cs b/Program/Program/EntryPoint.cs index ad522a99..cbe7c5ec 100644 --- a/Program/Program/EntryPoint.cs +++ b/Program/Program/EntryPoint.cs @@ -169,7 +169,9 @@ public class EntryPoint if (ConfigManager.Config.ServerOption.ServerConfig.RunGateway) { - var handler = new DanhengListener.ConnectionCreatedHandler((conversation, remote) => new Connection(conversation, remote)); + var handler = + new DanhengListener.ConnectionCreatedHandler((conversation, remote) => + new Connection(conversation, remote)); DanhengListener.CreateConnection = handler; DanhengListener.StartListener(); } diff --git a/WebServer/Controllers/DispatchRoutes.cs b/WebServer/Controllers/DispatchRoutes.cs index 63c1d9e6..28b8d574 100644 --- a/WebServer/Controllers/DispatchRoutes.cs +++ b/WebServer/Controllers/DispatchRoutes.cs @@ -35,15 +35,13 @@ public class DispatchRoutes }); foreach (var region in Config.ServerOption.ServerConfig.Regions) - { data.RegionList.Add(new RegionInfo { Name = region.GameServerId, DisplayName = region.GameServerName, EnvType = region.EnvType.ToString(), - DispatchUrl = region.GateWayAddress, + DispatchUrl = region.GateWayAddress }); - } Logger.Info("Client request: query_dispatch"); return Convert.ToBase64String(data.ToByteArray());