From 52eb8e895a5e8bf8cab4e59644956d7034be47db Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 2 Jul 2020 17:32:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=82=E6=9C=BA=E8=8E=B7=E5=BE=97=E8=A3=85?= =?UTF-8?q?=E5=A4=87=E8=87=AA=E5=8A=A8=E5=90=88=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/fight/CombatLogic.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 7142b55b4..dc24abc9e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -271,6 +271,7 @@ public class CombatLogic { while (timesTemp-->0){ ItemUtil.combineReward(user,true,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD); } + randomEquipMap = equipAutoCombine(randomEquipMap); ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD); ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD); Map result = new HashMap<>(2); @@ -953,6 +954,8 @@ public class CombatLogic { } ItemUtil.extraAddItem(user,baseItemMap,BIReason.ADVENTURE_BASE_REWARD); ItemUtil.extraAddItem(user,randomItemMap,BIReason.ADVENTURE_RANDOM_REWARDD); + //装备合成 + randomEquipMap = equipAutoCombine(randomEquipMap); if(viewBaseReward){ myResult = true; rewardStr = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap); @@ -980,5 +983,48 @@ public class CombatLogic { myResult = false; return this; } + + } + private static Map equipAutoCombine(Map equipMap){ + if(equipMap.isEmpty()) + return equipMap; + Map config = STableManager.getConfig(SEquipConfig.class); + Map tempMap = new HashMap<>(); + for(Map.Entry entry:equipMap.entrySet()) { + tempMap.put(entry.getKey(),entry.getValue()); + } + boolean isOver; + int count = 0; + do { + isOver = true; + Iterator it = equipMap.keySet().iterator(); + while(it.hasNext()){ + int key = it.next(); + int value = equipMap.get(key); + SEquipConfig sEquipConfig = config.get(key); + if(sEquipConfig==null) + continue; + int star = sEquipConfig.getStar(); + SEquipStarsConfig sEquipStarsConfig = STableManager.getConfig(SEquipStarsConfig.class).get(star); + int createCount = value / sEquipStarsConfig.getRankupCount(); + if(createCount==0){ + continue; + } + int position = sEquipConfig.getPosition(); + tempMap.put(key,value%sEquipStarsConfig.getRankupCount()); + SEquipConfig createConfig = SEquipConfig.positionStarMap.get(position).get(star + 1); + + if(createConfig==null) + continue; + + int createId = createConfig.getId(); + + tempMap.put(createId,tempMap.getOrDefault(createId,0)+createCount); + isOver = false; + } + equipMap = tempMap; + count++; + }while(!isOver&&count<5); + return equipMap; } }