From 1846fed4c97246a4ffa24f89a9caa0db56bd77ed Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 1 Jul 2019 18:00:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=AC=E5=A1=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/config/STrialConfig.java | 4 ++++ .../ljsd/jieling/handler/map/MapLogic.java | 23 +++++++++++++------ .../map/behavior/FourtyThreeBehavior.java | 5 +++- .../ljsd/jieling/logic/store/StoreLogic.java | 6 ++--- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java index 17d6c2acf..9aa9ffd65 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/STrialConfig.java @@ -65,6 +65,8 @@ public class STrialConfig implements BaseConfig { */ private int eliteEnergy; + private int[][] randomStore; + public int getId() { return id; @@ -105,4 +107,6 @@ public class STrialConfig implements BaseConfig { public int[][][] getRandomMapPointId() { return randomMapPointId; } + + public int[][] getRandomStore() { return randomStore;} } 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 1402671fd..0ff8a24d4 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 @@ -817,19 +817,23 @@ public class MapLogic { if(mapManager.getTower()>=1){ mapManager.setMapIntoFlag(1); } + MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder(); + builder.setUseTime(mapManager.getCurrTowerTime()); + LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime()); + if(mapManager.getTower()>mapManager.getHighestTower()){ + mapManager.setHighestTower(mapManager.getTower()); + } + MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); + return; + } boolean result = onlyLevelMap(user, true); if (!result) { MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; } - if(mapManager.getTower()>mapManager.getHighestTower()){ - mapManager.setHighestTower(mapManager.getTower()); - } - MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder(); - builder.setUseTime(mapManager.getCurrTowerTime()); - LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime()); - MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true); + + MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true); } public void whenLogin(User user) throws Exception { @@ -2030,6 +2034,7 @@ public class MapLogic { mapManager.setCurXY(xy); mapManager.setMapInfo(newMap); mapManager.setEssenceValue(0); +// mapManager.setHeroAllAttributeMap(mapManager.getHeroAllAttributeMap()); if(mapManager.getTowerUnusedBuffer()==null){ mapManager.setTowerUnusedBuffer(new HashMap<>()); } @@ -2213,6 +2218,7 @@ public class MapLogic { int uid = iSession.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); + StoreManager storeManager = user.getStoreManager(); if(mapManager.getMapIntoFlag()==0){ MessageUtil.sendErrorResponse(iSession,0,messageType.getNumber(),"重置错误"); return; @@ -2235,6 +2241,9 @@ public class MapLogic { mapManager.setEssenceValue(0); mapManager.setTowerUnusedBuffer(null); mapManager.setMapIntoFlag(0); + if(storeManager.getStoreInfoMap().get(8)!=null){ + storeManager.removeStoreInfo(8); + } resetMapInfo(user, true); MapInfoProto.MapTowerResetResponse mapTowerResetResponse = MapInfoProto.MapTowerResetResponse .newBuilder() diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java index d5ee1c947..d132b12dc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.handler.map.behavior; +import com.ljsd.jieling.config.STrialConfig; import com.ljsd.jieling.handler.map.Cell; import com.ljsd.jieling.handler.map.EventType; import com.ljsd.jieling.handler.map.MapManager; @@ -7,6 +8,7 @@ import com.ljsd.jieling.logic.dao.StoreManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.protocols.MapInfoProto; +import com.ljsd.jieling.util.MathUtils; import com.ljsd.jieling.util.MessageUtil; import org.springframework.stereotype.Component; @@ -31,7 +33,8 @@ public class FourtyThreeBehavior extends BaseBehavior{ mapManager.addTowerUnusedBuffer(mapManager.getTower(),cell.getEventId()); return true; }else if(mapManager.getBossType()==4){ - StoreLogic.initOrUpdateOneStore(user,8); + int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTower()).getRandomStore()); + StoreLogic.initOrUpdateOneStore(user,8,storeIndex); } return true; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index c601b0eef..a26e7a2b0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -100,7 +100,7 @@ public class StoreLogic { storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); } - public static void initOrUpdateOneStore(User user,int storeType) throws Exception { + public static void initOrUpdateOneStore(User user,int storeType,int sort) throws Exception { StoreManager storeManager = user.getStoreManager(); SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeType); if(sStoreTypeConfig == null){ @@ -115,12 +115,12 @@ public class StoreLogic { endTime =Integer.parseInt(sStoreTypeConfig.getEndTime())*60*1000 + now; } Map itemNumMap = new ConcurrentHashMap<>(); - int rewardId = getRewardId(storeType,1,user); + int rewardId = getRewardId(storeType,sort,user); itemNumMap.put(rewardId, 1); storeManager.newStoreInfo(sStoreTypeConfig.getId(),startTime,endTime,itemNumMap); }else{ Map itemNumMap = storeInfo.getItemNumMap(); - int rewardId = getRewardId(storeType,itemNumMap.size(),user); + int rewardId = getRewardId(storeType,sort,user); itemNumMap.put(rewardId, 0); storeInfo.setItemNumMap(itemNumMap); }