Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
65cb996af4
|
@ -1,32 +0,0 @@
|
||||||
package com.ljsd.jieling.handler.map;
|
|
||||||
|
|
||||||
public class FoodBuffer {
|
|
||||||
|
|
||||||
private int foodId;
|
|
||||||
|
|
||||||
private int remainStep;
|
|
||||||
|
|
||||||
public FoodBuffer() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public FoodBuffer(int foodId, int remainStep) {
|
|
||||||
this.foodId = foodId;
|
|
||||||
this.remainStep = remainStep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getFoodId() {
|
|
||||||
return foodId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRemainStep() {
|
|
||||||
return remainStep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFoodId(int foodId) {
|
|
||||||
this.foodId = foodId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRemainStep(int remainStep) {
|
|
||||||
this.remainStep = remainStep;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -797,7 +797,7 @@ public class MapLogic {
|
||||||
mapManager.setCurMapId(0);
|
mapManager.setCurMapId(0);
|
||||||
mapManager.setTotalStep(0);
|
mapManager.setTotalStep(0);
|
||||||
mapManager.setTriggerXY(0);
|
mapManager.setTriggerXY(0);
|
||||||
mapManager.setFoodBuffers(new ArrayList<>());
|
mapManager.setFoodBufferMap(new HashMap<>());
|
||||||
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
|
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
|
||||||
if (temporaryItems != null) {
|
if (temporaryItems != null) {
|
||||||
ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem);
|
ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem);
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class MapManager extends MongoBase {
|
||||||
|
|
||||||
private Map<Integer, CrossMapCell> crossMapInfos = new ConcurrentHashMap<>();
|
private Map<Integer, CrossMapCell> crossMapInfos = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private List<FoodBuffer> foodBuffers = new ArrayList();
|
private Map<Integer,Integer> foodBufferMap = new HashMap<>();
|
||||||
|
|
||||||
private Map<Integer, MapMission> allMissionProgress = new ConcurrentHashMap<>();
|
private Map<Integer, MapMission> allMissionProgress = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
@ -164,33 +164,38 @@ public class MapManager extends MongoBase {
|
||||||
this.temporaryItems = temporaryItems;
|
this.temporaryItems = temporaryItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FoodBuffer> getFoodBuffers() {
|
|
||||||
return foodBuffers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void eatFood(int foodId,int remainStep){
|
public void eatFood(int foodId,int remainStep){
|
||||||
this.foodBuffers.add(new FoodBuffer(foodId,remainStep));
|
int finalRemainStep = remainStep;
|
||||||
updateString( "foodBuffers", foodBuffers);
|
if(this.foodBufferMap.containsKey(foodId)){
|
||||||
|
finalRemainStep = this.foodBufferMap.get(foodId);
|
||||||
|
}
|
||||||
|
this.foodBufferMap.put(foodId,finalRemainStep);
|
||||||
|
updateString( "foodBuffers."+foodId, this.foodBufferMap.get(foodId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFoodBuffers(List<FoodBuffer> foodBuffers) {
|
|
||||||
updateString( "foodBuffers", foodBuffers);
|
|
||||||
this.foodBuffers = foodBuffers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateFoodBufferByStep(int step){
|
public void updateFoodBufferByStep(int step){
|
||||||
if(step>0 && !foodBuffers.isEmpty()){
|
if(step>0 && !foodBufferMap.isEmpty()){
|
||||||
Iterator<FoodBuffer> iterator = foodBuffers.iterator();
|
Set<Integer> removeFoodIds = new HashSet<>();
|
||||||
while (iterator.hasNext()){
|
Set<Map.Entry<Integer, Integer>> entries = foodBufferMap.entrySet();
|
||||||
FoodBuffer foodBuffer = iterator.next();
|
for(Map.Entry<Integer, Integer> item : entries){
|
||||||
int remainStep = foodBuffer.getRemainStep() - step;
|
Integer foodId = item.getKey();
|
||||||
if(foodBuffer.getRemainStep() - step <=0){
|
Integer remainStep = item.getValue();
|
||||||
iterator.remove();
|
int finalRemainStep = remainStep - step;
|
||||||
continue;
|
if(finalRemainStep<=0){
|
||||||
|
removeFoodIds.add(foodId);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
foodBuffer.setRemainStep(remainStep);
|
foodBufferMap.put(foodId,finalRemainStep);
|
||||||
}
|
}
|
||||||
updateString( "foodBuffers", foodBuffers);
|
if(!removeFoodIds.isEmpty()){
|
||||||
|
for(Integer removeFoodId :removeFoodIds ){
|
||||||
|
foodBufferMap.remove(removeFoodId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updateString( "foodBuffers", foodBufferMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -234,4 +239,13 @@ public class MapManager extends MongoBase {
|
||||||
public int getLastUpdateEnergyTime() {
|
public int getLastUpdateEnergyTime() {
|
||||||
return lastUpdateEnergyTime;
|
return lastUpdateEnergyTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Integer, Integer> getFoodBufferMap() {
|
||||||
|
return foodBufferMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFoodBufferMap(Map<Integer, Integer> foodBufferMap) {
|
||||||
|
updateString("foodBufferMap", foodBufferMap);
|
||||||
|
this.foodBufferMap = foodBufferMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,9 @@ package com.ljsd.jieling.logic.fight;
|
||||||
|
|
||||||
|
|
||||||
import com.ljsd.GameApplication;
|
import com.ljsd.GameApplication;
|
||||||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
|
||||||
import com.ljsd.jieling.config.*;
|
import com.ljsd.jieling.config.*;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.handler.map.FoodBuffer;
|
|
||||||
import com.ljsd.jieling.handler.map.MapManager;
|
import com.ljsd.jieling.handler.map.MapManager;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
import com.ljsd.jieling.logic.dao.root.AdventureSeasonInfo;
|
import com.ljsd.jieling.logic.dao.root.AdventureSeasonInfo;
|
||||||
|
@ -347,10 +345,9 @@ public class CombatLogic {
|
||||||
public Map<Integer,Integer> attributeByEatFood( User user,int type,int target){
|
public Map<Integer,Integer> attributeByEatFood( User user,int type,int target){
|
||||||
Map<Integer,Integer> foddAddResult = new HashMap<>();
|
Map<Integer,Integer> foddAddResult = new HashMap<>();
|
||||||
MapManager mapManager = user.getMapManager();
|
MapManager mapManager = user.getMapManager();
|
||||||
List<FoodBuffer> foodBuffers = mapManager.getFoodBuffers();
|
Map<Integer, Integer> foodBufferMap = mapManager.getFoodBufferMap();
|
||||||
for(FoodBuffer foodBuffer : foodBuffers){
|
for(Map.Entry<Integer,Integer> foodBuffer : foodBufferMap.entrySet()){
|
||||||
int foodId = foodBuffer.getFoodId();
|
int foodId = foodBuffer.getKey();
|
||||||
|
|
||||||
SFoodsConfig sFoodsConfig = SFoodsConfig.getsFoodsConfigByFoodId(foodId);
|
SFoodsConfig sFoodsConfig = SFoodsConfig.getsFoodsConfigByFoodId(foodId);
|
||||||
int typeTmp = sFoodsConfig.getType();
|
int typeTmp = sFoodsConfig.getType();
|
||||||
int targetTmp = sFoodsConfig.getTarget();
|
int targetTmp = sFoodsConfig.getTarget();
|
||||||
|
|
Loading…
Reference in New Issue