From 32349137d39f8325ca04ef1c388bb082744bf0cc Mon Sep 17 00:00:00 2001 From: Ryo Date: Fri, 23 Feb 2024 14:43:11 +0800 Subject: [PATCH 1/2] Unlock resonant chain --- GameServer/Controllers/RoleController.cs | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/GameServer/Controllers/RoleController.cs b/GameServer/Controllers/RoleController.cs index 8fc333f..3c28fe4 100644 --- a/GameServer/Controllers/RoleController.cs +++ b/GameServer/Controllers/RoleController.cs @@ -54,6 +54,39 @@ internal class RoleController : Controller [NetEvent(MessageId.RoleFavorListRequest)] public RpcResult OnRoleFavorListRequest() => Response(MessageId.RoleFavorListResponse, new RoleFavorListResponse()); + [NetEvent(MessageId.ResonantChainUnlockRequest)] + public RpcResult OnResonantChainUnlockRequest(ResonantChainUnlockRequest request, ModelManager modelManager, ConfigManager configManager) + { + roleInfo _roleInfo = modelManager.Roles.Roles.Find(r => r.RoleId == request.RoleId)!; + + if (_roleInfo != null) + { + RoleInfoConfig roleConfig = configManager.GetConfig(request.RoleId)!; + + if (roleConfig != null) + { + int _resonantChainGroupId = roleConfig.ResonantChainGroupId; + + // Todo: add buff by _resonantChainGroupId + + int _curr = _roleInfo.ResonantChainGroupIndex; + int _next = Math.Min(_curr + 1, 6); + _roleInfo.ResonantChainGroupIndex = _next; + + return Response(MessageId.ResonantChainUnlockResponse, new ResonantChainUnlockResponse + { + RoleId = request.RoleId, + ResonantChainGroupIndex = _next + }); + } + } + + return Response(MessageId.ResonantChainUnlockResponse, new ResonantChainUnlockResponse + { + RoleId = request.RoleId, + }); + } + private static List CreateBasePropList(BasePropertyConfig? config) { List baseProp = []; From 3cf22f41d93b1a6ebdcf6ba5282125352d04ebb8 Mon Sep 17 00:00:00 2001 From: thexeondev <149735250+thexeondev@users.noreply.github.com> Date: Fri, 23 Feb 2024 13:24:02 +0300 Subject: [PATCH 2/2] Update RoleController.cs --- GameServer/Controllers/RoleController.cs | 39 +++++++++++------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/GameServer/Controllers/RoleController.cs b/GameServer/Controllers/RoleController.cs index 3c28fe4..81fcf6c 100644 --- a/GameServer/Controllers/RoleController.cs +++ b/GameServer/Controllers/RoleController.cs @@ -57,33 +57,30 @@ internal class RoleController : Controller [NetEvent(MessageId.ResonantChainUnlockRequest)] public RpcResult OnResonantChainUnlockRequest(ResonantChainUnlockRequest request, ModelManager modelManager, ConfigManager configManager) { - roleInfo _roleInfo = modelManager.Roles.Roles.Find(r => r.RoleId == request.RoleId)!; - - if (_roleInfo != null) + roleInfo? role = modelManager.Roles.Roles.Find(r => r.RoleId == request.RoleId)!; + + if (role != null) { RoleInfoConfig roleConfig = configManager.GetConfig(request.RoleId)!; - - if (roleConfig != null) + + int resonantChainGroupId = roleConfig.ResonantChainGroupId; + + // Todo: add buff by _resonantChainGroupId + + int curr = role.ResonantChainGroupIndex; + int next = Math.Min(curr + 1, 6); + role.ResonantChainGroupIndex = next; + + return Response(MessageId.ResonantChainUnlockResponse, new ResonantChainUnlockResponse { - int _resonantChainGroupId = roleConfig.ResonantChainGroupId; - - // Todo: add buff by _resonantChainGroupId - - int _curr = _roleInfo.ResonantChainGroupIndex; - int _next = Math.Min(_curr + 1, 6); - _roleInfo.ResonantChainGroupIndex = _next; - - return Response(MessageId.ResonantChainUnlockResponse, new ResonantChainUnlockResponse - { - RoleId = request.RoleId, - ResonantChainGroupIndex = _next - }); - } + RoleId = request.RoleId, + ResonantChainGroupIndex = next + }); } - + return Response(MessageId.ResonantChainUnlockResponse, new ResonantChainUnlockResponse { - RoleId = request.RoleId, + ErrCode = (int)ErrorCode.ErrRoleResonNotActive }); }