森罗幻境自动挂机奖励展示

back_recharge
xuexinpeng 2021-12-30 18:19:24 +08:00
parent c3553579e2
commit 188ea389e6
5 changed files with 100 additions and 0 deletions

View File

@ -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);
}

View File

@ -128,6 +128,8 @@ public class MapManager extends MongoBase {
private EndlessTreasureReward endlessTreasureReward = new EndlessTreasureReward();
//森罗幻境自动挂机奖励展示 TODO 不入库
private Map<Integer,Integer> towerGetRewardInfoShowMap = new HashMap<>();
public MapManager() {
this.setRootCollection(User._COLLECTION_NAME);
}
@ -970,6 +972,13 @@ public class MapManager extends MongoBase {
setTreasureIsBuy(0);
}
public Map<Integer, Integer> getTowerGetRewardInfoShowMap() {
return towerGetRewardInfoShowMap;
}
public void setTowerGetRewardInfoShowMap(Map<Integer, Integer> towerGetRewardInfoShowMap) {
this.towerGetRewardInfoShowMap = towerGetRewardInfoShowMap;
}
}

View File

@ -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);
}

View File

@ -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<MapInfoProto.TowerGetRewardInfoShowRequest> {
@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<Integer,Integer> dropShow = user.getMapManager().getTowerGetRewardInfoShowMap();
if(dropShow == null || dropShow.size() == 0){
return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build();
}
for(Map.Entry<Integer,Integer> 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();
}
}

View File

@ -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<Integer,Integer> 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);
}
}
}
}