back_recharge
parent
11fb5eb275
commit
d7586ee251
|
@ -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<HeroInfoProto.SixiangUpRequest> {
|
||||
@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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue