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 d18a1ff0e..3d93aad03 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 @@ -1252,6 +1252,7 @@ public class HeroLogic{ int equipForce=0; boolean needRemove = false; Iterator> iterator = hero.getEquipByPositionMap().entrySet().iterator(); + Map suiteNumByIdMap = new HashMap<>(); while (iterator.hasNext()){ Map.Entry next = iterator.next(); String equipId = next.getValue(); @@ -1267,6 +1268,18 @@ public class HeroLogic{ combinedAttribute(secondValueByIdMap,heroAllAttribute); SEquipConfig sEquipConfig = STableManager.getConfig(SEquipConfig.class).get(equip.getEquipId()); equipForce+=sEquipConfig.getScore(); + suiteNumByIdMap.put(sEquipConfig.getSuiteID(),suiteNumByIdMap.getOrDefault(sEquipConfig.getSuiteID(),0)+1); + } + if(!suiteNumByIdMap.isEmpty()){ + suiteNumByIdMap.forEach((suiteId,suiteNums)->{ + SEquipSuiteConfig sEquipSuiteConfig =SEquipSuiteConfig.config.get(suiteId); + if( null!=sEquipSuiteConfig){ + Map suitePropertyMap = sEquipSuiteConfig.getSuiteMap().get(suiteNums); + if(suitePropertyMap!=null){ + combinedAttribute(suitePropertyMap,heroAllAttribute); + } + } + }); } if(needRemove){ AyyncWorker ayyncWorker = new AyyncWorker(user,true,user1 -> { @@ -2066,6 +2079,7 @@ public class HeroLogic{ } hero.setIsLock(lockState); MessageUtil.sendMessage(session,1,responseMsgId,null,true); + LOGGER.info("the force={}",calHeoForce(user,hero,0)); } /** diff --git a/tablemanager/src/main/java/config/SEquipConfig.java b/tablemanager/src/main/java/config/SEquipConfig.java index a4438045c..86316d1a3 100644 --- a/tablemanager/src/main/java/config/SEquipConfig.java +++ b/tablemanager/src/main/java/config/SEquipConfig.java @@ -13,6 +13,8 @@ public class SEquipConfig implements BaseConfig { private int id; + private int suiteID; + private int professionLimit; private int position; @@ -166,4 +168,8 @@ public class SEquipConfig implements BaseConfig { public int[][] getProperty() { return property; } + + public int getSuiteID() { + return suiteID; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SEquipSuiteConfig.java b/tablemanager/src/main/java/config/SEquipSuiteConfig.java new file mode 100644 index 000000000..551103f2b --- /dev/null +++ b/tablemanager/src/main/java/config/SEquipSuiteConfig.java @@ -0,0 +1,53 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.HashMap; +import java.util.Map; + +@Table(name ="EquipSuiteConfig") +public class SEquipSuiteConfig implements BaseConfig { + + private int id; + + private int[][] suiteValue; + + private Map> suiteMap; + public static Map config; + + + @Override + public void init() throws Exception { + Map configTmp = STableManager.getConfig(SEquipSuiteConfig.class); + configTmp.values().forEach(item->{ + Map> suiteMapTmp = new HashMap<>(); + int[][] suiteValue = item.getSuiteValue(); + for(int[] suiteItem :suiteValue){ + suiteMapTmp.putIfAbsent(suiteItem[0],suiteMapTmp.getOrDefault(suiteItem[0],new HashMap<>(suiteMapTmp.getOrDefault(suiteItem[0]-1,new HashMap<>())))); + suiteMapTmp.get(suiteItem[0]).put(suiteItem[1], suiteMapTmp.get(suiteItem[0]).getOrDefault(suiteItem[1],0) + suiteItem[2]); + } + item.setSuiteMap(suiteMapTmp); + }); + config=configTmp; + } + + + public Map> getSuiteMap() { + return suiteMap; + } + + public void setSuiteMap(Map> suiteMap) { + this.suiteMap = suiteMap; + } + + public int getId() { + return id; + } + + public int[][] getSuiteValue() { + return suiteValue; + } + + +} \ No newline at end of file