神魔 卸下魂宝灵宝

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.MessageTypeProto;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
//神魔阵营英雄转职协议
@ -35,7 +37,7 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
int propId = proto.getPropId();//属性id
int uid = session.getUid();
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);
}
User user = UserManager.getUser(uid);
@ -43,12 +45,12 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
Hero hero = heroManager.getHero(heroId);
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);
}
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
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);
}
if (hero.getPropertyId() <= 4) {
@ -62,6 +64,7 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
// 卸下魂宝灵宝
if (!hero.getJewelInfo().isEmpty()) {
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
Set<String> needRemove = new HashSet<>(hero.getJewelInfo());
for (String equipId : hero.getJewelInfo()) {
if (!hero.getJewelInfo().contains(equipId)) {
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
@ -69,7 +72,9 @@ public class GodDevilHeroSelectPropRequestHandler extends BaseHandler<HeroInfoPr
if (equipMap.get(equipId) != null) {
equipMap.get(equipId).setHeroId("");
}
hero.removeJewel(equipId);
}
for (String s : needRemove) {
hero.removeJewel(s);
}
}