无尽副本修改
parent
3fad81a218
commit
5ed723c9da
|
@ -1235,7 +1235,10 @@ public class MapLogic {
|
|||
}
|
||||
int groupId = option[0];
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) {
|
||||
groupId =STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId);
|
||||
Integer newGroupId= STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId);
|
||||
if(newGroupId!=null){
|
||||
groupId = newGroupId;
|
||||
}
|
||||
}
|
||||
int destoryXY = mapManager.getTriggerXY();
|
||||
CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(user, mapManager.getTeamId(), true);
|
||||
|
@ -1277,14 +1280,13 @@ public class MapLogic {
|
|||
if (resultCode == 0) {
|
||||
//todo 无尽副本不复活记得改回去
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) {
|
||||
// //无尽副本复活消耗
|
||||
// //无尽副本复活消耗
|
||||
reviveConsumeExecution(user);
|
||||
}
|
||||
// for(Map.Entry<String, Map<Integer, Integer>> entry: mapManager.getHeroAllAttributeMap().entrySet()){
|
||||
// mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0);
|
||||
// mapManager.updateEndlessHeroHp(entry.getKey(),0);
|
||||
// }
|
||||
// }else {
|
||||
for(Map.Entry<String, Map<Integer, Integer>> 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++;
|
||||
|
@ -1308,7 +1310,7 @@ public class MapLogic {
|
|||
remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId()));
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse
|
||||
.newBuilder()
|
||||
|
@ -1515,67 +1517,67 @@ public class MapLogic {
|
|||
mapManager.setLastFightResult(resultCode);
|
||||
if (resultCode == 0 || dropout == 1) {
|
||||
//todo 无尽副本复活
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
|
||||
if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 4) {
|
||||
//无尽副本复活消耗
|
||||
reviveConsumeExecution(user);
|
||||
// for(Map.Entry<String, Map<Integer, Integer>> 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);
|
||||
for (Map.Entry<String, Map<Integer, Integer>> entry : mapManager.getHeroAllAttributeMap().entrySet()) {
|
||||
mapManager.updateHeroOneAttribute(entry.getKey(), HeroAttributeEnum.CurHP.getPropertyId(), 0);
|
||||
mapManager.updateEndlessHeroHp(entry.getKey(), 0);
|
||||
}
|
||||
} else {
|
||||
initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2);
|
||||
Map<String, Map<Integer, Integer>> heroAllAttributeMap = mapManager.getHeroAllAttributeMap();
|
||||
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId());
|
||||
for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) {
|
||||
Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId());
|
||||
if (hero == null) {
|
||||
continue;
|
||||
// 失败需要等待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<String, Map<Integer, Integer>> heroAllAttributeMap = mapManager.getHeroAllAttributeMap();
|
||||
List<TeamPosHeroInfo> 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();
|
||||
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse
|
||||
.newBuilder();
|
||||
fightEndResponse.setResult(resultCode);
|
||||
fightEndResponse.setEnventDrop(dropBuilder);
|
||||
fightEndResponse.addAllRemainHpList(remainHp);
|
||||
fightEndResponse.setLastXY(mapManager.getLastXY());
|
||||
mapManager.setCurXY(mapManager.getLastXY());
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==2){
|
||||
fightEndResponse.setLastTowerTime((int)(mapManager.getCurrTowerTime()/1000));
|
||||
}
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse
|
||||
.newBuilder();
|
||||
fightEndResponse.setResult(resultCode);
|
||||
fightEndResponse.setEnventDrop(dropBuilder);
|
||||
fightEndResponse.addAllRemainHpList(remainHp);
|
||||
fightEndResponse.setLastXY(mapManager.getLastXY());
|
||||
mapManager.setCurXY(mapManager.getLastXY());
|
||||
if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 2) {
|
||||
fightEndResponse.setLastTowerTime((int) (mapManager.getCurrTowerTime() / 1000));
|
||||
}
|
||||
|
||||
if(sOptionConfig!=null){
|
||||
int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues();
|
||||
if(jumpTypeValues.length>0 && sOptionConfig.getJumpType() == 3){
|
||||
SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]);
|
||||
if(sOptionAddConditions!=null && sOptionAddConditions.getType() == 7){
|
||||
Cell cell = mapManager.getMapInfo().get(triggerXY);
|
||||
if (cell != null ) {
|
||||
nextEventId = getNextEventId(user, cell, sOptionConfig);
|
||||
cell.setEventId(nextEventId);
|
||||
mapManager.addOrUpdateCell(triggerXY, cell);
|
||||
fightEndResponse.setEventId(nextEventId);
|
||||
if (sOptionConfig != null) {
|
||||
int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues();
|
||||
if (jumpTypeValues.length > 0 && sOptionConfig.getJumpType() == 3) {
|
||||
SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]);
|
||||
if (sOptionAddConditions != null && sOptionAddConditions.getType() == 7) {
|
||||
Cell cell = mapManager.getMapInfo().get(triggerXY);
|
||||
if (cell != null) {
|
||||
nextEventId = getNextEventId(user, cell, sOptionConfig);
|
||||
cell.setEventId(nextEventId);
|
||||
mapManager.addOrUpdateCell(triggerXY, cell);
|
||||
fightEndResponse.setEventId(nextEventId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
|
||||
return;
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
|
||||
return;
|
||||
}
|
||||
for (int i = 2; i < checkResult.length; i++) {
|
||||
if (checkResult[i] <= 0) {
|
||||
|
@ -1588,13 +1590,14 @@ public class MapLogic {
|
|||
List<TeamPosHeroInfo> team = user.getTeamPosManager().getTeamPosForHero().get(teamId);
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){
|
||||
mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1);
|
||||
for (int i = 0 ; i <team.size();i++) {
|
||||
Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId());
|
||||
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
|
||||
int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000);
|
||||
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per);
|
||||
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
|
||||
|
||||
if(checkResult[0]>0){
|
||||
for (int i = 0 ; i <team.size();i++) {
|
||||
Hero hero = user.getHeroManager().getHero(team.get(i).getHeroId());
|
||||
Map<Integer, Integer> heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId);
|
||||
int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000);
|
||||
mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per);
|
||||
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
|
||||
}
|
||||
}
|
||||
// if(!cacheRemove.isEmpty()){
|
||||
// Iterator<TeamPosHeroInfo> iterator = team.iterator();
|
||||
|
|
|
@ -386,7 +386,7 @@ public class GlobalDataManaager {
|
|||
}
|
||||
int size = (int)(users.size()*0.85);
|
||||
if(size ==0){
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
int level = 0;
|
||||
for(int i = 0 ; i <size;i++){
|
||||
|
|
Loading…
Reference in New Issue