任务事件点更新

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)) {
Mission mission = doingMissions.get(doingMissionId);
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) {
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());
newMap.put(xy, cellValue);
}
@ -764,6 +764,8 @@ public class MapLogic {
mapManager.setCurXY(0);
mapManager.setCurMapId(0);
mapManager.setTotalStep(0);
mapManager.setTriggerXY(0);
mapManager.setFoodBuffers(new ArrayList<>());
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
if (temporaryItems != null) {
ItemUtil.addTemporaryItemToBag(user, temporaryItems, needTemporaryItem);

View File

@ -41,6 +41,16 @@ public class BehaviorUtil {
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) {
mapInfo.remove(xy);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -35,16 +35,17 @@ public class MissionManager extends MongoBase {
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 {
mission.init(this.getRootId(), getMongoKey() + ".doingMissions." + missionId);
this.doingMissions.put(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 {
this.finishMissions = finishMissions;
updateString( "finishMissions", finishMissions);