山河社稷图
parent
30115154eb
commit
9cb30eb9da
|
|
@ -31,6 +31,9 @@ public class HardStageLogic {
|
|||
|
||||
private static Map<Integer, List<Integer>> 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<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||
List<TeamPosHeroInfo> 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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue