更新地图修改

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;
}
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) {
int uid = session.getUid();
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();
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult){
costNum = user.getItemManager().getItem(costId).getItemNum();
cost[0][1]= costNum;
ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!cells.isEmpty()){
int curXY = cells.get(cells.size()-1);
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();
mapManager.updateEndlessConsumeExecution(mapManager.getEndlessMapInfo().getConsumeExecution()+costNum);
cost[0]= new int[]{costId,costNum};
boolean costResult = ItemUtil.itemCost(user,cost,BIReason.ENDLESS_CONSUME_EXECUTION,1);
if(!costResult){
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()
.setLeftTime(getLeftTime(user, true))
.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 {
LOGGER.info("updateMap() curXY=>{},triggerXY=>{},cells={}", curXY, triggerXY,cells);
if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) {
if (updateMapByOnlyConsumeActionPower(session, triggerXY, cells, messageType)) {
return;
}
if (triggerXY != curXY) {