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 74ab3b5ae..9c8b23df3 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 @@ -200,14 +200,14 @@ public class MapLogic { return "阵容不存在"; } List heroes = new ArrayList<>(teamPosHeroInfos.size()); + Map> heroAllAttributeMap = new HashMap<>(teamPosHeroInfos.size()); for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); if (hero == null) { break; } - Map heroAttributeMap = HeroLogic.getInstance().calHeroFinalAttribute(user, hero); - hero.setCurHp(heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())); - hero.setSpeed(heroAttributeMap.get(HeroAttributeEnum.Speed.getPropertyId())); + Map heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero); + heroAllAttributeMap.put(hero.getId(),heroAllAttribute); heroes.add(heroInfo.getHeroId()); } if (heroes.size() != teamPosHeroInfos.size()) { @@ -215,6 +215,7 @@ public class MapLogic { return "阵容有误"; } mapManager.setTeamId(teamId); + mapManager.setHeroAllAttributeMap(heroAllAttributeMap); return ""; } @@ -639,7 +640,7 @@ public class MapLogic { if (values[0][0] == 1) { for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map map = HeroLogic.getInstance().calHeroAllAttribute(hero); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user,hero); Integer integer = map.get(values[0][1]); if (integer == null || integer < values[0][2]) { return jumpTypeValues[0][1]; @@ -649,7 +650,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().calHeroAllAttribute(hero); + Map map = HeroLogic.getInstance().calHeroFinalAttributeWhenInMap(user,hero); Integer integer = map.get(values[0][1]); if (integer != null && integer >= values[0][2]) { return jumpTypeValues[0][0]; @@ -728,14 +729,6 @@ public class MapLogic { public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception { MapManager mapManager = user.getMapManager(); mapManager.setFoodBufferMap(new HashMap<>()); - int teamId = mapManager.getTeamId(); - List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); - for (TeamPosHeroInfo teamPosHeroInfo : team){ - Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - Map heroAttributeMap = HeroLogic.getInstance().calHeroFinalAttribute(user, hero); - hero.setCurHp(heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())); - } - mapManager.setMapMissionProgres(null); mapManager.setMission(null); mapManager.setMapInfo(new HashMap<>()); @@ -862,10 +855,8 @@ public class MapLogic { if (hero == null) { continue; } - Map heroAttributeMap = HeroLogic.getInstance().calHeroFinalAttribute(user, hero); - hero.setCurHp(heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())); - hero.setSpeed(heroAttributeMap.get(HeroAttributeEnum.Speed.getPropertyId())); - remainHp.add((int) hero.getCurHp()); + Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero); + remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); @@ -881,8 +872,9 @@ public class MapLogic { int teamId = mapManager.getTeamId(); List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (TeamPosHeroInfo teamPosHeroInfo : team){ - Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - hero.setCurHp(checkResult[teamPosHeroInfo.getPosition()]); + // Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); + // hero.setCurHp(checkResult[teamPosHeroInfo.getPosition()]); + mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(),HeroAttributeEnum.CurHP.getPropertyId(),checkResult[teamPosHeroInfo.getPosition()]); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, new int[0], 1, 1); FightInfoProto.FastFightResponse.Builder fastFightResponse = FightInfoProto.FastFightResponse.newBuilder(); @@ -1054,16 +1046,15 @@ public class MapLogic { if (leftTime <= (int) (time / 1000)) { resetMapInfo(user, false); } else { + initTeamInfo(mapManager.getTeamId(), uid, user, mapManager); + Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); if (hero == null) { continue; } - Map heroAttributeMap = HeroLogic.getInstance().calHeroFinalAttribute(user, hero); - hero.setCurHp(heroAttributeMap.get(HeroAttributeEnum.Hp.getPropertyId())); - hero.setSpeed(heroAttributeMap.get(HeroAttributeEnum.Speed.getPropertyId())); - remainHp.add((int) hero.getCurHp()); + remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); @@ -1080,8 +1071,7 @@ public class MapLogic { int teamId = mapManager.getTeamId(); List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (TeamPosHeroInfo teamPosHeroInfo : team){ - Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId()); - hero.setCurHp(checkResult[teamPosHeroInfo.getPosition()]); + mapManager.updateHeroOneAttribute(teamPosHeroInfo.getHeroId(),HeroAttributeEnum.CurHP.getPropertyId(),checkResult[teamPosHeroInfo.getPosition()]); } CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMonsterGroup.getRewardgroup(), 1, 1); FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder(); @@ -1118,15 +1108,6 @@ public class MapLogic { } // LOGGER.info("endFight() uid=>{},nextEventId=>{}", uid, nextEventId); updateMapMission(mapManager,EventType.fightEvent,0,monsterGroupId); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - int position = heroInfo.getPosition(); - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { - continue; - } - hero.setCurHp(checkResult[position]); - } // LOGGER.info("endFight() uid=>{} sMonsterGroup.getRewardgroup()=>{} misson=>{} eventDrop=>{}, missionDrop=>{}", uid, sMonsterGroup.getRewardgroup(), fightEndResponse.getMission(), fightEndResponse.getEnventDrop(), fightEndResponse.getMissionDrop()); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index e3ee859c9..243c65f49 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -40,6 +40,7 @@ public class MapManager extends MongoBase { private TemporaryItems temporaryItems; private Map foodBufferMap = new HashMap<>(); + private Map> heroAllAttributeMap = new HashMap<>(5); private MapMission mapMissionProgres; private int energy; @@ -158,9 +159,6 @@ public class MapManager extends MongoBase { public void eatFood(int foodId,int remainStep){ - if(remainStep == 0){ - remainStep = -1; //表示一次性生效 - } int finalRemainStep = remainStep; if(this.foodBufferMap.containsKey(foodId)){ finalRemainStep += this.foodBufferMap.get(foodId); @@ -226,12 +224,6 @@ public class MapManager extends MongoBase { item.setEndingTime(time); } - public static void main(String [] args){ - int lastUpdateEnergyTime = 1552170600; - int nowTime = 1552170735; - int time = lastUpdateEnergyTime + ((nowTime -lastUpdateEnergyTime)/60 )* 60; - System.out.println(time); - } public void setLastUpdateEnergyTime(int lastUpdateEnergyTime) { updateString("lastUpdateEnergyTime", lastUpdateEnergyTime); this.lastUpdateEnergyTime = lastUpdateEnergyTime; @@ -326,4 +318,27 @@ public class MapManager extends MongoBase { updateString("buyFightCount", buyFightCount); this.buyFightCount = buyFightCount; } + + public Map getHeroAllAttributeByHeroId(String heroId) { + return heroAllAttributeMap.get(heroId); + } + + public void updateHeroAttribute(String id, Map heroAllAttribute) { + heroAllAttributeMap.put(id,heroAllAttribute); + updateString("heroAllAttributeMap." + id, heroAllAttribute); + } + + public void updateHeroOneAttribute(String id, int attribute,int value) { + heroAllAttributeMap.get(id).put(attribute,value); + updateString("heroAllAttributeMap." + id +"." + attribute, value); + } + + public Map> getHeroAllAttributeMap() { + return heroAllAttributeMap; + } + + public void setHeroAllAttributeMap(Map> heroAllAttributeMap) { + updateString("heroAllAttributeMap" , heroAllAttributeMap); + this.heroAllAttributeMap = heroAllAttributeMap; + } } 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 6bd3a947e..6822a5585 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 @@ -13,6 +13,7 @@ import com.ljsd.jieling.handler.mission.Mission; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.FightInfoProto; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index dbdf140b0..80d28a519 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -38,8 +38,6 @@ public class Hero extends MongoBase { private int lastUpdateEnergyTime; - private float curHp; - private int speed; public Hero(){ @@ -61,7 +59,6 @@ public class Hero extends MongoBase { if(skillIds!=null && !skillIds.isEmpty()){ this.skillList.addAll(skillIds); } - this.curHp = HeroLogic.getInstance().calHeroAttribute(this, GlobalsDef.HP_TYPE); createTime = (int)(System.currentTimeMillis()/1000); lastUpdateEnergyTime = createTime; breakId = 0; @@ -93,15 +90,6 @@ public class Hero extends MongoBase { this.templateId = templateId; } - public float getCurHp() { - return curHp; - } - - public void setCurHp(float curHp) throws Exception { - updateString("curHp",curHp); - this.curHp = curHp; - } - public void setLevel(int level) throws Exception { updateString("level",level); this.level = level; 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 2a7140b15..f30dd9168 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 @@ -45,7 +45,7 @@ public class CombatLogic { for(AdventureStateInfo item : adventureStateInfoMap.values()){ result.add(CBean2Proto.getAdventureStateInfo(item,item.getPosition())); } - FightInfoProto.GetAdventureStateInfoResponse response = FightInfoProto.GetAdventureStateInfoResponse.newBuilder().addAllAdventureStateInfoList(result).setDrop(dropBuilder.build()).setLeveTime(offLineTime). + FightInfoProto.GetAdventureStateInfoResponse response = FightInfoProto.GetAdventureStateInfoResponse.newBuilder().addAllAdventureStateInfoList(result).setDrop(dropBuilder.build()).setOutTime(offLineTime). build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_ADVENTURE_INFO_RESPONSE_VALUE,response,true); @@ -135,7 +135,7 @@ public class CombatLogic { continue; } int startTime = adventureStateInfoTmp.getStartTime(); - int times = (now - startTime)%adventureRefresh; + int times = (now - startTime)/adventureRefresh; int size = adventureStateInfoTmp.getHeroIds().size(); if(times>0){ adventureStateInfoTmp.setStartTime(startTime+times*adventureRefresh); @@ -174,45 +174,35 @@ public class CombatLogic { } - //在地图吃东西 - public void eatFood(ISession session, int foodId) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - MapManager mapManager = user.getMapManager(); - if (mapManager.getMapInfo() == null) { - LOGGER.info("mapManager.getMapInfo() == null"); - return; - } - boolean enough = ItemUtil.itemCost(user, new int[][]{{foodId, 1}}); - if(!enough){ - return; - } - bufferAddByEatFoodOrEventTrigger(mapManager,foodId); - } - public void bufferAddByEatFoodOrEventTrigger(MapManager mapManager,int foodIdOrEventId) throws Exception { SFoodsConfig sFoodsConfig = SFoodsConfig.getsFoodsConfigByFoodId(foodIdOrEventId); int contiue = sFoodsConfig.getContiue(); - if(contiue==0){ - int type = sFoodsConfig.getType(); - int[][] effectParas = sFoodsConfig.getEffectPara(); - if(type == GlobalsDef.FOOD_ADDITION_EXPLORE_TYPE){ - for(int[] effectPara : effectParas){ - if(effectPara[0] == GlobalsDef.EXPLORE_MAP_ACTION_POWER_RORMULA_TYPE){ -// SCMapConfig scMapConfig = SCMapConfig.getsCMapSize().get(mapManager.getCurMapId()); -// int totalStep = mapManager.getTotalStep(); -// if (totalStep < scMapConfig.getMoveConfused() * 5) { -// totalStep = scMapConfig.getMoveConfused() * 5; -// } -// mapManager.setTotalStep(totalStep + effectPara[1]); + + if(contiue == 0){ + int typeTmp = sFoodsConfig.getType(); + int targetTmp = sFoodsConfig.getTarget(); + if( typeTmp== GlobalsDef.FOOD_ADDITION_BATTLE_TYPE && targetTmp==GlobalsDef.FOOD_EAT_AFFECT_PERSON ){ + boolean change = false; + int[][] effectParas = sFoodsConfig.getEffectPara(); + Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); + for(Map.Entry> item : heroAllAttributeMap.entrySet()){ + Map value = item.getValue(); + for(int[] effectPara : effectParas){ + int effectId = effectPara[0]; + int effectValue = effectPara[1]; + if(!value.containsKey(effectId)){ + value.put(effectId,effectValue); + continue; + } + value.put( effectId,value.get(effectId) + effectValue ); + change = true; } } + if(change){ + mapManager.setHeroAllAttributeMap(heroAllAttributeMap); + } } - if(type == GlobalsDef.FOOD_ADDITION_BATTLE_TYPE){ - mapManager.eatFood(foodIdOrEventId,sFoodsConfig.getContiue()); - } - - }else{ + }else { mapManager.eatFood(foodIdOrEventId,sFoodsConfig.getContiue()); } } @@ -220,16 +210,9 @@ public class CombatLogic { public Map attributeByEatFood( User user,int type,int target){ Map foddAddResult = new HashMap<>(); MapManager mapManager = user.getMapManager(); - Set removeFoodBufferIds = new HashSet<>(); Map foodBufferMap = mapManager.getFoodBufferMap(); for(Map.Entry foodBuffer : foodBufferMap.entrySet()){ int foodId = foodBuffer.getKey(); - Integer step = foodBuffer.getValue(); - int times =1; - if(step<0){ - times = step*-1; - removeFoodBufferIds.add(foodId); - } SFoodsConfig sFoodsConfig = SFoodsConfig.getsFoodsConfigByFoodId(foodId); int typeTmp = sFoodsConfig.getType(); int targetTmp = sFoodsConfig.getTarget(); @@ -237,7 +220,7 @@ public class CombatLogic { int[][] effectParas = sFoodsConfig.getEffectPara(); for(int[] effectPara : effectParas){ int effectId = effectPara[0]; - int effectValue = effectPara[1] * times; + int effectValue = effectPara[1]; if(!foddAddResult.containsKey(effectId)){ foddAddResult.put(effectId,effectValue); continue; @@ -246,14 +229,7 @@ public class CombatLogic { } } } - if(!removeFoodBufferIds.isEmpty()){ - for(Integer removeFoodId : removeFoodBufferIds){ - foodBufferMap.remove(removeFoodId); - } - mapManager.setFoodBufferMap(foodBufferMap); - } return foddAddResult; } - } 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 cd2f230f6..6b924d7d2 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 @@ -4,7 +4,6 @@ import com.ljsd.GameApplication; import com.ljsd.jieling.config.*; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.globals.Global; -import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.UserManager; @@ -423,7 +422,7 @@ public class HeroLogic { }else{ hero.setBreakId(breakId); } - Map heroAllAttribute = calHeroFinalAttribute(user,hero); + Map heroAllAttribute = calHeroNotBufferAttribute(user,hero); for(Map.Entry item : heroAllAttribute.entrySet() ){ LOGGER.info("the heroTdd={},the heroLevel={},the attID is={},attValue={}",hero.getTemplateId(),hero.getLevel(),item.getKey(),item.getValue() ); } @@ -551,7 +550,7 @@ public class HeroLogic { } //初始属性*(1+化境增长)*等级系数 + 初始属性*突破系数 - public Map calHeroAllAttribute(Hero hero){ + private Map calHeroAllAttribute(Hero hero){ Map result = new HashMap<>(); int templateId = hero.getTemplateId(); SCHero scHero = SCHero.getsCHero().get(templateId); @@ -681,7 +680,7 @@ public class HeroLogic { } public StringBuilder getHeroProperty(User user, Hero hero, StringBuilder sb){ - Map heroAttributeMap = calHeroFinalAttribute(user, hero); + Map heroAttributeMap = calHeroFinalAttributeWhenInMap(user, hero); sb.append(hero.getLevel()).append(DIVISION); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); List templatePropetyIds = transTemplateByHeroPropertyName.get(scHero.getPropertyName()); @@ -720,27 +719,24 @@ public class HeroLogic { return pokenSkillResult.toString(); } - - - //获取英雄所有属性 - public Map calHeroFinalAttribute(User user, Hero hero){ + public Map calHeroNotBufferAttribute(User user, Hero hero){ Map heroAllAttribute = calHeroAllAttribute(hero); - heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),(int)hero.getCurHp()); + heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE)); Collection values = hero.getEquipByPositionMap().values(); EquipManager equipManager = user.getEquipManager(); PokemonManager pokemonManager = user.getPokemonManager(); Map pokemonMap = pokemonManager.getPokemonMap(); - for(Map.Entry item : pokemonMap.entrySet()){ - Pokemon pokemon = item.getValue(); - Map comonpentsLevelMap = pokemon.getComonpentsLevelMap(); - for(Map.Entry comonpentsLevelItem : comonpentsLevelMap.entrySet()){ - Integer comonpentId = comonpentsLevelItem.getKey(); - Integer comonpentLevel = comonpentsLevelItem.getValue(); - Map sDifferDemonsComonpentsConfigMap = SDifferDemonsComonpentsConfig.getsDifferDemonsComonpentsConfigMap(comonpentId); - SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigMap.get(comonpentLevel); - combinedAttribute(sDifferDemonsComonpentsConfig.getBaseAttribute(),heroAllAttribute); - } - } + for(Map.Entry item : pokemonMap.entrySet()){ + Pokemon pokemon = item.getValue(); + Map comonpentsLevelMap = pokemon.getComonpentsLevelMap(); + for(Map.Entry comonpentsLevelItem : comonpentsLevelMap.entrySet()){ + Integer comonpentId = comonpentsLevelItem.getKey(); + Integer comonpentLevel = comonpentsLevelItem.getValue(); + Map sDifferDemonsComonpentsConfigMap = SDifferDemonsComonpentsConfig.getsDifferDemonsComonpentsConfigMap(comonpentId); + SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigMap.get(comonpentLevel); + combinedAttribute(sDifferDemonsComonpentsConfig.getBaseAttribute(),heroAllAttribute); + } + } for(String equipId:values){ Equip equip = equipManager.getEquipMap().get(equipId); @@ -749,15 +745,23 @@ public class HeroLogic { combinedAttribute(propertyValueByIdMap,heroAllAttribute); combinedAttribute(secondValueByIdMap,heroAllAttribute); } + return heroAllAttribute; + } + + + + //获取英雄所有属性 + public Map calHeroFinalAttributeWhenInMap(User user, Hero hero){ + Map heroAllAttribute = user.getMapManager().getHeroAllAttributeByHeroId(hero.getId()); //食物buffer加成 - Map foodAddMap = CombatLogic.getInstance().attributeByEatFood(user,GlobalsDef.FOOD_ADDITION_EXPLORE_TYPE, GlobalsDef.FOOD_EAT_AFFECT_TEAM); + Map foodAddMap = CombatLogic.getInstance().attributeByEatFood(user,GlobalsDef.FOOD_ADDITION_BATTLE_TYPE, GlobalsDef.FOOD_EAT_AFFECT_PERSON); combinedAttribute(foodAddMap,heroAllAttribute); return heroAllAttribute; } public int calHeoForce(User user, Hero hero){ - Map heroAllAttribute = calHeroFinalAttribute(user, hero); + Map heroAllAttribute = calHeroFinalAttributeWhenInMap(user, hero); heroAllAttribute.remove(0); double result = 0; for(Map.Entry item : heroAllAttribute.entrySet()){