无尽副本修改

back_recharge
lvxinran 2019-08-05 15:09:18 +08:00
parent 741a182c9a
commit fc9e2c54fe
1 changed files with 32 additions and 6 deletions

View File

@ -187,13 +187,16 @@ public class MapLogic {
}
MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder();
if(type ==4){
mapManager.updateEndlessMapId(mapId);
List<TeamPosHeroInfo> teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId);
for (int i = 0; i <teamPosForHero.size() ; i++) {
String endlessHeroId = teamPosForHero.get(i).getHeroId();
int maxHp = HeroLogic.getInstance().calHeroNotBufferAttribute(user,user.getHeroManager().getHero(endlessHeroId),false).get(1);
mapManager.addEndlessHero(teamPosForHero.get(i).getHeroId(),maxHp);
}
mapManager.setCurXY(mapManager.getEndlessMapInfo().getCurCell());
if(mapManager.getEndlessMapInfo().getCurCell()!=0){
mapManager.setCurXY(mapManager.getEndlessMapInfo().getCurCell());
}
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
for(Map.Entry<Integer,Map<Integer,String>> entry :endlessMapInfo.getMapSign().entrySet()){
int curMapId = entry.getKey();
@ -431,11 +434,24 @@ public class MapLogic {
User user = UserManager.getUser(uid);
MapManager mapManager = user.getMapManager();
mapManager.addWalkCells(new HashSet<>(cells));
if(mapManager.getCurMapId()!=0){
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
int[][] cost = new int[1][];
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
int costNum = cells.size();
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult) {
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "行动力不足!");
return false;
}
}
}
mapManager.setCurXY(curXY);
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder()
.setLeftTime(getLeftTime(user, true))
.build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true);
MessageUtil.sendMessage(session, 1, messageType.getNumber(),mapUpdateResponse, true);
return true;
}
return false;
@ -951,11 +967,15 @@ public class MapLogic {
//无尽副本
if(challengeConfig.getType()==4) {
mapManager.updateEndlessLocation(curXY);
if(outType==0){
if(outType==1){
mapManager.setCurMapId(0);
mapManager.setCurXY(0);
mapManager.updateEndlessLocation(0);
int[][] cost = new int[1][];
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
int costNum = SEndlessMapConfig.sEndlessMapConfigMap.get(mapId).getTeleportCost();
cost[0]= new int[]{costId,costNum};
// int costNum2 = SEndlessMapConfig.sEndlessMapConfigMap.get(mapManager.getEndlessMapInfo().getCurMapId()).getTeleportCost();
cost[0]= new int[]{costId,costNum};//Math.abs(costNum-costNum)
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult){
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"行动力不足!");
@ -2850,14 +2870,20 @@ public class MapLogic {
User user = UserManager.getUser(session.getUid());
MapManager mapManager = user.getMapManager();
EndlessMapInfo endlessMapInfo = mapManager.getEndlessMapInfo();
SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(endlessMapInfo.getCurMapId());
mapManager.updateEndlessLocation(CellUtil.xy2Pos(sChallengeMapConfig.getPosition()[0],sChallengeMapConfig.getPosition()[1]));
for(Map.Entry<String,EndlessHero> entry:endlessMapInfo.getEndlessHeroInfo().entrySet()){
mapManager.updateEndlessHeroHp(entry.getKey(),entry.getValue().getMaxHp());
}
for (Map.Entry<String, Map<Integer, Integer>> entry:mapManager.getHeroAllAttributeMap().entrySet()){
mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),entry.getValue().get(HeroAttributeEnum.Hp.getPropertyId()));
}
// int[][] tempExe = new int[1][];
// int [] temp = new int[2];
// temp[0] = 1;
// temp[1] = 1;
// tempExe[0] = temp;
// ItemUtil.drop(user,tempExe,1);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}