diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java index 22be5995c..9e60ec1f2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java @@ -132,6 +132,8 @@ public class EndExpeditionBattleRequest extends BaseHandler()); //节点血量更新 nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> @@ -158,16 +160,25 @@ public class EndExpeditionBattleRequest extends BaseHandler teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { + + Iterator iterator = teamPosHeroInfos.iterator(); + while (iterator.hasNext()){ + TeamPosHeroInfo teamPosHeroInfo = iterator.next(); Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); if (hero == null) { continue; } Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId); - user.getExpeditionManager().getHeroHPWithChange().put(teamPosHeroInfo.getHeroId(), (double) remainHp.remove(0) / (double) heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); - + double remain = remainHp.remove(0); + user.getExpeditionManager().getHeroHPWithChange().put(teamPosHeroInfo.getHeroId(), remain / (double) heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); ids.add(hero.getId()); + if(remain==0d){ + iterator.remove(); + } } + //出队伍 + user.getTeamPosManager().updateTeamPosByTeamId(1001,teamPosHeroInfos); + nodeInfo.setState(ExpeditionLogic.NODESTATE_NOT_GET); if(!STableManager.getConfig(SExpeditionFloorConfig.class).containsKey(oldlay+1)) {//最后一层直接更新 领取宝箱时候校验