From 64744bb3bb87d5ba0729b83fe4b0ad1a9f7b4ac5 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 21 Oct 2020 10:21:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=81=B5=E5=85=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 21 +++++++++++++++++++ .../main/java/config/SSpiritAnimalLevel.java | 9 +++++++- 2 files changed, 29 insertions(+), 1 deletion(-) 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 851f5757f..ff8165e4e 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 @@ -2153,6 +2153,27 @@ public class HeroLogic{ 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 levelMap = SSpiritAnimalLevel.configByQualityAndLevel.get(3); + Map costMap = new HashMap<>(); + for(int i = pokemon.getLevel();i> tempConfigByQualityAndLevel = new HashMap<>(); + Map config = STableManager.getConfig(SSpiritAnimalLevel.class); + for(Map.Entry entry:config.entrySet()){ + SSpiritAnimalLevel value = entry.getValue(); + tempConfigByQualityAndLevel.computeIfAbsent(value.getQuality(),n->new HashMap<>()).put(value.getLevel(),value); + } + configByQualityAndLevel = tempConfigByQualityAndLevel; } From c78f77888170472dcbfd2cb804ccef2dba5796e0 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 21 Oct 2020 15:30:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=81=B5=E5=85=BD=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 ff8165e4e..67d7259de 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 @@ -2167,7 +2167,12 @@ public class HeroLogic{ 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){ break;