From d7586ee251315ceec7fbf960281070c9b2bf0420 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 20 Oct 2021 13:17:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E4=BB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hero/XiuxianLevelUpRequestHandler.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/hero/XiuxianLevelUpRequestHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/XiuxianLevelUpRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/XiuxianLevelUpRequestHandler.java new file mode 100644 index 000000000..a5e816b23 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/hero/XiuxianLevelUpRequestHandler.java @@ -0,0 +1,65 @@ +package com.ljsd.jieling.handler.hero; + +import com.googlecode.protobuf.format.JsonFormat; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.HeroManager; +import com.ljsd.jieling.logic.dao.PlayerManager; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import config.SSpecialConfig; +import config.SXiuXian; +import manager.STableManager; +import org.springframework.stereotype.Component; +import rpc.protocols.HeroInfoProto; +import rpc.protocols.MessageTypeProto; + +@Component +public class XiuxianLevelUpRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.XIUXIAN_XIUWEI_UP_REQUEST; + } + + + @Override + public void processWithProto(ISession session, HeroInfoProto.SixiangUpRequest proto) throws Exception { + // 用户信息 + User user = UserManager.getUser(session.getUid()); + if (user == null) { + throw new ErrorCodeException(ErrorCode.UNKNOWN); + } + // 获取当前等级和之后的等级 + HeroManager heroManager = user.getHeroManager(); + int level = heroManager.getPracticeLevel(); + if (level <= 0) { + level = 1; + } + SXiuXian xiuXian = STableManager.getConfig(SXiuXian.class).get(level); + if (xiuXian == null) { + throw new ErrorCodeException("已修行至世间巅峰"); + } + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + int xiuweiLevel = heroManager.getXiuweiLevel(); + int maxLevel = SSpecialConfig.getIntegerValue(SSpecialConfig.FightForPerXiuweiLevel); + if (xiuweiLevel >= maxLevel) { + throw new ErrorCodeException("已修行至最大等级"); + } + int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.FightForPerXiuweiLevel); + int maxForce = playerInfoManager.getMaxForce(); + int curMaxLevel = maxForce / integerValue; + if (xiuweiLevel >= curMaxLevel) { + throw new ErrorCodeException("已修行至当前战力最大等级"); + } +// heroManager.setXiuweiLevel(curMaxLevel); + heroManager.setXiuweiLevel(curMaxLevel); + HeroInfoProto.XiuxianLevelUpResponse xiuxianLevelUpResponse = HeroInfoProto.XiuxianLevelUpResponse.newBuilder() + .setXiuxianLevel(heroManager.getXiuweiLevel()) + .build(); + LOGGER.info("================> {}", JsonFormat.printToString(xiuxianLevelUpResponse)); + MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.XIUXIAN_XIUWEI_UP_RESPONSE_VALUE, xiuxianLevelUpResponse, true); + } +}