From a238a0b9a6e5270f49e7b47b66db1721eacd661b Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 25 Jun 2020 22:07:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=20=E5=8D=87=E7=BA=A7=E5=A5=BD=E7=A4=BC?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E4=BF=AE=E5=A4=8D=E9=A2=86=E5=A5=96=E4=B9=8B?= =?UTF-8?q?=E5=90=8Ebug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/phone/GetPhoneRewardRequestHandler.java | 2 +- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 4 ++-- .../activity/eventhandler/ActivityStateChangeHandler.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/phone/GetPhoneRewardRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/phone/GetPhoneRewardRequestHandler.java index 939608ec7..1277c312a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/phone/GetPhoneRewardRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/phone/GetPhoneRewardRequestHandler.java @@ -34,7 +34,7 @@ public class GetPhoneRewardRequestHandler extends BaseHandler sGlobalActivities = SGlobalActivity.sGlobalActivityMapByOpenRules.getOrDefault(3, new ArrayList<>(0)); sGlobalActivities.stream().filter(s->s.getOpenRules()[1] == activityId).forEach(s->{ ActivityMission activityMissionWillOpen = user.getActivityManager().getActivityMissionMap().get(s.getId()); From 52eb8e895a5e8bf8cab4e59644956d7034be47db Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 2 Jul 2020 17:32:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8C=82=E6=9C=BA=E8=8E=B7=E5=BE=97?= =?UTF-8?q?=E8=A3=85=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; } } From 3e3b82ffb7f623ca8427a3f4b72979c10bc3f161 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 2 Jul 2020 17:32:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A3=85=E5=A4=87=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tablemanager/src/main/java/config/SEquipConfig.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tablemanager/src/main/java/config/SEquipConfig.java b/tablemanager/src/main/java/config/SEquipConfig.java index 6d57ad9ae..bf63a1eb1 100644 --- a/tablemanager/src/main/java/config/SEquipConfig.java +++ b/tablemanager/src/main/java/config/SEquipConfig.java @@ -3,10 +3,7 @@ package config; import manager.STableManager; import manager.Table; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; @Table(name ="EquipConfig") public class SEquipConfig implements BaseConfig { @@ -57,10 +54,11 @@ public class SEquipConfig implements BaseConfig { private int[] passiveSkill; - + public static Map> positionStarMap ; @Override public void init() throws Exception { + Map> tempMap = new HashMap<>(); Map config = STableManager.getConfig(SEquipConfig.class); config.forEach((k,v)->{ if(v.getRange()!=null && v.getRange().length>0 && v.getRange()[0]!=0){ @@ -68,9 +66,12 @@ public class SEquipConfig implements BaseConfig { Arrays.stream(v.getRange()).forEach(e->rangeTemp.add(e)); v.setRangeHeroTids(rangeTemp); } - + if(v.getPosition()!=5){ + tempMap.computeIfAbsent(v.getPosition(),m->new HashMap<>()).put(v.getStar(),v); + } }); + positionStarMap = tempMap; }