From 2b28e768fbdc8f0a0bc6a76af5dde40511a24e77 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 25 Jun 2019 12:02:10 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/EventType.java | 2 +- .../ljsd/jieling/handler/map/MapLogic.java | 10 +++---- .../ljsd/jieling/handler/map/MapManager.java | 26 +++++++--------- .../handler/map/MapMissionManager.java | 30 ++++++++++++------- .../jieling/logic/mission/MissionLoigc.java | 30 ++++++++++++------- 5 files changed, 55 insertions(+), 43 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java index 51f917d24..4075bdb94 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java @@ -105,6 +105,6 @@ public class EventType { public static final int fightEvent = 2; public static final int shopEvent = 3; public static final int updateOptionalEvent = 4; - public static final int passMap = 4; + public static final int passMap = 5; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index e3b4b078f..20e5b4f12 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -194,7 +194,7 @@ public class MapLogic { if (mapManager.getTemporaryItems() != null) { mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems())); } - MapMission mapMissionProgres = mapManager.getMapMissionProgres(); + MapMission mapMissionProgres = mapManager.getCopyMissionProgresById(mapId); if (mapMissionProgres != null) { Map allMissionProgress = mapMissionProgres.getAllMissionProgress(); List exploreDetailList = new ArrayList<>(allMissionProgress.size()); @@ -820,7 +820,7 @@ public class MapLogic { public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception { MapManager mapManager = user.getMapManager(); mapManager.setFoodBufferMap(new HashMap<>()); - mapManager.setMapMissionProgres(null); + mapManager.clearCopyMission(mapManager.getCurMapId()); mapManager.setMission(null); mapManager.setMapInfo(new HashMap<>()); mapManager.setWalkCells(new HashSet<>()); @@ -1179,7 +1179,7 @@ public class MapLogic { public void initMapMission( MapManager mapManager){ int mapId = mapManager.getCurMapId(); - if(mapManager.getMapMissionProgres()!=null){ + if(mapManager.getCopyMissionProgresById(mapId)!=null){ return; } List sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(mapId); @@ -1193,7 +1193,7 @@ public class MapLogic { missionProgress.put(id,0); } MapMission mapMission = new MapMission(mapId,missionProgress); - mapManager.setMapMissionProgres(mapMission); + mapManager.setCopyMissionProgres(mapMission); } @@ -1918,7 +1918,7 @@ public class MapLogic { if (mapManager.getTemporaryItems() != null) { mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems())); } - MapMission mapMissionProgres = mapManager.getMapMissionProgres(); + MapMission mapMissionProgres = mapManager.getCopyMissionProgresById(mapManager.getCurMapId()); if (mapMissionProgres != null) { Map allMissionProgress = mapMissionProgres.getAllMissionProgress(); List exploreDetailList = new ArrayList<>(allMissionProgress.size()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index e26a15f92..27b9f09e5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -41,9 +41,7 @@ public class MapManager extends MongoBase { private Map foodBufferMap = new HashMap<>(); private Map> heroAllAttributeMap = new HashMap<>(5); - private MapMission mapMissionProgres; - - private MapMission copyMissionProgres=new MapMission(); //副本累计 + private Map copyMissionProgresMap=new HashMap<>(); //副本累计 private Set takeCopyMisionRewards =new HashSet<>();//副本奖励 @@ -331,15 +329,6 @@ public class MapManager extends MongoBase { this.canMoveTime = canMoveTime; } - public MapMission getMapMissionProgres() { - return mapMissionProgres; - } - - public void setMapMissionProgres(MapMission mapMissionProgres) { - this.mapMissionProgres = mapMissionProgres; - updateString("mapMissionProgres", mapMissionProgres); - } - public Map getCrossInfoMap() { return crossInfoMap; } @@ -408,8 +397,8 @@ public class MapManager extends MongoBase { } } - public MapMission getCopyMissionProgres() { - return copyMissionProgres; + public MapMission getCopyMissionProgresById(int copyId) { + return copyMissionProgresMap.get(copyId); } public int getFindSuddenlyBossMapId() { @@ -462,7 +451,12 @@ public class MapManager extends MongoBase { } public void setCopyMissionProgres(MapMission copyMissionProgres) { - updateString("copyMissionProgres" , copyMissionProgres); - this.copyMissionProgres = copyMissionProgres; + updateString("copyMissionProgresMap." + copyMissionProgres.getMapId() , copyMissionProgres); + this.copyMissionProgresMap.put(copyMissionProgres.getMapId(),copyMissionProgres); + } + + public void clearCopyMission(int copyId){ + removeString(getMongoKey() + ".copyMissionProgresMap." + copyId); + this.copyMissionProgresMap.remove(copyId); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java index 67c9b1ae5..95240868d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java @@ -32,10 +32,19 @@ public class MapMissionManager { missionTypes.add(MapMissionType.KILL_BOSS); typeByEventTypeMap.put(EventType.fightEvent,missionTypes); - missionTypes = new ArrayList<>(1); + missionTypes = new ArrayList<>(2); missionTypes.add(MapMissionType.DIGGER_EVENT); missionTypes.add(MapMissionType.OPEN_BOX); typeByEventTypeMap.put(EventType.updatePonintEvent,missionTypes); + + + missionTypes = new ArrayList<>(5); + missionTypes.add(MapMissionType.PASS_FINISH_DIFFICULT_MAP); + missionTypes.add(MapMissionType.PASS_INTIME_MAP); + missionTypes.add(MapMissionType.PASS_DEATH_MAP_EVENT); + missionTypes.add(MapMissionType.PASS_TEAM_FORCE_EVENT); + missionTypes.add(MapMissionType.PASS_TEAM_NOT_PROFESSION_EVENT); + typeByEventTypeMap.put(EventType.passMap,missionTypes); } public static int updateMapMission(MapManager mapManager, int eventType, int eventId, int bossIdOrItemId){ @@ -44,12 +53,11 @@ public class MapMissionManager { if(mapId==0){ return 0; } - MapMission mapMission = mapManager.getMapMissionProgres(); + MapMission mapMission = mapManager.getCopyMissionProgresById(mapId); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId); mapId=sChallengeConfig.getMapId(); boolean copyMissionUpdate = false; if(sChallengeConfig.getType()==2){ - mapMission = mapManager.getCopyMissionProgres(); copyMissionUpdate= true; } if(mapMission == null ){ @@ -82,6 +90,7 @@ public class MapMissionManager { if(isHit && !updateProgress){ continue; } + boolean isNeedReset = false; for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){ int missionId = sAccomplishmentConfig.getId(); Integer missionValue = allMissionProgress.get(missionId); @@ -95,6 +104,7 @@ public class MapMissionManager { for(int targetEventIdTmp : values[0]){ if(targetEventIdTmp == eventId){ updateProgress = true; + isNeedReset =true; } } } @@ -111,6 +121,9 @@ public class MapMissionManager { readySendCopyMission(missionStateChangeInfo); } } + if(isNeedReset){ + updateProgress = false; + } } } @@ -131,20 +144,17 @@ public class MapMissionManager { } } if(needUpdate){ - if(copyMissionUpdate){ - mapManager.setCopyMissionProgres(mapMission); - }else{ - mapManager.setMapMissionProgres(mapMission); - } + mapManager.setCopyMissionProgres(mapMission); } return mapMission.getTotalWeight(); } public static void processPassMapEvent(User user,int passTime){ MapManager mapManager = user.getMapManager(); - MapMission copyMissionProgres = mapManager.getCopyMissionProgres(); + SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()); int mapId = sChallengeConfig.getId(); + MapMission copyMissionProgres = mapManager.getCopyMissionProgresById(mapId); int difficultType = sChallengeConfig.getDifficultType(); HeroLogic.getInstance().calTeamTotalForce(user,mapManager.getTeamId(),false); Map allMissionProgress = copyMissionProgres.getAllMissionProgress(); @@ -217,7 +227,7 @@ public class MapMissionManager { } } if(needUpdate){ - user.getMapManager().setCopyMissionProgres(user.getMapManager().getCopyMissionProgres()); + user.getMapManager().setCopyMissionProgres(copyMissionProgres); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 03f3cfdd2..2a97d0da5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -66,15 +66,19 @@ public class MissionLoigc { public static void getCopyMission(User user,List missionList){ - MapMission copyMissionProgres = user.getMapManager().getCopyMissionProgres(); - Map allMissionProgress =new HashMap<>(); - Set takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards(); - if(copyMissionProgres!=null){ - allMissionProgress = copyMissionProgres.getAllMissionProgress(); - } + int missionType = GameMisionType.COPYMISSION.getType(); - boolean needUpdate = false; + for(Integer copyId: SChallengeConfig.copyIds){ + boolean needUpdate = false; + MapMission copyMissionProgres = user.getMapManager().getCopyMissionProgresById(copyId); + Map allMissionProgress =new HashMap<>(); + Set takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards(); + if(copyMissionProgres==null){ + copyMissionProgres = new MapMission(); + copyMissionProgres.setMapId(copyId); + copyMissionProgres.setAllMissionProgress(allMissionProgress); + } List sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(copyId); for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){ Integer missionId = sAccomplishmentConfig.getId(); @@ -100,10 +104,11 @@ public class MissionLoigc { } missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(missionType).setProgress(mineProgess).build()); } + if(needUpdate){ + user.getMapManager().setCopyMissionProgres(copyMissionProgres); + } } - if(needUpdate){ - user.getMapManager().setCopyMissionProgres(user.getMapManager().getCopyMissionProgres()); - } + } public static void getVipMission(User user,List missionList){ @@ -146,9 +151,12 @@ public class MissionLoigc { if(type == GameMisionType.COPYMISSION.getType()){ //副本 任务 Set takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards(); if(takeCopyMisionRewards.contains(missionId)){ + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"had taked reward"); return; } - Map allMissionProgress = user.getMapManager().getCopyMissionProgres().getAllMissionProgress(); + SAccomplishmentConfig sAccomplishmentConfig = SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId); + int mapId = sAccomplishmentConfig.getMapId(); + Map allMissionProgress = user.getMapManager().getCopyMissionProgresById(mapId).getAllMissionProgress(); int finsihProgress = SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId).getValues()[1][0]; if(!allMissionProgress.containsKey(missionId) || allMissionProgress.get(missionId) Date: Tue, 25 Jun 2019 12:06:41 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E7=88=AC=E5=A1=94=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/config/STrialConfig.java | 108 +++++++++++++++ .../ljsd/jieling/config/STrialSetting.java | 37 ++++++ .../ljsd/jieling/handler/map/MapLogic.java | 124 ++++++++++++------ .../EventUpdateRequestHandler.java | 3 +- .../FightEndRequestHandler.java | 3 +- .../GetAllLeveDifficultyInfostHandler.java | 3 +- .../MapEnterRequestHandler.java | 6 +- .../MapFastFightRequestHandler.java | 3 +- .../MapGetRankInfoRequestHandler.java | 3 +- .../MapOutRequestHandler.java | 3 +- .../MapStartExploreRequestHandler.java | 3 +- .../MapSweepRequestHandler.java | 3 +- .../mapHandler/MapTowerCallChiefRequest.java | 21 +++ .../MapTowerEnterRequestHandler.java | 25 ++++ .../map/mapHandler/MapTowerOutRequest.java | 20 +++ .../MapTowerResetRequestHandler.java | 21 +++ .../MapUpdateRequestHandler.java | 3 +- .../StartFightRequestHandler.java | 3 +- .../SweepRightRequestHandler.java | 3 +- 19 files changed, 346 insertions(+), 49 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/STrialSetting.java rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/EventUpdateRequestHandler.java (91%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/FightEndRequestHandler.java (93%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/GetAllLeveDifficultyInfostHandler.java (89%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapEnterRequestHandler.java (82%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapFastFightRequestHandler.java (87%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapGetRankInfoRequestHandler.java (91%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapOutRequestHandler.java (90%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapStartExploreRequestHandler.java (88%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapSweepRequestHandler.java (90%) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerCallChiefRequest.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerEnterRequestHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerOutRequest.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerResetRequestHandler.java rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/MapUpdateRequestHandler.java (91%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/StartFightRequestHandler.java (95%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/map/{ => mapHandler}/SweepRightRequestHandler.java (92%) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java new file mode 100644 index 000000000..33d8723ee --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java @@ -0,0 +1,108 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.Map; + +/** + * 爬塔 + */ +@Table(name = "TrialConfig") +public class STrialConfig implements BaseConfig { + + public static Map sTrialConfigMap; + + @Override + public void init() throws Exception { + sTrialConfigMap = STableManager.getConfig(STrialConfig.class); + } + + /** + * 层数 + */ + private int id; + /** + * 地图id + */ + private int mapId; + /** + * 是否是记录层 + */ + private int isSaveFloor; + /** + * 扫荡奖励 + */ + private int[] reward; + /** + * "类型#怪物组id + * 1普通 + * 2精英" + */ + private int[][] randomMonsterType; + /** + * 怪物数量 + */ + private int[] monsterCount; + /** + * "类型#权重 + * 1boss + * 2福利怪 + * 3补给点 + * 4商店" + */ + private int[][] randomBossType; + /** + * 对应MapPointid + */ + private int[] randomMapPointId; + /** + * 击败普通怪获得能量 + */ + private int normalEnergy; + /** + * 击败精英怪获得能量 + */ + private int eliteEnergy; + + + public int getId() { + return id; + } + + public int getMapId() { + return mapId; + } + + public int getIsSaveFloor() { + return isSaveFloor; + } + + public int[] getReward() { + return reward; + } + + public int[][] getRandomMonsterType() { + return randomMonsterType; + } + + public int[] getMonsterCount() { + return monsterCount; + } + + public int[][] getRandomBossType() { + return randomBossType; + } + + public int getNormalEnergy() { + return normalEnergy; + } + + public int getEliteEnergy() { + return eliteEnergy; + } + + public int[] getRandomMapPointId() { + return randomMapPointId; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialSetting.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialSetting.java new file mode 100644 index 000000000..771b82887 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialSetting.java @@ -0,0 +1,37 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +@Table(name = "TrialSetting") +public class STrialSetting implements BaseConfig{ + + public static STrialSetting sTrialSetting; + + @Override + public void init() throws Exception { + sTrialSetting = STableManager.getConfig(STrialSetting.class).get(1); + } + + private int id; + /** + * 副本每日重置次数 + */ + private int dailyReset; + /** + * 复活次数 + */ + private int rebornTimes; + + public int getId() { + return id; + } + + public int getDailyReset() { + return dailyReset; + } + + public int getRebornTimes() { + return rebornTimes; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 78c77f982..c14c312aa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -1973,29 +1973,14 @@ public class MapLogic { return; } // 判断次数 - if (mapManager.getFightCount() >= 5) { + if (mapManager.getFightCount() >= STrialSetting.sTrialSetting.getRebornTimes()) { LOGGER.info("enterTowerCopy() uid=>{} teamId =>{} ", uid, teamId); MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); return; } int tower = mapManager.getTower(); - Map scMap = SCMap.sCMap.get(tower); - if (scMap == null) { - LOGGER.info("enterTowerCopy() uid=>{} scMap == null =>{} ", uid, tower); - MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); - return; - } - SChallengeMapConfig scMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(tower); - if (scMapConfig == null) { - LOGGER.info("enterTowerCopy() uid=>{} sChallengeConfig == null =>{} ", uid, tower); - MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "该地图不存在"); - return; - } - SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(tower); - if (sChallengeConfig == null) { - LOGGER.info("enterTowerCopy() uid=>{} sChallengeConfig == null =>{} ", uid, tower); - MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "该地图不存在"); - return; + if (tower == 0) { + mapManager.setTower(1); } String error = initTeamInfo(teamId, uid, user, mapManager); if (!error.isEmpty()) { @@ -2003,17 +1988,13 @@ public class MapLogic { MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); return; } - - - + initTrialMap(mapManager, user); user.setMapManager(mapManager); - List cells = new ArrayList<>(mapManager.getMapInfo().size()); for (Map.Entry entry : mapManager.getMapInfo().entrySet()) { cellToProto(cells, entry); } MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder(); - for (Map.Entry buffEntry : mapManager.getFoodBufferMap().entrySet()) { if (buffEntry.getValue() <= 0) { continue; @@ -2021,9 +2002,6 @@ public class MapLogic { CommonProto.FoodBuffer foodBuffer = CBean2Proto.getFoodBuffer(buffEntry.getKey(), buffEntry.getValue()); mapEnterResponse.addFoodBuffers(foodBuffer); } - if (mapManager.getMission() != null) { - mapEnterResponse.setMissions(getMission(mapManager.getMission())); - } mapEnterResponse.setDieCount(mapManager.getDieCount()); mapEnterResponse.addAllMapList(cells); mapEnterResponse.setCurXY(mapManager.getCurXY()); @@ -2031,17 +2009,6 @@ public class MapLogic { if (mapManager.getTemporaryItems() != null) { mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems())); } - MapMission mapMissionProgres = mapManager.getMapMissionProgres(); - if (mapMissionProgres != null) { - Map allMissionProgress = mapMissionProgres.getAllMissionProgress(); - List exploreDetailList = new ArrayList<>(allMissionProgress.size()); - for (Map.Entry item : allMissionProgress.entrySet()) { - exploreDetailList.add(CommonProto.ExploreDetail.newBuilder().setId(item.getKey()).setProgress(item.getValue()).build()); - } - mapEnterResponse.addAllExploreDetail(exploreDetailList); - }else{ - LOGGER.error("the curmap={}",mapManager.getCurMapId()); - } List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { @@ -2061,6 +2028,89 @@ public class MapLogic { } + public String initTrialMap(MapManager mapManager, User user) throws Exception { + STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower()); + if (sTrialConfig == null) { + LOGGER.info("initTrialMap() uid=>{} sTrialConfig == null =>{} ", user.getId(), mapManager.getTower()); + return ""; + } + SChallengeMapConfig scMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(sTrialConfig.getMapId()); + if (scMapConfig == null) { + LOGGER.info("initTrialMap() uid=>{} sChallengeConfig == null =>{} ", user.getId(), sTrialConfig.getMapId()); + return "该地图不存在"; + } + Map newMap = new HashMap<>(); + Random random = new Random(); + Map scMap = SCMap.sCMap.get(sTrialConfig.getMapId()); + Map cellMap1 = new HashMap<>(sTrialConfig.getMonsterCount()[0]); + Map cellMap2 = new HashMap<>(sTrialConfig.getMonsterCount()[1]); + for (Map.Entry entry : scMap.entrySet()) { + SCMap scMap1 = entry.getValue(); + // 必出现的事件点 + if (scMap1.getIsMustAppear() == 1) { + for (int i = 0; i < scMap1.getGroups().length; i++) { + int x = scMap1.getGroups()[i][0]; + int y = scMap1.getGroups()[i][1]; + int xy = CellUtil.xy2Pos(x, y); + MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent()); + Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); + newMap.put(xy, cellValue); + } + continue; + } + if (scMap1.getEvent() == 1) { + int i = 0; + while (cellMap1.size() < sTrialConfig.getMonsterCount()[0]) { + int randomIndex = random.nextInt(scMap1.getGroups().length); + int x = scMap1.getGroups()[randomIndex][0]; + int y = scMap1.getGroups()[randomIndex][1]; + int xy = CellUtil.xy2Pos(x, y); + Cell cellValue = new Cell(xy, scMap1.getEvent(), scMap1.getEvent()); + cellMap1.put(xy, cellValue); + i++; + if (i >= 1000) { + break; + } + } + } else if (scMap1.getEvent() == 2) { + int i = 0; + while (cellMap2.size() < sTrialConfig.getMonsterCount()[1]) { + int randomIndex = random.nextInt(scMap1.getGroups().length); + int x = scMap1.getGroups()[randomIndex][0]; + int y = scMap1.getGroups()[randomIndex][1]; + int xy = CellUtil.xy2Pos(x, y); + Cell cellValue = new Cell(xy, scMap1.getEvent(), scMap1.getEvent()); + cellMap2.put(xy, cellValue); + i++; + if (i >= 1000) { + break; + } + } + } else { + // 随机出现的事件点 + int randomIndex = random.nextInt(scMap1.getGroups().length); + int x = scMap1.getGroups()[randomIndex][0]; + int y = scMap1.getGroups()[randomIndex][1]; + int xy = CellUtil.xy2Pos(x, y); + MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent()); + if (mapPointConfig == null) { + LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent()); + continue; + } + Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); + newMap.put(xy, cellValue); + } + newMap.putAll(cellMap1); + newMap.putAll(cellMap2); + } + SChallengeMapConfig challengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(sTrialConfig.getMapId()); + int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]); + mapManager.setCurXY(xy); + mapManager.setMapInfo(newMap); + return ""; + } + + /** * 召唤首领 * diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventUpdateRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/EventUpdateRequestHandler.java similarity index 91% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventUpdateRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/EventUpdateRequestHandler.java index a4f62de9f..c1afe16c8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventUpdateRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/EventUpdateRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/FightEndRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightEndRequestHandler.java similarity index 93% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/FightEndRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightEndRequestHandler.java index 896baefcd..d82becd9b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/FightEndRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightEndRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.FightInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/GetAllLeveDifficultyInfostHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/GetAllLeveDifficultyInfostHandler.java similarity index 89% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/GetAllLeveDifficultyInfostHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/GetAllLeveDifficultyInfostHandler.java index 3a4996497..f99bc4a72 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/GetAllLeveDifficultyInfostHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/GetAllLeveDifficultyInfostHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapEnterRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapEnterRequestHandler.java similarity index 82% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapEnterRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapEnterRequestHandler.java index 544cdd686..9a4547a0e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapEnterRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapEnterRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; @@ -22,5 +23,8 @@ public class MapEnterRequestHandler extends BaseHandler{ MapInfoProto.MapEnterRequest mapEnterRequest = MapInfoProto.MapEnterRequest.parseFrom(message); int teamId = mapEnterRequest.getTeamId(); MapLogic.getInstance().enterMap(iSession, mapEnterRequest.getMapId(), teamId, MessageTypeProto.MessageType.MAP_ENTER_RESPONSE); + + MapLogic.getInstance().enterTowerCopy(iSession, 1, MessageTypeProto.MessageType.MAP_ENTER_RESPONSE ); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapFastFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java similarity index 87% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapFastFightRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java index 1c96e2784..3edbaab86 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapFastFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MessageTypeProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapGetRankInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapGetRankInfoRequestHandler.java similarity index 91% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapGetRankInfoRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapGetRankInfoRequestHandler.java index 88e7a3949..85b894f0c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapGetRankInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapGetRankInfoRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java similarity index 90% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java index 389fdd831..ecccfa2a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapOutRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapOutRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapStartExploreRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapStartExploreRequestHandler.java similarity index 88% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapStartExploreRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapStartExploreRequestHandler.java index bda0dd9c0..9a0da2970 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapStartExploreRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapStartExploreRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MessageTypeProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapSweepRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapSweepRequestHandler.java similarity index 90% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapSweepRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapSweepRequestHandler.java index 5a8958636..a19f6fc91 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapSweepRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapSweepRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerCallChiefRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerCallChiefRequest.java new file mode 100644 index 000000000..a112c40e6 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerCallChiefRequest.java @@ -0,0 +1,21 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class MapTowerCallChiefRequest extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MAP_TOWER_CALL_CHIEF_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + MapLogic.getInstance().callChief(iSession, MessageTypeProto.MessageType.MAP_TOWER_CALL_CHIEF_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerEnterRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerEnterRequestHandler.java new file mode 100644 index 000000000..4d036fbd3 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerEnterRequestHandler.java @@ -0,0 +1,25 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MapInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class MapTowerEnterRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MAP_TOWER_ENTER_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + byte[] message = netData.parseClientProtoNetData(); + MapInfoProto.MapTowerEnterRequest mapTowerEnterRequest = MapInfoProto.MapTowerEnterRequest.parseFrom(message); + int teamId = mapTowerEnterRequest.getTeamId(); + MapLogic.getInstance().enterTowerCopy(iSession, teamId, MessageTypeProto.MessageType.MAP_TOWER_ENTER_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerOutRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerOutRequest.java new file mode 100644 index 000000000..1b10a23c9 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerOutRequest.java @@ -0,0 +1,20 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class MapTowerOutRequest extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MAP_TOWER_OUT_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerResetRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerResetRequestHandler.java new file mode 100644 index 000000000..b129c2dfa --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapTowerResetRequestHandler.java @@ -0,0 +1,21 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +@Component +public class MapTowerResetRequestHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MAP_TOWER_RESET_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + MapLogic.getInstance().outTowerCopy(iSession, MessageTypeProto.MessageType.MAP_TOWER_RESET_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapUpdateRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapUpdateRequestHandler.java similarity index 91% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapUpdateRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapUpdateRequestHandler.java index 3756c7bb9..3ebc32587 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapUpdateRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapUpdateRequestHandler.java @@ -1,7 +1,8 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MapInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java similarity index 95% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java index 2676e45a6..5e5c738eb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/StartFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/StartFightRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.netty.cocdex.PacketNetData; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepRightRequestHandler.java similarity index 92% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepRightRequestHandler.java index b565b3b49..e43124bcb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/SweepRightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/SweepRightRequestHandler.java @@ -1,6 +1,7 @@ -package com.ljsd.jieling.handler.map; +package com.ljsd.jieling.handler.map.mapHandler; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.handler.map.SweepLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.FightInfoProto; From 65f9592f68b4a5a2630475274fe8f3e5090d0cbb Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 25 Jun 2019 13:58:13 +0800 Subject: [PATCH 3/5] 2-->3 --- .../java/com/ljsd/jieling/handler/map/MapMissionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java index 95240868d..f01e61bd3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java @@ -57,7 +57,7 @@ public class MapMissionManager { SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId); mapId=sChallengeConfig.getMapId(); boolean copyMissionUpdate = false; - if(sChallengeConfig.getType()==2){ + if(sChallengeConfig.getType()==3){ copyMissionUpdate= true; } if(mapMission == null ){ From 24e9d35228a8c2cd509316c9bb533f05a582bc42 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 25 Jun 2019 14:21:26 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix=20=E5=8F=96mission=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/handler/map/MapLogic.java | 2 +- .../java/com/ljsd/jieling/handler/map/MapMissionManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 6a8556f32..8ee62636e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -151,7 +151,7 @@ public class MapLogic { } } } - }else if(type == 2){ + }else if(type == 3){ boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.HEROSTORY_TICKET, 1}},BIReason.MAP_ENTER_CONSUME,mapId); if(!enough){ MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "no ticket"); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java index f01e61bd3..a604ab20e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapMissionManager.java @@ -53,9 +53,9 @@ public class MapMissionManager { if(mapId==0){ return 0; } - MapMission mapMission = mapManager.getCopyMissionProgresById(mapId); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId); mapId=sChallengeConfig.getMapId(); + MapMission mapMission = mapManager.getCopyMissionProgresById(mapId); boolean copyMissionUpdate = false; if(sChallengeConfig.getType()==3){ copyMissionUpdate= true; From 505547fa66a02e67f9390ae7856bbf84a82a3fd5 Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Tue, 25 Jun 2019 15:28:07 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=88=AC=E5=A1=94=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=88=E8=AF=95=E7=82=BC=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 557 ++++++++++-------- .../ljsd/jieling/handler/map/MapManager.java | 38 ++ .../com/ljsd/jieling/util/CBean2Proto.java | 16 + 3 files changed, 352 insertions(+), 259 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 4d18a3cc5..2d1ff18d7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -85,7 +85,7 @@ public class MapLogic { // 初始序章地图 if (user.getPlayerInfoManager().getMapId() == 0) { String error = initTeamInfo(teamId, uid, user, mapManager); - if (!error.isEmpty()){ + if (!error.isEmpty()) { LOGGER.info("enterMap() uid=>{} error =>{} ", uid, error); MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); return; @@ -134,26 +134,26 @@ public class MapLogic { user.getPlayerInfoManager().setMapId(mapId); } String error = initTeamInfo(teamId, uid, user, mapManager); - if (!error.isEmpty()){ + if (!error.isEmpty()) { LOGGER.info("enterMap() uid=>{} error =>{} ", uid, error); MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); return; } int type = sChallengeConfig.getType(); Map crossInfoMap = mapManager.getCrossInfoMap(); - if(type == 1){ - if(crossInfoMap.containsKey(mapId)){ - if(crossInfoMap.get(mapId).getStars().contains(STAR_1)){ - boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.GENERALSTORY_TICKET, 1}},BIReason.MAP_ENTER_CONSUME,mapId); - if(!enough){ + if (type == 1) { + if (crossInfoMap.containsKey(mapId)) { + if (crossInfoMap.get(mapId).getStars().contains(STAR_1)) { + boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.GENERALSTORY_TICKET, 1}}, BIReason.MAP_ENTER_CONSUME, mapId); + if (!enough) { MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "no ticket"); return; } } } - }else if(type == 2){ - boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.HEROSTORY_TICKET, 1}},BIReason.MAP_ENTER_CONSUME,mapId); - if(!enough){ + } else if (type == 2) { + boolean enough = ItemUtil.itemCost(user, new int[][]{{Global.HEROSTORY_TICKET, 1}}, BIReason.MAP_ENTER_CONSUME, mapId); + if (!enough) { MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "no ticket"); return; } @@ -163,7 +163,7 @@ public class MapLogic { mapManager.setCurMapId(mapId); initMap(mapManager, user); user.setMapManager(mapManager); - }else if(mapManager.getCurMapId()!=mapId){ + } else if (mapManager.getCurMapId() != mapId) { MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), "地图错误,应进入" + mapManager.getCurMapId()); return; } @@ -172,7 +172,7 @@ public class MapLogic { cellToProto(cells, entry); } MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder(); - mapEnterResponse.setLeftTime(getLeftTime(user,true)); + mapEnterResponse.setLeftTime(getLeftTime(user, true)); for (Map.Entry buffEntry : mapManager.getFoodBufferMap().entrySet()) { if (buffEntry.getValue() <= 0) { continue; @@ -198,12 +198,12 @@ public class MapLogic { if (mapMissionProgres != null) { Map allMissionProgress = mapMissionProgres.getAllMissionProgress(); List exploreDetailList = new ArrayList<>(allMissionProgress.size()); - for(Map.Entry item : allMissionProgress.entrySet()){ + for (Map.Entry item : allMissionProgress.entrySet()) { exploreDetailList.add(CommonProto.ExploreDetail.newBuilder().setId(item.getKey()).setProgress(item.getValue()).build()); } mapEnterResponse.addAllExploreDetail(exploreDetailList); - }else{ - LOGGER.error("the curmap={}",mapManager.getCurMapId()); + } else { + LOGGER.error("the curmap={}", mapManager.getCurMapId()); } List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); @@ -229,14 +229,14 @@ public class MapLogic { return "阵容不存在"; } List heroes = new ArrayList<>(teamPosHeroInfos.size()); - Map> heroAllAttributeMap = new HashMap<>(teamPosHeroInfos.size()); + Map> heroAllAttributeMap = new HashMap<>(teamPosHeroInfos.size()); for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); if (hero == null) { break; } Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero); - heroAllAttributeMap.put(hero.getId(),heroAllAttribute); + heroAllAttributeMap.put(hero.getId(), heroAllAttribute); heroes.add(heroInfo.getHeroId()); } if (heroes.size() != teamPosHeroInfos.size()) { @@ -268,7 +268,7 @@ public class MapLogic { Random random = new Random(); StoreManager storeManager = user.getStoreManager(); Map storeInfoMap = storeManager.getStoreInfoMap(); - StoreLogic.checkStoreRefresh(storeManager,storeInfoMap); + StoreLogic.checkStoreRefresh(storeManager, storeInfoMap); boolean alreadHadYunShop = storeManager.getStoreInfoMap().containsKey(3); mapManager.checkSuddenlyBoss(); int suddenlyBoss = mapManager.getSuddenlyBoss(); @@ -296,16 +296,16 @@ public class MapLogic { LOGGER.info("====initMap()====mapPointConfig == null======>{}", scMap1.getEvent()); continue; } - if(!mapPointCanAAppear(mapPointConfig)){ + if (!mapPointCanAAppear(mapPointConfig)) { continue; } - if(mapPointConfig.getStyle() == EventType.businessman){ - if(alreadHadYunShop){ + if (mapPointConfig.getStyle() == EventType.businessman) { + if (alreadHadYunShop) { continue; } } - if(mapPointConfig.getStyle() == EventType.suddenlyBoss && suddenlyBoss != 0){ + if (mapPointConfig.getStyle() == EventType.suddenlyBoss && suddenlyBoss != 0) { continue; } Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); @@ -328,19 +328,19 @@ public class MapLogic { initMapMission(mapManager); } - private boolean mapPointCanAAppear(MapPointConfig mapPointConfig){ + private boolean mapPointCanAAppear(MapPointConfig mapPointConfig) { int[][] randomProbability = mapPointConfig.getRandomProbability(); - if(randomProbability == null || randomProbability.length==0){ + if (randomProbability == null || randomProbability.length == 0) { return true; } - int totalWeight =0; - for(int[] weightItem : randomProbability){ - totalWeight+=weightItem[1]; + int totalWeight = 0; + for (int[] weightItem : randomProbability) { + totalWeight += weightItem[1]; } int random = MathUtils.randomInt(totalWeight); - for(int[] weightItem : randomProbability){ - random-=weightItem[1]; - if(random<=0){ + for (int[] weightItem : randomProbability) { + random -= weightItem[1]; + if (random <= 0) { return weightItem[0] == 1; } } @@ -355,7 +355,7 @@ public class MapLogic { mapManager.addWalkCells(new HashSet<>(cells)); mapManager.setCurXY(curXY); MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder() - .setLeftTime(getLeftTime(user,true)) + .setLeftTime(getLeftTime(user, true)) .build(); MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true); return true; @@ -366,14 +366,14 @@ public class MapLogic { public void updateMap(ISession session, int curXY, int triggerXY, List cells, MessageTypeProto.MessageType messageType) throws Exception { // LOGGER.info("updateMap() curXY=>{},triggerXY=>{}", curXY, triggerXY); - if(updateMapByOnlyConsumeActionPower(session,curXY,triggerXY,cells,messageType)){ + if (updateMapByOnlyConsumeActionPower(session, curXY, triggerXY, cells, messageType)) { return; } if (triggerXY != curXY) { boolean isConnect = CellUtil.checkIsNextCell(curXY, triggerXY); if (!isConnect) { LOGGER.info("updateMap() curXY=>{},triggerXY=>{} is not connect", curXY, triggerXY); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } } @@ -382,24 +382,24 @@ public class MapLogic { MapManager mapManager = user.getMapManager(); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } if (mapManager.getCanMoveTime() > 0) { long leftTime = mapManager.getCanMoveTime() - TimeUtils.now(); if (leftTime > 0) { - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); return; } } if (mapManager.getStartExporeTime() == 0) { LOGGER.info("mapManager.getStartExporeTime() == 0"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "未开始探索"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "未开始探索"); return; } - if (getLeftTime(user,true) <= 0) { - LOGGER.info("updateMap() uid=>{}, no step=>{}", uid, getLeftTime(user,true)); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + if (getLeftTime(user, true) <= 0) { + LOGGER.info("updateMap() uid=>{}, no step=>{}", uid, getLeftTime(user, true)); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } if (cells.isEmpty() && curXY != mapManager.getCurXY()) { @@ -418,17 +418,17 @@ public class MapLogic { } int pointId = cell.getPointId(); MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(pointId); - if(mapPointConfig.getStyle() == EventType.suddenlyBoss){ + if (mapPointConfig.getStyle() == EventType.suddenlyBoss) { int suddenlyBoss = mapManager.getSuddenlyBoss(); SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(cell.getEventId()); - if(suddenlyBoss==0){ - int now = (int)(TimeUtils.now()/1000); - int bossId =sEventPointConfig.getOption()[0]; - mapManager.findSuddenlyBoss(bossId,now); + if (suddenlyBoss == 0) { + int now = (int) (TimeUtils.now() / 1000); + int bossId = sEventPointConfig.getOption()[0]; + mapManager.findSuddenlyBoss(bossId, now); } - }else if(mapPointConfig.getStyle() == EventType.businessman){ - if(! user.getStoreManager().getStoreInfoMap().containsKey(3)){ - StoreLogic.initOneStore(user,3); + } else if (mapPointConfig.getStyle() == EventType.businessman) { + if (!user.getStoreManager().getStoreInfoMap().containsKey(3)) { + StoreLogic.initOneStore(user, 3); } } mapManager.setTriggerXY(triggerXY); @@ -436,7 +436,7 @@ public class MapLogic { mapManager.setCurXY(curXY); MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder() .setEventId(cell.getEventId()) - .setLeftTime(getLeftTime(user,true)) + .setLeftTime(getLeftTime(user, true)) .build(); LOGGER.info("updateMap() uid=>{} mapId =>{} eventId=>{}", uid, mapManager.getCurMapId(), cell.getEventId()); mapManager.updateFoodBufferByStep(cells.size()); @@ -447,6 +447,7 @@ public class MapLogic { /** * 更新事件点 * optionConfig Id + * * @param session * @param optionId */ @@ -456,19 +457,19 @@ public class MapLogic { MapManager mapManager = user.getMapManager(); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } if (mapManager.getStartExporeTime() == 0) { LOGGER.info("mapMana" + "ger.getStartExporeTime() == 0"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "未开始探索"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "未开始探索"); return; } if (mapManager.getCanMoveTime() > 0) { long leftTime = mapManager.getCanMoveTime() - TimeUtils.now(); if (leftTime > 0) { - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); return; } } @@ -482,19 +483,19 @@ public class MapLogic { int bigEventId = cell.getEventId(); if (eventId != bigEventId) { LOGGER.info("eventId != bigEventId =>{} {}, xy=>{}", eventId, bigEventId, mapManager.getCurXY()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(eventId); if (sEventPointConfig == null) { LOGGER.info("sEventPointConfig == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } int[] option = sEventPointConfig.getOption(); if (option == null) { LOGGER.info("option == null sEventPointConfig.getId()=>{}", sEventPointConfig.getId()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } boolean can = false; @@ -506,24 +507,24 @@ public class MapLogic { } if (!can) { LOGGER.info("option =>{} optionId=>{}", option, optionId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(cell.getPointId()); if (mapPointConfig == null) { LOGGER.info("event is finished,bigEventId=>{} smallEventId=>{}", bigEventId, cell.getPointId()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } SOptionConfig sOptionConfig = SOptionConfig.sOptionConfigMap.get(optionId); if (sOptionConfig == null) { LOGGER.info("sOptionConfig == null=>{}", optionId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } - if (getLeftTime(user,true) <= 0) { - LOGGER.info("mapManager.getLeftTime() <= 0 =>{}", getLeftTime(user,true)); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + if (getLeftTime(user, true) <= 0) { + LOGGER.info("mapManager.getLeftTime() <= 0 =>{}", getLeftTime(user, true)); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } int behaviorType = sOptionConfig.getBehaviorType(); @@ -534,7 +535,7 @@ public class MapLogic { boolean isSuccess = baseBehavior.process(optionId, user, behaviorTypeValues, eventUpdateResponse); if (!isSuccess) { LOGGER.info("updatePonintEvent() baseBehavior process fail! behaviorType=>{}", behaviorType); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } } @@ -545,7 +546,7 @@ public class MapLogic { } int nextEventId = 0; // 战斗事件需要放到战斗胜利(10 类型需要特殊处理) - if (baseBehavior == null || !baseBehavior.isFightBehavior()|| behaviorType == EventType.monitorMission) { + if (baseBehavior == null || !baseBehavior.isFightBehavior() || behaviorType == EventType.monitorMission) { // 检测该事件点是否已被销毁 if (cell != null) { nextEventId = getNextEventId(user, cell, sOptionConfig); @@ -555,8 +556,8 @@ public class MapLogic { } } } - MapMissionManager.updateMapMission(mapManager,EventType.updateOptionalEvent, optionId,optionId); - MapMissionManager.updateMapMission(mapManager,EventType.updatePonintEvent, pointId,pointId); + MapMissionManager.updateMapMission(mapManager, EventType.updateOptionalEvent, optionId, optionId); + MapMissionManager.updateMapMission(mapManager, EventType.updatePonintEvent, pointId, pointId); CommonProto.Drop.Builder dropBuilder = null; if (sOptionConfig.getReward().length > 0) { dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1, BIReason.MAP_EVENET_REWARD); @@ -577,7 +578,7 @@ public class MapLogic { .build(); eventUpdateResponse.setEventBehaviorCommon(eventBehaviorCommon); eventUpdateResponse.setEventId(nextEventId); - eventUpdateResponse.setLeftTime(getLeftTime(user,true)); + eventUpdateResponse.setLeftTime(getLeftTime(user, true)); if (dropBuilder != null) { eventUpdateResponse.setDrop(dropBuilder); } @@ -596,13 +597,13 @@ public class MapLogic { // 6 无条件跳转地图id case 1: case 5: - case 6:{ + case 6: { return jumpTypeValues[0][0]; } // 2 权重跳转,1001#1002|0.2#0.8 case 2: case 7: - case 9:{ + case 9: { int ranom = MathUtils.randomInt(100) + 1; if (ranom <= jumpTypeValues[1][0]) { return jumpTypeValues[0][0]; @@ -613,7 +614,7 @@ public class MapLogic { // 3 条件跳转 1001#1002|0(0或1为和)#条件id#条件id case 3: case 8: - case 10:{ + case 10: { SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]); if (sOptionAddConditions == null) { LOGGER.info("sOptionAddConditions == null jumpTypeValues[1][1]=>{}", jumpTypeValues[1][1]); @@ -622,10 +623,10 @@ public class MapLogic { return getNextPoint(user, user.getMapManager(), jumpTypeValues, sOptionAddConditions); } // 4 不跳转,关闭界面 - case 4:{ + case 4: { return cell.getEventId(); } - default:{ + default: { return 0; } } @@ -636,7 +637,7 @@ public class MapLogic { int nextEventId = 0; switch (sOptionAddConditions.getType()) { // 1 完成事件点,即进度100% - case 1:{ + case 1: { int condition = sOptionAddConditions.getValues()[0][0]; // 0或 1和 if (condition == 1) { @@ -683,7 +684,7 @@ public class MapLogic { break; } // 2 物品数量 - case 2:{ + case 2: { Map itemMap = new HashMap<>(); int[][] values = sOptionAddConditions.getValues(); for (int i = 0; i < values[0].length; i++) { @@ -698,7 +699,7 @@ public class MapLogic { break; } // 3 角色属性 - case 3:{ + case 3: { int[][] values = sOptionAddConditions.getValues(); int teamId = user.getMapManager().getTeamId(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); @@ -706,17 +707,17 @@ public class MapLogic { if (values[0][0] == 1) { for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user,hero); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero); Integer integer = map.get(values[0][1]); if (integer == null || integer < values[0][2]) { return jumpTypeValues[0][1]; } } return jumpTypeValues[0][0]; - } else if (values[0][0] == 0){ + } else if (values[0][0] == 0) { for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user,hero); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero); Integer integer = map.get(values[0][1]); if (integer != null && integer >= values[0][2]) { return jumpTypeValues[0][0]; @@ -737,7 +738,7 @@ public class MapLogic { break; } // 当前是否处于某个任务的第几步,逻辑参数(0处于1不处于)#任务id#任务步数|… - case 6:{ + case 6: { Mission mission = user.getMapManager().getMission(); if (sOptionAddConditions.getValues()[0][0] == 0) { if (mission != null && mission.getMissionStep() == sOptionAddConditions.getValues()[0][2]) { @@ -775,30 +776,31 @@ public class MapLogic { /** * 退出地图 + * * @param session * @param messageType * @throws Exception */ - public void outMap(ISession session,int mapId,MessageTypeProto.MessageType messageType) throws Exception { + public void outMap(ISession session, int mapId, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); - boolean result = onlyLevelMap(user,true); - if(!result){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + boolean result = onlyLevelMap(user, true); + if (!result) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } public void whenLogin(User user) throws Exception { - int leftTime = getLeftTime(user,false); - if(leftTime != -1 && leftTime < 0){ - onlyLevelMap(user,false); + int leftTime = getLeftTime(user, false); + if (leftTime != -1 && leftTime < 0) { + onlyLevelMap(user, false); } } - private boolean onlyLevelMap(User user,boolean needTemporaryItem) throws Exception { + private boolean onlyLevelMap(User user, boolean needTemporaryItem) throws Exception { MapManager mapManager = user.getMapManager(); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); @@ -844,6 +846,7 @@ public class MapLogic { /** * 快速战斗 + * * @param session * @param messageType */ @@ -887,21 +890,21 @@ public class MapLogic { } int groupId = option[0]; int destoryXY = mapManager.getTriggerXY(); - CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(user, mapManager.getTeamId(),true); + CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(user, mapManager.getTeamId(), true); Map> monsterByGroup = MonsterUtil.getMonsterByGroup(groupId); List monsterTeamList = new ArrayList<>(3); - List monsterGroupList = BehaviorUtil.getFightTeamInfos(groupId,monsterByGroup, Global.MONSTER_1); + List monsterGroupList = BehaviorUtil.getFightTeamInfos(groupId, monsterByGroup, Global.MONSTER_1); monsterTeamList.addAll(monsterGroupList); - List monsterGroupList1 = BehaviorUtil.getFightTeamInfos(groupId,monsterByGroup, Global.MONSTER_2); + List monsterGroupList1 = BehaviorUtil.getFightTeamInfos(groupId, monsterByGroup, Global.MONSTER_2); monsterTeamList.addAll(monsterGroupList1); - List monsterGroupList2 = BehaviorUtil.getFightTeamInfos(groupId,monsterByGroup, Global.MONSTER_3); + List monsterGroupList2 = BehaviorUtil.getFightTeamInfos(groupId, monsterByGroup, Global.MONSTER_3); monsterTeamList.addAll(monsterGroupList2); //设置战斗随机种子 - int seed = (int)(System.currentTimeMillis()/1000); + int seed = (int) (System.currentTimeMillis() / 1000); LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterTeamList); LuaValue getOptionData = FightDataUtil.getOptionData(""); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId()); - int[] checkResult = CheckFight.getInstance().checkFight(seed,sChallengeConfig.getMostTime(), getFightData, getOptionData); + int[] checkResult = CheckFight.getInstance().checkFight(seed, sChallengeConfig.getMostTime(), getFightData, getOptionData); List remainHp = new ArrayList<>(5); for (int i = 1; i < checkResult.length; i++) { if (checkResult[i] <= 0) { @@ -923,7 +926,7 @@ public class MapLogic { int[] reviveTime = sChallengeConfig.getReviveTime(); long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user,true); + int leftTime = getLeftTime(user, true); remainHp.clear(); if (leftTime <= (int) (time / 1000)) { resetMapInfo(user, false); @@ -951,15 +954,15 @@ public class MapLogic { } int teamId = mapManager.getTeamId(); List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); - for (TeamPosHeroInfo teamPosHeroInfo : team){ + for (TeamPosHeroInfo teamPosHeroInfo : team) { // Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); // hero.setCurHp(checkResult[teamPosHeroInfo.getPosition()]); - mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(),HeroAttributeEnum.CurHP.getPropertyId(),checkResult[teamPosHeroInfo.getPosition()]); + mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()]); } BehaviorUtil.destoryApointXY(user, destoryXY); SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(groupId); - CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1,BIReason.MAP_FAST_FIGHT_REWARD); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1, BIReason.MAP_FAST_FIGHT_REWARD); FightInfoProto.FastFightResponse.Builder fastFightResponse = FightInfoProto.FastFightResponse.newBuilder(); if (mapManager.getMonsterId() > 0) { @@ -972,13 +975,14 @@ public class MapLogic { fastFightResponse.addAllRemainHpList(remainHp); fastFightResponse.build(); // LOGGER.info("endFight() uid=>{},nextEventId=>{}", uid, nextEventId); - MapMissionManager.updateMapMission(mapManager,EventType.fightEvent,groupId, groupId); + MapMissionManager.updateMapMission(mapManager, EventType.fightEvent, groupId, groupId); // LOGGER.info("endFight() uid=>{} sMonsterGroup.getRewardgroup()=>{} misson=>{} eventDrop=>{}, missionDrop=>{}", uid, sMonsterGroup.getRewardgroup(), fastFightResponse.getMission(), fastFightResponse.getEnventDrop(), fastFightResponse.getMissionDrop()); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fastFightResponse.build(), true); } /** * 开始战斗 + * * @param session * @param messageType */ @@ -988,13 +992,13 @@ public class MapLogic { MapManager mapManager = user.getMapManager(); if (mapManager.getMapInfo() == null) { LOGGER.info("mapManager.getMapInfo() == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } if (mapManager.getCanMoveTime() > 0) { long leftTime = mapManager.getCanMoveTime() - TimeUtils.now(); if (leftTime > 0) { - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); return; } } @@ -1003,7 +1007,7 @@ public class MapLogic { cell = mapManager.getMapInfo().get(mapManager.getCurXY()); if (cell == null) { LOGGER.info("cell == null xy is wrong =>{} triggerXY=>{}", mapManager.getCurXY(), mapManager.getTriggerXY()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } } @@ -1011,7 +1015,7 @@ public class MapLogic { SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(bigEventId); if (sEventPointConfig == null) { LOGGER.info("sEventPointConfig == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } String fightReadyKey = RedisKey.getKey(RedisKey.FIGHT_READY, Integer.toString(uid), false); @@ -1029,19 +1033,20 @@ public class MapLogic { int[] option = sEventPointConfig.getOption(); if (option == null) { LOGGER.info("option == null sEventPointConfig.getId()=>{}", sEventPointConfig.getId()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } groupId = option[0]; } FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder(); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()); - BehaviorUtil.getFightInfo(user, groupId, fightStartResponse, pointId,sChallengeConfig.getMostTime(),true); + BehaviorUtil.getFightInfo(user, groupId, fightStartResponse, pointId, sChallengeConfig.getMostTime(), true); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true); } /** * 结束战斗 + * * @param session * @param messageType * @throws Exception @@ -1049,42 +1054,42 @@ public class MapLogic { public void endFight(ISession session, String frames, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); - String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(uid) , false); - Map valueMap = RedisUtil.getInstence().hmget(key); + String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(uid), false); + Map valueMap = RedisUtil.getInstence().hmget(key); RedisUtil.getInstence().del(key); if (valueMap == null || valueMap.isEmpty()) { LOGGER.info("endFight() uid=>{} not start fight", uid); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "此战斗已结算过!"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "此战斗已结算过!"); return; } MapManager mapManager = user.getMapManager(); if (user.getMapManager().getCanMoveTime() > 0) { long leftTime = user.getMapManager().getCanMoveTime() - TimeUtils.now(); if (leftTime > 0) { - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "英雄 " + (leftTime / 1000) + " 秒后复活"); return; } } - int seed = Integer.parseInt((String)valueMap.get(RedisKey.FIGHT_SEED)); - int monsterGroupId = Integer.parseInt((String)valueMap.get(RedisKey.FIGHT_GROUPID)); + int seed = Integer.parseInt((String) valueMap.get(RedisKey.FIGHT_SEED)); + int monsterGroupId = Integer.parseInt((String) valueMap.get(RedisKey.FIGHT_GROUPID)); CommonProto.FightTeamInfo.Builder builder = CommonProto.FightTeamInfo.newBuilder(); - JsonFormat.merge((String)valueMap.get(RedisKey.FIGHT_HEROES), builder); + JsonFormat.merge((String) valueMap.get(RedisKey.FIGHT_HEROES), builder); CommonProto.FightTeamInfo fightTeamInfo = builder.build(); List monsterTeamList = BehaviorUtil.getFightTeamInfos(valueMap); SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(monsterGroupId); if (sMonsterGroup == null) { LOGGER.info("endFight() uid=>{} monsterGroupId=>{} sMonsterGroup == null", uid, monsterGroupId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } // frames = "14#1#0|132#2#3|152#2#5|178#3#2|219#2#4|260#3#1|287#2#2|312#3#5|467#1#1"; // frames =""; - LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo,monsterTeamList); + LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterTeamList); // LuaValue getFightData = FightDataUtil.getTestFightData(); LuaValue getOptionData = FightDataUtil.getOptionData(frames); int mostTime = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getMostTime(); - int[] checkResult = CheckFight.getInstance().checkFight(seed, mostTime,getFightData, getOptionData); + int[] checkResult = CheckFight.getInstance().checkFight(seed, mostTime, getFightData, getOptionData); List remainHp = new ArrayList<>(5); for (int i = 1; i < checkResult.length; i++) { @@ -1096,10 +1101,10 @@ public class MapLogic { } //校验结果码 1:胜利 int resultCode = checkResult[0]; - if (resultCode == -1){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "战斗异常!"); + if (resultCode == -1) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "战斗异常!"); return; - }else if(resultCode == 0){ + } else if (resultCode == 0) { // 失败需要等待n秒后复活所有英雄 int dieCount = user.getMapManager().getDieCount(); dieCount++; @@ -1108,7 +1113,7 @@ public class MapLogic { int[] reviveTime = sChallengeConfig.getReviveTime(); long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user,true); + int leftTime = getLeftTime(user, true); remainHp.clear(); if (leftTime <= (int) (time / 1000)) { resetMapInfo(user, false); @@ -1137,16 +1142,16 @@ public class MapLogic { int teamId = mapManager.getTeamId(); List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); - for (TeamPosHeroInfo teamPosHeroInfo : team){ - mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(),HeroAttributeEnum.CurHP.getPropertyId(),checkResult[teamPosHeroInfo.getPosition()]); + for (TeamPosHeroInfo teamPosHeroInfo : team) { + mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[teamPosHeroInfo.getPosition()]); } - CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1,BIReason.MAP_GENERAL_FIGHT_REWARD); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1, BIReason.MAP_GENERAL_FIGHT_REWARD); FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); fightEndResponse.setEnventDrop(drop.build()); fightEndResponse.setResult(resultCode); fightEndResponse.addAllRemainHpList(remainHp); fightEndResponse.build(); - int optionId = Integer.parseInt((String)valueMap.get(RedisKey.NEED_VICTORY_AFTER)); + int optionId = Integer.parseInt((String) valueMap.get(RedisKey.NEED_VICTORY_AFTER)); SOptionConfig sOptionConfig = SOptionConfig.sOptionConfigMap.get(optionId); if (sOptionConfig != null) { int behaviorType = sOptionConfig.getBehaviorType(); @@ -1166,10 +1171,10 @@ public class MapLogic { } fightEndResponse.setEventId(nextEventId); // LOGGER.info("endFight() uid=>{},nextEventId=>{}", uid, nextEventId); - MapMissionManager.updateMapMission(mapManager,EventType.fightEvent,monsterGroupId,monsterGroupId); + MapMissionManager.updateMapMission(mapManager, EventType.fightEvent, monsterGroupId, monsterGroupId); // LOGGER.info("endFight() uid=>{} sMonsterGroup.getRewardgroup()=>{} misson=>{} eventDrop=>{}, missionDrop=>{}", uid, sMonsterGroup.getRewardgroup(), fightEndResponse.getMission(), fightEndResponse.getEnventDrop(), fightEndResponse.getMissionDrop()); - if(monsterGroupId == mapManager.getSuddenlyBoss()){ - mapManager.findSuddenlyBoss(0,0); + if (monsterGroupId == mapManager.getSuddenlyBoss()) { + mapManager.findSuddenlyBoss(0, 0); } MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); @@ -1177,32 +1182,29 @@ public class MapLogic { } - public void initMapMission( MapManager mapManager){ + public void initMapMission(MapManager mapManager) { int mapId = mapManager.getCurMapId(); - if(mapManager.getCopyMissionProgresById(mapId)!=null){ + if (mapManager.getCopyMissionProgresById(mapId) != null) { return; } List sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(mapId); - if( sAccomplishmentConfigs == null){ + if (sAccomplishmentConfigs == null) { return; } - Map missionProgress = new HashMap<>(); - for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){ + Map missionProgress = new HashMap<>(); + for (SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs) { int id = sAccomplishmentConfig.getId(); - missionProgress.put(id,0); + missionProgress.put(id, 0); } - MapMission mapMission = new MapMission(mapId,missionProgress); + MapMission mapMission = new MapMission(mapId, missionProgress); mapManager.setCopyMissionProgres(mapMission); } - - - - public int getLeftTime(User user,boolean needResetMap) throws Exception { + public int getLeftTime(User user, boolean needResetMap) throws Exception { int curMapId = user.getMapManager().getCurMapId(); - if(curMapId == 0){ + if (curMapId == 0) { return -1; } SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(curMapId); @@ -1241,7 +1243,7 @@ public class MapLogic { if (mission.getMissionInfo() != null) { checkMissionReturn.newEventId = mission.getMissionInfo(); } - CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMissionEventsConfig.getReward(), 1, 1,BIReason.MAP_MISSION_REWARD); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMissionEventsConfig.getReward(), 1, 1, BIReason.MAP_MISSION_REWARD); checkMissionReturn.drop = drop; int useTime = getUseTime(user); mission.setTime(useTime); @@ -1254,12 +1256,12 @@ public class MapLogic { stars = new HashSet<>(); } stars.add(STAR_1); - user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,mapManager.getCurMapId(),1); + user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, mapManager.getCurMapId(), 1); mapManager.setStars(stars); //todo 死亡次数 SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()); int dieCount = mapManager.getDieCount(); - if ( dieCount < sChallengeConfig.getDeaths()) { + if (dieCount < sChallengeConfig.getDeaths()) { stars.add(STAR_3); mapManager.setStars(stars); } @@ -1274,12 +1276,12 @@ public class MapLogic { if (hero == null) { continue; } - heroForces += HeroLogic.getInstance().calHeoForce(user, hero,true); + heroForces += HeroLogic.getInstance().calHeoForce(user, hero, true); crossInfo.getHeroIds().add(hero.getTemplateId()); } List teamPosForPokenInfos = user.getTeamPosManager().getTeamPosForPoken().get(mapManager.getTeamId()); - if(teamPosForPokenInfos!=null){ + if (teamPosForPokenInfos != null) { // 异妖 crossInfo.getPokemons().clear(); for (TeamPosForPokenInfo teamPosForPokenInfo : teamPosForPokenInfos) { @@ -1299,7 +1301,7 @@ public class MapLogic { } } mapManager.updateCrossInfoMap(mapManager.getCurMapId(), crossInfo); - MapMissionManager.processPassMapEvent(user,useTime); + MapMissionManager.processPassMapEvent(user, useTime); } mapManager.setMission(mission); checkMissionReturn.mission = mission; @@ -1308,6 +1310,7 @@ public class MapLogic { /** * 获取竞速排行榜 + * * @param session * @param mapId * @param messageType @@ -1349,6 +1352,7 @@ public class MapLogic { /** * 开始探索(开始计时) + * * @param session * @param messageType */ @@ -1358,23 +1362,24 @@ public class MapLogic { MapManager mapManager = user.getMapManager(); if (mapManager.getMapInfo() == null) { LOGGER.info("startExplorte mapManager.getMapInfo() == null"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "未进入地图"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "未进入地图"); return; } if (mapManager.getStartExporeTime() > 0) { LOGGER.info("startExplorte mapManager.getStartExporeTime() > 0 =>{}", mapManager.getStartExporeTime()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "已开始探索"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "已开始探索"); return; } mapManager.setStartExporeTime(TimeUtils.now()); MapInfoProto.MapStartExploreResponse mapStartExploreResponse = MapInfoProto.MapStartExploreResponse.newBuilder() - .setLeftTime(getLeftTime(user,true)) + .setLeftTime(getLeftTime(user, true)) .build(); MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapStartExploreResponse, true); } /** * 扫荡副本 + * * @param session * @param count * @param messageType @@ -1386,20 +1391,20 @@ public class MapLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); boolean allowed = user.getPlayerInfoManager().checkFunctionIsAllowed(VipPrivilegeType.UNLOCK_MAP_SWEEP); - if(!allowed){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "not allowed"); + if (!allowed) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "not allowed"); return; } MapManager mapManager = user.getMapManager(); CrossInfo crossInfo = mapManager.getCrossInfoMap().get(mapId); if (crossInfo == null) { LOGGER.info("sweep 未三星通关"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } if (crossInfo.getStars().size() != 3) { LOGGER.info("sweep 未三星通关"); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } //todo vip @@ -1414,7 +1419,7 @@ public class MapLogic { SChallengeMapConfig sChallengeMapConfig = SChallengeMapConfig.integerSChallengeMapConfigMap.get(mapId); MapInfoProto.MapSweepResponse.Builder mapSweepResponse = MapInfoProto.MapSweepResponse.newBuilder(); for (int i = 0; i < count; i++) { - CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sChallengeMapConfig.getSweepingAward(), 1, 0,BIReason.MAP_SWEEP_REWARD); + CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sChallengeMapConfig.getSweepingAward(), 1, 0, BIReason.MAP_SWEEP_REWARD); mapSweepResponse.addDrop(dropBuilder); } MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapSweepResponse.build(), true); @@ -1423,6 +1428,7 @@ public class MapLogic { /** * 获取所有关卡信息 + * * @param iSession * @param msgId */ @@ -1431,18 +1437,18 @@ public class MapLogic { User user = UserManager.getUser(uid); LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); Map levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap(); - if (levelDifficultyInfosMap.size() ==0){ - levelDifficultyInfosMap = initLevelDifficultyInfo(user ,levelDifficultyManager); + if (levelDifficultyInfosMap.size() == 0) { + levelDifficultyInfosMap = initLevelDifficultyInfo(user, levelDifficultyManager); } List getOpenAreaIds = levelDifficultyManager.getOpenAreaIds(); List levelDifficultyInfos = new CopyOnWriteArrayList<>(); - for (Integer areaId : getOpenAreaIds){ + for (Integer areaId : getOpenAreaIds) { CommonProto.LevelDifficultyInfos.Builder levelDifficultyInfosBuilder = CommonProto.LevelDifficultyInfos.newBuilder(); levelDifficultyInfosBuilder.setAreaId(areaId); List builderList = new CopyOnWriteArrayList<>(); - for (Map.Entry entry :levelDifficultyInfosMap.entrySet()){ + for (Map.Entry entry : levelDifficultyInfosMap.entrySet()) { LevelDifficulty levelDifficulty = entry.getValue(); - if (levelDifficulty.getAreaId() != areaId){ + if (levelDifficulty.getAreaId() != areaId) { continue; } CommonProto.LevelDifficulty.Builder lLevelDifficultyBuilder = CommonProto.LevelDifficulty.newBuilder(); @@ -1457,7 +1463,8 @@ public class MapLogic { } MapInfoProto.getAllLevelDifficultyInfosResponse.Builder builder = MapInfoProto.getAllLevelDifficultyInfosResponse.newBuilder(); builder.addAllLevelDifficultyInfos(levelDifficultyInfos); - Map crossInfoMap = user.getMapManager().getCrossInfoMap(); + MapManager mapManager = user.getMapManager(); + Map crossInfoMap = mapManager.getCrossInfoMap(); for (Map.Entry entry : crossInfoMap.entrySet()) { CommonProto.MapInfo mapInfo = CommonProto.MapInfo .newBuilder() @@ -1467,83 +1474,92 @@ public class MapLogic { .build(); builder.addMapInfos(mapInfo); } - int starReward = user.getMapManager().getStarReward(); + int starReward = mapManager.getStarReward(); SChallengeStarBox sChallengeStarBox = SChallengeStarBox.sChallengeStarBoxMap.get(starReward); builder.setStarNum(sChallengeStarBox.getStarNum()); - MessageUtil.sendMessage(iSession,1, msgId,builder.build(),true); + List towerShopInfos = CBean2Proto.getTowerShopInfo(mapManager.getTowerShopInfos()); + MapInfoProto.TowerCopyInfo towerCopyInfo = MapInfoProto.TowerCopyInfo.newBuilder() + .setTower(mapManager.getTower()) + .setFightCount(mapManager.getFightCount()) + .setResetCount(mapManager.getResetCount()) + .setHighestTower(mapManager.getHighestTower()) + .addAllTowerShopInfos(towerShopInfos) + .build(); + builder.setTowerCopyInfo(towerCopyInfo); + MessageUtil.sendMessage(iSession, 1, msgId, builder.build(), true); } - private Map initLevelDifficultyInfo(User user,LevelDifficultyManager levelDifficultyManager) { + private Map initLevelDifficultyInfo(User user, LevelDifficultyManager levelDifficultyManager) { Map levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap(); - for (Map.Entry entry :levelDifficultyMap.entrySet()){ + for (Map.Entry entry : levelDifficultyMap.entrySet()) { LevelDifficulty levelDifficulty = entry.getValue(); int fightId = levelDifficulty.getFightId(); SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); - if (sLevelDifficultyConfig.getPrecondition()!= 0 ||sLevelDifficultyConfig.getLevelLimit() > user.getPlayerInfoManager().getLevel()){ + if (sLevelDifficultyConfig.getPrecondition() != 0 || sLevelDifficultyConfig.getLevelLimit() > user.getPlayerInfoManager().getLevel()) { continue; } - levelDifficultyManager.newLevelDifficulty(fightId,levelDifficulty.getType(),levelDifficulty.getAreaId()); + levelDifficultyManager.newLevelDifficulty(fightId, levelDifficulty.getType(), levelDifficulty.getAreaId()); } return levelDifficultyManager.getLevelDifficultyInfosMap(); } //挑战精英怪 - public void startSuddlenlyFight(ISession session,int teamId,MessageTypeProto.MessageType messageType) throws Exception { + public void startSuddlenlyFight(ISession session, int teamId, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); user.getMapManager().checkSuddenlyBoss(); int suddenlyBoss = user.getMapManager().getSuddenlyBoss(); - if(suddenlyBoss == 0){ + if (suddenlyBoss == 0) { return; } List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - if (teamPosHeroInfos == null || teamPosHeroInfos.size() == 0){ - LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},teamId={}",uid,suddenlyBoss,teamId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "阵容有误!!"); + if (teamPosHeroInfos == null || teamPosHeroInfos.size() == 0) { + LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},teamId={}", uid, suddenlyBoss, teamId); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "阵容有误!!"); return; } FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder(); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getFindSuddenlyBossMapId()); - BehaviorUtil.getLevelDifficultyifficuFightInfo(user,suddenlyBoss,teamId,sChallengeConfig.getMostTime(),fightStartResponse,RedisKey.SUDDLENLY_FIGHT); + BehaviorUtil.getLevelDifficultyifficuFightInfo(user, suddenlyBoss, teamId, sChallengeConfig.getMostTime(), fightStartResponse, RedisKey.SUDDLENLY_FIGHT); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true); } - public void endSuddlenlyFight(ISession session, String frames ,MessageTypeProto.MessageType messageType) throws Exception { + public void endSuddlenlyFight(ISession session, String frames, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); - String key = RedisKey.getKey(RedisKey.SUDDLENLY_FIGHT, Integer.toString(user.getId()) , false); - Map valueMap = RedisUtil.getInstence().hmget(key); + String key = RedisKey.getKey(RedisKey.SUDDLENLY_FIGHT, Integer.toString(user.getId()), false); + Map valueMap = RedisUtil.getInstence().hmget(key); RedisUtil.getInstence().del(key); if (valueMap == null || valueMap.isEmpty()) { LOGGER.info("endFight() uid=>{} not start fight", uid); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "此战斗已结算过 !"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "此战斗已结算过 !"); return; } - int seed = Integer.parseInt((String)valueMap.get(RedisKey.FIGHT_SEED)); + int seed = Integer.parseInt((String) valueMap.get(RedisKey.FIGHT_SEED)); CommonProto.FightTeamInfo.Builder builder = CommonProto.FightTeamInfo.newBuilder(); - JsonFormat.merge((String)valueMap.get(RedisKey.FIGHT_HEROES), builder); + JsonFormat.merge((String) valueMap.get(RedisKey.FIGHT_HEROES), builder); CommonProto.FightTeamInfo fightTeamInfo = builder.build(); List monsterTeamList = BehaviorUtil.getFightTeamInfos(valueMap); - LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo,monsterTeamList); + LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterTeamList); LuaValue getOptionData = FightDataUtil.getOptionData(frames); MapManager mapManager = user.getMapManager(); SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getFindSuddenlyBossMapId()); - int[] checkResult = CheckFight.getInstance().checkFight(seed,sChallengeConfig.getMostTime(),getFightData, getOptionData); + int[] checkResult = CheckFight.getInstance().checkFight(seed, sChallengeConfig.getMostTime(), getFightData, getOptionData); //校验结果码 1:胜利 int resultCode = checkResult[0]; - if (resultCode == -1){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "战斗异常!"); + if (resultCode == -1) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "战斗异常!"); return; } FightInfoProto.FightEndResponse.Builder builderResponse = FightInfoProto.FightEndResponse .newBuilder() .setResult(resultCode); - if(resultCode == 1){ + if (resultCode == 1) { SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(mapManager.getSuddenlyBoss()); - CommonProto.Drop.Builder dropBuilder =ItemUtil.drop(user, sMonsterGroup.getRewardgroup(),1.0f,0,BIReason.SUDDENLY_REWARD); + CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1.0f, 0, BIReason.SUDDENLY_REWARD); builderResponse.setEnventDrop(dropBuilder); - mapManager.findSuddenlyBoss(0,0); + mapManager.findSuddenlyBoss(0, 0); } MessageUtil.sendMessage(session, 1, messageType.getNumber(), builderResponse.build(), true); @@ -1552,123 +1568,123 @@ public class MapLogic { } - /** * 关卡开始战斗 + * * @param session * @param fightId */ - public void startLevelDifficultyFight(ISession session, int fightId,int teamId,int type,MessageTypeProto.MessageType messageType) throws Exception { + public void startLevelDifficultyFight(ISession session, int fightId, int teamId, int type, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); PlayerManager playerInfoManager = user.getPlayerInfoManager(); LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); - if (levelDifficulty ==null){ - LOGGER.info("startLevelDifficultyFight==> uid={},fightId={}, levelDifficulty is null ",uid,fightId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "关卡未开启"); + if (levelDifficulty == null) { + LOGGER.info("startLevelDifficultyFight==> uid={},fightId={}, levelDifficulty is null ", uid, fightId); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "关卡未开启"); return; } SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); - if (sLevelDifficultyConfig.getLevelLimit() > playerInfoManager.getLevel()){ - LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},level ={}",uid,fightId,playerInfoManager.getLevel()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "等级不够"); + if (sLevelDifficultyConfig.getLevelLimit() > playerInfoManager.getLevel()) { + LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},level ={}", uid, fightId, playerInfoManager.getLevel()); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "等级不够"); return; } - if ( sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() >= sLevelDifficultyConfig.getMaxCountPerDay()){ - LOGGER.info("startLevelDifficultyFight==>uid={},fightId={} challengeTimes={},MaxTime={}",uid,fightId,levelDifficulty.getChallengeTimes(),sLevelDifficultyConfig.getMaxCountPerDay()); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "次数不足"); + if (sLevelDifficultyConfig.getMaxCountPerDay() != 0 && levelDifficulty.getChallengeTimes() >= sLevelDifficultyConfig.getMaxCountPerDay()) { + LOGGER.info("startLevelDifficultyFight==>uid={},fightId={} challengeTimes={},MaxTime={}", uid, fightId, levelDifficulty.getChallengeTimes(), sLevelDifficultyConfig.getMaxCountPerDay()); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "次数不足"); return; } - boolean flag = ItemUtil.fightItemCost(user, getCost(sLevelDifficultyConfig,1)); - if (!flag){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "道具不足"); + boolean flag = ItemUtil.fightItemCost(user, getCost(sLevelDifficultyConfig, 1)); + if (!flag) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "道具不足"); return; } List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); - if (teamPosHeroInfos == null || teamPosHeroInfos.size() == 0){ - LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},teamId={}",uid,fightId,teamId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "阵容有误!!"); + if (teamPosHeroInfos == null || teamPosHeroInfos.size() == 0) { + LOGGER.info("startLevelDifficultyFight==> uid={},fightId={},teamId={}", uid, fightId, teamId); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "阵容有误!!"); return; } - String fightInfo = fightId +"#" +teamId; + String fightInfo = fightId + "#" + teamId; String key = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_INFO, String.valueOf(uid), false); - RedisUtil.getInstence().set(key, fightInfo, sLevelDifficultyConfig.getRankTime()+100); + RedisUtil.getInstence().set(key, fightInfo, sLevelDifficultyConfig.getRankTime() + 100); //扣除预先道具 - ItemUtil.itemCost(user,sLevelDifficultyConfig.getPreLevelCost(),BIReason.START_DIFFICULT,fightId); + ItemUtil.itemCost(user, sLevelDifficultyConfig.getPreLevelCost(), BIReason.START_DIFFICULT, fightId); FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder(); - BehaviorUtil.getLevelDifficultyifficuFightInfo(user,sLevelDifficultyConfig.getMonsterGroup(),teamId,sLevelDifficultyConfig.getRankTime(),fightStartResponse,RedisKey.LEVE_DIFFICULTY_FIGHT); + BehaviorUtil.getLevelDifficultyifficuFightInfo(user, sLevelDifficultyConfig.getMonsterGroup(), teamId, sLevelDifficultyConfig.getRankTime(), fightStartResponse, RedisKey.LEVE_DIFFICULTY_FIGHT); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true); } - - public int[][] getCost(SLevelDifficultyConfig sLevelDifficultyConfig,int sweepTimes) { + public int[][] getCost(SLevelDifficultyConfig sLevelDifficultyConfig, int sweepTimes) { StringBuilder cost = new StringBuilder(); int[][] costArr = sLevelDifficultyConfig.getCost(); int[][] preLevelCostArr = sLevelDifficultyConfig.getPreLevelCost(); - for (int i= 0; i < costArr.length; i++){ + for (int i = 0; i < costArr.length; i++) { int[] ints = costArr[i]; int[] ints1 = preLevelCostArr[i]; int itemNum = ints[1] * sweepTimes + ints1[1] * sweepTimes; - if (cost.length() == 0){ + if (cost.length() == 0) { cost = new StringBuilder(ints[0] + "#" + itemNum); - }else{ + } else { cost.append("|").append(ints[0]).append("#").append(itemNum); } } - return StringUtil.parseFiledInt2(cost.toString()) ; + return StringUtil.parseFiledInt2(cost.toString()); } /** * 关卡结束战斗 + * * @param session * @param messageType * @throws Exception */ - public void endDifficultyFight(ISession session, String frames, int fightId ,MessageTypeProto.MessageType messageType) throws Exception { + public void endDifficultyFight(ISession session, String frames, int fightId, MessageTypeProto.MessageType messageType) throws Exception { int uid = session.getUid(); User user = UserManager.getUser(uid); String fightKey = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_INFO, String.valueOf(uid), false); String fightInfos = (String) RedisUtil.getInstence().get(fightKey); - if (fightInfos.isEmpty()){ - LOGGER.info("endFight() uid=>{} fightKey={},fightId={} fightInfos == null", uid, fightKey,fightId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + if (fightInfos.isEmpty()) { + LOGGER.info("endFight() uid=>{} fightKey={},fightId={} fightInfos == null", uid, fightKey, fightId); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } String[] split = fightInfos.split("#"); int checkFightId = Integer.parseInt(split[0]); - if (fightId != checkFightId){ - LOGGER.info("endFight() uid=>{} fightId=>{},checkFightId={}", uid, fightId,checkFightId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + if (fightId != checkFightId) { + LOGGER.info("endFight() uid=>{} fightId=>{},checkFightId={}", uid, fightId, checkFightId); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } - String key = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_FIGHT, Integer.toString(user.getId()) , false); - Map valueMap = RedisUtil.getInstence().hmget(key); + String key = RedisKey.getKey(RedisKey.LEVE_DIFFICULTY_FIGHT, Integer.toString(user.getId()), false); + Map valueMap = RedisUtil.getInstence().hmget(key); RedisUtil.getInstence().del(key); if (valueMap == null || valueMap.isEmpty()) { LOGGER.info("endFight() uid=>{} not start fight", uid); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "此战斗已结算过 !"); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "此战斗已结算过 !"); return; } - int seed = Integer.parseInt((String)valueMap.get(RedisKey.FIGHT_SEED)); + int seed = Integer.parseInt((String) valueMap.get(RedisKey.FIGHT_SEED)); CommonProto.FightTeamInfo.Builder builder = CommonProto.FightTeamInfo.newBuilder(); - JsonFormat.merge((String)valueMap.get(RedisKey.FIGHT_HEROES), builder); + JsonFormat.merge((String) valueMap.get(RedisKey.FIGHT_HEROES), builder); CommonProto.FightTeamInfo fightTeamInfo = builder.build(); List monsterTeamList = BehaviorUtil.getFightTeamInfos(valueMap); SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(fightId); if (sLevelDifficultyConfig == null) { LOGGER.info("endFight() uid=>{} fightId=>{} SLevelDifficultyConfig == null", uid, fightId); - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } - LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo,monsterTeamList); + LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterTeamList); LuaValue getOptionData = FightDataUtil.getOptionData(frames); - int[] checkResult = CheckFight.getInstance().checkFight(seed,sLevelDifficultyConfig.getRankTime(),getFightData, getOptionData); + int[] checkResult = CheckFight.getInstance().checkFight(seed, sLevelDifficultyConfig.getRankTime(), getFightData, getOptionData); // List remainHp = new ArrayList<>(5); // for (int i = 1; i < checkResult.length; i++) { @@ -1677,16 +1693,16 @@ public class MapLogic { LevelDifficultyManager levelDifficultyManager = user.getLevelDifficultyManager(); //校验结果码 1:胜利 int resultCode = checkResult[0]; - if (resultCode == -1){ - MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "战斗异常!"); + if (resultCode == -1) { + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "战斗异常!"); return; - }else if(resultCode == 0){ + } else if (resultCode == 0) { LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); - if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){ + if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE) { levelDifficulty.setState(Global.FIGHT_OPEND_NO_CLEARANCE); } //玩家升级 - userLevelUp(user,1); + userLevelUp(user, 1); CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); FightInfoProto.FightEndResponse fightEndResponse = FightInfoProto.FightEndResponse .newBuilder() @@ -1698,20 +1714,20 @@ public class MapLogic { return; } PlayerManager playerInfoManager = user.getPlayerInfoManager(); - ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost(),BIReason.END_DIFFICULT,fightId); + ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost(), BIReason.END_DIFFICULT, fightId); //玩家升级 - userLevelUp(user,sLevelDifficultyConfig.getExp()); + userLevelUp(user, sLevelDifficultyConfig.getExp()); LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); int[] reward = sLevelDifficultyConfig.getRandomReward(); if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE) { reward = sLevelDifficultyConfig.getFirstReward(); levelDifficulty.setState(Global.FIGHT_CLEARANCE); } - user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,fightId,0); - CommonProto.Drop.Builder drop = ItemUtil.drop(user,reward, 1, 0,BIReason.LEVELDIFFICULTY_FIGHT_REWARD); - levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +1); + user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, fightId, 0); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, 1, 0, BIReason.LEVELDIFFICULTY_FIGHT_REWARD); + levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() + 1); //开启关卡 - openNextFightIds(levelDifficultyManager,playerInfoManager,fightId); + openNextFightIds(levelDifficultyManager, playerInfoManager, fightId); FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); fightEndResponse.setEnventDrop(drop); fightEndResponse.setResult(resultCode); @@ -1722,32 +1738,34 @@ public class MapLogic { /** * 开启关卡 + * * @param levelDifficultyManager * @param fightId */ private void openNextFightIds(LevelDifficultyManager levelDifficultyManager, PlayerManager playerInfoManager, int fightId) { Map levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap(); Map levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap(); - for (Map.Entry entry :levelDifficultyMap.entrySet()){ + for (Map.Entry entry : levelDifficultyMap.entrySet()) { LevelDifficulty levelDifficulty = entry.getValue(); int id = levelDifficulty.getFightId(); SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(id); - if(levelDifficultyInfosMap.containsKey(id)){ + if (levelDifficultyInfosMap.containsKey(id)) { continue; } - if (sLevelDifficultyConfig.getPrecondition() != fightId ){ + if (sLevelDifficultyConfig.getPrecondition() != fightId) { continue; } - levelDifficultyManager.newLevelDifficulty(id,levelDifficulty.getType(),levelDifficulty.getAreaId()); + levelDifficultyManager.newLevelDifficulty(id, levelDifficulty.getType(), levelDifficulty.getAreaId()); } } /** * 玩家升级 + * * @param user * @param addExp */ - public void userLevelUp(User user , int addExp) throws Exception { + public void userLevelUp(User user, int addExp) throws Exception { PlayerManager playerInfoManager = user.getPlayerInfoManager(); if (addExp <= 0) { return; @@ -1771,8 +1789,8 @@ public class MapLogic { levelUpExp = Integer.MAX_VALUE; } else { levelUpExp = sPlayerLevelConfig.getExp(); - if (curExp >= sPlayerLevelConfig.getExp()){ - sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel() -1); + if (curExp >= sPlayerLevelConfig.getExp()) { + sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel() - 1); curExp = curExp - sPlayerLevelConfig.getExp(); } } @@ -1788,29 +1806,28 @@ public class MapLogic { sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(level); playerInfoManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy()); itemNum += sPlayerLevelConfig.getAddEnergy(); - if(rechargeLevelMap.containsKey(level)){ - if(!levelBagMap.containsKey(level)){ - levelBagMap.put(level,System.currentTimeMillis()); + if (rechargeLevelMap.containsKey(level)) { + if (!levelBagMap.containsKey(level)) { + levelBagMap.put(level, System.currentTimeMillis()); sendGiftGoods = true; } } } - if(sendGiftGoods){ + if (sendGiftGoods) { rechargeInfo.setLevelBagMap(levelBagMap); BuyGoodsLogic.sendGiftGooodsIndication(user.getId()); } - user.getUserMissionManager().onGameEvent(user,GameEvent.USER_LEVELUP,oldLevel,playerInfoManager.getLevel()); + user.getUserMissionManager().onGameEvent(user, GameEvent.USER_LEVELUP, oldLevel, playerInfoManager.getLevel()); } - if (itemNum > 0){ - String reward = Global.STAMINA +"#" +itemNum; - ItemUtil.drop(user,StringUtil.parseFiledInt2(reward),BIReason.USER_LEVELUPSTAMINA_REWARD); + if (itemNum > 0) { + String reward = Global.STAMINA + "#" + itemNum; + ItemUtil.drop(user, StringUtil.parseFiledInt2(reward), BIReason.USER_LEVELUPSTAMINA_REWARD); } } - - public void gmCrossFight (int uid, int arrayMapId) throws Exception { + public void gmCrossFight(int uid, int arrayMapId) throws Exception { User user = UserManager.getUser(uid); if (user == null || user.getMapManager() == null) { return; @@ -1831,17 +1848,17 @@ public class MapLogic { crossInfo.getStars().add(STAR_3); crossInfoMap.put(i, crossInfo); mapManager.updateCrossInfoMap(i, crossInfo); - user.getUserMissionManager().onGameEvent(user,GameEvent.STORY_FIGHT,i,1); + user.getUserMissionManager().onGameEvent(user, GameEvent.STORY_FIGHT, i, 1); } } - public void minuteCheckAndRemoveMapRank(){ + public void minuteCheckAndRemoveMapRank() { Map> sCMap = SCMap.sCMap; - for(Integer mapId : sCMap.keySet()){ + for (Integer mapId : sCMap.keySet()) { String key = RedisKey.getKey(RedisKey.MAP_RANK, Integer.toString(mapId), false); int size = RedisUtil.getInstence().getZsetSize(key); - if(size>15){ - RedisUtil.getInstence().removeZSetRangeByRank(key, 15,size); + if (size > 15) { + RedisUtil.getInstence().removeZSetRangeByRank(key, 15, size); } } } @@ -1881,7 +1898,7 @@ public class MapLogic { for (Map.Entry entry : mapManager.getMapInfo().entrySet()) { cellToProto(cells, entry); } - MapInfoProto.MapEnterResponse.Builder mapEnterResponse = MapInfoProto.MapEnterResponse.newBuilder(); + MapInfoProto.MapTowerEnterResponse.Builder mapEnterResponse = MapInfoProto.MapTowerEnterResponse.newBuilder(); for (Map.Entry buffEntry : mapManager.getFoodBufferMap().entrySet()) { if (buffEntry.getValue() <= 0) { continue; @@ -1889,9 +1906,10 @@ public class MapLogic { CommonProto.FoodBuffer foodBuffer = CBean2Proto.getFoodBuffer(buffEntry.getKey(), buffEntry.getValue()); mapEnterResponse.addFoodBuffers(foodBuffer); } - mapEnterResponse.setDieCount(mapManager.getDieCount()); + mapEnterResponse.setFightCount(mapManager.getFightCount()); mapEnterResponse.addAllMapList(cells); mapEnterResponse.setCurXY(mapManager.getCurXY()); + mapEnterResponse.setEssenceValue(mapManager.getEssenceValue()); mapEnterResponse.addAllWakeCells(mapManager.getWalkCells() == null ? new ArrayList<>() : mapManager.getWalkCells()); if (mapManager.getTemporaryItems() != null) { mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems())); @@ -2019,6 +2037,7 @@ public class MapLogic { } /** + * 离开爬塔副本 * @param iSession * @param messageType */ @@ -2026,9 +2045,29 @@ public class MapLogic { } + /** + * 重置爬塔副本 + * @param iSession + * @param messageType + */ + public void towerReset(ISession iSession, MessageTypeProto.MessageType messageType) throws Exception { + int uid = iSession.getUid(); + User user = UserManager.getUser(uid); + MapManager mapManager = user.getMapManager(); + mapManager.setTower(0); + mapManager.setFightCount(0); + mapManager.setEssenceValue(0); + Map towerShopInfos = mapManager.getTowerShopInfos(); + if (towerShopInfos != null) { + mapManager.setTowerShopInfos(null); + } + resetMapInfo(user, true); + } + /** * 领取副本星级奖励 + * * @param session * @param messageType */ @@ -2036,7 +2075,7 @@ public class MapLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); - int id = mapManager.getStarReward()+1; + int id = mapManager.getStarReward() + 1; SChallengeStarBox sChallengeStarBox = SChallengeStarBox.sChallengeStarBoxMap.get(id); if (sChallengeStarBox == null) { @@ -2051,7 +2090,7 @@ public class MapLogic { int star = crossInfo.getStars().size(); totalStar += star; } - if (totalStar <= sChallengeStarBox.getStarNum()){ + if (totalStar <= sChallengeStarBox.getStarNum()) { LOGGER.info("totalStar less sChallengeStarBox.getStarNum uid=>{}, id=>{}", session.getUid(), id); MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 27b9f09e5..4ff3eb404 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -80,6 +80,12 @@ public class MapManager extends MongoBase { private int fightCount; // 爬塔副本重置次数 private int resetCount; + // 爬塔副本试炼精气 + private int essenceValue; + // 爬塔副本历史最高层 + private int highestTower; + // 爬塔副本商店 + private Map towerShopInfos; public MapManager() { @@ -459,4 +465,36 @@ public class MapManager extends MongoBase { removeString(getMongoKey() + ".copyMissionProgresMap." + copyId); this.copyMissionProgresMap.remove(copyId); } + + public int getEssenceValue() { + return essenceValue; + } + + public void setEssenceValue(int essenceValue) { + updateString("essenceValue" , essenceValue); + this.essenceValue = essenceValue; + } + + public int getHighestTower() { + return highestTower; + } + + public void setHighestTower(int highestTower) { + updateString("highestTower" , highestTower); + this.highestTower = highestTower; + } + + public Map getTowerShopInfos() { + return towerShopInfos; + } + + public void setTowerShopInfos(Map towerShopInfos) { + updateString("towerShopInfos" , towerShopInfos); + this.towerShopInfos = towerShopInfos; + } + + public void addOrUpdatetowerShopInfos(int key, int value) { + updateString("towerShopInfos." + key, value); + this.towerShopInfos.put(key, value); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index e5c72487c..7f1dd8861 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.protocols.ChatProto; import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.MapInfoProto; import java.util.*; @@ -301,4 +302,19 @@ public class CBean2Proto { return result; } + + public static List getTowerShopInfo(Map towerShopInfos) { + List towerShopInfosProto = new ArrayList<>(); + if (towerShopInfos != null) { + for (Map.Entry entry : towerShopInfos.entrySet()) { + MapInfoProto.TowerShopInfo towerShopInfo = MapInfoProto.TowerShopInfo + .newBuilder() + .setGoodsId(entry.getKey()) + .setBuyCount(entry.getValue()) + .build(); + towerShopInfosProto.add(towerShopInfo); + } + } + return towerShopInfosProto; + } }