任务事件点更新

back_recharge
jiahuiwen 2019-03-29 18:52:08 +08:00
parent e7a7c2b686
commit 7b54dcc2c0
8 changed files with 30 additions and 22 deletions

View File

@ -206,6 +206,9 @@ public class MapLogic {
if (doingMissions.containsKey(doingMissionId)) { if (doingMissions.containsKey(doingMissionId)) {
Mission mission = doingMissions.get(doingMissionId); Mission mission = doingMissions.get(doingMissionId);
missions.add(mission); missions.add(mission);
for (Map.Entry<Integer, Cell> missionEntry : mission.getMissionInfos().entrySet()) {
newMap.put(missionEntry.getKey(), missionEntry.getValue());
}
} }
} }
} }
@ -256,9 +259,6 @@ public class MapLogic {
// 任务触发的事件点 // 任务触发的事件点
for (Mission mission : missions) { for (Mission mission : missions) {
if (mission.getMapPoints().containsKey(mapPointConfig.getId())) { if (mission.getMapPoints().containsKey(mapPointConfig.getId())) {
for (Map.Entry<Integer, Cell> missionEntry : mission.getMissionInfos().entrySet()) {
newMap.put(missionEntry.getKey(), missionEntry.getValue());
}
Cell cellValue = new Cell(xy, mission.getMapPoints().get(mapPointConfig.getId()), mapPointConfig.getId()); Cell cellValue = new Cell(xy, mission.getMapPoints().get(mapPointConfig.getId()), mapPointConfig.getId());
newMap.put(xy, cellValue); newMap.put(xy, cellValue);
} }
@ -764,6 +764,8 @@ public class MapLogic {
mapManager.setCurXY(0); mapManager.setCurXY(0);
mapManager.setCurMapId(0); mapManager.setCurMapId(0);
mapManager.setTotalStep(0); mapManager.setTotalStep(0);
mapManager.setTriggerXY(0);
mapManager.setFoodBuffers(new ArrayList<>());
TemporaryItems temporaryItems = mapManager.getTemporaryItems(); TemporaryItems temporaryItems = mapManager.getTemporaryItems();
if (temporaryItems != null) { if (temporaryItems != null) {
ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem); ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem);

View File

@ -41,6 +41,16 @@ public class BehaviorUtil {
needDelete.add(entry.getKey()); needDelete.add(entry.getKey());
} }
} }
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions();
for (Map.Entry<Integer, Mission> entry : doingMissions.entrySet()) {
Mission mission = entry.getValue();
Map<Integer, Cell> missionInfos = mission.getMissionInfos();
for (Integer xy : needDelete) {
if (missionInfos.containsKey(xy)){
mission.removeMissionInfos(xy);
}
}
}
for (Integer xy : needDelete) { for (Integer xy : needDelete) {
mapInfo.remove(xy); mapInfo.remove(xy);
} }

View File

@ -70,9 +70,7 @@ public class DunBehavior extends BaseBehavior {
mission.setMissionStep(0); mission.setMissionStep(0);
mission.getMissionInfos().putAll(newDunEvents); mission.getMissionInfos().putAll(newDunEvents);
mission.setMissionInfo(mapManager.getCurXY() + "#" + behaviorTypeValues[0][2]); mission.setMissionInfo(mapManager.getCurXY() + "#" + behaviorTypeValues[0][2]);
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions(); user.getMissionManager().updateOneDoingMissions(behaviorTypeValues[0][0], mission);
doingMissions.put(behaviorTypeValues[0][0], mission);
user.getMissionManager().updateDoingMissions(doingMissions);
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission); CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
eventUpdateResponse.addMission(missionProto); eventUpdateResponse.addMission(missionProto);
CrossMapCell crossMapInfo = mapManager.getCrossMapInfos().get(mapManager.getCurMapId()); CrossMapCell crossMapInfo = mapManager.getCrossMapInfos().get(mapManager.getCurMapId());

View File

@ -24,9 +24,7 @@ public class OpenAppointMissionBehavior extends BaseBehavior {
mission.setMissionStep(0); mission.setMissionStep(0);
mission.setOpen(true); mission.setOpen(true);
mission.setMissionInfo(user.getMapManager().getCurMapId() + "#" + behaviorTypeValues[0][0]); mission.setMissionInfo(user.getMapManager().getCurMapId() + "#" + behaviorTypeValues[0][0]);
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions(); user.getMissionManager().updateOneDoingMissions(behaviorTypeValues[0][0], mission);
doingMissions.put(behaviorTypeValues[0][0], mission);
user.getMissionManager().updateDoingMissions(doingMissions);
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission); CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
eventUpdateResponse.addMission(missionProto); eventUpdateResponse.addMission(missionProto);
return true; return true;

View File

@ -8,8 +8,6 @@ import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MapInfoProto; import com.ljsd.jieling.protocols.MapInfoProto;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Map;
@Component @Component
public class OpenNotDoMissionBehavior extends BaseBehavior { public class OpenNotDoMissionBehavior extends BaseBehavior {
@Override @Override
@ -24,9 +22,7 @@ public class OpenNotDoMissionBehavior extends BaseBehavior {
mission.setMissionStep(0); mission.setMissionStep(0);
mission.setOpen(false); mission.setOpen(false);
mission.setMissionInfo(user.getMapManager().getCurMapId() + "#" + behaviorTypeValues[0][0]); mission.setMissionInfo(user.getMapManager().getCurMapId() + "#" + behaviorTypeValues[0][0]);
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions(); user.getMissionManager().updateOneDoingMissions(behaviorTypeValues[0][0], mission);
doingMissions.put(behaviorTypeValues[0][0], mission);
user.getMissionManager().updateDoingMissions(doingMissions);
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission); CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
eventUpdateResponse.addMission(missionProto); eventUpdateResponse.addMission(missionProto);
return true; return true;

View File

@ -47,6 +47,11 @@ public class Mission extends MongoBase {
this.missionInfos.put(xy, cell); this.missionInfos.put(xy, cell);
} }
public void removeMissionInfos(int xy) throws Exception {
removeString(getMongoKey() + ".missionInfos." + xy);
this.missionInfos.remove(xy);
}
public String getMissionInfo() { public String getMissionInfo() {
return missionInfo; return missionInfo;
} }

View File

@ -107,9 +107,7 @@ public class MissionLogic {
if (mission.getMissionInfo() != null) { if (mission.getMissionInfo() != null) {
checkMissionReturn.newEventId = mission.getMissionInfo(); checkMissionReturn.newEventId = mission.getMissionInfo();
} }
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions(); user.getMissionManager().removeDoingMissions(mission.getMissionId());
doingMissions.remove(mission.getMissionId());
user.getMissionManager().updateDoingMissions(doingMissions);
Set<Integer> finishMissions = user.getMissionManager().getFinishMissions(); Set<Integer> finishMissions = user.getMissionManager().getFinishMissions();
finishMissions.add(mission.getMissionId()); finishMissions.add(mission.getMissionId());
user.getMissionManager().updateFinishMissions(finishMissions); user.getMissionManager().updateFinishMissions(finishMissions);

View File

@ -35,16 +35,17 @@ public class MissionManager extends MongoBase {
return takeRewardMissions; return takeRewardMissions;
} }
public void updateDoingMissions(Map<Integer, Mission> doingMissions) throws Exception {
this.doingMissions = doingMissions;
updateString( "doingMissions", doingMissions);
}
public void updateOneDoingMissions(int missionId, Mission mission) throws Exception { public void updateOneDoingMissions(int missionId, Mission mission) throws Exception {
mission.init(this.getRootId(), getMongoKey() + ".doingMissions." + missionId);
this.doingMissions.put(missionId, mission); this.doingMissions.put(missionId, mission);
updateString( "doingMissions." + missionId, mission); updateString( "doingMissions." + missionId, mission);
} }
public void removeDoingMissions(int missionId) throws Exception {
this.doingMissions.remove(missionId);
removeString( getMongoKey() + ".doingMissions." + missionId);
}
public void updateFinishMissions(Set<Integer> finishMissions) throws Exception { public void updateFinishMissions(Set<Integer> finishMissions) throws Exception {
this.finishMissions = finishMissions; this.finishMissions = finishMissions;
updateString( "finishMissions", finishMissions); updateString( "finishMissions", finishMissions);