更新地图修改

back_recharge
lvxinran 2019-11-04 15:03:25 +08:00
parent dda12ccfec
commit c07f2f2b2b
1 changed files with 20 additions and 17 deletions

View File

@ -510,28 +510,31 @@ public class MapLogic {
return false; return false;
} }
public boolean updateMapByOnlyConsumeActionPower(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception { public boolean updateMapByOnlyConsumeActionPower(ISession session, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
if (triggerXY == -1000) { if (triggerXY == -1000) {
int uid = session.getUid(); int uid = session.getUid();
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
MapManager mapManager = user.getMapManager(); if(!cells.isEmpty()){
mapManager.addWalkCells(new HashSet<>(cells)); int curXY = cells.get(cells.size()-1);
if(mapManager.getCurMapId()!=0){ MapManager mapManager = user.getMapManager();
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ mapManager.addWalkCells(new HashSet<>(cells));
int[][] cost = new int[1][]; if(mapManager.getCurMapId()!=0){
int costId = SChallengeSetting.getChallengeSetting().getActionPowerId(); if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
int costNum = cells.size(); int[][] cost = new int[1][];
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum); int costId = SChallengeSetting.getChallengeSetting().getActionPowerId();
cost[0]= new int[]{costId,costNum}; int costNum = cells.size();
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
if(!costResult){ cost[0]= new int[]{costId,costNum};
costNum = user.getItemManager().getItem(costId).getItemNum(); boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
cost[0][1]= costNum; if(!costResult){
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1); costNum = user.getItemManager().getItem(costId).getItemNum();
cost[0][1]= costNum;
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
}
} }
} }
mapManager.setCurXY(curXY);
} }
mapManager.setCurXY(curXY);
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder() MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder()
.setLeftTime(getLeftTime(user, true)) .setLeftTime(getLeftTime(user, true))
.build(); .build();
@ -544,7 +547,7 @@ public class MapLogic {
public void updateMap(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception { public void updateMap(ISession session, int curXY, int triggerXY, List<Integer> cells, MessageTypeProto.MessageType messageType) throws Exception {
LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells); LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells);
if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) { if (updateMapByOnlyConsumeActionPower(session, triggerXY, cells, messageType)) {
return; return;
} }
if (triggerXY != curXY) { if (triggerXY != curXY) {