diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index c115afca8..69ef9cd34 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -201,7 +201,7 @@ public class MapLogic { List teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (int i = 0; i heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false); + Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); if(teamId==401){ Map endlessHeroInfo = user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo(); if(endlessHeroInfo!=null&&endlessHeroInfo.size()>0){ @@ -856,7 +856,7 @@ public class MapLogic { if (values[0][0] == 1) { for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero,false); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero,false,teamId); Integer integer = map.get(values[0][1]); if (integer == null || integer < values[0][2]) { return jumpTypeValues[0][1]; @@ -866,7 +866,7 @@ public class MapLogic { } else if (values[0][0] == 0) { for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero,false); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, hero,false,teamId); Integer integer = map.get(values[0][1]); if (integer != null && integer >= values[0][2]) { return jumpTypeValues[0][0]; @@ -1185,7 +1185,7 @@ public class MapLogic { if (hero == null) { continue; } - Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false); + Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } } @@ -2866,7 +2866,7 @@ public class MapLogic { if(heroEntry.getValue().getLevel()<20){ continue; } - int calHp = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, heroEntry.getValue(), true).get(1); + int calHp = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user, heroEntry.getValue(), true,401).get(1); if(!endlessHeroInfo.containsKey(heroEntry.getKey())){ mapManager.addEndlessHero(heroEntry.getKey(),calHp); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 40cd28e70..d12da03e5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -216,7 +216,7 @@ public class BehaviorUtil { StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); String heroSkill = HeroLogic.getInstance().getHeroSkills(user,hero,skillSb).toString(); - String property = HeroLogic.getInstance().getHeroProperty(user,hero,propertySb,isMySelf).toString(); + String property = HeroLogic.getInstance().getHeroProperty(user,hero,propertySb,isMySelf,teamId).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(hero.getTemplateId())) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index c087140b4..b36527bb8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -862,8 +862,7 @@ public class GuildLogic { while (it.hasNext()){ TeamPosHeroInfo heroInfo = it.next(); heroManager.getHero(heroInfo.getHeroId()); - teamPosManager.setCurTeamPosId(501); - Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, heroManager.getHero(heroInfo.getHeroId()), false); + Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, heroManager.getHero(heroInfo.getHeroId()), false,501); heroAllAttribute.put(heroInfo.getHeroId(),heroAttributeMap); } fightInfo.setHeroAttribute(heroAllAttribute); 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 2b34b8ad8..dbdef73e8 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 @@ -891,9 +891,8 @@ public class CombatLogic { return ""; } - public static List elementEffect(User user){ - int curTeamPosId = user.getTeamPosManager().getCurTeamPosId(); - List teamParm = user.getTeamPosManager().getCacheTeamPro().get(curTeamPosId); + public static List elementEffect(User user,int teamId){ + List teamParm = user.getTeamPosManager().getCacheTeamPro().get(teamId); if(teamParm!=null){ return teamParm; } @@ -901,7 +900,7 @@ public class CombatLogic { Map configMap = SElementalResonanceConfig.configMap; - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(curTeamPosId); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); //找出上场的Id List heroFind = new ArrayList<>(teamPosHeroInfos.size()); @@ -986,7 +985,7 @@ public class CombatLogic { while (it.hasNext()){ int[][] next = it.next(); } - user.getTeamPosManager().updateTeamPos(curTeamPosId,resultEffect); + user.getTeamPosManager().updateTeamPos(teamId,resultEffect); return resultEffect; } 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 d76a823ad..51d505821 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 @@ -402,7 +402,7 @@ public class HeroLogic { if (hero == null) { break; } - Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,true); + Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,true,teamId); if(user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo()!=null&&user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().size()>0){ heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),user.getMapManager().getEndlessMapInfo().getEndlessHeroInfo().get(hero.getId()).getCurHp()); } @@ -823,13 +823,13 @@ public class HeroLogic { return sb; } - public StringBuilder getHeroProperty(User user, Hero hero, StringBuilder sb,boolean isMySelf){ + public StringBuilder getHeroProperty(User user, Hero hero, StringBuilder sb,boolean isMySelf,int teamId){ int curMapId = user.getMapManager().getCurMapId(); Map heroAttributeMap; if(!isMySelf || curMapId == 0){ - heroAttributeMap=calHeroNotBufferAttribute(user, hero,false); + heroAttributeMap=calHeroNotBufferAttribute(user, hero,false,teamId); }else { - heroAttributeMap=calHeroFinalAttributeWhenInMap(user, hero,false); + heroAttributeMap=calHeroFinalAttributeWhenInMap(user, hero,false,teamId); } sb.append(hero.getLevel()).append(DIVISION); @@ -912,7 +912,7 @@ public class HeroLogic { return pokenSkillResult.toString(); } - public Map calHeroNotBufferAttribute(User user, Hero hero,boolean isForce){ + public Map calHeroNotBufferAttribute(User user, Hero hero,boolean isForce,int teamId){ LOGGER.info("cal herotid = {}",hero.getTemplateId()); Map heroAllAttribute = calHeroAllAttribute(hero,isForce); heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE)); @@ -998,7 +998,7 @@ public class HeroLogic { } //阵营光环加成 if(!isForce){ - List elementEffect = CombatLogic.getInstance().elementEffect(user); + List elementEffect = CombatLogic.getInstance().elementEffect(user,teamId); Iterator it = elementEffect.iterator(); while (it.hasNext()){ int[][] effect = (int[][])it.next(); @@ -1074,10 +1074,10 @@ public class HeroLogic { //获取英雄所有属性 - public Map calHeroFinalAttributeWhenInMap(User user, Hero hero,boolean isForce){ + public Map calHeroFinalAttributeWhenInMap(User user, Hero hero,boolean isForce,int teamId){ Map heroAllAttribute = user.getMapManager().getHeroAllAttributeByHeroId(hero.getId()); if(heroAllAttribute == null){ - heroAllAttribute=calHeroNotBufferAttribute(user, hero,isForce); + heroAllAttribute=calHeroNotBufferAttribute(user, hero,isForce,teamId); return heroAllAttribute; } //食物buffer加成 @@ -1094,9 +1094,9 @@ public class HeroLogic { public int calHeoForce(User user, Hero hero,boolean isMyself){ Map heroAllAttribute; if(!isMyself || user.getMapManager().getCurMapId() == 0){ - heroAllAttribute=calHeroNotBufferAttribute(user, hero,true); + heroAllAttribute=calHeroNotBufferAttribute(user, hero,true,0); }else{ - heroAllAttribute = calHeroFinalAttributeWhenInMap(user, hero,true); + heroAllAttribute = calHeroFinalAttributeWhenInMap(user, hero,true,0); } //战力保存 int force = calForce(heroAllAttribute);