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 9ae9fae61..9e791f5b0 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 @@ -999,6 +999,14 @@ public class HeroLogic{ } } } + //魂印 + Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); + Map config = STableManager.getConfig(SEquipConfig.class); + soulEquipByPositionMap.values().forEach(e->{ + if(config.get(e).getPassiveSkill()!=0){ + skillList.add(config.get(e).getPassiveSkill()); + } + }); //法宝技能 int[] equipTalismana = tempHero.getEquipTalismana(); if(hero.getStar() heroSkillList = getHeroSkillList(user, hero); - heroSkillList.forEach(skillId->{ - sb.append(skillId).append(DIVISION); + heroSkillList.forEach(skill->{ + SPassiveSkillLogicConfig config = SPassiveSkillLogicConfig.getConfig(skill); + if(config!=null &&config.getEffectiveRange()==1){ + sb.append(skill).append(DIVISION); + } }); return sb; } @@ -1301,6 +1312,12 @@ public class HeroLogic{ combinedAttribute(property,heroAllAttribute); } + Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); + Map equipConfigMap = STableManager.getConfig(SEquipConfig.class); + soulEquipByPositionMap.values().forEach(e->{ + combinedAttribute( equipConfigMap.get(e).getProperty(),heroAllAttribute); + }); + //阵营光环加成 if(!isForce){ if(teamId!=0){ @@ -1312,6 +1329,7 @@ public class HeroLogic{ } } } + //被动技能加成 List heroSkillList = CombatLogic.getInstance().passiveskillEffect(user, hero,teamId); Map heroSkillAdMap = new HashMap<>(); @@ -1328,9 +1346,9 @@ public class HeroLogic{ } calInteractAdd(heroAllAttribute); heroSkillList.forEach(skill->{ - SPassiveSkillLogicConfig config = SPassiveSkillLogicConfig.getConfig(skill); - if(config.getValue()[2] ==4){ - PassiveskillCalEnum.calEnumMap.get(config.getType()).getPassiveSkillProcessor().process(config,hero,heroAllAttribute,heroSkillAdMap); + SPassiveSkillLogicConfig configTmp = SPassiveSkillLogicConfig.getConfig(skill); + if(configTmp.getValue()[2] ==4){ + PassiveskillCalEnum.calEnumMap.get(configTmp.getType()).getPassiveSkillProcessor().process(configTmp,hero,heroAllAttribute,heroSkillAdMap); } }); if(!heroSkillAdMap.isEmpty()){ diff --git a/tablemanager/src/main/java/config/SEquipConfig.java b/tablemanager/src/main/java/config/SEquipConfig.java index 8e2d1651a..a4438045c 100644 --- a/tablemanager/src/main/java/config/SEquipConfig.java +++ b/tablemanager/src/main/java/config/SEquipConfig.java @@ -19,6 +19,8 @@ public class SEquipConfig implements BaseConfig { private int[] propertyMin; + private int[][] property; + private int[] propertyMax; private int[] pool; @@ -160,4 +162,8 @@ public class SEquipConfig implements BaseConfig { public int getPassiveSkill() { return passiveSkill; } + + public int[][] getProperty() { + return property; + } } \ No newline at end of file