From 1a4037280375cb5af560601a5d504e710d8032cb Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 2 Apr 2019 16:28:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=83=E9=A3=9F=E7=89=A9buffer=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E6=80=A7=E7=94=9F=E6=95=88=EF=BC=8C=E5=81=9A=E5=BB=B6?= =?UTF-8?q?=E7=BC=93=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/fight/CombatLogic.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) 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 933c8a9f0..d24286bbe 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 @@ -328,15 +328,18 @@ public class CombatLogic { int contiue = sFoodsConfig.getContiue(); if(contiue==0){ int type = sFoodsConfig.getType(); - int target = sFoodsConfig.getTarget(); int[][] effectParas = sFoodsConfig.getEffectPara(); - if(type == GlobalsDef.FOOD_ADDITION_EXPLORE_TYPE && target == GlobalsDef.FOOD_EAT_AFFECT_PERSON){ + if(type == GlobalsDef.FOOD_ADDITION_EXPLORE_TYPE){ for(int[] effectPara : effectParas){ if(effectPara[0] == GlobalsDef.EXPLORE_MAP_ACTION_POWER_RORMULA_TYPE){ mapManager.setTotalStep(mapManager.getTotalStep() + effectPara[1]); } } } + if(type == GlobalsDef.FOOD_ADDITION_BATTLE_TYPE){ + mapManager.eatFood(foodIdOrEventId,sFoodsConfig.getContiue()); + } + }else{ mapManager.eatFood(foodIdOrEventId,sFoodsConfig.getContiue()); } @@ -345,9 +348,16 @@ 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(); @@ -355,7 +365,7 @@ public class CombatLogic { int[][] effectParas = sFoodsConfig.getEffectPara(); for(int[] effectPara : effectParas){ int effectId = effectPara[0]; - int effectValue = effectPara[1]; + int effectValue = effectPara[1] * times; if(!foddAddResult.containsKey(effectId)){ foddAddResult.put(effectId,effectValue); continue; @@ -364,6 +374,12 @@ public class CombatLogic { } } } + if(!removeFoodBufferIds.isEmpty()){ + for(Integer removeFoodId : removeFoodBufferIds){ + foodBufferMap.remove(removeFoodId); + } + mapManager.setFoodBufferMap(foodBufferMap); + } return foddAddResult; }