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 d6b78d91c..f60a77e46 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 @@ -2830,41 +2830,30 @@ public class HeroLogic { } } + LOGGER.info("============================1{}",heroAllAttribute); + // 主角本身给英雄的加成 SPlayerLevelConfig playerLevelConfig = SPlayerLevelConfig.sPlayerLevelConfigMap.get(user.getPlayerInfoManager().getLevel()); if (playerLevelConfig != null){ combinedAttribute(playerLevelConfig.getPropList(), heroAllAttribute); + combinedAttribute(playerLevelConfig.getPlayerPropList(), heroAllAttribute); } - // 身外化身加成 - Map transformationList = heroManager.getTransformationList(); - Map changingCardMap = STableManager.getConfig(SChangingCard.class); - for (TransformationInfo info : transformationList.values()) { - SChangingCard card = changingCardMap.get(info.getCardId()); - if (card != null){ - // 变身卡单独提供得属性 - combinedAttribute(card.getPropList(), heroAllAttribute); - //变身卡升星属性 - SChangingCardStar cardStar = SChangingCardStar.getPoolMap().get(card.getStar()).get(info.getStar()); - if (cardStar != null){ - combinedAttribute(cardStar.getExp(), heroAllAttribute); - } - //变身卡升级属性 - Map poolConfig = SChangingCardLevel.getConfigByPoolId(card.getLevelUpPool()); - if (poolConfig != null){ - List levelList = poolConfig.values().stream().filter(n->n.getLevel() == info.getLevel()).collect(Collectors.toList()); - if(levelList.size()>0){ - combinedAttribute(levelList.get(0).getPropList(), heroAllAttribute); - } - } - } + // 变身卡加成 / 主角技能 + for (TransformationInfo info : heroManager.getTransformationList().values()) { + // 主角属性 + calPlayerAttribute(heroAllAttribute, info.getCardId(), info.getStar(), info.getLevel()); + // 英雄属性 + calPlayerCardAttribute(heroAllAttribute, info.getCardId(), info.getStar(), info.getLevel()); } + LOGGER.info("============================2{}",heroAllAttribute); + //化身之力提供的属性 - Map SChangingForce = STableManager.getConfig(SChangingForce.class); - if(SChangingForce.get(user.getHeroManager().getTransformationForce()) != null){ - combinedAttribute(SChangingForce.get(user.getHeroManager().getTransformationForce()).getPropList(), heroAllAttribute); - } +// Map SChangingForce = STableManager.getConfig(SChangingForce.class); +// if(SChangingForce.get(user.getHeroManager().getTransformationForce()) != null){ +// combinedAttribute(SChangingForce.get(user.getHeroManager().getTransformationForce()).getPropList(), heroAllAttribute); +// } // 装备套装属性 getEquipSuiteAttr(hero, heroAllAttribute); @@ -3435,9 +3424,9 @@ public class HeroLogic { continue; } if(sPropertyConfig.getStyle() == GlobalsDef.PERCENT_TYPE){ - forceAdd += propertyValue*sPropertyConfig.getScore()/10000; + forceAdd += propertyValue * sPropertyConfig.getScore() / 10000; }else{ - forceNum += propertyValue*sPropertyConfig.getScore(); + forceNum += propertyValue * sPropertyConfig.getScore(); } } result=forceNum+(forceNum*forceAdd); @@ -3980,6 +3969,34 @@ public class HeroLogic { } } + public void calPlayerCardAttribute(Map attrMap, int tmpId, int star, int level) { + try { + // 身外化身加成 + Map changingCardMap = STableManager.getConfig(SChangingCard.class); + SChangingCard card = changingCardMap.get(tmpId); + if (card == null){ + return; + } + // 变身卡单独提供得属性 + combinedAttribute(card.getPropList(), attrMap); + //变身卡升星属性 + SChangingCardStar cardStar = SChangingCardStar.getPoolMap().get(card.getStar()).get(star); + if (cardStar != null) { + combinedAttribute(cardStar.getExp(), attrMap); + } + //变身卡升级属性 + Map poolConfig = SChangingCardLevel.getConfigByPoolId(card.getLevelUpPool()); + if (poolConfig != null) { + List levelList = poolConfig.values().stream().filter(n -> n.getLevel() == level).collect(Collectors.toList()); + if (levelList.size() > 0) { + combinedAttribute(levelList.get(0).getPropList(), attrMap); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + /** * 计算一个灵兽的属性 */