From 2d869c875d486b9f28b5c1db30922182c6760319 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 20 Sep 2019 18:34:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 127 ++++++++++-------- 1 file changed, 71 insertions(+), 56 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 00a47fe59..41a3b7760 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -1255,43 +1255,51 @@ public class MapLogic { mapManager.updateEndlessFightCount(1+mapManager.getEndlessMapInfo().getFightCount()); } if (resultCode == 0) { - //无尽副本复活消耗 - reviveConsumeExecution(user); - // 失败需要等待n秒后复活所有英雄 - int dieCount = user.getMapManager().getDieCount(); - dieCount++; - user.getMapManager().setDieCount(dieCount); - int[] reviveTime = sChallengeConfig.getReviveTime(); - long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); - user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user, true); - remainHp.clear(); - if (leftTime <= (int) (time / 1000)) { - resetMapInfo(user, false); - } else { - initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { - continue; + if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + //无尽副本复活消耗 + reviveConsumeExecution(user); + for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ + mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); + mapManager.updateEndlessHeroHp(entry.getKey(),0); + } + }else { + // 失败需要等待n秒后复活所有英雄 + int dieCount = user.getMapManager().getDieCount(); + dieCount++; + user.getMapManager().setDieCount(dieCount); + int[] reviveTime = sChallengeConfig.getReviveTime(); + long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); + user.getMapManager().setCanMoveTime(TimeUtils.now() + time); + int leftTime = getLeftTime(user, true); + remainHp.clear(); + if (leftTime <= (int) (time / 1000)) { + resetMapInfo(user, false); + } else { + initTeamInfo(mapManager.getTeamId(), uid, user, mapManager, 2); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); + for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { + Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); + if (hero == null) { + continue; + } + Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId); + remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } - Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); - remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } } - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse - .newBuilder() - .setResult(resultCode) - .setEnventDrop(dropBuilder) - .addAllRemainHpList(remainHp) - .setEssenceValue(mapManager.getEssenceValue()) - .setLastXY(mapManager.getLastXY()) - .build(); - mapManager.setCurXY(mapManager.getLastXY()); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), build, true); - return; + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse + .newBuilder() + .setResult(resultCode) + .setEnventDrop(dropBuilder) + .addAllRemainHpList(remainHp) + .setEssenceValue(mapManager.getEssenceValue()) + .setLastXY(mapManager.getLastXY()) + .build(); + mapManager.setCurXY(mapManager.getLastXY()); + MessageUtil.sendMessage(session, 1, messageType.getNumber(), build, true); + return; + } List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){ @@ -1482,29 +1490,36 @@ public class MapLogic { mapManager.setLastFightResult(resultCode); if (resultCode == 0 || dropout == 1) { - //无尽副本复活消耗 - reviveConsumeExecution(user); - // 失败需要等待n秒后复活所有英雄 - int dieCount = user.getMapManager().getDieCount(); - dieCount++; - user.getMapManager().setDieCount(dieCount); - int[] reviveTime = sChallengeConfig.getReviveTime(); - long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); - user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user, true); - remainHp.clear(); - if (leftTime <= (int) (time / 1000)) { - resetMapInfo(user, false); - } else { - initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2); - Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { - continue; + if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + //无尽副本复活消耗 + reviveConsumeExecution(user); + for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ + mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); + mapManager.updateEndlessHeroHp(entry.getKey(),0); + } + }else{ + // 失败需要等待n秒后复活所有英雄 + int dieCount = user.getMapManager().getDieCount(); + dieCount++; + user.getMapManager().setDieCount(dieCount); + int[] reviveTime = sChallengeConfig.getReviveTime(); + long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); + user.getMapManager().setCanMoveTime(TimeUtils.now() + time); + int leftTime = getLeftTime(user, true); + remainHp.clear(); + if (leftTime <= (int) (time / 1000)) { + resetMapInfo(user, false); + } else { + initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2); + Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); + for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { + Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); + if (hero == null) { + continue; + } + remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } - remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();