神魔 卸下魂宝灵宝

back_recharge
jiahuiwen 2022-04-06 14:05:03 +08:00
parent cc668d9147
commit ce712afeac
1 changed files with 9 additions and 4 deletions

View File

@ -17,7 +17,9 @@ import org.springframework.stereotype.Component;
import rpc.protocols.HeroInfoProto; import rpc.protocols.HeroInfoProto;
import rpc.protocols.MessageTypeProto; import rpc.protocols.MessageTypeProto;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set;
//神魔阵营英雄转职协议 //神魔阵营英雄转职协议
@ -35,7 +37,7 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
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("GOD_DEVIL_HERO_SELECT_PROP_REQUEST 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);
@ -43,12 +45,12 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
Hero hero = heroManager.getHero(heroId); Hero hero = heroManager.getHero(heroId);
if (hero == null) { if (hero == null) {
LOGGER.error("uid{} heroDid:{}该英雄不存在 ", uid, heroId); LOGGER.error("GOD_DEVIL_HERO_SELECT_PROP_REQUEST 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("GOD_DEVIL_HERO_SELECT_PROP_REQUEST 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) {
@ -62,6 +64,7 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
// 卸下魂宝灵宝 // 卸下魂宝灵宝
if (!hero.getJewelInfo().isEmpty()) { if (!hero.getJewelInfo().isEmpty()) {
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap(); Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
Set<String> needRemove = new HashSet<>(hero.getJewelInfo());
for (String equipId : hero.getJewelInfo()) { for (String equipId : hero.getJewelInfo()) {
if (!hero.getJewelInfo().contains(equipId)) { if (!hero.getJewelInfo().contains(equipId)) {
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED); throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
@ -69,7 +72,9 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
if (equipMap.get(equipId) != null) { if (equipMap.get(equipId) != null) {
equipMap.get(equipId).setHeroId(""); equipMap.get(equipId).setHeroId("");
} }
hero.removeJewel(equipId); }
for (String s : needRemove) {
hero.removeJewel(s);
} }
} }