diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index b3a70bb40..7ffc9d733 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -59,6 +59,8 @@ public interface BIReason { int TAKE_STAR_REWARD = 36; + int TOWER_FLOOR_REWARD = 37; + //道具消耗原因 1000开头 int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级 int SECRETBOX_CONSUME = 1001; //秘盒抽卡 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 6e447d1e3..77d2da705 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -97,6 +97,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ //图鉴信息 Set heroHandBookSet = user.getHeroManager().getHeroHandBook().keySet(); Set equipHandBookSet = user.getEquipManager().getEquipHandBook().keySet(); + //试炼已领取奖励层数 + Set towerFloorReceivedReward = mapManager.getTowerReceivedReward().keySet(); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() .setPlayer(player) @@ -110,6 +112,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .addAllRedType(playerInfoManager.getReds()) .setRandCount(alreadyCount) .addAllHeroHandBook(heroHandBookSet).addAllEquipHandBook(equipHandBookSet) + .addAllTowerReceivedReward(towerFloorReceivedReward) .build(); try { MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); 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 fb277c945..db0c3c07c 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 @@ -2556,4 +2556,34 @@ public class MapLogic { } + /** + * 领取试炼层级奖励 + * @param session + * @param tower + * @param messageType + * @throws Exception + */ + public void getTowerReward(ISession session, int tower , MessageTypeProto.MessageType messageType) throws Exception { + User user = UserManager.getUser(session.getUid()); + STrialConfig trialConfig = STrialConfig.sTrialConfigMap.get(tower); + int[][] floorReward = trialConfig.getFloorReward(); + if(floorReward.length<0){ + MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"当前层无奖励"); + return; + } + Map towerReceivedReward = user.getMapManager().getTowerReceivedReward(); + for(Map.Entry entry:towerReceivedReward.entrySet()){ + if(entry.getKey()==tower){ + MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"当前层已领取过"); + return; + } + } + CommonProto.Drop.Builder drop = ItemUtil.drop(user, floorReward, BIReason.TOWER_FLOOR_REWARD); + user.getMapManager().addTowerReceivedReward(tower); + MapInfoProto.TowerRewardResponse towerRewardResponse = MapInfoProto.TowerRewardResponse.newBuilder().setDrop(drop).build(); + MessageUtil.sendMessage(session,1,messageType.getNumber(),towerRewardResponse,true); + + + } + } 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 3c5eb9bc2..2aeffe24d 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 @@ -104,6 +104,8 @@ public class MapManager extends MongoBase { private int mapIntoFlag; + private Map towerReceivedReward = new HashMap<>(); + public MapManager() { this.setRootCollection(User._COLLECTION_NAME); } @@ -611,6 +613,19 @@ public class MapManager extends MongoBase { updateString("difficultyOptions."+fbId,difficultId); difficultyOptions.put(fbId,difficultId); } + + public Map getTowerReceivedReward() { + return towerReceivedReward; + } + public void setTowerReceivedReward(Map towerReceivedReward){ + updateString("towerReceivedReward",towerReceivedReward); + this.towerReceivedReward =towerReceivedReward; + } + public void addTowerReceivedReward(int tower){ + updateString("towerReceivedReward."+tower,1); + towerReceivedReward.put(tower,1); + } + }