diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java index 7bd038f83..64713d7e5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hardStage/HardStageLogic.java @@ -31,6 +31,9 @@ public class HardStageLogic { private static Map> reportRecord;//全服第一次三星通过,最快速度三星通过 + private static int hardStageBuffCopy = 100;//buff类型-赋值6个相同神将 + private static int hardStageBuffLimit = 101;//buff类型-只能上阵限制类型神将 + /** * 获取山河社稷图信息 @@ -102,21 +105,22 @@ public class HardStageLogic { int currentStar = node.getState(); //当前战斗的星星状态 - StringBuffer currenState = StringUtil.intArrToStringArr(num);; + StringBuffer currenState = StringUtil.intArrToStringArr(num); + ; //已存在的星星状态 StringBuffer existState = reformatBinary(currentStar); //荣耀三星 - if(currenState.toString().equals("111")&&existState.toString().equals("000")){ - for (int rewardId: config.getReward1()) { + if (currenState.toString().equals("111") && existState.toString().equals("000")) { + for (int rewardId : config.getReward1()) { if (addDropAndStar(node, dropList, rewardId, user)) { - if(!node.isFirst()){ + if (!node.isFirst()) { node.setFirst(true); } } } node.setState(7); - addStar +=3; - return addStar; + addStar += 3; + return addStar; } for (int i = 2; i >= 0; i--) { if (currenState.charAt(i) == '1' && existState.charAt(i) == '0') { @@ -150,27 +154,28 @@ public class HardStageLogic { user.getTeamPosManager().setCurTeamPosId(teamId); List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - //只能使用一个神将 复制为6个神将 TODO - if(nodeConfig.getHardStageBuff() == 12 &&teamPosHeroInfos.size() == 1){ + //只能使用一个神将 复制为6个神将 6是否需要写死 + SHardStageBuff buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff()); + if (buff.getType() == hardStageBuffCopy && teamPosHeroInfos.size() == 1) { int position = teamPosHeroInfos.get(0).getPosition(); - for(int i =1;i<=6;i++){ - if(position!= i){ - teamPosHeroInfos.add(new TeamPosHeroInfo(teamPosHeroInfos.get(0).getHeroId(),i)); + for (int i = 1; i <= 6; i++) { + if (position != i) { + teamPosHeroInfos.add(new TeamPosHeroInfo(teamPosHeroInfos.get(0).getHeroId(), i)); } } } for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero; - hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); if (hero == null) { continue; } - SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); - if(nodeConfig.getHardStageBuff()!=0){ - SHardStageBuff buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff()); - if(buff != null&& buff.getType()==101) {//TODO - if (!Arrays.stream(buff.getVocation()).boxed().anyMatch(n->n.equals(Integer.valueOf(scHero.getPropertyName())))) { + //某关卡只能上阵限制类型的英雄 + if (nodeConfig.getHardStageBuff() != 0) { + buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff()); + if (buff != null && buff.getType() == hardStageBuffLimit) { + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + if (!Arrays.stream(buff.getVocation()).boxed().anyMatch(n -> n.equals(Integer.valueOf(scHero.getPropertyName())))) { continue; } } @@ -181,7 +186,7 @@ public class HardStageLogic { HeroLogic.getInstance().getHeroSkills(user, hero, skillSb); if (nodeConfig.getHardStageBuff() != 0) { - SHardStageBuff buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff()); + buff = SHardStageBuff.getConfigMap().get(nodeConfig.getHardStageBuff()); if (buff.getType() == 2 || buff.getType() == 3) { skillSb.append(buff.getPassiveSkillLogic()).append("#"); } @@ -230,7 +235,7 @@ public class HardStageLogic { node.setHasPass(true); dropList.addAll(getFirstRewards(user, nodeConfig));//关卡通过奖励 //SHardStage nextNodeConfig = SHardStage.getConfigMap().get(nodeConfig.getNextLevel()); - if(SHardStage.getPreList(nodeConfig.getId()) != null){ + if (SHardStage.getPreList(nodeConfig.getId()) != null) { SHardStage.getPreList(nodeConfig.getId()).stream().forEach(n -> { if (n != null) { user.getHardStageManager().openNewNode(user, n);