神魔 卸下魂宝灵宝

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.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager; 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.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
@ -16,6 +17,8 @@ import org.springframework.stereotype.Component;
import rpc.protocols.HeroInfoProto; import rpc.protocols.HeroInfoProto;
import rpc.protocols.MessageTypeProto; import rpc.protocols.MessageTypeProto;
import java.util.Map;
//神魔阵营英雄转职协议 //神魔阵营英雄转职协议
@Component @Component
@ -28,35 +31,49 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
@Override @Override
public void processWithProto(ISession session, HeroInfoProto.GodDevilHeroSelectPropRequest proto) throws Exception { public void processWithProto(ISession session, HeroInfoProto.GodDevilHeroSelectPropRequest proto) throws Exception {
String heroId=proto.getHeroId();//英雄动态id String heroId = proto.getHeroId();//英雄动态id
int propId=proto.getPropId();//属性id int propId = proto.getPropId();//属性id
int uid = session.getUid(); int uid = session.getUid();
if (propId<0||propId>4){ if (propId < 0 || propId > 4) {
LOGGER.error("uid{} heroDid:{} propId:{} 要转换的职业不存在",uid,heroId,propId); LOGGER.error("uid{} heroDid:{} propId:{} 要转换的职业不存在", uid, heroId, propId);
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
} }
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
HeroManager heroManager=user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
Hero hero= heroManager.getHero(heroId); Hero hero = heroManager.getHero(heroId);
if (hero==null) { if (hero == null) {
LOGGER.error("uid{} heroDid:{}该英雄不存在 ",uid,heroId); LOGGER.error("uid{} heroDid:{}该英雄不存在 ", uid, heroId);
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
} }
SCHero scHero=SCHero.getsCHero().get(hero.getTemplateId()); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
if (scHero.getPropertyName()<4){ if (scHero.getPropertyName() < 4) {
LOGGER.error("uid{} heroTid:{} heroDid:{} 该英雄不能转职",uid,scHero.getId(),hero.getId()); LOGGER.error("uid{} heroTid:{} heroDid:{} 该英雄不能转职", uid, scHero.getId(), hero.getId());
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
} }
if (hero.getPropertyId()<=4){ if (hero.getPropertyId() <= 4) {
int[][]costArr=SSpecialConfig.getTwiceArrayValue(SSpecialConfig.CHANGE_CAMP_COST); int[][] costArr = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.CHANGE_CAMP_COST);
boolean costResult = ItemUtil.itemCost(user,costArr, BIReason.GOD_DEVIL_CHANGE,propId); boolean costResult = ItemUtil.itemCost(user, costArr, BIReason.GOD_DEVIL_CHANGE, propId);
if (!costResult){ if (!costResult) {
LOGGER.error("神魔英雄转职消耗材料不足"); LOGGER.error("神魔英雄转职消耗材料不足");
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); 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); 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.alibaba.fastjson.JSONObject;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.ljsd.CoreService;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig; 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.GlobalsDef;
import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.dataReport.reportBeans_37.ChatContentType; 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.UserForceChangeEvent;
import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent;
import com.ljsd.jieling.logic.activity.eventhandler.UserForceUpEventHandler; 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.Pokemon;
import com.ljsd.jieling.logic.dao.PropertyItem; import com.ljsd.jieling.logic.dao.PropertyItem;
import com.ljsd.jieling.logic.dao.PurpleMansionSeal; import com.ljsd.jieling.logic.dao.PurpleMansionSeal;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; 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.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.GuildCache; import com.ljsd.jieling.logic.dao.root.GuildCache;
import com.ljsd.jieling.logic.dao.root.User; 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 com.ljsd.jieling.util.*;
import config.*; import config.*;
import manager.STableManager; import manager.STableManager;
import org.luaj.vm2.ast.Str;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import rpc.protocols.CommonProto; import rpc.protocols.CommonProto;