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 82a22d74b..2883bc2ed 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 @@ -3335,6 +3335,8 @@ public class MapLogic { STrialConfig sTrialConfig = sTrialConfigMap.ceilingEntry(floor).getValue(); response = getBoxReward(sTrialConfig.getBoxPosition(), sTrialConfig.getBoxReward(), user, curXY, type); } + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(response.getBoxDrop(),user); if (response == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } @@ -3461,6 +3463,8 @@ public class MapLogic { if (response == null) { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(response.getDrop(),user); MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, 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 499a3bf6f..8c8eeee6d 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 @@ -128,6 +128,8 @@ public class MapManager extends MongoBase { private EndlessTreasureReward endlessTreasureReward = new EndlessTreasureReward(); + //森罗幻境自动挂机奖励展示 TODO 不入库 + private Map towerGetRewardInfoShowMap = new HashMap<>(); public MapManager() { this.setRootCollection(User._COLLECTION_NAME); } @@ -970,6 +972,13 @@ public class MapManager extends MongoBase { setTreasureIsBuy(0); } + public Map getTowerGetRewardInfoShowMap() { + return towerGetRewardInfoShowMap; + } + + public void setTowerGetRewardInfoShowMap(Map towerGetRewardInfoShowMap) { + this.towerGetRewardInfoShowMap = towerGetRewardInfoShowMap; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java index a67c7e132..495f7029f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/MapFastFightRequestHandler.java @@ -3,13 +3,17 @@ 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.player.PlayerLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import rpc.protocols.CommonProto; import rpc.protocols.FightInfoProto; import rpc.protocols.MessageTypeProto; import com.ljsd.jieling.util.MessageUtil; import org.springframework.stereotype.Component; +import java.util.Map; + @Component public class MapFastFightRequestHandler extends BaseHandler { @Override @@ -21,6 +25,8 @@ public class MapFastFightRequestHandler extends BaseHandler { public void process(ISession iSession, PacketNetData netData) throws Exception { FightInfoProto.FastFightResponse.Builder builder = FightInfoProto.FastFightResponse.newBuilder(); MapLogic.getInstance().getMap(UserManager.getUser(iSession.getUid())).fastFight(iSession.getUid(), builder); + //森罗幻境自动挂机奖励展示 + PlayerLogic.TowerGetRewardInfoShow(builder.getEnventDrop(),UserManager.getUser(iSession.getUid())); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_FAST_FIGHT_RESPONSE.getNumber(), builder.build(), true); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java new file mode 100644 index 000000000..d9a4304c1 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/TowerGetRewardInfoShowHandler.java @@ -0,0 +1,48 @@ +package com.ljsd.jieling.handler.map.mapHandler; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.globals.BIReason; +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; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import org.springframework.stereotype.Component; +import rpc.protocols.ActivityProto; +import rpc.protocols.CommonProto; +import rpc.protocols.MapInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class TowerGetRewardInfoShowHandler extends BaseHandler { + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.TowerGetRewardInfoShowRequest; + } + @Override + public GeneratedMessage processWithProto(int uid, MapInfoProto.TowerGetRewardInfoShowRequest proto) throws Exception { + CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder(); + User user = UserManager.getUser(uid); + if(user == null){ + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build(); + } + Map dropShow = user.getMapManager().getTowerGetRewardInfoShowMap(); + if(dropShow == null || dropShow.size() == 0){ + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build(); + } + for(Map.Entry keyVal : dropShow.entrySet()){ + CommonProto.Item.Builder item = CommonProto.Item.newBuilder(); + item.setItemId(keyVal.getKey()); + item.setItemNum((long)keyVal.getValue()); + drop.addItemlist(item.build()); + } + dropShow.clear(); + return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().setDrop(drop).build(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 947a9876a..bfb3f2501 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1784,4 +1784,37 @@ public class PlayerLogic { User user = gson.fromJson(userStr, User.class); return user; } + + //森罗幻境自动挂机奖励展示 + public static void TowerGetRewardInfoShow(CommonProto.Drop drop,User user){ + Map mapItemShow =user.getMapManager().getTowerGetRewardInfoShowMap(); + for(CommonProto.Item item :drop.getItemlistList()){ + if(mapItemShow.containsKey(item.getItemId())){ + mapItemShow.put(item.getItemId(),mapItemShow.get(item.getItemId())+(int)item.getItemNum()); + }else{ + mapItemShow.put(item.getItemId(),(int)item.getItemNum()); + } + } + for(CommonProto.Equip equip:drop.getEquipIdList()){ + if(mapItemShow.containsKey(equip.getEquipId())){ + mapItemShow.put(equip.getEquipId(),mapItemShow.get(equip.getEquipId())+1); + }else{ + mapItemShow.put(equip.getEquipId(),1); + } + } + for(CommonProto.Hero hero:drop.getHeroList()){ + if(mapItemShow.containsKey(hero.getHeroId())){ + mapItemShow.put(hero.getHeroId(),mapItemShow.get(hero.getHeroId())+1); + }else{ + mapItemShow.put(hero.getHeroId(),1); + } + } + for(CommonProto.PokemonInfo pokemonInfo:drop.getPokemonList()){ + if(mapItemShow.containsKey(pokemonInfo.getTempId())){ + mapItemShow.put(pokemonInfo.getTempId(),mapItemShow.get(pokemonInfo.getTempId())+1); + }else{ + mapItemShow.put(pokemonInfo.getTempId(),1); + } + } + } }