diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index ee06555e8..7d92829b6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1661,35 +1661,8 @@ public class HeroLogic{ user.getUserMissionManager().onGameEvent(user,GameEvent.WEAR_EQUIP,equipInfoTmp.size()); equipIds.forEach(equipId->equipManager.getEquipMap().get(equipId).setHeroId(heroId)); }else if(type ==2){ - if(equipIds.size()!=1){ - throw new ErrorCodeException(ErrorCode.HERO_OPT_ONE); - }else{ - String jId = equipIds.get(0); - Jewel equip =(Jewel)equipManager.getEquipMap().get(jId); - if( null == equip || null == hero ||hero.getJewelInfo().contains(jId)){ - throw new ErrorCodeException(ErrorCode.HERO_EQUIP_ERR); - } - - String remove = ""; - for(String jewelId:hero.getJewelInfo()){ - PropertyItem propertyItem = equipManager.getEquipMap().get(jewelId); - if(propertyItem==null){ - continue; - } - if(propertyItem instanceof Jewel){ - if(equip.getJewelType()==((Jewel) propertyItem).getJewelType()){ - remove = propertyItem.getId(); - } - } - } - hero.addJewel(jId); - equip.setHeroId(heroId); - - if(!StringUtil.isEmpty(remove)){ - hero.removeJewel(remove); - } -// checkAllowedOpt(1,user,hero.getStar()); -// hero.updateEspecial(equipIds.get(0)); + for(String jId:equipIds){ + wearJewel(hero,equipManager,jId); } } @@ -1703,6 +1676,31 @@ public class HeroLogic{ } + private void wearJewel(Hero hero,EquipManager equipManager,String equipId)throws Exception{ + Jewel equip =(Jewel)equipManager.getEquipMap().get(equipId); + if( null == equip || null == hero ||hero.getJewelInfo().contains(equipId)){ + throw new ErrorCodeException(ErrorCode.HERO_EQUIP_ERR); + } + + String remove = ""; + for(String jewelId:hero.getJewelInfo()){ + PropertyItem propertyItem = equipManager.getEquipMap().get(jewelId); + if(propertyItem==null){ + continue; + } + if(propertyItem instanceof Jewel){ + if(equip.getJewelType()==((Jewel) propertyItem).getJewelType()){ + remove = propertyItem.getId(); + } + } + } + hero.addJewel(equipId); + equip.setHeroId(hero.getId()); + + if(!StringUtil.isEmpty(remove)){ + hero.removeJewel(remove); + } + } @@ -1733,16 +1731,13 @@ public class HeroLogic{ hero.removeEquip(position); } }else if(type==2){ - if(equipIds.size()>1){ - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + for(String equipId:equipIds){ + if(!hero.getJewelInfo().contains(equipId)||equipMap.get(equipId)==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + equipMap.get(equipId).setHeroId(""); + hero.removeJewel(equipId); } - String jId = equipIds.get(0); - if(!hero.getJewelInfo().contains(jId)||equipMap.get(jId)==null){ - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } - equipMap.get(jId).setHeroId(""); - hero.removeJewel(jId); - } //发送成功消息