diff --git a/Command/Command/Cmd/CommandUnlockAll.cs b/Command/Command/Cmd/CommandUnlockAll.cs index 1c4b02dc..f155c432 100644 --- a/Command/Command/Cmd/CommandUnlockAll.cs +++ b/Command/Command/Cmd/CommandUnlockAll.cs @@ -3,6 +3,7 @@ using EggLink.DanhengServer.Enums.Mission; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Player; using EggLink.DanhengServer.Internationalization; using EggLink.DanhengServer.Proto; +using Google.Protobuf.WellKnownTypes; namespace EggLink.DanhengServer.Command.Command.Cmd; @@ -144,4 +145,32 @@ public class CommandUnlockAll : ICommand await arg.SendMsg(I18NManager.Translate("Game.Command.UnlockAll.UnlockedAll", I18NManager.Translate("Word.TypesOfChallenge"))); } + + [CommandMethod("0 grid")] + public async ValueTask UnlockAllGrid(CommandArg arg) + { + if (arg.Target == null) + { + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); + return; + } + + var player = arg.Target!.Player!; + + List gridList = [2100162, 2100163, 7300022, 7300038, 6071325]; + + List allList = [.. gridList]; + + foreach (var id in allList) + { + // finish mission + await player.QuestManager!.AcceptQuest(id); + await player.QuestManager!.FinishQuest(id); + } + + if (player.SceneInstance!.FloorId == 20322001) + await player.SceneInstance.UpdateFloorSavedValue("FSV_370GridFight", 1); + await arg.SendMsg(I18NManager.Translate("Game.Command.UnlockAll.UnlockedAll", + I18NManager.Translate("Word.TypesOfGridFight"))); + } } \ No newline at end of file diff --git a/Common/Data/Excel/GridFightAugmentExcel.cs b/Common/Data/Excel/GridFightAugmentExcel.cs index 279f95a8..c348cc7d 100644 --- a/Common/Data/Excel/GridFightAugmentExcel.cs +++ b/Common/Data/Excel/GridFightAugmentExcel.cs @@ -9,6 +9,7 @@ public class GridFightAugmentExcel : ExcelResource { public uint ID { get; set; } public uint CategoryID { get; set; } + public List AugmentSavedValueList { get; set; } = []; [JsonConverter(typeof(StringEnumConverter))] public GridFightAugmentQualityEnum Quality { get; set; } public override int GetId() diff --git a/Common/Data/Excel/GridFightAugmentMonsterExcel.cs b/Common/Data/Excel/GridFightAugmentMonsterExcel.cs new file mode 100644 index 00000000..b1b68352 --- /dev/null +++ b/Common/Data/Excel/GridFightAugmentMonsterExcel.cs @@ -0,0 +1,24 @@ +using EggLink.DanhengServer.Enums.GridFight; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; + +namespace EggLink.DanhengServer.Data.Excel; + +[ResourceEntity("GridFightAugmentMonster.json")] +public class GridFightAugmentMonsterExcel : ExcelResource +{ + public uint DivisionLevel { get; set; } + public uint EnemyDiffLvAdd { get; set; } + [JsonConverter(typeof(StringEnumConverter))] public GridFightAugmentQualityEnum Quality { get; set; } + + public override int GetId() + { + return (int)DivisionLevel; + } + + public override void Loaded() + { + GameData.GridFightAugmentMonsterData.TryAdd(DivisionLevel, []); + GameData.GridFightAugmentMonsterData[DivisionLevel][Quality] = this; + } +} \ No newline at end of file diff --git a/Common/Data/Excel/GridFightDivisionStageExcel.cs b/Common/Data/Excel/GridFightDivisionStageExcel.cs new file mode 100644 index 00000000..b2469db6 --- /dev/null +++ b/Common/Data/Excel/GridFightDivisionStageExcel.cs @@ -0,0 +1,20 @@ +namespace EggLink.DanhengServer.Data.Excel; + +[ResourceEntity("GridFightDivisionStage.json")] +public class GridFightDivisionStageExcel : ExcelResource +{ + public uint DivisionID { get; set; } + public uint EnemyDifficultyLevel { get; set; } + public uint ExpModify { get; set; } + public uint SeasonID { get; set; } + + public override int GetId() + { + return (int)DivisionID; + } + + public override void Loaded() + { + GameData.GridFightDivisionStageData.TryAdd(DivisionID, this); + } +} \ No newline at end of file diff --git a/Common/Data/Excel/GridFightNodeTemplateExcel.cs b/Common/Data/Excel/GridFightNodeTemplateExcel.cs new file mode 100644 index 00000000..4596ce77 --- /dev/null +++ b/Common/Data/Excel/GridFightNodeTemplateExcel.cs @@ -0,0 +1,20 @@ +namespace EggLink.DanhengServer.Data.Excel; + +[ResourceEntity("GridFightNodeTemplate.json")] +public class GridFightNodeTemplateExcel : ExcelResource +{ + public uint NodeTemplateID { get; set; } + public uint PenaltyBonusRuleID { get; set; } + public uint IsAugment { get; set; } + public uint BasicGoldRewardNum { get; set; } + + public override int GetId() + { + return (int)NodeTemplateID; + } + + public override void Loaded() + { + GameData.GridFightNodeTemplateData.TryAdd(NodeTemplateID, this); + } +} \ No newline at end of file diff --git a/Common/Data/Excel/GridFightStageRouteExcel.cs b/Common/Data/Excel/GridFightStageRouteExcel.cs index 8bd8b018..daa8a153 100644 --- a/Common/Data/Excel/GridFightStageRouteExcel.cs +++ b/Common/Data/Excel/GridFightStageRouteExcel.cs @@ -14,6 +14,7 @@ public class GridFightStageRouteExcel : ExcelResource public uint IsAugment { get; set; } public uint NodeTemplateID { get; set; } public uint BasicGoldRewardNum { get; set; } + public List PenaltyBonusRuleIDList { get; set; } = []; [JsonConverter(typeof(StringEnumConverter))] public GridFightNodeTypeEnum NodeType { get; set; } diff --git a/Common/Data/Excel/RogueBuffGroupExcel.cs b/Common/Data/Excel/RogueBuffGroupExcel.cs index 2fc7e9f5..c544c1ed 100644 --- a/Common/Data/Excel/RogueBuffGroupExcel.cs +++ b/Common/Data/Excel/RogueBuffGroupExcel.cs @@ -7,8 +7,8 @@ namespace EggLink.DanhengServer.Data.Excel; [ResourceEntity("RogueBuffGroup.json")] public class RogueBuffGroupExcel : BaseRogueBuffGroupExcel { - [JsonProperty("GroupID")] public int GroupID { get; set; } - [JsonProperty("BuffTagList")] public List BuffTagList { get; set; } = []; + [JsonProperty("IDLBMIHBAPB")] public int GroupID { get; set; } + [JsonProperty("GNGDPDOMDFH")] public List BuffTagList { get; set; } = []; public override int GetId() { diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index f7140217..90f060e2 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -1,14 +1,15 @@ -using System.Collections.Concurrent; -using EggLink.DanhengServer.Data.Config; +using EggLink.DanhengServer.Data.Config; using EggLink.DanhengServer.Data.Config.AdventureAbility; using EggLink.DanhengServer.Data.Config.Character; using EggLink.DanhengServer.Data.Config.Scene; using EggLink.DanhengServer.Data.Custom; using EggLink.DanhengServer.Data.Excel; +using EggLink.DanhengServer.Enums.GridFight; using EggLink.DanhengServer.Enums.Rogue; using EggLink.DanhengServer.Enums.TournRogue; using EggLink.DanhengServer.Util; using Newtonsoft.Json; +using System.Collections.Concurrent; namespace EggLink.DanhengServer.Data; @@ -107,6 +108,7 @@ public static class GameData public static Dictionary GridFightRoleBasicInfoData { get; private set; } = []; public static Dictionary GridFightRoleStarData { get; private set; } = []; public static Dictionary GridFightDivisionInfoData { get; private set; } = []; + public static Dictionary GridFightDivisionStageData { get; private set; } = []; public static Dictionary GridFightEquipmentData { get; private set; } = []; public static Dictionary GridFightConsumablesData { get; private set; } = []; public static Dictionary GridFightCampData { get; private set; } = []; @@ -114,11 +116,13 @@ public static class GameData public static Dictionary GridFightPlayerLevelData { get; private set; } = []; public static Dictionary GridFightMonsterData { get; private set; } = []; public static Dictionary GridFightAugmentData { get; private set; } = []; + public static Dictionary> GridFightAugmentMonsterData { get; private set; } = []; public static Dictionary GridFightPortalBuffData { get; private set; } = []; public static Dictionary GridFightItemsData { get; private set; } = []; public static Dictionary GridFightTalentData { get; private set; } = []; public static Dictionary GridFightSeasonTalentData { get; private set; } = []; public static Dictionary> GridFightStageRouteData { get; private set; } = []; + public static Dictionary GridFightNodeTemplateData { get; private set; } = []; #endregion diff --git a/Common/Util/GameConstants.cs b/Common/Util/GameConstants.cs index 9bcbae3a..6f8e7816 100644 --- a/Common/Util/GameConstants.cs +++ b/Common/Util/GameConstants.cs @@ -2,7 +2,7 @@ public static class GameConstants { - public const string GAME_VERSION = "3.6.51"; + public const string GAME_VERSION = "3.7.0"; public const string AvatarDbVersion = "20250430"; public const int GameVersionInt = 3200; public const int MAX_STAMINA = 300; diff --git a/GameServer/Game/Battle/Custom/BattleGridFightOptions.cs b/GameServer/Game/Battle/Custom/BattleGridFightOptions.cs index 72e6b2e8..bb4784dc 100644 --- a/GameServer/Game/Battle/Custom/BattleGridFightOptions.cs +++ b/GameServer/Game/Battle/Custom/BattleGridFightOptions.cs @@ -15,14 +15,16 @@ public class BattleGridFightOptions(GridFightGameSectionInfo curSection, GridFig public GridFightGameEncounterInfo Encounter { get; set; } = curSection.Encounters.RandomElement(); public GridFightInstance Inst { get; set; } = inst; public GridFightRoleComponent AvatarComponent { get; set; } = inst.GetComponent(); + public GridFightLevelComponent LevelComponent { get; set; } = inst.GetComponent(); public GridFightBasicComponent BasicComponent { get; set; } = inst.GetComponent(); + public GridFightAugmentComponent AugmentComponent { get; set; } = inst.GetComponent(); public GridFightGameSectionInfo CurSection { get; set; } = curSection; public PlayerInstance Player { get; set; } = player; public void HandleProto(SceneBattleInfo proto, BattleInstance battle) { - var avatars = AvatarComponent.GetForegroundAvatarInfos(4 + BasicComponent.GetFieldCount()); - var backAvatars = AvatarComponent.GetBackgroundAvatarInfos(4 + BasicComponent.GetFieldCount()); + var avatars = AvatarComponent.GetForegroundAvatarInfos(0); + var backAvatars = AvatarComponent.GetBackgroundAvatarInfos(BasicComponent.GetFieldCount()); var tempLineup = new LineupInfo { @@ -34,12 +36,13 @@ public class BattleGridFightOptions(GridFightGameSectionInfo curSection, GridFig var formatted = avatars.Select(x => x.ToBattleProto( - new PlayerDataCollection(Player.Data, Player.InventoryManager!.Data, tempLineup), AvatarType.AvatarGridFightType)).ToList(); + new PlayerDataCollection(Player.Data, Player.InventoryManager!.Data, tempLineup), + x is SpecialAvatarInfo ? AvatarType.AvatarTrialType : AvatarType.AvatarGridFightType)).ToList(); var backFormatted = backAvatars.Select(x => x.ToBattleProto( new PlayerDataCollection(Player.Data, Player.InventoryManager!.Data, tempLineup), - AvatarType.AvatarGridFightType)).ToList(); + x is SpecialAvatarInfo ? AvatarType.AvatarTrialType : AvatarType.AvatarGridFightType)).ToList(); proto.BattleAvatarList.Add(formatted.Take(4)); @@ -51,13 +54,20 @@ public class BattleGridFightOptions(GridFightGameSectionInfo curSection, GridFig BattleWaveId = wave.Wave, MonsterParam = new SceneMonsterWaveParam { - Level = 89 + Level = 90 }, MonsterList = { wave.Monsters.Select(x => new SceneMonster { - MonsterId = x.MonsterID + MonsterId = x.MonsterID, + ExtraInfo = new SceneMonsterExtraInfo + { + BattleGridFightInfo = new SceneMonsterGridFightInfo + { + Tier = Math.Max(1, x.MonsterTier) + } + } }) } }); @@ -69,21 +79,21 @@ public class BattleGridFightOptions(GridFightGameSectionInfo curSection, GridFig battle.BattleEvents.TryAdd((int)roleConf.BEID, new BattleEventInstance((int)roleConf.BEID, 5000)); } - battle.Buffs.Add(new MazeBuff(35100001, 1, -1) + var ruleId = CurSection.Excel.PenaltyBonusRuleIDList.FirstOrDefault(0u); + if (ruleId == 0) { - WaveFlag = -1 - }); + if (GameData.GridFightNodeTemplateData.TryGetValue(CurSection.Excel.NodeTemplateID, out var node)) ruleId = node.PenaltyBonusRuleID; + } proto.BattleGridFightInfo = new BattleGridFightInfo { GridGameAvatarList = { - AvatarComponent.Data.Roles.Where(x => x.Pos <= 4 + BasicComponent.GetFieldCount()).Select(x => x.ToBattleInfo()) + AvatarComponent.Data.Roles.Where(x => x.Pos <= BasicComponent.GetFieldCount()).OrderBy(x => x.Pos).Select(x => x.ToBattleInfo()) }, - BattleWaveId = 1, GridFightCurLevel = BasicComponent.Data.CurLevel, GridFightLineupHp = BasicComponent.Data.CurHp, - GridFightAvatarList = { formatted, backFormatted }, + GridFightAvatarList = { backFormatted }, GridFightStageInfo = new BattleGridFightStageInfo { ChapterId = CurSection.ChapterId, @@ -92,7 +102,11 @@ public class BattleGridFightOptions(GridFightGameSectionInfo curSection, GridFig }, IsOverlock = Inst.IsOverLock, Season = Inst.Season, - DFNBKALPGPH = 1, + BattleDifficulty = AugmentComponent.GetAugmentDifficulty() + Inst.GetDivisionDifficulty() + Encounter.EncounterDifficulty - 1, + GameDivisionId = Inst.DivisionId, + PenaltyBonusRuleId = ruleId, + GridFightAugmentInfo = { AugmentComponent.Data.Augments.Select(x => x.ToBattleInfo()) }, + GridFightPortalBuffList = { LevelComponent.PortalBuffs.Select(x => x.ToBattleInfo()) }, }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/Component/GridFightAugmentComponent.cs b/GameServer/Game/GridFight/Component/GridFightAugmentComponent.cs new file mode 100644 index 00000000..4ca65956 --- /dev/null +++ b/GameServer/Game/GridFight/Component/GridFightAugmentComponent.cs @@ -0,0 +1,87 @@ +using EggLink.DanhengServer.Data; +using EggLink.DanhengServer.GameServer.Game.GridFight.Sync; +using EggLink.DanhengServer.GameServer.Server.Packet.Send.GridFight; +using EggLink.DanhengServer.Proto; +using EggLink.DanhengServer.Proto.ServerSide; + +namespace EggLink.DanhengServer.GameServer.Game.GridFight.Component; + +public class GridFightAugmentComponent(GridFightInstance inst) : BaseGridFightComponent(inst) +{ + public GridFightAugmentInfoPb Data { get; set; } = new(); + + public async ValueTask> AddAugment(uint augmentId, bool sendPacket = true, GridFightSrc src = GridFightSrc.KGridFightSrcSelectAugment, uint syncGroup = 0) + { + if (!GameData.GridFightAugmentData.TryGetValue(augmentId, out var excel)) return []; + + var info = new GridFightGameAugmentPb + { + AugmentId = augmentId + }; + + foreach (var saved in excel.AugmentSavedValueList) + { + info.SavedValues.Add(saved, 0); + } + + Data.Augments.Add(info); + + var syncData = new GridFightAddAugmentSyncData(src, info, syncGroup); + if (sendPacket) + { + await Inst.Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify(syncData)); + } + + return [syncData]; + } + + public uint GetAugmentDifficulty() + { + if (!GameData.GridFightDivisionInfoData.TryGetValue(Inst.DivisionId, out var excel)) return 0; + var difficulty = 0u; + + foreach (var augment in Data.Augments) + { + if (!GameData.GridFightAugmentData.TryGetValue(augment.AugmentId, out var augmentExcel)) continue; + + var diff = GameData.GridFightAugmentMonsterData.GetValueOrDefault(excel.DivisionLevel, []) + .GetValueOrDefault(augmentExcel.Quality)?.EnemyDiffLvAdd ?? 0; + + difficulty += diff; + } + + return difficulty; + } + + public override GridFightGameInfo ToProto() + { + return new GridFightGameInfo + { + GridAugmentInfo = new GridFightGameAugmentInfo + { + GridFightAugmentInfo = { Data.Augments.Select(x => x.ToProto()) } + } + }; + } +} + +public static class GridFightAugmentExtensions +{ + public static GridGameAugmentInfo ToProto(this GridFightGameAugmentPb info) + { + return new GridGameAugmentInfo + { + AugmentId = info.AugmentId, + GameSavedValueMap = { info.SavedValues } + }; + } + + public static BattleGridFightAugmentInfo ToBattleInfo(this GridFightGameAugmentPb info) + { + return new BattleGridFightAugmentInfo + { + AugmentId = info.AugmentId, + GameSavedValueMap = { info.SavedValues } + }; + } +} \ No newline at end of file diff --git a/GameServer/Game/GridFight/Component/GridFightBasicComponent.cs b/GameServer/Game/GridFight/Component/GridFightBasicComponent.cs index 40aab52e..0da2a5b4 100644 --- a/GameServer/Game/GridFight/Component/GridFightBasicComponent.cs +++ b/GameServer/Game/GridFight/Component/GridFightBasicComponent.cs @@ -1,5 +1,4 @@ using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.GameServer.Game.GridFight.PendingAction; using EggLink.DanhengServer.GameServer.Game.GridFight.Sync; using EggLink.DanhengServer.GameServer.Server.Packet.Send.GridFight; using EggLink.DanhengServer.Proto; @@ -17,9 +16,9 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp { CurHp = 100, CurLevel = 1, - CurOnGroundAvatarCount = 1, + MaxAvatarNum = 1, BuyLevelCost = 1, - CurGold = 5 + CurGold = 0 }; #endregion @@ -64,7 +63,7 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp if (await UpdateGoldNum((int)-Data.BuyLevelCost, false) != Retcode.RetSucc) return Retcode.RetGridFightCoinNotEnough; - return await AddLevelExp(1, sendPacket); + return await AddLevelExp(4, sendPacket); } public async ValueTask AddLevelExp(uint exp, bool sendPacket = true) @@ -86,6 +85,8 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp if (level.LevelUpExp + costExp > Data.LevelExp) break; + if (level.LevelUpExp == 0) continue; // max level + costExp += (int)level.LevelUpExp; targetLevel = level.PlayerLevel + 1; } @@ -124,7 +125,7 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp Data.CurLevel += level; Data.BuyLevelCost = (uint)Math.Ceiling(Data.CurLevel / 2f); - Data.CurOnGroundAvatarCount = levelConf.AvatarMaxNumber; + Data.MaxAvatarNum = levelConf.AvatarMaxNumber; if (sendPacket) { @@ -160,9 +161,9 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp GridFightCurLevel = Data.CurLevel, GridFightCurLevelExp = Data.LevelExp, GridFightLevelCost = Data.BuyLevelCost, - GridFightMaxAvatarCount = Data.CurOnGroundAvatarCount, + GridFightMaxAvatarCount = 9, GridFightOffFieldMaxCount = 6, - GridFightMaxFieldCount = 8, + GridFightMaxFieldCount = Data.MaxAvatarNum, GridFightLineupHp = Data.CurHp, GridFightCurGold = Data.CurGold, GridFightMaxGold = 2000, @@ -171,8 +172,10 @@ public class GridFightBasicComponent(GridFightInstance inst) : BaseGridFightComp { IJDIAOMINLB = new BHJALAPDBLH() }, - CALCJMHAKPF = new OLEIDBLBILD + GameLockInfo = new GridFightLockInfo { + LockReason = (GridFightLockReason)Data.LockReason, + LockType = (GridFightLockType)Data.LockType } } }; diff --git a/GameServer/Game/GridFight/Component/GridFightLevelComponent.cs b/GameServer/Game/GridFight/Component/GridFightLevelComponent.cs index 03ae1c08..cf18d9bc 100644 --- a/GameServer/Game/GridFight/Component/GridFightLevelComponent.cs +++ b/GameServer/Game/GridFight/Component/GridFightLevelComponent.cs @@ -18,6 +18,7 @@ public class GridFightLevelComponent : BaseGridFightComponent public Dictionary> Sections { get; } = []; public GridFightGameSectionInfo CurrentSection => Sections[_curChapterId][(int)(_curSectionId - 1)]; public List RoleDamageSttInfos { get; } = []; + public List PortalBuffs { get; } = []; #endregion @@ -125,13 +126,23 @@ public class GridFightLevelComponent : BaseGridFightComponent if (CurrentSection.Excel.IsAugment == 1) { // create augment action - syncs.Add(await Inst.CreatePendingAction(sendPacket: false)); + syncs.AddRange(await Inst.CreatePendingAction(sendPacket: false)); } if (CurrentSection.Excel.NodeType == GridFightNodeTypeEnum.Supply) { // create supply action - syncs.Add(await Inst.CreatePendingAction(sendPacket: false)); + syncs.AddRange(await Inst.CreatePendingAction(sendPacket: false)); + } + else + { + syncs.AddRange(await Inst.CreatePendingAction(sendPacket: false)); + + if (CurrentSection.Excel.NodeType is not GridFightNodeTypeEnum.Boss + and not GridFightNodeTypeEnum.EliteBranch) + { + syncs.AddRange(await Inst.CreatePendingAction(sendPacket: false)); + } } if (sendPacket) @@ -142,6 +153,24 @@ public class GridFightLevelComponent : BaseGridFightComponent return syncs; } + public async ValueTask> AddPortalBuff(uint portalBuffId, bool sendPacket = true, GridFightSrc src = GridFightSrc.KGridFightSrcSelectPortalBuff) + { + var info = new GridFightPortalBuffInfo + { + PortalBuffId = portalBuffId + }; + + PortalBuffs.Add(info); + + var syncData = new GridFightAddPortalBuffSyncData(src, info); + if (sendPacket) + { + await Inst.Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify(syncData)); + } + + return [syncData]; + } + #endregion #region Information @@ -209,7 +238,8 @@ public class GridFightLevelComponent : BaseGridFightComponent LevelSttInfo = new GridFightLevelSttInfo { GridFightDamageSttInfo = ToDamageSttInfo() - } + }, + GridFightPortalBuffList = { PortalBuffs.Select(x => x.ToProto()) } } }; } @@ -246,6 +276,39 @@ public class GridFightRoleDamageSttInfo } } +public class GridFightPortalBuffInfo +{ + public uint PortalBuffId { get; set; } + public Dictionary SavedValue { get; set; } = []; + + public GridFightGamePortalBuffInfo ToProto() + { + return new GridFightGamePortalBuffInfo + { + PortalBuffId = PortalBuffId, + GameSavedValueMap = { SavedValue } + }; + } + + public BattleGridFightPortalBuffInfo ToBattleInfo() + { + return new BattleGridFightPortalBuffInfo + { + PortalBuffId = PortalBuffId, + GameSavedValueMap = { SavedValue } + }; + } + + public GridFightPortalBuffSyncInfo ToSyncInfo() + { + return new GridFightPortalBuffSyncInfo + { + PortalBuffId = PortalBuffId, + GameSavedValueMap = { SavedValue } + }; + } +} + public class GridFightGameSectionInfo { public GridFightStageRouteExcel Excel { get; } @@ -263,7 +326,7 @@ public class GridFightGameSectionInfo MonsterCamp = camp; if (Excel.NodeType is not GridFightNodeTypeEnum.Monster and not GridFightNodeTypeEnum.CampMonster - and not GridFightNodeTypeEnum.Boss and not GridFightNodeTypeEnum.EliteBranch || Excel.IsAugment == 1) return; + and not GridFightNodeTypeEnum.Boss and not GridFightNodeTypeEnum.EliteBranch) return; Encounters.Add(new GridFightGameEncounterInfo(1, 1, this)); } @@ -324,13 +387,13 @@ public class GridFightGameEncounterInfo } else { - var elite = ParentSection.Excel.NodeType switch + List elites = ParentSection.Excel.NodeType switch { - GridFightNodeTypeEnum.Boss => monster5Pool.RandomElement(), - _ => monster4Pool.RandomElement(), + GridFightNodeTypeEnum.Boss => [..monster5Pool], + _ => [monster4Pool.RandomElement()], }; - List monsters = [elite]; + List monsters = [..elites]; var remain = monsterNum[i] - 1; if (remain > 0) diff --git a/GameServer/Game/GridFight/Component/GridFightRoleComponent.cs b/GameServer/Game/GridFight/Component/GridFightRoleComponent.cs index ed11f7a9..5d112640 100644 --- a/GameServer/Game/GridFight/Component/GridFightRoleComponent.cs +++ b/GameServer/Game/GridFight/Component/GridFightRoleComponent.cs @@ -9,21 +9,37 @@ namespace EggLink.DanhengServer.GameServer.Game.GridFight.Component; public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightComponent(inst) { + public const uint PrepareAreaPos = 13; public GridFightAvatarInfoPb Data { get; set; } = new(); - public async ValueTask> AddAvatar(uint roleId, uint tier = 1, bool sendPacket = true, - bool checkMerge = true, GridFightSrc src = GridFightSrc.KGridFightSrcBuyGoods) + public bool HasAnyEmptyPos() { - var pos = 1u; + return Data.Roles.Where(x => x.Pos > PrepareAreaPos).ToList().Count < 9; + } + + public async ValueTask> AddAvatar(uint roleId, uint tier = 1, bool sendPacket = true, + bool checkMerge = true, GridFightSrc src = GridFightSrc.KGridFightSrcBuyGoods, uint syncGroup = 0, uint targetPos = 0) + { + if (!GameData.GridFightRoleBasicInfoData.TryGetValue(roleId, out var excel)) return []; + + var pos = 0u; + var initialPos = targetPos > 0 ? targetPos : PrepareAreaPos + 1; + // get first empty pos var usedPos = Data.Roles.Select(x => x.Pos).ToHashSet(); - for (var i = 1u; i <= 20u; i++) + for (var i = initialPos; i <= PrepareAreaPos + 9; i++) { if (usedPos.Contains(i)) continue; pos = i; break; } + // check if any empty + if (pos == 0) + { + return []; + } + var info = new GridFightRoleInfoPb { RoleId = roleId, @@ -32,9 +48,14 @@ public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightCompo Pos = pos }; + foreach (var saved in excel.RoleSavedValueList) + { + info.SavedValues.Add(saved, 0); + } + Data.Roles.Add(info); - List syncs = [new GridFightRoleAddSyncData(src, info)]; + List syncs = [new GridFightRoleAddSyncData(src, info, syncGroup)]; if (checkMerge) { @@ -54,6 +75,7 @@ public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightCompo { List syncs = []; bool hasMerged; + uint groupId = 0; do { @@ -83,13 +105,14 @@ public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightCompo foreach (var role in toMerge) { Data.Roles.Remove(role); - syncs.Add(new GridFightRoleRemoveSyncData(GridFightSrc.KGridFightSrcMergeRole, role)); + syncs.Add(new GridFightRoleRemoveSyncData(GridFightSrc.KGridFightSrcMergeRole, role, groupId)); } // add new merged role with tier + 1 - var addSyncs = await AddAvatar(roleId, currentTier + 1, false, false, GridFightSrc.KGridFightSrcMergeRole); + var addSyncs = await AddAvatar(roleId, currentTier + 1, false, false, GridFightSrc.KGridFightSrcMergeRole, groupId, toMerge.First().Pos); syncs.AddRange(addSyncs); + groupId++; hasMerged = true; } } while (hasMerged); // continue until no more merges are possible @@ -189,8 +212,17 @@ public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightCompo return res; } - public async ValueTask UpdatePos(List posList) + public async ValueTask UpdatePos(List posList) { + foreach (var pos in posList.Where(x => x.Pos <= PrepareAreaPos)) + { + var role = Data.Roles.FirstOrDefault(x => x.UniqueId == pos.UniqueId); + if (role == null) continue; + + if (Data.Roles.Where(x => x.UniqueId != pos.UniqueId && x.Pos <= PrepareAreaPos).Any(x => x.RoleId == role.RoleId)) + return Retcode.RetGridFightSameRoleInBattle; + } + List syncs = []; foreach (var pos in posList) { @@ -206,6 +238,8 @@ public class GridFightRoleComponent(GridFightInstance inst) : BaseGridFightCompo { await Inst.Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify(syncs)); } + + return Retcode.RetSucc; } public override GridFightGameInfo ToProto() @@ -229,7 +263,9 @@ public static class GridFightRoleInfoPbExtensions Id = info.RoleId, UniqueId = info.UniqueId, Tier = info.Tier, - Pos = info.Pos + Pos = info.Pos, + GameSavedValueMap = { info.SavedValues }, + EquipUniqueIdList = { info.EquipmentIds } }; } @@ -241,7 +277,9 @@ public static class GridFightRoleInfoPbExtensions UniqueId = info.UniqueId, Tier = info.Tier, Pos = info.Pos, - AvatarId = GameData.GridFightRoleBasicInfoData[info.RoleId].AvatarID + AvatarId = GameData.GridFightRoleBasicInfoData[info.RoleId].AvatarID, + RoleEquipmentList = { }, + GameSavedValueMap = { info.SavedValues } }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/Component/GridFightShopComponent.cs b/GameServer/Game/GridFight/Component/GridFightShopComponent.cs index 24be089f..76d60122 100644 --- a/GameServer/Game/GridFight/Component/GridFightShopComponent.cs +++ b/GameServer/Game/GridFight/Component/GridFightShopComponent.cs @@ -11,7 +11,7 @@ public class GridFightShopComponent(GridFightInstance inst) : BaseGridFightCompo { public GridFightShopInfoPb Data { get; set; } = new() { - RefreshCost = 3, + RefreshCost = 2, FreeRefreshCount = 1 }; @@ -34,6 +34,11 @@ public class GridFightShopComponent(GridFightInstance inst) : BaseGridFightCompo public async ValueTask BuyGoods(List indexes, bool sendPacket = true) { + var avatarComp = Inst.GetComponent(); + + // check pos + if (!avatarComp.HasAnyEmptyPos()) return Retcode.RetGridFightNoEmptyPos; + var curLevel = Inst.GetComponent().Data.CurLevel; var targetGoods = indexes @@ -52,7 +57,6 @@ public class GridFightShopComponent(GridFightInstance inst) : BaseGridFightCompo // GIVE ITEMS List syncs = []; - var avatarComp = Inst.GetComponent(); foreach (var item in targetGoods) { if (item.ItemTypeCase == GridFightShopItemPb.ItemTypeOneofCase.RoleItem) @@ -68,10 +72,7 @@ public class GridFightShopComponent(GridFightInstance inst) : BaseGridFightCompo // REMOVE ITEMS FROM SHOP foreach (var index in indexes) { - Data.ShopItems.RemoveAt((int)index); - - // add new item - AddGoods(1, curLevel); + Data.ShopItems[(int)index].SoldOut = true; } if (sendPacket) @@ -141,12 +142,12 @@ public class GridFightShopComponent(GridFightInstance inst) : BaseGridFightCompo return code; } - Data.RefreshCost += 2; + Data.RefreshCost = 2; } } else { - Data.RefreshCost = 3; + Data.RefreshCost = 2; Data.FreeRefreshCount++; if (Data.ShopLocked) { @@ -201,7 +202,10 @@ public static class GridFightShopInfoPbExtensions { public static GridFightShopGoodsInfo ToProto(this GridFightShopItemPb info) { - var proto = new GridFightShopGoodsInfo(); + var proto = new GridFightShopGoodsInfo + { + IsSoldOut = info.SoldOut + }; if (info.ItemTypeCase == GridFightShopItemPb.ItemTypeOneofCase.RoleItem) { diff --git a/GameServer/Game/GridFight/GridFightInstance.cs b/GameServer/Game/GridFight/GridFightInstance.cs index 8bcc1375..2ab7c74a 100644 --- a/GameServer/Game/GridFight/GridFightInstance.cs +++ b/GameServer/Game/GridFight/GridFightInstance.cs @@ -1,3 +1,4 @@ +using EggLink.DanhengServer.Data; using EggLink.DanhengServer.GameServer.Game.Battle; using EggLink.DanhengServer.GameServer.Game.GridFight.Component; using EggLink.DanhengServer.GameServer.Game.GridFight.PendingAction; @@ -91,11 +92,13 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division Components.Add(new GridFightShopComponent(this)); Components.Add(new GridFightLevelComponent(this)); Components.Add(new GridFightRoleComponent(this)); + Components.Add(new GridFightAugmentComponent(this)); _ = GetComponent().AddAvatar(1414, 3, false); _ = GetComponent().RefreshShop(true, false); - _ = CreatePendingAction(); // TODO wait for release official server + _ = CreatePendingAction(sendPacket:false); + _ = CreatePendingAction(sendPacket: false); } public T GetComponent() where T : BaseGridFightComponent @@ -103,6 +106,13 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division return (T)Components.First(c => c is T); } + public uint GetDivisionDifficulty() + { + return GameData.GridFightDivisionStageData.TryGetValue(DivisionId, out var excel) + ? excel.EnemyDifficultyLevel + : 0; + } + public GridFightCurrentInfo ToProto() { return new GridFightCurrentInfo @@ -124,7 +134,14 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division public GridFightGameData ToGameDataInfo() { - return new GridFightGameData(); + return new GridFightGameData + { + GameItemInfoList = { new GridFightGameItemInfo + { + UniqueId = 18, + JCDHFKOCDOL = new() + } } + }; } #region Pending Action @@ -152,47 +169,63 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division return pos; } - public async ValueTask CreatePendingAction(GridFightSrc src = GridFightSrc.KGridFightSrcEnterNode, bool sendPacket = true) where T: BaseGridFightPendingAction + public async ValueTask> CreatePendingAction(GridFightSrc src = GridFightSrc.KGridFightSrcEnterNode, bool sendPacket = true) where T: BaseGridFightPendingAction { var action = (T)Activator.CreateInstance(typeof(T), this)!; + var basicComp = GetComponent(); AddPendingAction(action); + basicComp.Data.LockReason = (uint)GridFightLockReason.KGridFightLockReasonPendingAction; + basicComp.Data.LockType = (uint)GridFightLockType.KGridFightLockTypeAll; + var res = new GridFightPendingActionSyncData(src, action); if (sendPacket) await Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify(res)); - return res; + return [res, new GridFightLockInfoSyncData(src, basicComp.Data.Clone())]; } public async ValueTask HandleResultRequest(GridFightHandlePendingActionCsReq req) { + var basicComp = GetComponent(); var curAction = GetCurAction(); // end - PendingActions.Remove(curAction.QueuePosition); - var src = GridFightSrc.KGridFightSrcNone; + var isFinish = true; + GridFightSrc src; + + List syncs = []; switch (req.GridFightActionTypeCase) { case GridFightHandlePendingActionCsReq.GridFightActionTypeOneofCase.PortalBuffAction: src = GridFightSrc.KGridFightSrcSelectPortalBuff; + + syncs.AddRange(await GetComponent().AddPortalBuff(req.PortalBuffAction.SelectPortalBuffId, false, src)); + + // initial supply + await basicComp.UpdateGoldNum(5, false, GridFightSrc.KGridFightSrcInitialSupplySelect); + syncs.Add(new GridFightGoldSyncData(GridFightSrc.KGridFightSrcInitialSupplySelect, basicComp.Data)); break; case GridFightHandlePendingActionCsReq.GridFightActionTypeOneofCase.PortalBuffRerollAction: if (curAction is GridFightPortalBuffPendingAction portalBuffAction) { + isFinish = false; await portalBuffAction.RerollBuff(); } break; case GridFightHandlePendingActionCsReq.GridFightActionTypeOneofCase.AugmentAction: src = GridFightSrc.KGridFightSrcSelectAugment; - await CheckCurNodeFinish(src); + + syncs.AddRange(await GetComponent().AddAugment(req.AugmentAction.AugmentId, false, src)); break; case GridFightHandlePendingActionCsReq.GridFightActionTypeOneofCase.RerollAugmentAction: if (curAction is GridFightAugmentPendingAction augmentAction) { + isFinish = false; await augmentAction.RerollAugment(req.RerollAugmentAction.AugmentId); } @@ -205,9 +238,31 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division break; } + if (isFinish) + { + PendingActions.Remove(curAction.QueuePosition); + syncs.Add(new GridFightFinishPendingActionSyncData(GridFightSrc.KGridFightSrcNone, curAction.QueuePosition)); - await Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify( - new GridFightPendingActionSyncData(src, GetCurAction()))); + // unlock + basicComp.Data.LockReason = (uint)GridFightLockReason.KGridFightLockReasonUnknown; + basicComp.Data.LockType = (uint)GridFightLockType.KGridFightLockTypeNone; + + syncs.Add(new GridFightLockInfoSyncData(GridFightSrc.KGridFightSrcNone, basicComp.Data.Clone())); + + // sync level + syncs.Add(new GridFightLevelSyncData(GridFightSrc.KGridFightSrcNone, GetComponent())); + } + + if (PendingActions.Count > 0) + { + basicComp.Data.LockReason = (uint)GridFightLockReason.KGridFightLockReasonPendingAction; + basicComp.Data.LockType = (uint)GridFightLockType.KGridFightLockTypeAll; + + syncs.Add(new GridFightPendingActionSyncData(GridFightSrc.KGridFightSrcNone, GetCurAction(), 1)); + syncs.Add(new GridFightLockInfoSyncData(GridFightSrc.KGridFightSrcNone, basicComp.Data.Clone(), 1)); + } + + await Player.SendPacket(new PacketGridFightSyncUpdateResultScNotify(syncs)); } public async ValueTask CheckCurNodeFinish(GridFightSrc src) @@ -220,16 +275,7 @@ public class GridFightInstance(PlayerInstance player, uint season, uint division if (PendingActions.Count != 0) return; // next - await levelComp.EnterNextSection(src:src); - } - - #endregion - - #region Portal Buff - - public async ValueTask AddPortalBuff(uint portalBuffId) - { - + await levelComp.EnterNextSection(src:GridFightSrc.KGridFightSrcNone); } #endregion diff --git a/GameServer/Game/GridFight/PendingAction/GridFightEliteBranchPendingAction.cs b/GameServer/Game/GridFight/PendingAction/GridFightEliteBranchPendingAction.cs index d22c8678..62e7e982 100644 --- a/GameServer/Game/GridFight/PendingAction/GridFightEliteBranchPendingAction.cs +++ b/GameServer/Game/GridFight/PendingAction/GridFightEliteBranchPendingAction.cs @@ -8,7 +8,8 @@ public class GridFightEliteBranchPendingAction(GridFightInstance inst) : BaseGri { return new GridFightPendingAction { - EliteBranchAction = new GridFightEliteBranchActionInfo() + EliteBranchAction = new GridFightEliteBranchActionInfo(), + QueuePosition = QueuePosition }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/PendingAction/GridFightElitePendingAction.cs b/GameServer/Game/GridFight/PendingAction/GridFightElitePendingAction.cs index 5c227620..24f1adbf 100644 --- a/GameServer/Game/GridFight/PendingAction/GridFightElitePendingAction.cs +++ b/GameServer/Game/GridFight/PendingAction/GridFightElitePendingAction.cs @@ -8,7 +8,8 @@ public class GridFightElitePendingAction(GridFightInstance inst) : BaseGridFight { return new GridFightPendingAction { - EliteAction = new GridFightEliteActionInfo() + EliteAction = new GridFightEliteActionInfo(), + QueuePosition = QueuePosition }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/PendingAction/GridFightEmptyPendingAction.cs b/GameServer/Game/GridFight/PendingAction/GridFightEmptyPendingAction.cs index e6e4459a..05325d0b 100644 --- a/GameServer/Game/GridFight/PendingAction/GridFightEmptyPendingAction.cs +++ b/GameServer/Game/GridFight/PendingAction/GridFightEmptyPendingAction.cs @@ -6,6 +6,9 @@ public class GridFightEmptyPendingAction(GridFightInstance inst) : BaseGridFight { public override GridFightPendingAction ToProto() { - return new GridFightPendingAction(); + return new GridFightPendingAction + { + QueuePosition = QueuePosition + }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/PendingAction/GridFightPreparePendingAction.cs b/GameServer/Game/GridFight/PendingAction/GridFightPreparePendingAction.cs new file mode 100644 index 00000000..680141d8 --- /dev/null +++ b/GameServer/Game/GridFight/PendingAction/GridFightPreparePendingAction.cs @@ -0,0 +1,15 @@ +using EggLink.DanhengServer.Proto; + +namespace EggLink.DanhengServer.GameServer.Game.GridFight.PendingAction; + +public class GridFightPreparePendingAction(GridFightInstance inst) : BaseGridFightPendingAction(inst) +{ + public override GridFightPendingAction ToProto() + { + return new GridFightPendingAction + { + PrepareAction = new GridFightPrepareActionInfo(), + QueuePosition = QueuePosition + }; + } +} \ No newline at end of file diff --git a/GameServer/Game/GridFight/PendingAction/GridFightSupplyPendingAction.cs b/GameServer/Game/GridFight/PendingAction/GridFightSupplyPendingAction.cs index 342ecab2..58514eca 100644 --- a/GameServer/Game/GridFight/PendingAction/GridFightSupplyPendingAction.cs +++ b/GameServer/Game/GridFight/PendingAction/GridFightSupplyPendingAction.cs @@ -47,7 +47,7 @@ public class GridFightSupplyPendingAction : BaseGridFightPendingAction { MaxRerollCount = MaxRerollNum, CurRollCount = CurRerollNum, - MEKEFPNMNLE = 3, + MaxSelectCount = 1, JLHIKCHIEDJ = 2, SupplyRoleInfoList = { RoleList.Select(x => x.ToProto()) } } diff --git a/GameServer/Game/GridFight/Sync/BaseGridFightSyncData.cs b/GameServer/Game/GridFight/Sync/BaseGridFightSyncData.cs index 92a210ab..827e6443 100644 --- a/GameServer/Game/GridFight/Sync/BaseGridFightSyncData.cs +++ b/GameServer/Game/GridFight/Sync/BaseGridFightSyncData.cs @@ -2,8 +2,9 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; -public abstract class BaseGridFightSyncData(GridFightSrc src) +public abstract class BaseGridFightSyncData(GridFightSrc src, uint groupId = 0) { public GridFightSrc Src { get; set; } = src; + public uint GroupId { get; set; } = groupId; public abstract GridFightSyncData ToProto(); } \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightAddAugmentSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightAddAugmentSyncData.cs new file mode 100644 index 00000000..ca432152 --- /dev/null +++ b/GameServer/Game/GridFight/Sync/GridFightAddAugmentSyncData.cs @@ -0,0 +1,19 @@ +using EggLink.DanhengServer.GameServer.Game.GridFight.Component; +using EggLink.DanhengServer.Proto; +using EggLink.DanhengServer.Proto.ServerSide; + +namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; + +public class GridFightAddAugmentSyncData(GridFightSrc src, GridFightGameAugmentPb augment, uint groupId = 0) : BaseGridFightSyncData(src, groupId) +{ + public override GridFightSyncData ToProto() + { + return new GridFightSyncData + { + AugmentSyncInfo = new GridFightAugmentSyncInfo + { + SyncAugmentInfo = augment.ToProto() + } + }; + } +} \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightAddPortalBuffSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightAddPortalBuffSyncData.cs new file mode 100644 index 00000000..45847fa3 --- /dev/null +++ b/GameServer/Game/GridFight/Sync/GridFightAddPortalBuffSyncData.cs @@ -0,0 +1,15 @@ +using EggLink.DanhengServer.Proto; +using GridFightPortalBuffInfo = EggLink.DanhengServer.GameServer.Game.GridFight.Component.GridFightPortalBuffInfo; + +namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; + +public class GridFightAddPortalBuffSyncData(GridFightSrc src, GridFightPortalBuffInfo info, uint groupId = 0) : BaseGridFightSyncData(src, groupId) +{ + public override GridFightSyncData ToProto() + { + return new GridFightSyncData + { + PortalBuffSyncInfo = info.ToSyncInfo() + }; + } +} \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightFinishPendingActionSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightFinishPendingActionSyncData.cs index b62a385c..6f3fb936 100644 --- a/GameServer/Game/GridFight/Sync/GridFightFinishPendingActionSyncData.cs +++ b/GameServer/Game/GridFight/Sync/GridFightFinishPendingActionSyncData.cs @@ -8,6 +8,7 @@ public class GridFightFinishPendingActionSyncData(GridFightSrc src, uint queuePo { return new GridFightSyncData { + FinishPendingActionPos = queuePosition }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightLockInfoSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightLockInfoSyncData.cs new file mode 100644 index 00000000..747e5b6f --- /dev/null +++ b/GameServer/Game/GridFight/Sync/GridFightLockInfoSyncData.cs @@ -0,0 +1,19 @@ +using EggLink.DanhengServer.Proto; +using EggLink.DanhengServer.Proto.ServerSide; + +namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; + +public class GridFightLockInfoSyncData(GridFightSrc src, GridFightBasicInfoPb info, uint groupId = 0) : BaseGridFightSyncData(src, groupId) +{ + public override GridFightSyncData ToProto() + { + return new GridFightSyncData + { + SyncLockInfo = new GridFightLockInfo + { + LockType = (GridFightLockType)info.LockType, + LockReason = (GridFightLockReason)info.LockReason + } + }; + } +} \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightMaxAvatarNumSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightMaxAvatarNumSyncData.cs index 7a5c3640..4c1c5634 100644 --- a/GameServer/Game/GridFight/Sync/GridFightMaxAvatarNumSyncData.cs +++ b/GameServer/Game/GridFight/Sync/GridFightMaxAvatarNumSyncData.cs @@ -9,7 +9,7 @@ public class GridFightMaxAvatarNumSyncData(GridFightSrc src, GridFightBasicInfoP { return new GridFightSyncData { - GridFightMaxAvatarCount = info.CurOnGroundAvatarCount + MaxBattleRoleNum = info.MaxAvatarNum }; } } \ No newline at end of file diff --git a/GameServer/Game/GridFight/Sync/GridFightPendingActionSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightPendingActionSyncData.cs index 5a6b3a49..bb50167b 100644 --- a/GameServer/Game/GridFight/Sync/GridFightPendingActionSyncData.cs +++ b/GameServer/Game/GridFight/Sync/GridFightPendingActionSyncData.cs @@ -3,7 +3,7 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; -public class GridFightPendingActionSyncData(GridFightSrc src, BaseGridFightPendingAction action) : BaseGridFightSyncData(src) +public class GridFightPendingActionSyncData(GridFightSrc src, BaseGridFightPendingAction action, uint groupId = 0) : BaseGridFightSyncData(src, groupId) { public override GridFightSyncData ToProto() { diff --git a/GameServer/Game/GridFight/Sync/GridFightRoleAddSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightRoleAddSyncData.cs index 87d680e3..60bb00d5 100644 --- a/GameServer/Game/GridFight/Sync/GridFightRoleAddSyncData.cs +++ b/GameServer/Game/GridFight/Sync/GridFightRoleAddSyncData.cs @@ -4,7 +4,7 @@ using EggLink.DanhengServer.Proto.ServerSide; namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; -public class GridFightRoleAddSyncData(GridFightSrc src, GridFightRoleInfoPb role) : BaseGridFightSyncData(src) +public class GridFightRoleAddSyncData(GridFightSrc src, GridFightRoleInfoPb role, uint groupId = 0) : BaseGridFightSyncData(src, groupId) { public override GridFightSyncData ToProto() { diff --git a/GameServer/Game/GridFight/Sync/GridFightRoleRemoveSyncData.cs b/GameServer/Game/GridFight/Sync/GridFightRoleRemoveSyncData.cs index 3d5a44db..cda6025e 100644 --- a/GameServer/Game/GridFight/Sync/GridFightRoleRemoveSyncData.cs +++ b/GameServer/Game/GridFight/Sync/GridFightRoleRemoveSyncData.cs @@ -3,7 +3,7 @@ using EggLink.DanhengServer.Proto.ServerSide; namespace EggLink.DanhengServer.GameServer.Game.GridFight.Sync; -public class GridFightRoleRemoveSyncData(GridFightSrc src, GridFightRoleInfoPb role) : BaseGridFightSyncData(src) +public class GridFightRoleRemoveSyncData(GridFightSrc src, GridFightRoleInfoPb role, uint groupId = 0) : BaseGridFightSyncData(src, groupId) { public override GridFightSyncData ToProto() { diff --git a/GameServer/Server/Packet/Recv/GridFight/HandlerGridFightUpdatePosCsReq.cs b/GameServer/Server/Packet/Recv/GridFight/HandlerGridFightUpdatePosCsReq.cs index ab74adeb..6a07481a 100644 --- a/GameServer/Server/Packet/Recv/GridFight/HandlerGridFightUpdatePosCsReq.cs +++ b/GameServer/Server/Packet/Recv/GridFight/HandlerGridFightUpdatePosCsReq.cs @@ -20,9 +20,9 @@ public class HandlerGridFightUpdatePosCsReq : Handler } var gridFight = connection.Player.GridFightManager.GridFightInstance; - await gridFight.GetComponent().UpdatePos(req.GridFightPosInfoList.ToList()); + var ret = await gridFight.GetComponent().UpdatePos(req.GridFightPosInfoList.ToList()); await connection.SendPacket( - new PacketGridFightUpdatePosScRsp(Retcode.RetSucc, req.GridFightPosInfoList)); + new PacketGridFightUpdatePosScRsp(ret, req.GridFightPosInfoList)); } } \ No newline at end of file diff --git a/GameServer/Server/Packet/Send/GridFight/PacketGridFightSyncUpdateResultScNotify.cs b/GameServer/Server/Packet/Send/GridFight/PacketGridFightSyncUpdateResultScNotify.cs index a0e31ebd..e1d6774b 100644 --- a/GameServer/Server/Packet/Send/GridFight/PacketGridFightSyncUpdateResultScNotify.cs +++ b/GameServer/Server/Packet/Send/GridFight/PacketGridFightSyncUpdateResultScNotify.cs @@ -1,7 +1,6 @@ using EggLink.DanhengServer.GameServer.Game.GridFight.Sync; using EggLink.DanhengServer.Kcp; using EggLink.DanhengServer.Proto; -using System.Linq; namespace EggLink.DanhengServer.GameServer.Server.Packet.Send.GridFight; @@ -9,23 +8,17 @@ public class PacketGridFightSyncUpdateResultScNotify : BasePacket { public PacketGridFightSyncUpdateResultScNotify(List data) : base(CmdIds.GridFightSyncUpdateResultScNotify) { - Dictionary> srcDict = []; - - foreach (var syncData in data) - { - srcDict.TryAdd(syncData.Src, []); - srcDict[syncData.Src].Add(syncData); - } + var group = data.GroupBy(x => new { x.GroupId, x.Src }); var proto = new GridFightSyncUpdateResultScNotify { SyncResultDataList = { - srcDict.Select(x => new GridFightSyncResultData + group.Select(x => new GridFightSyncResultData { - GridUpdateSrc = x.Key, - UpdateDynamicList = { x.Value.Select(j => j.ToProto()) }, - ONMDGNHMABO = { (uint)x.Value.Count } + GridUpdateSrc = x.Key.Src, + UpdateDynamicList = { x.Select(j => j.ToProto()) }, + ONMDGNHMABO = { 0 } }) } }; diff --git a/ServerSideProto/GridFightData.cs b/ServerSideProto/GridFightData.cs index 3804a7e2..cb64a59e 100644 --- a/ServerSideProto/GridFightData.cs +++ b/ServerSideProto/GridFightData.cs @@ -25,39 +25,66 @@ namespace EggLink.DanhengServer.Proto.ServerSide { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChNHcmlkRmlnaHREYXRhLnByb3RvIjcKF0dyaWRGaWdodFNob3BSb2xlSXRl", - "bVBiEg4KBlJvbGVJZBgBIAEoDRIMCgRUaWVyGAIgASgNIl8KE0dyaWRGaWdo", + "bVBiEg4KBlJvbGVJZBgBIAEoDRIMCgRUaWVyGAIgASgNInAKE0dyaWRGaWdo", "dFNob3BJdGVtUGISLAoIUm9sZUl0ZW0YASABKAsyGC5HcmlkRmlnaHRTaG9w", - "Um9sZUl0ZW1QYkgAEg4KBlJhcml0eRgCIAEoDUIKCghJdGVtVHlwZSKBAQoT", - "R3JpZEZpZ2h0U2hvcEluZm9QYhISCgpTaG9wTG9ja2VkGAEgASgIEhgKEEZy", - "ZWVSZWZyZXNoQ291bnQYAiABKA0SEwoLUmVmcmVzaENvc3QYAyABKA0SJwoJ", - "U2hvcEl0ZW1zGAQgAygLMhQuR3JpZEZpZ2h0U2hvcEl0ZW1QYiKKAQoTR3Jp", - "ZEZpZ2h0R2FtZUluZm9QYhIQCghVbmlxdWVJZBgBIAEoDRISCgpEaXZpc2lv", - "bklkGAIgASgNEhIKCklzT3ZlckxvY2sYAyABKAgSDgoGU2Vhc29uGAQgASgN", - "EikKCkNvbXBvbmVudHMYBSADKAsyFS5HcmlkRmlnaHRDb21wb25lbnRQYiKi", - "AQoUR3JpZEZpZ2h0QmFzaWNJbmZvUGISDwoHQ3VyR29sZBgBIAEoDRIQCghD", - "dXJMZXZlbBgCIAEoDRIQCghMZXZlbEV4cBgDIAEoDRIUCgxCdXlMZXZlbENv", - "c3QYBCABKA0SDQoFQ3VySHAYBSABKA0SHgoWQ3VyT25Hcm91bmRBdmF0YXJD", - "b3VudBgGIAEoDRIQCghDb21ib051bRgHIAEoDSJSChNHcmlkRmlnaHRSb2xl", - "SW5mb1BiEg4KBlJvbGVJZBgBIAEoDRIMCgRUaWVyGAIgASgNEgsKA1BvcxgD", - "IAEoDRIQCghVbmlxdWVJZBgEIAEoDSJRChVHcmlkRmlnaHRBdmF0YXJJbmZv", + "Um9sZUl0ZW1QYkgAEg4KBlJhcml0eRgCIAEoDRIPCgdTb2xkT3V0GAMgASgI", + "QgoKCEl0ZW1UeXBlIoEBChNHcmlkRmlnaHRTaG9wSW5mb1BiEhIKClNob3BM", + "b2NrZWQYASABKAgSGAoQRnJlZVJlZnJlc2hDb3VudBgCIAEoDRITCgtSZWZy", + "ZXNoQ29zdBgDIAEoDRInCglTaG9wSXRlbXMYBCADKAsyFC5HcmlkRmlnaHRT", + "aG9wSXRlbVBiIooBChNHcmlkRmlnaHRHYW1lSW5mb1BiEhAKCFVuaXF1ZUlk", + "GAEgASgNEhIKCkRpdmlzaW9uSWQYAiABKA0SEgoKSXNPdmVyTG9jaxgDIAEo", + "CBIOCgZTZWFzb24YBCABKA0SKQoKQ29tcG9uZW50cxgFIAMoCzIVLkdyaWRG", + "aWdodENvbXBvbmVudFBiIr4BChRHcmlkRmlnaHRCYXNpY0luZm9QYhIPCgdD", + "dXJHb2xkGAEgASgNEhAKCEN1ckxldmVsGAIgASgNEhAKCExldmVsRXhwGAMg", + "ASgNEhQKDEJ1eUxldmVsQ29zdBgEIAEoDRINCgVDdXJIcBgFIAEoDRIUCgxN", + "YXhBdmF0YXJOdW0YBiABKA0SEAoIQ29tYm9OdW0YByABKA0SEAoITG9ja1R5", + "cGUYCCABKA0SEgoKTG9ja1JlYXNvbhgJIAEoDSLYAQoTR3JpZEZpZ2h0Um9s", + "ZUluZm9QYhIOCgZSb2xlSWQYASABKA0SDAoEVGllchgCIAEoDRILCgNQb3MY", + "AyABKA0SEAoIVW5pcXVlSWQYBCABKA0SOgoLU2F2ZWRWYWx1ZXMYBSADKAsy", + "JS5HcmlkRmlnaHRSb2xlSW5mb1BiLlNhdmVkVmFsdWVzRW50cnkSFAoMRXF1", + "aXBtZW50SWRzGAYgAygNGjIKEFNhdmVkVmFsdWVzRW50cnkSCwoDa2V5GAEg", + "ASgJEg0KBXZhbHVlGAIgASgNOgI4ASJRChVHcmlkRmlnaHRBdmF0YXJJbmZv", "UGISIwoFUm9sZXMYASADKAsyFC5HcmlkRmlnaHRSb2xlSW5mb1BiEhMKC0N1", - "clVuaXF1ZUlkGAIgASgNIqsBChRHcmlkRmlnaHRDb21wb25lbnRQYhIoCghT", - "aG9wSW5mbxgBIAEoCzIULkdyaWRGaWdodFNob3BJbmZvUGJIABIqCglCYXNp", - "Y0luZm8YAiABKAsyFS5HcmlkRmlnaHRCYXNpY0luZm9QYkgAEiwKCkF2YXRh", - "ckluZm8YAyABKAsyFi5HcmlkRmlnaHRBdmF0YXJJbmZvUGJIAEIPCg1Db21w", - "b25lbnRUeXBlQimqAiZFZ2dMaW5rLkRhbmhlbmdTZXJ2ZXIuUHJvdG8uU2Vy", - "dmVyU2lkZWIGcHJvdG8z")); + "clVuaXF1ZUlkGAIgASgNIjkKEkdyaWRGaWdodEdhbWVPcmJQYhIRCglPcmJJ", + "dGVtSWQYASABKA0SEAoIVW5pcXVlSWQYAiABKA0iNwoSR3JpZEZpZ2h0T3Ji", + "SW5mb1BiEiEKBE9yYnMYASADKAsyEy5HcmlkRmlnaHRHYW1lT3JiUGIingEK", + "FkdyaWRGaWdodEdhbWVBdWdtZW50UGISEQoJQXVnbWVudElkGAEgASgNEj0K", + "C1NhdmVkVmFsdWVzGAIgAygLMiguR3JpZEZpZ2h0R2FtZUF1Z21lbnRQYi5T", + "YXZlZFZhbHVlc0VudHJ5GjIKEFNhdmVkVmFsdWVzRW50cnkSCwoDa2V5GAEg", + "ASgJEg0KBXZhbHVlGAIgASgNOgI4ASJDChZHcmlkRmlnaHRBdWdtZW50SW5m", + "b1BiEikKCEF1Z21lbnRzGAEgAygLMhcuR3JpZEZpZ2h0R2FtZUF1Z21lbnRQ", + "YiJOChpHcmlkRmlnaHRHYW1lVHJhaXRFZmZlY3RQYhIPCgdUcmFpdElkGAEg", + "ASgNEhAKCEVmZmVjdElkGAIgASgNEg0KBVBhcmFtGAMgASgNImsKFEdyaWRG", + "aWdodEdhbWVUcmFpdFBiEg8KB1RyYWl0SWQYASABKA0SLAoHRWZmZWN0cxgC", + "IAMoCzIbLkdyaWRGaWdodEdhbWVUcmFpdEVmZmVjdFBiEhQKDEV4dHJhUm9s", + "ZU51bRgDIAEoDSI9ChRHcmlkRmlnaHRUcmFpdEluZm9QYhIlCgZUcmFpdHMY", + "ASADKAsyFS5HcmlkRmlnaHRHYW1lVHJhaXRQYiKvAgoUR3JpZEZpZ2h0Q29t", + "cG9uZW50UGISKAoIU2hvcEluZm8YASABKAsyFC5HcmlkRmlnaHRTaG9wSW5m", + "b1BiSAASKgoJQmFzaWNJbmZvGAIgASgLMhUuR3JpZEZpZ2h0QmFzaWNJbmZv", + "UGJIABIsCgpBdmF0YXJJbmZvGAMgASgLMhYuR3JpZEZpZ2h0QXZhdGFySW5m", + "b1BiSAASJgoHT3JiSW5mbxgEIAEoCzITLkdyaWRGaWdodE9yYkluZm9QYkgA", + "Ei4KC0F1Z21lbnRJbmZvGAUgASgLMhcuR3JpZEZpZ2h0QXVnbWVudEluZm9Q", + "YkgAEioKCVRyYWl0SW5mbxgGIAEoCzIVLkdyaWRGaWdodFRyYWl0SW5mb1Bi", + "SABCDwoNQ29tcG9uZW50VHlwZUIpqgImRWdnTGluay5EYW5oZW5nU2VydmVy", + "LlByb3RvLlNlcnZlclNpZGViBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopRoleItemPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopRoleItemPb.Parser, new[]{ "RoleId", "Tier" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopItemPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopItemPb.Parser, new[]{ "RoleItem", "Rarity" }, new[]{ "ItemType" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopItemPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopItemPb.Parser, new[]{ "RoleItem", "Rarity", "SoldOut" }, new[]{ "ItemType" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightShopInfoPb.Parser, new[]{ "ShopLocked", "FreeRefreshCount", "RefreshCost", "ShopItems" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameInfoPb.Parser, new[]{ "UniqueId", "DivisionId", "IsOverLock", "Season", "Components" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightBasicInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightBasicInfoPb.Parser, new[]{ "CurGold", "CurLevel", "LevelExp", "BuyLevelCost", "CurHp", "CurOnGroundAvatarCount", "ComboNum" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightRoleInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightRoleInfoPb.Parser, new[]{ "RoleId", "Tier", "Pos", "UniqueId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightBasicInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightBasicInfoPb.Parser, new[]{ "CurGold", "CurLevel", "LevelExp", "BuyLevelCost", "CurHp", "MaxAvatarNum", "ComboNum", "LockType", "LockReason" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightRoleInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightRoleInfoPb.Parser, new[]{ "RoleId", "Tier", "Pos", "UniqueId", "SavedValues", "EquipmentIds" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightAvatarInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightAvatarInfoPb.Parser, new[]{ "Roles", "CurUniqueId" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightComponentPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightComponentPb.Parser, new[]{ "ShopInfo", "BasicInfo", "AvatarInfo" }, new[]{ "ComponentType" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameOrbPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameOrbPb.Parser, new[]{ "OrbItemId", "UniqueId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb.Parser, new[]{ "Orbs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameAugmentPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameAugmentPb.Parser, new[]{ "AugmentId", "SavedValues" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb.Parser, new[]{ "Augments" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitEffectPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitEffectPb.Parser, new[]{ "TraitId", "EffectId", "Param" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitPb.Parser, new[]{ "TraitId", "Effects", "ExtraRoleNum" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb.Parser, new[]{ "Traits" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ServerSide.GridFightComponentPb), global::EggLink.DanhengServer.Proto.ServerSide.GridFightComponentPb.Parser, new[]{ "ShopInfo", "BasicInfo", "AvatarInfo", "OrbInfo", "AugmentInfo", "TraitInfo" }, new[]{ "ComponentType" }, null, null, null) })); } #endregion @@ -327,6 +354,7 @@ namespace EggLink.DanhengServer.Proto.ServerSide { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public GridFightShopItemPb(GridFightShopItemPb other) : this() { rarity_ = other.rarity_; + soldOut_ = other.soldOut_; switch (other.ItemTypeCase) { case ItemTypeOneofCase.RoleItem: RoleItem = other.RoleItem.Clone(); @@ -366,6 +394,18 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } } + /// Field number for the "SoldOut" field. + public const int SoldOutFieldNumber = 3; + private bool soldOut_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool SoldOut { + get { return soldOut_; } + set { + soldOut_ = value; + } + } + private object itemType_; /// Enum of possible cases for the "ItemType" oneof. public enum ItemTypeOneofCase { @@ -403,6 +443,7 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } if (!object.Equals(RoleItem, other.RoleItem)) return false; if (Rarity != other.Rarity) return false; + if (SoldOut != other.SoldOut) return false; if (ItemTypeCase != other.ItemTypeCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -413,6 +454,7 @@ namespace EggLink.DanhengServer.Proto.ServerSide { int hash = 1; if (itemTypeCase_ == ItemTypeOneofCase.RoleItem) hash ^= RoleItem.GetHashCode(); if (Rarity != 0) hash ^= Rarity.GetHashCode(); + if (SoldOut != false) hash ^= SoldOut.GetHashCode(); hash ^= (int) itemTypeCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -440,6 +482,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(16); output.WriteUInt32(Rarity); } + if (SoldOut != false) { + output.WriteRawTag(24); + output.WriteBool(SoldOut); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -458,6 +504,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(16); output.WriteUInt32(Rarity); } + if (SoldOut != false) { + output.WriteRawTag(24); + output.WriteBool(SoldOut); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -474,6 +524,9 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (Rarity != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Rarity); } + if (SoldOut != false) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -489,6 +542,9 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (other.Rarity != 0) { Rarity = other.Rarity; } + if (other.SoldOut != false) { + SoldOut = other.SoldOut; + } switch (other.ItemTypeCase) { case ItemTypeOneofCase.RoleItem: if (RoleItem == null) { @@ -526,6 +582,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { Rarity = input.ReadUInt32(); break; } + case 24: { + SoldOut = input.ReadBool(); + break; + } } } #endif @@ -554,6 +614,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { Rarity = input.ReadUInt32(); break; } + case 24: { + SoldOut = input.ReadBool(); + break; + } } } } @@ -1218,8 +1282,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { levelExp_ = other.levelExp_; buyLevelCost_ = other.buyLevelCost_; curHp_ = other.curHp_; - curOnGroundAvatarCount_ = other.curOnGroundAvatarCount_; + maxAvatarNum_ = other.maxAvatarNum_; comboNum_ = other.comboNum_; + lockType_ = other.lockType_; + lockReason_ = other.lockReason_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1289,15 +1355,15 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } } - /// Field number for the "CurOnGroundAvatarCount" field. - public const int CurOnGroundAvatarCountFieldNumber = 6; - private uint curOnGroundAvatarCount_; + /// Field number for the "MaxAvatarNum" field. + public const int MaxAvatarNumFieldNumber = 6; + private uint maxAvatarNum_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public uint CurOnGroundAvatarCount { - get { return curOnGroundAvatarCount_; } + public uint MaxAvatarNum { + get { return maxAvatarNum_; } set { - curOnGroundAvatarCount_ = value; + maxAvatarNum_ = value; } } @@ -1313,6 +1379,30 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } } + /// Field number for the "LockType" field. + public const int LockTypeFieldNumber = 8; + private uint lockType_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint LockType { + get { return lockType_; } + set { + lockType_ = value; + } + } + + /// Field number for the "LockReason" field. + public const int LockReasonFieldNumber = 9; + private uint lockReason_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint LockReason { + get { return lockReason_; } + set { + lockReason_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1333,8 +1423,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (LevelExp != other.LevelExp) return false; if (BuyLevelCost != other.BuyLevelCost) return false; if (CurHp != other.CurHp) return false; - if (CurOnGroundAvatarCount != other.CurOnGroundAvatarCount) return false; + if (MaxAvatarNum != other.MaxAvatarNum) return false; if (ComboNum != other.ComboNum) return false; + if (LockType != other.LockType) return false; + if (LockReason != other.LockReason) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1347,8 +1439,10 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (LevelExp != 0) hash ^= LevelExp.GetHashCode(); if (BuyLevelCost != 0) hash ^= BuyLevelCost.GetHashCode(); if (CurHp != 0) hash ^= CurHp.GetHashCode(); - if (CurOnGroundAvatarCount != 0) hash ^= CurOnGroundAvatarCount.GetHashCode(); + if (MaxAvatarNum != 0) hash ^= MaxAvatarNum.GetHashCode(); if (ComboNum != 0) hash ^= ComboNum.GetHashCode(); + if (LockType != 0) hash ^= LockType.GetHashCode(); + if (LockReason != 0) hash ^= LockReason.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1387,14 +1481,22 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(40); output.WriteUInt32(CurHp); } - if (CurOnGroundAvatarCount != 0) { + if (MaxAvatarNum != 0) { output.WriteRawTag(48); - output.WriteUInt32(CurOnGroundAvatarCount); + output.WriteUInt32(MaxAvatarNum); } if (ComboNum != 0) { output.WriteRawTag(56); output.WriteUInt32(ComboNum); } + if (LockType != 0) { + output.WriteRawTag(64); + output.WriteUInt32(LockType); + } + if (LockReason != 0) { + output.WriteRawTag(72); + output.WriteUInt32(LockReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1425,14 +1527,22 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(40); output.WriteUInt32(CurHp); } - if (CurOnGroundAvatarCount != 0) { + if (MaxAvatarNum != 0) { output.WriteRawTag(48); - output.WriteUInt32(CurOnGroundAvatarCount); + output.WriteUInt32(MaxAvatarNum); } if (ComboNum != 0) { output.WriteRawTag(56); output.WriteUInt32(ComboNum); } + if (LockType != 0) { + output.WriteRawTag(64); + output.WriteUInt32(LockType); + } + if (LockReason != 0) { + output.WriteRawTag(72); + output.WriteUInt32(LockReason); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1458,12 +1568,18 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (CurHp != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurHp); } - if (CurOnGroundAvatarCount != 0) { - size += 1 + pb::CodedOutputStream.ComputeUInt32Size(CurOnGroundAvatarCount); + if (MaxAvatarNum != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MaxAvatarNum); } if (ComboNum != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ComboNum); } + if (LockType != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LockType); + } + if (LockReason != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LockReason); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1491,12 +1607,18 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (other.CurHp != 0) { CurHp = other.CurHp; } - if (other.CurOnGroundAvatarCount != 0) { - CurOnGroundAvatarCount = other.CurOnGroundAvatarCount; + if (other.MaxAvatarNum != 0) { + MaxAvatarNum = other.MaxAvatarNum; } if (other.ComboNum != 0) { ComboNum = other.ComboNum; } + if (other.LockType != 0) { + LockType = other.LockType; + } + if (other.LockReason != 0) { + LockReason = other.LockReason; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1533,13 +1655,21 @@ namespace EggLink.DanhengServer.Proto.ServerSide { break; } case 48: { - CurOnGroundAvatarCount = input.ReadUInt32(); + MaxAvatarNum = input.ReadUInt32(); break; } case 56: { ComboNum = input.ReadUInt32(); break; } + case 64: { + LockType = input.ReadUInt32(); + break; + } + case 72: { + LockReason = input.ReadUInt32(); + break; + } } } #endif @@ -1576,13 +1706,21 @@ namespace EggLink.DanhengServer.Proto.ServerSide { break; } case 48: { - CurOnGroundAvatarCount = input.ReadUInt32(); + MaxAvatarNum = input.ReadUInt32(); break; } case 56: { ComboNum = input.ReadUInt32(); break; } + case 64: { + LockType = input.ReadUInt32(); + break; + } + case 72: { + LockReason = input.ReadUInt32(); + break; + } } } } @@ -1629,6 +1767,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { tier_ = other.tier_; pos_ = other.pos_; uniqueId_ = other.uniqueId_; + savedValues_ = other.savedValues_.Clone(); + equipmentIds_ = other.equipmentIds_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1686,6 +1826,28 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } } + /// Field number for the "SavedValues" field. + public const int SavedValuesFieldNumber = 5; + private static readonly pbc::MapField.Codec _map_savedValues_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForUInt32(16, 0), 42); + private readonly pbc::MapField savedValues_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField SavedValues { + get { return savedValues_; } + } + + /// Field number for the "EquipmentIds" field. + public const int EquipmentIdsFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_equipmentIds_codec + = pb::FieldCodec.ForUInt32(50); + private readonly pbc::RepeatedField equipmentIds_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField EquipmentIds { + get { return equipmentIds_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1705,6 +1867,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (Tier != other.Tier) return false; if (Pos != other.Pos) return false; if (UniqueId != other.UniqueId) return false; + if (!SavedValues.Equals(other.SavedValues)) return false; + if(!equipmentIds_.Equals(other.equipmentIds_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1716,6 +1880,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (Tier != 0) hash ^= Tier.GetHashCode(); if (Pos != 0) hash ^= Pos.GetHashCode(); if (UniqueId != 0) hash ^= UniqueId.GetHashCode(); + hash ^= SavedValues.GetHashCode(); + hash ^= equipmentIds_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1750,6 +1916,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(32); output.WriteUInt32(UniqueId); } + savedValues_.WriteTo(output, _map_savedValues_codec); + equipmentIds_.WriteTo(output, _repeated_equipmentIds_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1776,6 +1944,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(32); output.WriteUInt32(UniqueId); } + savedValues_.WriteTo(ref output, _map_savedValues_codec); + equipmentIds_.WriteTo(ref output, _repeated_equipmentIds_codec); if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1798,6 +1968,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (UniqueId != 0) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(UniqueId); } + size += savedValues_.CalculateSize(_map_savedValues_codec); + size += equipmentIds_.CalculateSize(_repeated_equipmentIds_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1822,6 +1994,8 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (other.UniqueId != 0) { UniqueId = other.UniqueId; } + savedValues_.MergeFrom(other.savedValues_); + equipmentIds_.Add(other.equipmentIds_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1853,6 +2027,15 @@ namespace EggLink.DanhengServer.Proto.ServerSide { UniqueId = input.ReadUInt32(); break; } + case 42: { + savedValues_.AddEntriesFrom(input, _map_savedValues_codec); + break; + } + case 50: + case 48: { + equipmentIds_.AddEntriesFrom(input, _repeated_equipmentIds_codec); + break; + } } } #endif @@ -1884,6 +2067,15 @@ namespace EggLink.DanhengServer.Proto.ServerSide { UniqueId = input.ReadUInt32(); break; } + case 42: { + savedValues_.AddEntriesFrom(ref input, _map_savedValues_codec); + break; + } + case 50: + case 48: { + equipmentIds_.AddEntriesFrom(ref input, _repeated_equipmentIds_codec); + break; + } } } } @@ -2107,6 +2299,1503 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightGameOrbPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightGameOrbPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameOrbPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameOrbPb(GridFightGameOrbPb other) : this() { + orbItemId_ = other.orbItemId_; + uniqueId_ = other.uniqueId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameOrbPb Clone() { + return new GridFightGameOrbPb(this); + } + + /// Field number for the "OrbItemId" field. + public const int OrbItemIdFieldNumber = 1; + private uint orbItemId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint OrbItemId { + get { return orbItemId_; } + set { + orbItemId_ = value; + } + } + + /// Field number for the "UniqueId" field. + public const int UniqueIdFieldNumber = 2; + private uint uniqueId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint UniqueId { + get { return uniqueId_; } + set { + uniqueId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightGameOrbPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightGameOrbPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (OrbItemId != other.OrbItemId) return false; + if (UniqueId != other.UniqueId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (OrbItemId != 0) hash ^= OrbItemId.GetHashCode(); + if (UniqueId != 0) hash ^= UniqueId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (OrbItemId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(OrbItemId); + } + if (UniqueId != 0) { + output.WriteRawTag(16); + output.WriteUInt32(UniqueId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (OrbItemId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(OrbItemId); + } + if (UniqueId != 0) { + output.WriteRawTag(16); + output.WriteUInt32(UniqueId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (OrbItemId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(OrbItemId); + } + if (UniqueId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(UniqueId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightGameOrbPb other) { + if (other == null) { + return; + } + if (other.OrbItemId != 0) { + OrbItemId = other.OrbItemId; + } + if (other.UniqueId != 0) { + UniqueId = other.UniqueId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + OrbItemId = input.ReadUInt32(); + break; + } + case 16: { + UniqueId = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + OrbItemId = input.ReadUInt32(); + break; + } + case 16: { + UniqueId = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightOrbInfoPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightOrbInfoPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightOrbInfoPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightOrbInfoPb(GridFightOrbInfoPb other) : this() { + orbs_ = other.orbs_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightOrbInfoPb Clone() { + return new GridFightOrbInfoPb(this); + } + + /// Field number for the "Orbs" field. + public const int OrbsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_orbs_codec + = pb::FieldCodec.ForMessage(10, global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameOrbPb.Parser); + private readonly pbc::RepeatedField orbs_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Orbs { + get { return orbs_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightOrbInfoPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightOrbInfoPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!orbs_.Equals(other.orbs_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= orbs_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + orbs_.WriteTo(output, _repeated_orbs_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + orbs_.WriteTo(ref output, _repeated_orbs_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += orbs_.CalculateSize(_repeated_orbs_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightOrbInfoPb other) { + if (other == null) { + return; + } + orbs_.Add(other.orbs_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + orbs_.AddEntriesFrom(input, _repeated_orbs_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + orbs_.AddEntriesFrom(ref input, _repeated_orbs_codec); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightGameAugmentPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightGameAugmentPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameAugmentPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameAugmentPb(GridFightGameAugmentPb other) : this() { + augmentId_ = other.augmentId_; + savedValues_ = other.savedValues_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameAugmentPb Clone() { + return new GridFightGameAugmentPb(this); + } + + /// Field number for the "AugmentId" field. + public const int AugmentIdFieldNumber = 1; + private uint augmentId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint AugmentId { + get { return augmentId_; } + set { + augmentId_ = value; + } + } + + /// Field number for the "SavedValues" field. + public const int SavedValuesFieldNumber = 2; + private static readonly pbc::MapField.Codec _map_savedValues_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForUInt32(16, 0), 18); + private readonly pbc::MapField savedValues_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::MapField SavedValues { + get { return savedValues_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightGameAugmentPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightGameAugmentPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AugmentId != other.AugmentId) return false; + if (!SavedValues.Equals(other.SavedValues)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (AugmentId != 0) hash ^= AugmentId.GetHashCode(); + hash ^= SavedValues.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (AugmentId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(AugmentId); + } + savedValues_.WriteTo(output, _map_savedValues_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (AugmentId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(AugmentId); + } + savedValues_.WriteTo(ref output, _map_savedValues_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (AugmentId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(AugmentId); + } + size += savedValues_.CalculateSize(_map_savedValues_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightGameAugmentPb other) { + if (other == null) { + return; + } + if (other.AugmentId != 0) { + AugmentId = other.AugmentId; + } + savedValues_.MergeFrom(other.savedValues_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AugmentId = input.ReadUInt32(); + break; + } + case 18: { + savedValues_.AddEntriesFrom(input, _map_savedValues_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AugmentId = input.ReadUInt32(); + break; + } + case 18: { + savedValues_.AddEntriesFrom(ref input, _map_savedValues_codec); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightAugmentInfoPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightAugmentInfoPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightAugmentInfoPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightAugmentInfoPb(GridFightAugmentInfoPb other) : this() { + augments_ = other.augments_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightAugmentInfoPb Clone() { + return new GridFightAugmentInfoPb(this); + } + + /// Field number for the "Augments" field. + public const int AugmentsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_augments_codec + = pb::FieldCodec.ForMessage(10, global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameAugmentPb.Parser); + private readonly pbc::RepeatedField augments_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Augments { + get { return augments_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightAugmentInfoPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightAugmentInfoPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!augments_.Equals(other.augments_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= augments_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + augments_.WriteTo(output, _repeated_augments_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + augments_.WriteTo(ref output, _repeated_augments_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += augments_.CalculateSize(_repeated_augments_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightAugmentInfoPb other) { + if (other == null) { + return; + } + augments_.Add(other.augments_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + augments_.AddEntriesFrom(input, _repeated_augments_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + augments_.AddEntriesFrom(ref input, _repeated_augments_codec); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightGameTraitEffectPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightGameTraitEffectPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitEffectPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitEffectPb(GridFightGameTraitEffectPb other) : this() { + traitId_ = other.traitId_; + effectId_ = other.effectId_; + param_ = other.param_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitEffectPb Clone() { + return new GridFightGameTraitEffectPb(this); + } + + /// Field number for the "TraitId" field. + public const int TraitIdFieldNumber = 1; + private uint traitId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint TraitId { + get { return traitId_; } + set { + traitId_ = value; + } + } + + /// Field number for the "EffectId" field. + public const int EffectIdFieldNumber = 2; + private uint effectId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint EffectId { + get { return effectId_; } + set { + effectId_ = value; + } + } + + /// Field number for the "Param" field. + public const int ParamFieldNumber = 3; + private uint param_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint Param { + get { return param_; } + set { + param_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightGameTraitEffectPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightGameTraitEffectPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TraitId != other.TraitId) return false; + if (EffectId != other.EffectId) return false; + if (Param != other.Param) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TraitId != 0) hash ^= TraitId.GetHashCode(); + if (EffectId != 0) hash ^= EffectId.GetHashCode(); + if (Param != 0) hash ^= Param.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TraitId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TraitId); + } + if (EffectId != 0) { + output.WriteRawTag(16); + output.WriteUInt32(EffectId); + } + if (Param != 0) { + output.WriteRawTag(24); + output.WriteUInt32(Param); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TraitId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TraitId); + } + if (EffectId != 0) { + output.WriteRawTag(16); + output.WriteUInt32(EffectId); + } + if (Param != 0) { + output.WriteRawTag(24); + output.WriteUInt32(Param); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TraitId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TraitId); + } + if (EffectId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(EffectId); + } + if (Param != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Param); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightGameTraitEffectPb other) { + if (other == null) { + return; + } + if (other.TraitId != 0) { + TraitId = other.TraitId; + } + if (other.EffectId != 0) { + EffectId = other.EffectId; + } + if (other.Param != 0) { + Param = other.Param; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TraitId = input.ReadUInt32(); + break; + } + case 16: { + EffectId = input.ReadUInt32(); + break; + } + case 24: { + Param = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TraitId = input.ReadUInt32(); + break; + } + case 16: { + EffectId = input.ReadUInt32(); + break; + } + case 24: { + Param = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightGameTraitPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightGameTraitPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[12]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitPb(GridFightGameTraitPb other) : this() { + traitId_ = other.traitId_; + effects_ = other.effects_.Clone(); + extraRoleNum_ = other.extraRoleNum_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightGameTraitPb Clone() { + return new GridFightGameTraitPb(this); + } + + /// Field number for the "TraitId" field. + public const int TraitIdFieldNumber = 1; + private uint traitId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint TraitId { + get { return traitId_; } + set { + traitId_ = value; + } + } + + /// Field number for the "Effects" field. + public const int EffectsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_effects_codec + = pb::FieldCodec.ForMessage(18, global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitEffectPb.Parser); + private readonly pbc::RepeatedField effects_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Effects { + get { return effects_; } + } + + /// Field number for the "ExtraRoleNum" field. + public const int ExtraRoleNumFieldNumber = 3; + private uint extraRoleNum_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint ExtraRoleNum { + get { return extraRoleNum_; } + set { + extraRoleNum_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightGameTraitPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightGameTraitPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TraitId != other.TraitId) return false; + if(!effects_.Equals(other.effects_)) return false; + if (ExtraRoleNum != other.ExtraRoleNum) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (TraitId != 0) hash ^= TraitId.GetHashCode(); + hash ^= effects_.GetHashCode(); + if (ExtraRoleNum != 0) hash ^= ExtraRoleNum.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TraitId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TraitId); + } + effects_.WriteTo(output, _repeated_effects_codec); + if (ExtraRoleNum != 0) { + output.WriteRawTag(24); + output.WriteUInt32(ExtraRoleNum); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TraitId != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TraitId); + } + effects_.WriteTo(ref output, _repeated_effects_codec); + if (ExtraRoleNum != 0) { + output.WriteRawTag(24); + output.WriteUInt32(ExtraRoleNum); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (TraitId != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TraitId); + } + size += effects_.CalculateSize(_repeated_effects_codec); + if (ExtraRoleNum != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ExtraRoleNum); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightGameTraitPb other) { + if (other == null) { + return; + } + if (other.TraitId != 0) { + TraitId = other.TraitId; + } + effects_.Add(other.effects_); + if (other.ExtraRoleNum != 0) { + ExtraRoleNum = other.ExtraRoleNum; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TraitId = input.ReadUInt32(); + break; + } + case 18: { + effects_.AddEntriesFrom(input, _repeated_effects_codec); + break; + } + case 24: { + ExtraRoleNum = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TraitId = input.ReadUInt32(); + break; + } + case 18: { + effects_.AddEntriesFrom(ref input, _repeated_effects_codec); + break; + } + case 24: { + ExtraRoleNum = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class GridFightTraitInfoPb : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GridFightTraitInfoPb()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightTraitInfoPb() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightTraitInfoPb(GridFightTraitInfoPb other) : this() { + traits_ = other.traits_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public GridFightTraitInfoPb Clone() { + return new GridFightTraitInfoPb(this); + } + + /// Field number for the "Traits" field. + public const int TraitsFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_traits_codec + = pb::FieldCodec.ForMessage(10, global::EggLink.DanhengServer.Proto.ServerSide.GridFightGameTraitPb.Parser); + private readonly pbc::RepeatedField traits_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField Traits { + get { return traits_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as GridFightTraitInfoPb); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(GridFightTraitInfoPb other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!traits_.Equals(other.traits_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + hash ^= traits_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + traits_.WriteTo(output, _repeated_traits_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + traits_.WriteTo(ref output, _repeated_traits_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + size += traits_.CalculateSize(_repeated_traits_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(GridFightTraitInfoPb other) { + if (other == null) { + return; + } + traits_.Add(other.traits_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + traits_.AddEntriesFrom(input, _repeated_traits_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + traits_.AddEntriesFrom(ref input, _repeated_traits_codec); + break; + } + } + } + } + #endif + + } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class GridFightComponentPb : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE @@ -2122,7 +3811,7 @@ namespace EggLink.DanhengServer.Proto.ServerSide { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[7]; } + get { return global::EggLink.DanhengServer.Proto.ServerSide.GridFightDataReflection.Descriptor.MessageTypes[14]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2152,6 +3841,15 @@ namespace EggLink.DanhengServer.Proto.ServerSide { case ComponentTypeOneofCase.AvatarInfo: AvatarInfo = other.AvatarInfo.Clone(); break; + case ComponentTypeOneofCase.OrbInfo: + OrbInfo = other.OrbInfo.Clone(); + break; + case ComponentTypeOneofCase.AugmentInfo: + AugmentInfo = other.AugmentInfo.Clone(); + break; + case ComponentTypeOneofCase.TraitInfo: + TraitInfo = other.TraitInfo.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -2199,6 +3897,42 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } } + /// Field number for the "OrbInfo" field. + public const int OrbInfoFieldNumber = 4; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb OrbInfo { + get { return componentTypeCase_ == ComponentTypeOneofCase.OrbInfo ? (global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb) componentType_ : null; } + set { + componentType_ = value; + componentTypeCase_ = value == null ? ComponentTypeOneofCase.None : ComponentTypeOneofCase.OrbInfo; + } + } + + /// Field number for the "AugmentInfo" field. + public const int AugmentInfoFieldNumber = 5; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb AugmentInfo { + get { return componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo ? (global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb) componentType_ : null; } + set { + componentType_ = value; + componentTypeCase_ = value == null ? ComponentTypeOneofCase.None : ComponentTypeOneofCase.AugmentInfo; + } + } + + /// Field number for the "TraitInfo" field. + public const int TraitInfoFieldNumber = 6; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb TraitInfo { + get { return componentTypeCase_ == ComponentTypeOneofCase.TraitInfo ? (global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb) componentType_ : null; } + set { + componentType_ = value; + componentTypeCase_ = value == null ? ComponentTypeOneofCase.None : ComponentTypeOneofCase.TraitInfo; + } + } + private object componentType_; /// Enum of possible cases for the "ComponentType" oneof. public enum ComponentTypeOneofCase { @@ -2206,6 +3940,9 @@ namespace EggLink.DanhengServer.Proto.ServerSide { ShopInfo = 1, BasicInfo = 2, AvatarInfo = 3, + OrbInfo = 4, + AugmentInfo = 5, + TraitInfo = 6, } private ComponentTypeOneofCase componentTypeCase_ = ComponentTypeOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2239,6 +3976,9 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (!object.Equals(ShopInfo, other.ShopInfo)) return false; if (!object.Equals(BasicInfo, other.BasicInfo)) return false; if (!object.Equals(AvatarInfo, other.AvatarInfo)) return false; + if (!object.Equals(OrbInfo, other.OrbInfo)) return false; + if (!object.Equals(AugmentInfo, other.AugmentInfo)) return false; + if (!object.Equals(TraitInfo, other.TraitInfo)) return false; if (ComponentTypeCase != other.ComponentTypeCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2250,6 +3990,9 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (componentTypeCase_ == ComponentTypeOneofCase.ShopInfo) hash ^= ShopInfo.GetHashCode(); if (componentTypeCase_ == ComponentTypeOneofCase.BasicInfo) hash ^= BasicInfo.GetHashCode(); if (componentTypeCase_ == ComponentTypeOneofCase.AvatarInfo) hash ^= AvatarInfo.GetHashCode(); + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) hash ^= OrbInfo.GetHashCode(); + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) hash ^= AugmentInfo.GetHashCode(); + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) hash ^= TraitInfo.GetHashCode(); hash ^= (int) componentTypeCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2281,6 +4024,18 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(26); output.WriteMessage(AvatarInfo); } + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) { + output.WriteRawTag(34); + output.WriteMessage(OrbInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) { + output.WriteRawTag(42); + output.WriteMessage(AugmentInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) { + output.WriteRawTag(50); + output.WriteMessage(TraitInfo); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2303,6 +4058,18 @@ namespace EggLink.DanhengServer.Proto.ServerSide { output.WriteRawTag(26); output.WriteMessage(AvatarInfo); } + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) { + output.WriteRawTag(34); + output.WriteMessage(OrbInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) { + output.WriteRawTag(42); + output.WriteMessage(AugmentInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) { + output.WriteRawTag(50); + output.WriteMessage(TraitInfo); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2322,6 +4089,15 @@ namespace EggLink.DanhengServer.Proto.ServerSide { if (componentTypeCase_ == ComponentTypeOneofCase.AvatarInfo) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(AvatarInfo); } + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(OrbInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(AugmentInfo); + } + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(TraitInfo); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2353,6 +4129,24 @@ namespace EggLink.DanhengServer.Proto.ServerSide { } AvatarInfo.MergeFrom(other.AvatarInfo); break; + case ComponentTypeOneofCase.OrbInfo: + if (OrbInfo == null) { + OrbInfo = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb(); + } + OrbInfo.MergeFrom(other.OrbInfo); + break; + case ComponentTypeOneofCase.AugmentInfo: + if (AugmentInfo == null) { + AugmentInfo = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb(); + } + AugmentInfo.MergeFrom(other.AugmentInfo); + break; + case ComponentTypeOneofCase.TraitInfo: + if (TraitInfo == null) { + TraitInfo = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb(); + } + TraitInfo.MergeFrom(other.TraitInfo); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -2397,6 +4191,33 @@ namespace EggLink.DanhengServer.Proto.ServerSide { AvatarInfo = subBuilder; break; } + case 34: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) { + subBuilder.MergeFrom(OrbInfo); + } + input.ReadMessage(subBuilder); + OrbInfo = subBuilder; + break; + } + case 42: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) { + subBuilder.MergeFrom(AugmentInfo); + } + input.ReadMessage(subBuilder); + AugmentInfo = subBuilder; + break; + } + case 50: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) { + subBuilder.MergeFrom(TraitInfo); + } + input.ReadMessage(subBuilder); + TraitInfo = subBuilder; + break; + } } } #endif @@ -2439,6 +4260,33 @@ namespace EggLink.DanhengServer.Proto.ServerSide { AvatarInfo = subBuilder; break; } + case 34: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightOrbInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.OrbInfo) { + subBuilder.MergeFrom(OrbInfo); + } + input.ReadMessage(subBuilder); + OrbInfo = subBuilder; + break; + } + case 42: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightAugmentInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.AugmentInfo) { + subBuilder.MergeFrom(AugmentInfo); + } + input.ReadMessage(subBuilder); + AugmentInfo = subBuilder; + break; + } + case 50: { + global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb subBuilder = new global::EggLink.DanhengServer.Proto.ServerSide.GridFightTraitInfoPb(); + if (componentTypeCase_ == ComponentTypeOneofCase.TraitInfo) { + subBuilder.MergeFrom(TraitInfo); + } + input.ReadMessage(subBuilder); + TraitInfo = subBuilder; + break; + } } } } diff --git a/ServerSideProto/ProtoFile/GridFightData.proto b/ServerSideProto/ProtoFile/GridFightData.proto index 630b77ff..4e5a0582 100644 --- a/ServerSideProto/ProtoFile/GridFightData.proto +++ b/ServerSideProto/ProtoFile/GridFightData.proto @@ -12,6 +12,7 @@ message GridFightShopItemPb { GridFightShopRoleItemPb RoleItem = 1; } uint32 Rarity = 2; + bool SoldOut = 3; } message GridFightShopInfoPb { @@ -35,8 +36,10 @@ message GridFightBasicInfoPb { uint32 LevelExp = 3; uint32 BuyLevelCost = 4; uint32 CurHp = 5; - uint32 CurOnGroundAvatarCount = 6; + uint32 MaxAvatarNum = 6; uint32 ComboNum = 7; + uint32 LockType = 8; + uint32 LockReason = 9; } message GridFightRoleInfoPb { @@ -44,6 +47,8 @@ message GridFightRoleInfoPb { uint32 Tier = 2; uint32 Pos = 3; uint32 UniqueId = 4; + map SavedValues = 5; + repeated uint32 EquipmentIds = 6; } message GridFightAvatarInfoPb { @@ -51,10 +56,47 @@ message GridFightAvatarInfoPb { uint32 CurUniqueId = 2; } +message GridFightGameOrbPb { + uint32 OrbItemId = 1; + uint32 UniqueId = 2; +} + +message GridFightOrbInfoPb { + repeated GridFightGameOrbPb Orbs = 1; +} + +message GridFightGameAugmentPb { + uint32 AugmentId = 1; + map SavedValues = 2; +} + +message GridFightAugmentInfoPb { + repeated GridFightGameAugmentPb Augments = 1; +} + +message GridFightGameTraitEffectPb { + uint32 TraitId = 1; + uint32 EffectId = 2; + uint32 Param = 3; +} + +message GridFightGameTraitPb { + uint32 TraitId = 1; + repeated GridFightGameTraitEffectPb Effects = 2; + uint32 ExtraRoleNum = 3; +} + +message GridFightTraitInfoPb { + repeated GridFightGameTraitPb Traits = 1; +} + message GridFightComponentPb { oneof ComponentType { GridFightShopInfoPb ShopInfo = 1; GridFightBasicInfoPb BasicInfo = 2; GridFightAvatarInfoPb AvatarInfo = 3; + GridFightOrbInfoPb OrbInfo = 4; + GridFightAugmentInfoPb AugmentInfo = 5; + GridFightTraitInfoPb TraitInfo = 6; } } \ No newline at end of file