From f5427e27a756567a0d89ef1ce9ce173b46e68aaf Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 22 Oct 2020 14:48:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=81=B5=E5=85=BD=E6=94=BE=E7=94=9F=EF=BC=8C?= =?UTF-8?q?=E6=B6=85=E6=A7=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 8 + .../GetAllPokemonHandler.java | 2 +- .../GetAllRingFireHandler.java | 2 +- .../PokemonAdvancedHandler.java | 16 +- .../handler/pokemon/PokemonBackHandler.java | 26 ++ .../handler/pokemon/PokemonFreeHandler.java | 26 ++ .../PokemonLevelupHandler.java | 3 +- .../jieling/logic/dao/PokemonManager.java | 20 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 282 ++++++++++++------ .../src/main/java/config/SSpiritAnimal.java | 122 ++++++++ .../main/java/config/SSpiritAnimalStar.java | 32 +- 11 files changed, 424 insertions(+), 115 deletions(-) rename serverlogic/src/main/java/com/ljsd/jieling/handler/{pokeemon => pokemon}/GetAllPokemonHandler.java (94%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/{pokeemon => pokemon}/GetAllRingFireHandler.java (94%) rename serverlogic/src/main/java/com/ljsd/jieling/handler/{pokeemon => pokemon}/PokemonAdvancedHandler.java (52%) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonBackHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonFreeHandler.java rename serverlogic/src/main/java/com/ljsd/jieling/handler/{pokeemon => pokemon}/PokemonLevelupHandler.java (90%) create mode 100644 tablemanager/src/main/java/config/SSpiritAnimal.java 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 930f0822c..202c202ee 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -150,6 +150,9 @@ public interface BIReason { int JOURNEY_COMMON_REWARD = 83;//逍遥游基础奖励 int JOURNEY_FIGHT_REWARD = 84;//逍遥游击杀boss奖励 int JOURNEY_RANDOM_REWARD = 85;//逍遥游转盘奖励 + int SPECIAL_MONSTER_REWARD = 86;//灵兽涅槃获得 + int SPECIAL_FREE_PIECE_REWARD = 87;//灵兽放生获得 + int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级 int SECRETBOX_CONSUME = 1001;//秘盒抽卡 @@ -271,7 +274,12 @@ public interface BIReason { int GUILD_CHALLENGE_BUFF_BUY_CONSUME = 1065;//公会副本购买buff int JOURNEY_FIGHT_CONSUME = 1066;//逍遥游攻击boss消耗 int JOURNEY_DO_CONSUME = 1067;//逍遥游摇骰子消耗 + int SPECIAL_LEVEL_UP_CONSUME = 1068;//灵兽升级消耗 + int SPECIAL_STAR_UP_CONSUME = 1069;//灵兽升星消耗; + int SPECIAL_BACK_CONSUME = 1070;//灵兽涅槃消耗 + + int SPECIAL_FREE_PIECE_CONSUME = 1070;//灵兽放生碎片消耗 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllPokemonHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPokemonHandler.java similarity index 94% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllPokemonHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPokemonHandler.java index af97a7e94..825eee3e2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllPokemonHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPokemonHandler.java @@ -1,4 +1,4 @@ -package com.ljsd.jieling.handler.pokeemon; +package com.ljsd.jieling.handler.pokemon; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.hero.HeroLogic; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllRingFireHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllRingFireHandler.java similarity index 94% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllRingFireHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllRingFireHandler.java index e065a2d2e..6459b6b19 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/GetAllRingFireHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllRingFireHandler.java @@ -1,4 +1,4 @@ -package com.ljsd.jieling.handler.pokeemon; +package com.ljsd.jieling.handler.pokemon; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.hero.HeroLogic; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonAdvancedHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonAdvancedHandler.java similarity index 52% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonAdvancedHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonAdvancedHandler.java index b1b086df0..be6ab94e4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonAdvancedHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonAdvancedHandler.java @@ -1,25 +1,25 @@ -package com.ljsd.jieling.handler.pokeemon; +package com.ljsd.jieling.handler.pokemon; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.hero.HeroLogic; -import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; import org.springframework.stereotype.Component; +import java.util.List; + @Component -public class PokemonAdvancedHandler extends BaseHandler { +public class PokemonAdvancedHandler extends BaseHandler { @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.POKEMON_ADVANCED_REQUEST; } @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { - byte[] bytes = netData.parseClientProtoNetData(); - HeroInfoProto.PokemonAdvancedRequest pokemonAdvancedRequest = HeroInfoProto.PokemonAdvancedRequest.parseFrom(bytes); - int pokemonId = pokemonAdvancedRequest.getPokemonId(); - HeroLogic.getInstance().pokemonAdvanced(iSession,pokemonId); + public void processWithProto(ISession iSession, HeroInfoProto.PokemonAdvancedRequest proto) throws Exception { + String pokemonId = proto.getPokemonId(); + List consumePokemonIdsList = proto.getConsumePokemonIdsList(); + HeroLogic.getInstance().pokemonAdvanced(iSession,pokemonId,consumePokemonIdsList); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonBackHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonBackHandler.java new file mode 100644 index 000000000..6e805c4f7 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonBackHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.handler.pokemon; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.HeroInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +/** + * @author lvxinran + * @date 2020/10/22 + * @discribe + */ +@Component +public class PokemonBackHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.POKEMON_BACK_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, HeroInfoProto.PokemonBackRequest proto) throws Exception { + HeroLogic.getInstance().pokemonBack(iSession,proto.getPokemonId(),MessageTypeProto.MessageType.POKEMON_BACK_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonFreeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonFreeHandler.java new file mode 100644 index 000000000..5ccbe38a9 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonFreeHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.handler.pokemon; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.HeroInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +/** + * @author lvxinran + * @date 2020/10/22 + * @discribe + */ +@Component +public class PokemonFreeHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.POKEMON_FREE_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, HeroInfoProto.PokemonFreeRequest proto) throws Exception { + HeroLogic.getInstance().pokemonFree(iSession,proto.getPokemonIdList(),proto.getPieceId(),proto.getPieceNum(), MessageTypeProto.MessageType.POKEMON_FREE_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonLevelupHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonLevelupHandler.java similarity index 90% rename from serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonLevelupHandler.java rename to serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonLevelupHandler.java index a21406b28..c53ec198a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokeemon/PokemonLevelupHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/PokemonLevelupHandler.java @@ -1,8 +1,7 @@ -package com.ljsd.jieling.handler.pokeemon; +package com.ljsd.jieling.handler.pokemon; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.hero.HeroLogic; -import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java index e7324810e..7c7bc7d62 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java @@ -22,12 +22,6 @@ public class PokemonManager extends MongoBase { updateString("pokemonMap." + pokemon.getId(), pokemon); } -// public void addRingFirePokemon(Pokemon pokemon) throws Exception { -// pokemon.init(this.getRootId(),getMongoKey() + ".ringFireMap." + pokemon.getId()); -// updateString("ringFireMap." + pokemon.getId(), pokemon); -// ringFireMap.put(pokemon.getId(),pokemon); -// } - public void updatePokemonLevel(String id,int level){ pokemonMap.get(id).setLevel(level); updateString("pokemonMap." + id+".level", level); @@ -47,7 +41,15 @@ public class PokemonManager extends MongoBase { return pokemonMap; } -// public Map getRingFireMap() { -// return ringFireMap; -// } + public void removePokemon(String pokemonId){ + pokemonMap.remove(pokemonId); + removeString("pokemonMap."+pokemonId); + } + public void updatePokemonStar(String id,int star){ + pokemonMap.get(id).setStar(star); + updateString("pokemonMap." + id+".star", star); + + } + + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 67d7259de..963492c55 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -2048,7 +2048,7 @@ public class HeroLogic{ } /** - * 英雄合成 + * 英雄,灵兽合成 * @param iSession * @param item */ @@ -2082,7 +2082,9 @@ public class HeroLogic{ .newBuilder() .setDrop(drop) .build(); - user.getUserMissionManager().onGameEvent(user,GameEvent.COMPOS_HERO,drop.getHero(0).getHeroId(),composeNum); + if(!drop.getHeroList().isEmpty()){ + user.getUserMissionManager().onGameEvent(user,GameEvent.COMPOS_HERO,drop.getHero(0).getHeroId(),composeNum); + } MessageUtil.sendMessage(iSession,1,msgId,heroComposeResponse,true); } public String getQuality(int natural) { @@ -2159,6 +2161,7 @@ public class HeroLogic{ Map levelMap = SSpiritAnimalLevel.configByQualityAndLevel.get(3); Map costMap = new HashMap<>(); + int finalLevel = pokemon.getLevel(); for(int i = pokemon.getLevel();i comonpentsLevelMap = pokemon.getComonpentsLevelMap(); -// SDifferDemonsStageConfig sDifferDemonsStageConfig = SDifferDemonsStageConfig.getsDifferDemonsStageConfigMap(pokemonId*100 + pokemon.getAllStage() + 1); -// int comonpentPreStage = sDifferDemonsStageConfig.getComonpentPreStage(); -// -// boolean isEnough = true; -// for(int i=0;i=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); -// } - } + /** + * 灵兽升星 + * @param session + * @param pokemonId + * @param consumePokemonIdsList + * @throws Exception + */ + public void pokemonAdvanced(ISession session,String pokemonId,List 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 configMap = SSpiritAnimalStar.configByQualityAndStar.get(3); - - - - private boolean checkPokemonComonpent(int pokemonId, int comonpentId, int oldLevel,User user) throws Exception { - SDifferDemonsConfig sDifferDemonsConfig = SDifferDemonsConfig.getsDifferDemonsConfigByPokenID(pokemonId); - int[] comonpentList = sDifferDemonsConfig.getComonpentList(); - boolean isHave = false; - for(int i=0;i sDifferDemonsComonpentsConfigMap = SDifferDemonsComonpentsConfig.getsDifferDemonsComonpentsConfigMap(comonpentId); - if(!sDifferDemonsComonpentsConfigMap.containsKey(oldLevel) || !sDifferDemonsComonpentsConfigMap.containsKey(oldLevel+1)){ - LOGGER.info("the pokenId={},the comId={},sDifferDemonsConfig={},the oldLevel={}",pokemonId,comonpentId,oldLevel); - return true; + int tmpId = pokemon.getTmpId(); + SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(tmpId); + Map costMap = new HashMap<>(); + costMap.put(animalConfig.getReturnCost()[0],animalConfig.getReturnCost()[1]); + if(ItemUtil.checkCost(user,costMap)){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } - SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigMap.get(oldLevel); - int[][] cost = sDifferDemonsComonpentsConfig.getCost(); - boolean enoughCost = ItemUtil.itemCost(user, cost,BIReason.POKEMON_UPLEVEL_CONSUME,pokemonId); - if(!enoughCost){ - LOGGER.info("the pokenId={},the comId={},sDifferDemonsConfig={}",pokemonId,comonpentId,sDifferDemonsComonpentsConfig.getId()); - return true; + Map 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); + + } + + /** + * 灵兽放生 + * @param session + * @param pokemonIds + * @param pieceId + * @param pieceAmount + * @param messageType + * @throws Exception + */ + public void pokemonFree(ISession session, List pokemonIds,int pieceId,int pieceAmount, MessageTypeProto.MessageType messageType) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + PokemonManager pokemonManager = user.getPokemonManager(); + if(!pokemonIds.isEmpty()){ + if(pieceId!=0||pieceAmount!=0){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + }else{ + if(pieceId==0||pieceAmount==0){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + Map returnMap = new HashMap<>(); + + if(!pokemonIds.isEmpty()){ + + for(String pokemonId:pokemonIds){ + Pokemon pokemon = pokemonManager.getPokemonMap().get(pokemonId); + + if(pokemon == null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + + getPokemonReturnReward(pokemon,returnMap); + SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(pokemon.getTmpId()); + + SSpiritAnimalStar starConfig = SSpiritAnimalStar.configByQualityAndStar.get(animalConfig.getQuality()).get(pokemon.getStar()); + + int sumItemNum = starConfig.getSumItemNum()+1; + + int[] coinReturn = animalConfig.getCoinReturn(); + + returnMap.put(coinReturn[0],returnMap.getOrDefault(coinReturn[0],0)+coinReturn[1]*sumItemNum); + + } + + }else{ + SSpiritAnimal animal = SSpiritAnimal.pieceConfig.get(pieceId); + Map costMap = new HashMap<>(); + if(animal==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + boolean checkCost = ItemUtil.checkCost(user, costMap); + if(!checkCost){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + int[] piecesCoinReturn = animal.getPiecesCoinReturn(); + returnMap.put(piecesCoinReturn[0],returnMap.getOrDefault(piecesCoinReturn[0],0)+piecesCoinReturn[1]*pieceAmount); + ItemUtil.itemCost(user,costMap,BIReason.SPECIAL_FREE_PIECE_CONSUME,1); + } + CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(returnMap), BIReason.SPECIAL_FREE_PIECE_REWARD); + + HeroInfoProto.PokemonFreeResponse response = HeroInfoProto.PokemonFreeResponse.newBuilder().setDrop(drop).build(); + + MessageUtil.sendMessage(session,1, messageType.getNumber(),response,true); + } + + /** + * 等级和星级返还 不包括本体返还 + * @param pokemon + * @param returnMap + * @throws ErrorCodeException + */ + private void getPokemonReturnReward(Pokemon pokemon,Map returnMap) throws ErrorCodeException { + SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(pokemon.getTmpId()); + + SSpiritAnimalLevel levelConfig = SSpiritAnimalLevel.configByQualityAndLevel.get(animalConfig.getQuality()).get(pokemon.getLevel()); + if(levelConfig==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + SSpiritAnimalStar starConfig = SSpiritAnimalStar.configByQualityAndStar.get(animalConfig.getQuality()).get(pokemon.getStar()); + + if(starConfig==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + + int[][] sumConsumeLevel = levelConfig.getSumConsume(); + if(pokemon.getLevel()!=1&&sumConsumeLevel!=null&&sumConsumeLevel.length>0&&sumConsumeLevel[0].length>0){ + for(int[] consume:sumConsumeLevel){ + returnMap.put(consume[0],returnMap.getOrDefault(consume[0],0)+consume[1]); + } + } + + int[][] sumConsumeStar = starConfig.getSumConsume(); + if(pokemon.getStar()!=0&&sumConsumeStar!=null&&sumConsumeStar.length>0&&sumConsumeStar[0].length>0){ + for(int[] consume:sumConsumeStar){ + returnMap.put(consume[0],returnMap.getOrDefault(consume[0],0)+consume[1]); + } } - return false; } //TODO isMyself ??? diff --git a/tablemanager/src/main/java/config/SSpiritAnimal.java b/tablemanager/src/main/java/config/SSpiritAnimal.java new file mode 100644 index 000000000..62cb35435 --- /dev/null +++ b/tablemanager/src/main/java/config/SSpiritAnimal.java @@ -0,0 +1,122 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; + +@Table(name ="SpiritAnimal") +public class SSpiritAnimal implements BaseConfig { + + private int id; + + private int piecesId; + + private int piecesCount; + + private int quality; + + private int maxStar; + + private int canChange; + + private float hp; + + private float attack; + + private float physicalDefence; + + private float magicDefence; + + private int[][] skillArray; + + private int[] coinReturn; + + private int[] piecesCoinReturn; + + private int maxLevel; + + private int inVersion; + + private int[] returnCost; + + public static Map pieceConfig; + + @Override + public void init() throws Exception { + Map config = STableManager.getConfig(SSpiritAnimal.class); + Map pieceConfigTemp = new HashMap<>(); + for(Map.Entry entry :config.entrySet()){ + pieceConfigTemp.put(entry.getValue().getPiecesId(),entry.getValue()); + } + pieceConfig = pieceConfigTemp; + } + + + public int getId() { + return id; + } + + public int getPiecesId() { + return piecesId; + } + + public int getPiecesCount() { + return piecesCount; + } + + public int getQuality() { + return quality; + } + + public int getMaxStar() { + return maxStar; + } + + public int getCanChange() { + return canChange; + } + + public float getHp() { + return hp; + } + + public float getAttack() { + return attack; + } + + public float getPhysicalDefence() { + return physicalDefence; + } + + public float getMagicDefence() { + return magicDefence; + } + + public int[][] getSkillArray() { + return skillArray; + } + + public int[] getCoinReturn() { + return coinReturn; + } + + public int[] getPiecesCoinReturn() { + return piecesCoinReturn; + } + + public int getMaxLevel() { + return maxLevel; + } + + public int getInVersion() { + return inVersion; + } + + public int[] getReturnCost() { + return returnCost; + } + + +} \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SSpiritAnimalStar.java b/tablemanager/src/main/java/config/SSpiritAnimalStar.java index 7084c5235..8fb7f9265 100644 --- a/tablemanager/src/main/java/config/SSpiritAnimalStar.java +++ b/tablemanager/src/main/java/config/SSpiritAnimalStar.java @@ -3,6 +3,7 @@ package config; import manager.STableManager; import manager.Table; +import java.util.HashMap; import java.util.Map; @Table(name ="SpiritAnimalStar") @@ -14,18 +15,27 @@ public class SSpiritAnimalStar implements BaseConfig { private int quality; - private int[][] starPara; + private int starPara; private int consumeItemNum; - private int consumeRes; + private int[][] consumeRes; - private int sumConsume; + private int[][] sumConsume; - - @Override + private int sumItemNum; + + public static Map> configByQualityAndStar; + + @Override public void init() throws Exception { - + Map> tempConfigByQualityAndStar = new HashMap<>(); + Map config = STableManager.getConfig(SSpiritAnimalStar.class); + for(Map.Entry entry:config.entrySet()){ + SSpiritAnimalStar value = entry.getValue(); + tempConfigByQualityAndStar.computeIfAbsent(value.getQuality(),n->new HashMap<>()).put(value.getStar(),value); + } + configByQualityAndStar = tempConfigByQualityAndStar; } @@ -41,7 +51,7 @@ public class SSpiritAnimalStar implements BaseConfig { return quality; } - public int[][] getStarPara() { + public int getStarPara() { return starPara; } @@ -49,13 +59,15 @@ public class SSpiritAnimalStar implements BaseConfig { return consumeItemNum; } - public int getConsumeRes() { + public int[][] getConsumeRes() { return consumeRes; } - public int getSumConsume() { + public int[][] getSumConsume() { return sumConsume; } - + public int getSumItemNum() { + return sumItemNum; + } } \ No newline at end of file