神魔 卸下魂宝灵宝

back_recharge
jiahuiwen 2022-04-06 13:43:50 +08:00
parent 6b81fc069a
commit cc668d9147
2 changed files with 34 additions and 20 deletions

View File

@ -6,6 +6,7 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager;
import com.ljsd.jieling.logic.dao.PropertyItem;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
@ -16,6 +17,8 @@ import org.springframework.stereotype.Component;
import rpc.protocols.HeroInfoProto;
import rpc.protocols.MessageTypeProto;
import java.util.Map;
//神魔阵营英雄转职协议
@Component
@ -28,35 +31,49 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
@Override
public void processWithProto(ISession session, HeroInfoProto.GodDevilHeroSelectPropRequest proto) throws Exception {
String heroId=proto.getHeroId();//英雄动态id
int propId=proto.getPropId();//属性id
String heroId = proto.getHeroId();//英雄动态id
int propId = proto.getPropId();//属性id
int uid = session.getUid();
if (propId<0||propId>4){
LOGGER.error("uid{} heroDid:{} propId:{} 要转换的职业不存在",uid,heroId,propId);
if (propId < 0 || propId > 4) {
LOGGER.error("uid{} heroDid:{} propId:{} 要转换的职业不存在", uid, heroId, propId);
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
}
User user = UserManager.getUser(uid);
HeroManager heroManager=user.getHeroManager();
Hero hero= heroManager.getHero(heroId);
HeroManager heroManager = user.getHeroManager();
Hero hero = heroManager.getHero(heroId);
if (hero==null) {
LOGGER.error("uid{} heroDid:{}该英雄不存在 ",uid,heroId);
if (hero == null) {
LOGGER.error("uid{} heroDid:{}该英雄不存在 ", uid, heroId);
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
}
SCHero scHero=SCHero.getsCHero().get(hero.getTemplateId());
if (scHero.getPropertyName()<4){
LOGGER.error("uid{} heroTid:{} heroDid:{} 该英雄不能转职",uid,scHero.getId(),hero.getId());
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
if (scHero.getPropertyName() < 4) {
LOGGER.error("uid{} heroTid:{} heroDid:{} 该英雄不能转职", uid, scHero.getId(), hero.getId());
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
}
if (hero.getPropertyId()<=4){
int[][]costArr=SSpecialConfig.getTwiceArrayValue(SSpecialConfig.CHANGE_CAMP_COST);
boolean costResult = ItemUtil.itemCost(user,costArr, BIReason.GOD_DEVIL_CHANGE,propId);
if (!costResult){
if (hero.getPropertyId() <= 4) {
int[][] costArr = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.CHANGE_CAMP_COST);
boolean costResult = ItemUtil.itemCost(user, costArr, BIReason.GOD_DEVIL_CHANGE, propId);
if (!costResult) {
LOGGER.error("神魔英雄转职消耗材料不足");
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
}
}
// 卸下魂宝灵宝
if (!hero.getJewelInfo().isEmpty()) {
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
for (String equipId : hero.getJewelInfo()) {
if (!hero.getJewelInfo().contains(equipId)) {
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
}
if (equipMap.get(equipId) != null) {
equipMap.get(equipId).setHeroId("");
}
hero.removeJewel(equipId);
}
}
hero.setPropertyId(propId);
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GOD_DEVIL_HERO_SELECT_PROP_RESPONSE_VALUE, null,true);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.GOD_DEVIL_HERO_SELECT_PROP_RESPONSE_VALUE, null, true);
}
}

View File

@ -2,11 +2,9 @@ package com.ljsd.jieling.logic.player;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.ljsd.CoreService;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig;
import com.ljsd.jieling.config.json.CoreSettings;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType;
@ -30,11 +28,11 @@ import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent;
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
import com.ljsd.jieling.logic.activity.eventhandler.UserForceUpEventHandler;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.Pokemon;
import com.ljsd.jieling.logic.dao.PropertyItem;
import com.ljsd.jieling.logic.dao.PurpleMansionSeal;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.GuildCache;
import com.ljsd.jieling.logic.dao.root.User;
@ -57,7 +55,6 @@ import com.ljsd.jieling.thrift.pool.ClientAdapterPo;
import com.ljsd.jieling.util.*;
import config.*;
import manager.STableManager;
import org.luaj.vm2.ast.Str;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import rpc.protocols.CommonProto;