From 8cd5a70b94c537c342bab5f5b7797959a37c88e6 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 17 Feb 2023 15:24:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=AD=E9=80=81=E8=8B=B1=E9=9B=84=E8=BF=94?= =?UTF-8?q?=E8=BF=98=E7=A5=9E=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/hero/HeroLogic.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) 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 9a5d17a9c..20287f099 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 @@ -145,7 +145,6 @@ public class HeroLogic { pokemonTemplate.add(HeroAttributeEnum.CureFacter.getPropertyId()); // 受治疗 } - public static final String VERTICAL = "|"; public static final String DIVISION = "#"; public static final int HERO_MAX_STAR = 10; // 英雄最大星级,大于10星为觉醒 @@ -4381,15 +4380,17 @@ public class HeroLogic { Hero hero = user.getHeroManager().getHero(heroId); //如果是进阶把装备、宝物返还 if (reason == BIReason.UPHERO_DECOMPOS_HERO_REWARD) { + // 装备 Map equipByPositionMap = hero.getEquipByPositionMap(); - Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); if (equipByPositionMap != null && equipByPositionMap.size() > 0) { equipByPositionMap.forEach((k, v) -> returnItemMap.put(v, returnItemMap.getOrDefault(v, 0) + 1)); } + // 魂印 + Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); if (soulEquipByPositionMap != null && soulEquipByPositionMap.size() > 0) { soulEquipByPositionMap.forEach((k, v) -> returnItemMap.put(v, returnItemMap.getOrDefault(v, 0) + 1)); } - + // 宝器 Set jewelInfo = new HashSet<>(hero.getJewelInfo()); for (String equipId : jewelInfo) { if (!equipMap.containsKey(equipId)) { @@ -4398,6 +4399,13 @@ public class HeroLogic { equipMap.get(equipId).setHeroId(""); hero.removeJewel(equipId); } + // 神印 + Map godSealByPositionMap = hero.getGodSealByPositionMap(); + if (godSealByPositionMap != null && !godSealByPositionMap.isEmpty()){ + for (Integer integer : godSealByPositionMap.values()) { + returnItemMap.put(integer,1); + } + } } int breakId = hero.getBreakId(); int templateId = hero.getTemplateId(); @@ -4409,11 +4417,11 @@ public class HeroLogic { SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getOriginalLevel()); int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent); //进阶材料返还乘万分比 - for (int i = 0; i < returnMaterials.length; i++) { - returnItemMap.put(returnMaterials[i][0], returnItemMap.getOrDefault(returnMaterials[i][0], 0) + (int) (returnMaterials[i][1] / 10000d * returnPercent)); + for (int[] returnMaterial : returnMaterials) { + returnItemMap.put(returnMaterial[0], returnItemMap.getOrDefault(returnMaterial[0], 0) + (int) (returnMaterial[1] / 10000d * returnPercent)); } - for (int i = 0; i < levelReturn.length; i++) { - returnItemMap.put(levelReturn[i][0], returnItemMap.getOrDefault(levelReturn[i][0], 0) + levelReturn[i][1]); + for (int[] ints : levelReturn) { + returnItemMap.put(ints[0], returnItemMap.getOrDefault(ints[0], 0) + ints[1]); } if (!isAddEspecial) { continue; @@ -4432,9 +4440,7 @@ public class HeroLogic { resultDrop[index] = new int[]{entry.getKey(), entry.getValue()}; index++; } - CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, reason); - return drop; - + return ItemUtil.drop(user, resultDrop, reason); } public void changeHeroLockState(ISession session, String heroId, int lockState) throws Exception {