灵兽代码整理
parent
ea949f28e5
commit
03069929b7
|
@ -2079,238 +2079,6 @@ public class HeroLogic{
|
||||||
}
|
}
|
||||||
return quality;
|
return quality;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void getAllPokemon(ISession iSession) throws Exception {
|
|
||||||
// int uid = iSession.getUid();
|
|
||||||
// User user = UserManager.getUser(uid);
|
|
||||||
// PokemonManager pokemonManager = user.getPokemonManager();
|
|
||||||
// //todo 灵兽
|
|
||||||
// Map<String, Pokemon> pokemonMap = pokemonManager.getPokemonMap();
|
|
||||||
////
|
|
||||||
//// //TODO 测试
|
|
||||||
//// if(pokemonMap.isEmpty()){
|
|
||||||
//// for(SDifferDemonsConfig sDifferDemonsConfig : SDifferDemonsConfig.sDifferDemonsConfigMap.values() ){
|
|
||||||
//// pokemonManager.addPokemon(new Pokemon(sDifferDemonsConfig.getId()));
|
|
||||||
//// }
|
|
||||||
//// }
|
|
||||||
// List<CommonProto.PokemonInfo> pokemonInfoList = new ArrayList<>();
|
|
||||||
////
|
|
||||||
// for(Pokemon pokemon : pokemonMap.values()){
|
|
||||||
// pokemonInfoList.add(CBean2Proto.getPokemon(pokemon));
|
|
||||||
// }
|
|
||||||
// List<CommonProto.TeamPokemonInfo> teamPokemonInfos = new ArrayList<>();
|
|
||||||
// for (Map.Entry<Integer, String> entry : pokemonManager.getPokemonTeamMap().entrySet()) {
|
|
||||||
// CommonProto.TeamPokemonInfo teamPokemonInfo = CommonProto.TeamPokemonInfo.newBuilder()
|
|
||||||
// .setPokemonId(entry.getValue())
|
|
||||||
// .setPosition(entry.getKey())
|
|
||||||
// .build();
|
|
||||||
// teamPokemonInfos.add(teamPokemonInfo);
|
|
||||||
// }
|
|
||||||
// HeroInfoProto.GetAllPokemonResponse build = HeroInfoProto.GetAllPokemonResponse.newBuilder().addAllPokemonInfo(pokemonInfoList)
|
|
||||||
// .addAllTeamPokemonInfos(teamPokemonInfos)
|
|
||||||
// .build();
|
|
||||||
// MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.GET_ALL_POKEMON_RESPONSE_VALUE,build,true);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//异妖相关 组件放置升级
|
|
||||||
public void pokemonUpLevel(ISession session, String pokemonId, int level, MessageTypeProto.MessageType messageType) throws Exception {
|
|
||||||
//todo 灵兽
|
|
||||||
int uid = session.getUid();
|
|
||||||
User user = UserManager.getUser(uid);
|
|
||||||
PokemonManager pokemonManager = user.getPokemonManager();
|
|
||||||
if(!pokemonManager.getPokemonMap().containsKey(pokemonId)){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
|
||||||
if(level<=pokemon.getLevel()){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, SSpiritAnimalLevel> levelMap = SSpiritAnimalLevel.configByQualityAndLevel.get(3);
|
|
||||||
Map<Integer,Integer> costMap = new HashMap<>();
|
|
||||||
int finalLevel = pokemon.getLevel();
|
|
||||||
for(int i = pokemon.getLevel();i<level;i++){
|
|
||||||
if(!levelMap.containsKey(i)){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
SSpiritAnimalLevel sSpiritAnimalLevel = levelMap.get(i);
|
|
||||||
if(sSpiritAnimalLevel==null){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
int[][] consume = sSpiritAnimalLevel.getConsume();
|
|
||||||
if(consume!=null&&consume.length>0){
|
|
||||||
for(int[] consumeOne:consume){
|
|
||||||
costMap.put(consumeOne[0],costMap.getOrDefault(consumeOne[0],0)+consumeOne[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
boolean b = ItemUtil.checkCost(user, costMap);
|
|
||||||
if(!b){
|
|
||||||
finalLevel = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
finalLevel = i+1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ItemUtil.itemCost(user,costMap,BIReason.SPECIAL_LEVEL_UP_CONSUME,1);
|
|
||||||
pokemonManager.updatePokemonLevel(pokemonId,finalLevel);
|
|
||||||
|
|
||||||
HeroInfoProto.PokenmonUpLevelResponse response = HeroInfoProto.PokenmonUpLevelResponse.newBuilder().setLevel(finalLevel).build();
|
|
||||||
//发送成功消息
|
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
|
||||||
// user.getUserMissionManager().onGameEvent(user,GameEvent.POKEMON_UPLEVEL,pokemonId);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 灵兽升星
|
|
||||||
* @param session
|
|
||||||
* @param pokemonId
|
|
||||||
* @param consumePokemonIdsList
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void pokemonAdvanced(ISession session,String pokemonId,List<String> consumePokemonIdsList) throws Exception {
|
|
||||||
int uid = session.getUid();
|
|
||||||
User user = UserManager.getUser(uid);
|
|
||||||
PokemonManager pokemonManager = user.getPokemonManager();
|
|
||||||
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
|
||||||
if(pokemon == null){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
Map<Integer, SSpiritAnimalStar> configMap = SSpiritAnimalStar.configByQualityAndStar.get(3);
|
|
||||||
|
|
||||||
if(!configMap.containsKey(pokemon.getStar())){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
SSpiritAnimalStar config = configMap.get(pokemon.getStar());
|
|
||||||
if(config.getConsumeItemNum()!=consumePokemonIdsList.size()){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
for(String consume:consumePokemonIdsList){
|
|
||||||
Pokemon consumePokemon = pokemonManager.getPokemonMap().get(consume);
|
|
||||||
if(consumePokemon==null){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
if(consumePokemon.getTmpId()!=pokemon.getTmpId()){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
if(consumePokemon.getLevel()!=1||consumePokemon.getStar()!=0){
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int[][] consumeRes = config.getConsumeRes();
|
|
||||||
boolean itemCost = ItemUtil.itemCost(user, consumeRes, BIReason.SPECIAL_STAR_UP_CONSUME, 1);
|
|
||||||
if(!itemCost){
|
|
||||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
|
||||||
}
|
|
||||||
for(String consume:consumePokemonIdsList) {
|
|
||||||
pokemonManager.removePokemon(consume);
|
|
||||||
}
|
|
||||||
pokemonManager.updatePokemonStar(pokemonId,pokemon.getStar()+1);
|
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.POKEMON_ADVANCED_RESPONSE_VALUE,null,true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 灵兽涅槃
|
|
||||||
* @param session
|
|
||||||
* @param pokemonId
|
|
||||||
* @param level
|
|
||||||
* @param messageType
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void pokemonBack(ISession session, String pokemonId, MessageTypeProto.MessageType messageType) throws Exception {
|
|
||||||
int uid = session.getUid();
|
|
||||||
User user = UserManager.getUser(uid);
|
|
||||||
PokemonManager pokemonManager = user.getPokemonManager();
|
|
||||||
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
|
||||||
if (pokemon == null) {
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
if (pokemon.getLevel() == 1 && pokemon.getStar() == 0) {
|
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
int tmpId = pokemon.getTmpId();
|
|
||||||
SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(tmpId);
|
|
||||||
Map<Integer, Integer> costMap = new HashMap<>();
|
|
||||||
costMap.put(animalConfig.getReturnCost()[0], animalConfig.getReturnCost()[1]);
|
|
||||||
if (ItemUtil.checkCost(user, costMap)) {
|
|
||||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
|
||||||
}
|
|
||||||
Map<Integer, Integer> returnMap = new HashMap<>();
|
|
||||||
|
|
||||||
getPokemonReturnReward(pokemon, returnMap);
|
|
||||||
|
|
||||||
//本体返还
|
|
||||||
SSpiritAnimalStar starConfig = SSpiritAnimalStar.configByQualityAndStar.get(animalConfig.getQuality()).get(pokemon.getStar());
|
|
||||||
int sumItemNum = starConfig.getSumItemNum();
|
|
||||||
if (sumItemNum != 0) {
|
|
||||||
returnMap.put(tmpId, returnMap.getOrDefault(tmpId, 0) + sumItemNum);
|
|
||||||
}
|
|
||||||
ItemUtil.itemCost(user, costMap, BIReason.SPECIAL_BACK_CONSUME, 1);
|
|
||||||
|
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(returnMap), BIReason.SPECIAL_MONSTER_REWARD);
|
|
||||||
|
|
||||||
HeroInfoProto.PokemonBackResponse response = HeroInfoProto.PokemonBackResponse.newBuilder().setDrop(drop).build();
|
|
||||||
|
|
||||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// public void pokemonAdvanced(ISession session,int pokemonId) throws Exception {
|
|
||||||
// int uid = session.getUid();
|
|
||||||
// User user = UserManager.getUser(uid);
|
|
||||||
// PokemonManager pokemonManager = user.getPokemonManager();
|
|
||||||
// Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
|
||||||
// if(pokemon == null){
|
|
||||||
// throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
|
||||||
// }
|
|
||||||
// SDifferDemonsConfig sDifferDemonsConfig = SDifferDemonsConfig.getsDifferDemonsConfigByPokenID(pokemonId);
|
|
||||||
// int[] comonpentList = sDifferDemonsConfig.getComonpentList();
|
|
||||||
// Map<Integer, Integer> comonpentsLevelMap = pokemon.getComonpentsLevelMap();
|
|
||||||
// SDifferDemonsStageConfig sDifferDemonsStageConfig = SDifferDemonsStageConfig.getsDifferDemonsStageConfigMap(pokemonId*100 + pokemon.getAllStage() + 1);
|
|
||||||
// int comonpentPreStage = sDifferDemonsStageConfig.getComonpentPreStage();
|
|
||||||
//
|
|
||||||
// boolean isEnough = true;
|
|
||||||
// for(int i=0;i<comonpentList.length;i++){
|
|
||||||
// if(!comonpentsLevelMap.containsKey(comonpentList[i])){
|
|
||||||
// isEnough =false;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// if(comonpentsLevelMap.get(comonpentList[i]) < comonpentPreStage){
|
|
||||||
// isEnough =false;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// int[][] cost = sDifferDemonsStageConfig.getCost();
|
|
||||||
//
|
|
||||||
// if(!isEnough){
|
|
||||||
// throw new ErrorCodeException(ErrorCode.newDefineCode("not tryMatch"));
|
|
||||||
// }
|
|
||||||
// isEnough = ItemUtil.itemCost(user,cost,BIReason.POKEMON_ADVANCE_CONSUME,pokemonId);
|
|
||||||
// if(!isEnough){
|
|
||||||
// throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// pokemon.setAllStage(pokemon.getAllStage()+1);
|
|
||||||
// if(pokemon.getAllStage() == 1){
|
|
||||||
// user.getUserMissionManager().onGameEvent(user,GameEvent.POKEMON_ADVANCED,pokemonId);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //发送成功消息
|
|
||||||
// MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.POKEMON_ADVANCED_RESPONSE_VALUE,null,true);
|
|
||||||
// String message=null;
|
|
||||||
// if(pokemon.getAllStage()==1){
|
|
||||||
// message = SErrorCodeEerverConfig.getI18NMessage("lamp_activate_differ_content_"+sDifferDemonsConfig.getQuality(), new Object[]{user.getPlayerInfoManager().getNickName(),sDifferDemonsConfig.getName() });
|
|
||||||
//
|
|
||||||
// }else if(pokemon.getAllStage()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_differ_content_parm)){
|
|
||||||
// message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_differ_content_"+sDifferDemonsConfig.getQuality(), new Object[]{user.getPlayerInfoManager().getNickName(), sDifferDemonsConfig.getName(),pokemon.getAllStage()});
|
|
||||||
// }
|
|
||||||
// if(message!=null){
|
|
||||||
// ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,sDifferDemonsConfig.getId(),0,0,0,0,0);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//TODO isMyself ???
|
//TODO isMyself ???
|
||||||
public int calTeamTotalForce(User targetUser,int teamId,boolean isMyself){
|
public int calTeamTotalForce(User targetUser,int teamId,boolean isMyself){
|
||||||
int totalForce =0;
|
int totalForce =0;
|
||||||
|
@ -3073,4 +2841,156 @@ public class HeroLogic{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 灵兽升级
|
||||||
|
* @param session
|
||||||
|
* @param pokemonId
|
||||||
|
* @param level
|
||||||
|
* @param messageType
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void pokemonUpLevel(ISession session, String pokemonId, int level, MessageTypeProto.MessageType messageType) throws Exception {
|
||||||
|
//todo 灵兽
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
PokemonManager pokemonManager = user.getPokemonManager();
|
||||||
|
if(!pokemonManager.getPokemonMap().containsKey(pokemonId)){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
||||||
|
if(level<=pokemon.getLevel()){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Integer, SSpiritAnimalLevel> levelMap = SSpiritAnimalLevel.configByQualityAndLevel.get(3);
|
||||||
|
Map<Integer,Integer> costMap = new HashMap<>();
|
||||||
|
int finalLevel = pokemon.getLevel();
|
||||||
|
for(int i = pokemon.getLevel();i<level;i++){
|
||||||
|
if(!levelMap.containsKey(i)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
SSpiritAnimalLevel sSpiritAnimalLevel = levelMap.get(i);
|
||||||
|
if(sSpiritAnimalLevel==null){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
int[][] consume = sSpiritAnimalLevel.getConsume();
|
||||||
|
if(consume!=null&&consume.length>0){
|
||||||
|
for(int[] consumeOne:consume){
|
||||||
|
costMap.put(consumeOne[0],costMap.getOrDefault(consumeOne[0],0)+consumeOne[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
boolean b = ItemUtil.checkCost(user, costMap);
|
||||||
|
if(!b){
|
||||||
|
finalLevel = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
finalLevel = i+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ItemUtil.itemCost(user,costMap,BIReason.SPECIAL_LEVEL_UP_CONSUME,1);
|
||||||
|
pokemonManager.updatePokemonLevel(pokemonId,finalLevel);
|
||||||
|
|
||||||
|
HeroInfoProto.PokenmonUpLevelResponse response = HeroInfoProto.PokenmonUpLevelResponse.newBuilder().setLevel(finalLevel).build();
|
||||||
|
//发送成功消息
|
||||||
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||||
|
// user.getUserMissionManager().onGameEvent(user,GameEvent.POKEMON_UPLEVEL,pokemonId);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 灵兽升星
|
||||||
|
* @param session
|
||||||
|
* @param pokemonId
|
||||||
|
* @param consumePokemonIdsList
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void pokemonAdvanced(ISession session,String pokemonId,List<String> consumePokemonIdsList) throws Exception {
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
PokemonManager pokemonManager = user.getPokemonManager();
|
||||||
|
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
||||||
|
if(pokemon == null){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
Map<Integer, SSpiritAnimalStar> configMap = SSpiritAnimalStar.configByQualityAndStar.get(3);
|
||||||
|
|
||||||
|
if(!configMap.containsKey(pokemon.getStar())){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
SSpiritAnimalStar config = configMap.get(pokemon.getStar());
|
||||||
|
if(config.getConsumeItemNum()!=consumePokemonIdsList.size()){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
for(String consume:consumePokemonIdsList){
|
||||||
|
Pokemon consumePokemon = pokemonManager.getPokemonMap().get(consume);
|
||||||
|
if(consumePokemon==null){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
if(consumePokemon.getTmpId()!=pokemon.getTmpId()){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
if(consumePokemon.getLevel()!=1||consumePokemon.getStar()!=0){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int[][] consumeRes = config.getConsumeRes();
|
||||||
|
boolean itemCost = ItemUtil.itemCost(user, consumeRes, BIReason.SPECIAL_STAR_UP_CONSUME, 1);
|
||||||
|
if(!itemCost){
|
||||||
|
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||||
|
}
|
||||||
|
for(String consume:consumePokemonIdsList) {
|
||||||
|
pokemonManager.removePokemon(consume);
|
||||||
|
}
|
||||||
|
pokemonManager.updatePokemonStar(pokemonId,pokemon.getStar()+1);
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.POKEMON_ADVANCED_RESPONSE_VALUE,null,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 灵兽涅槃
|
||||||
|
* @param session
|
||||||
|
* @param pokemonId
|
||||||
|
* @param level
|
||||||
|
* @param messageType
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public void pokemonBack(ISession session, String pokemonId, MessageTypeProto.MessageType messageType) throws Exception {
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
PokemonManager pokemonManager = user.getPokemonManager();
|
||||||
|
Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId);
|
||||||
|
if (pokemon == null) {
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
if (pokemon.getLevel() == 1 && pokemon.getStar() == 0) {
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
int tmpId = pokemon.getTmpId();
|
||||||
|
SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(tmpId);
|
||||||
|
Map<Integer, Integer> costMap = new HashMap<>();
|
||||||
|
costMap.put(animalConfig.getReturnCost()[0], animalConfig.getReturnCost()[1]);
|
||||||
|
if (ItemUtil.checkCost(user, costMap)) {
|
||||||
|
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||||
|
}
|
||||||
|
Map<Integer, Integer> returnMap = new HashMap<>();
|
||||||
|
|
||||||
|
getPokemonReturnReward(pokemon, returnMap);
|
||||||
|
|
||||||
|
//本体返还
|
||||||
|
SSpiritAnimalStar starConfig = SSpiritAnimalStar.configByQualityAndStar.get(animalConfig.getQuality()).get(pokemon.getStar());
|
||||||
|
int sumItemNum = starConfig.getSumItemNum();
|
||||||
|
if (sumItemNum != 0) {
|
||||||
|
returnMap.put(tmpId, returnMap.getOrDefault(tmpId, 0) + sumItemNum);
|
||||||
|
}
|
||||||
|
ItemUtil.itemCost(user, costMap, BIReason.SPECIAL_BACK_CONSUME, 1);
|
||||||
|
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(returnMap), BIReason.SPECIAL_MONSTER_REWARD);
|
||||||
|
|
||||||
|
HeroInfoProto.PokemonBackResponse response = HeroInfoProto.PokemonBackResponse.newBuilder().setDrop(drop).build();
|
||||||
|
|
||||||
|
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue