主线任务
parent
e17873e789
commit
099b7c7488
|
|
@ -1,11 +0,0 @@
|
|||
package com.ljsd.jieling.config;
|
||||
|
||||
import com.ljsd.jieling.logic.Table;
|
||||
|
||||
@Table(name = "MissionEventsItemConfig")
|
||||
public class SCMissionEventsItemConfig implements BaseConfig {
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -20,6 +20,8 @@ public class SMissionEventsConfig implements BaseConfig {
|
|||
|
||||
private int[] openRules;
|
||||
|
||||
private int next;
|
||||
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
|
@ -47,5 +49,7 @@ public class SMissionEventsConfig implements BaseConfig {
|
|||
return openRules;
|
||||
}
|
||||
|
||||
|
||||
public int getNext() {
|
||||
return next;
|
||||
}
|
||||
}
|
||||
|
|
@ -360,10 +360,12 @@ public class MapLogic {
|
|||
cell.setEventId(nextPoint);
|
||||
mapManager.addOrUpdateCell(mapManager.getCurXY(), cell);
|
||||
}
|
||||
if (behaviorType == EventType.dun && eventUpdateResponse.getMission() != null) {
|
||||
Mission mission = user.getMissionManager().getDoingMissions().get(eventUpdateResponse.getMission().getItemId());
|
||||
if (mission != null && cell != null) {
|
||||
mission.updateMapPoints(cell.getPointId(), cell.getEventId());
|
||||
if (behaviorType == EventType.dun && eventUpdateResponse.getMissionCount() > 0) {
|
||||
for (CommonProto.Mission missionProto : eventUpdateResponse.getMissionList()) {
|
||||
Mission mission = user.getMissionManager().getDoingMissions().get(missionProto.getItemId());
|
||||
if (mission != null && cell != null) {
|
||||
mission.updateMapPoints(cell.getPointId(), cell.getEventId());
|
||||
}
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1);
|
||||
|
|
@ -387,7 +389,7 @@ public class MapLogic {
|
|||
eventUpdateResponse.setDrop(dropBuilder);
|
||||
}
|
||||
LOGGER.info("updateEvent =====>success<====== xy=>{}, getPointId=>{} eventId={}, mission=>{}, nextPoint=>{}", mapManager.getCurXY(), cell == null ? 0 : cell.getPointId(),
|
||||
cell == null ? 0 : cell.getEventId(), eventUpdateResponse.getMission(), nextPoint);
|
||||
cell == null ? 0 : cell.getEventId(), eventUpdateResponse.getMissionList(), nextPoint);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), eventUpdateResponse.build(), true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,10 +18,7 @@ import com.ljsd.jieling.util.MonsterUtil;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class BehaviorUtil {
|
||||
|
||||
|
|
@ -31,9 +28,17 @@ public class BehaviorUtil {
|
|||
* @param user
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void distoryPoint(User user) throws Exception {
|
||||
public static void distoryPoint(User user, int[][] behaviorTypeValues) throws Exception {
|
||||
Map<Integer, Cell> mapInfo = user.getMapManager().getMapInfo();
|
||||
mapInfo.remove(user.getMapManager().getCurXY());
|
||||
Set<Integer> needDelete = new HashSet<>();
|
||||
for (Map.Entry<Integer, Cell> entry : mapInfo.entrySet()) {
|
||||
if (entry.getValue().getPointId() == behaviorTypeValues[0][0]) {
|
||||
needDelete.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
for (Integer xy : needDelete) {
|
||||
mapInfo.remove(xy);
|
||||
}
|
||||
user.getMapManager().setMapInfo(mapInfo);
|
||||
LOGGER.info("distoryPoint=========>{}", user.getMapManager().getCurXY());
|
||||
}
|
||||
|
|
@ -89,7 +94,7 @@ public class BehaviorUtil {
|
|||
}
|
||||
MissionLogic.getInstance().checkMission(mission, user);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.handler.map.behavior;
|
|||
import com.ljsd.jieling.handler.map.Cell;
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.handler.mission.CheckMissionReturn;
|
||||
import com.ljsd.jieling.handler.mission.Mission;
|
||||
import com.ljsd.jieling.handler.mission.MissionLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
|
@ -26,19 +27,21 @@ public class DestroyMissionBehavior extends BaseBehavior {
|
|||
if (mission == null) {
|
||||
return false;
|
||||
}
|
||||
String newEventId = MissionLogic.getInstance().checkMission(mission, user);
|
||||
CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user);
|
||||
Map<Integer, Cell> mapInfo = user.getMapManager().getMapInfo();
|
||||
mapInfo.remove(user.getMapManager().getCurXY());
|
||||
if (newEventId != null && !newEventId.isEmpty()) {
|
||||
String[] split = newEventId.split("#");
|
||||
if (checkMissionReturn.newEventId != null && !checkMissionReturn.newEventId.isEmpty()) {
|
||||
String[] split = checkMissionReturn.newEventId .split("#");
|
||||
Cell cellUpdate = mapInfo.get(Integer.parseInt(split[0]));
|
||||
if (cellUpdate != null) {
|
||||
cellUpdate.setEventId(Integer.parseInt(split[1]));
|
||||
}
|
||||
}
|
||||
user.getMapManager().setMapInfo(mapInfo);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
for (Mission cmission : checkMissionReturn.missions){
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(cmission);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public class DestroyPointAndBehavior extends BaseBehavior {
|
|||
|
||||
@Override
|
||||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
BehaviorUtil.distoryPoint(user);
|
||||
BehaviorUtil.distoryPoint(user, behaviorTypeValues);
|
||||
// TODO 监视地图
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public class DestroyPointBehavior extends BaseBehavior {
|
|||
|
||||
@Override
|
||||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
BehaviorUtil.distoryPoint(user);
|
||||
BehaviorUtil.distoryPoint(user, behaviorTypeValues);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,12 +69,12 @@ public class DunBehavior extends BaseBehavior {
|
|||
mission.setMissionId(behaviorTypeValues[0][0]);
|
||||
mission.setMissionStep(0);
|
||||
mission.getMissionInfos().putAll(newDunEvents);
|
||||
mission.setMissionInfo(mapManager.getCurXY() + "#" + behaviorTypeValues[0][2] + "#" + behaviorTypeValues[0][1]);
|
||||
mission.setMissionInfo(mapManager.getCurXY() + "#" + behaviorTypeValues[0][2]);
|
||||
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions();
|
||||
doingMissions.put(behaviorTypeValues[0][0], mission);
|
||||
user.getMissionManager().updateDoingMissions(doingMissions);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
CrossMapCell crossMapInfo = mapManager.getCrossMapInfos().get(mapManager.getCurMapId());
|
||||
if (crossMapInfo == null) {
|
||||
crossMapInfo = new CrossMapCell();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class FightAndDestroyPointBehavior extends BaseBehavior {
|
|||
@Override
|
||||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
BehaviorUtil.getFightInfo(user, behaviorTypeValues, eventUpdateResponse);
|
||||
BehaviorUtil.distoryPoint(user);
|
||||
BehaviorUtil.distoryPoint(user, behaviorTypeValues);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class MonitorMissionAndDestroyPointBehavior extends BaseBehavior {
|
|||
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
BehaviorUtil.updateMission(user, behaviorTypeValues, eventUpdateResponse);
|
||||
// 销毁事件点
|
||||
BehaviorUtil.distoryPoint(user);
|
||||
BehaviorUtil.distoryPoint(user, behaviorTypeValues);
|
||||
// 开新事件
|
||||
if (user.getMapManager().getCurMapId() == behaviorTypeValues[0][1]) {
|
||||
int x = behaviorTypeValues[1][0];
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.map.behavior;
|
|||
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.handler.mission.CheckMissionReturn;
|
||||
import com.ljsd.jieling.handler.mission.Mission;
|
||||
import com.ljsd.jieling.handler.mission.MissionLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
|
@ -25,9 +26,11 @@ public class MonitorMissionBehavior extends BaseBehavior {
|
|||
if (mission == null) {
|
||||
return false;
|
||||
}
|
||||
MissionLogic.getInstance().checkMission(mission, user);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user);
|
||||
for (Mission cmission : checkMissionReturn.missions){
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(cmission);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.ljsd.jieling.config.MapPointConfig;
|
|||
import com.ljsd.jieling.handler.map.Cell;
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.handler.mission.CheckMissionReturn;
|
||||
import com.ljsd.jieling.handler.mission.Mission;
|
||||
import com.ljsd.jieling.handler.mission.MissionLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
|
@ -28,9 +29,11 @@ public class OpenMissionBehavior extends BaseBehavior {
|
|||
if (mission == null) {
|
||||
return false;
|
||||
}
|
||||
MissionLogic.getInstance().checkMission(mission, user);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user);
|
||||
for (Mission cmission : checkMissionReturn.missions){
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(cmission);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
}
|
||||
// 开新事件
|
||||
if (user.getMapManager().getCurMapId() == behaviorTypeValues[1][0]) {
|
||||
int x = behaviorTypeValues[1][1];
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public class UseItemAndDestroyBehavior extends BaseBehavior {
|
|||
if (!isEnough) {
|
||||
return isEnough;
|
||||
}
|
||||
BehaviorUtil.distoryPoint(user);
|
||||
BehaviorUtil.distoryPoint(user, behaviorTypeValues);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.map.behavior;
|
|||
|
||||
import com.ljsd.jieling.handler.map.EventType;
|
||||
import com.ljsd.jieling.handler.map.MapLogic;
|
||||
import com.ljsd.jieling.handler.mission.CheckMissionReturn;
|
||||
import com.ljsd.jieling.handler.mission.Mission;
|
||||
import com.ljsd.jieling.handler.mission.MissionLogic;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
|
@ -30,9 +31,11 @@ public class UseItemMissionBehavior extends BaseBehavior {
|
|||
if (!checkCost) {
|
||||
return false;
|
||||
}
|
||||
MissionLogic.getInstance().checkMission(mission, user);
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(mission);
|
||||
eventUpdateResponse.setMission(missionProto);
|
||||
CheckMissionReturn checkMissionReturn = MissionLogic.getInstance().checkMission(mission, user);
|
||||
for (Mission cmission : checkMissionReturn.missions){
|
||||
CommonProto.Mission missionProto = MapLogic.getInstance().getMission(cmission);
|
||||
eventUpdateResponse.addMission(missionProto);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package com.ljsd.jieling.handler.mission;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CheckMissionReturn {
|
||||
public String newEventId;
|
||||
public List<Mission> missions = new ArrayList<>();
|
||||
}
|
||||
|
|
@ -90,9 +90,8 @@ public class MissionLogic {
|
|||
return false;
|
||||
}
|
||||
|
||||
public String checkMission(Mission mission, User user) throws Exception {
|
||||
String[] split1 = mission.getMissionInfo().split("#");
|
||||
int needCount = Integer.parseInt(split1[2]);
|
||||
public CheckMissionReturn checkMission(Mission mission, User user) throws Exception {
|
||||
SMissionEventsConfig sMissionEventsConfig = SMissionEventsConfig.sMissionEventsConfigMap.get(mission.getMissionId());
|
||||
mission.setMissionStep(mission.getMissionStep() + 1);
|
||||
Map<Integer, Cell> missionInfos = mission.getMissionInfos();
|
||||
int curXY = user.getMapManager().getCurXY();
|
||||
|
|
@ -101,10 +100,10 @@ public class MissionLogic {
|
|||
cell.setEventId(-1);
|
||||
mission.updateMissionInfos(curXY, cell);
|
||||
}
|
||||
String newEventId = null;
|
||||
if (mission.getMissionStep() >= needCount) {
|
||||
CheckMissionReturn checkMissionReturn = new CheckMissionReturn();
|
||||
if (mission.getMissionStep() >= sMissionEventsConfig.getMissionNum()) {
|
||||
if (mission.getMissionInfo() != null) {
|
||||
newEventId = mission.getMissionInfo();
|
||||
checkMissionReturn.newEventId = mission.getMissionInfo();
|
||||
}
|
||||
Map<Integer, Mission> doingMissions = user.getMissionManager().getDoingMissions();
|
||||
doingMissions.remove(mission.getMissionId());
|
||||
|
|
@ -112,10 +111,19 @@ public class MissionLogic {
|
|||
Set<Integer> finishMissions = user.getMissionManager().getFinishMissions();
|
||||
finishMissions.add(mission.getMissionId());
|
||||
user.getMissionManager().updateFinishMissions(finishMissions);
|
||||
// 开新任务
|
||||
if (sMissionEventsConfig.getNext() != 0) {
|
||||
Mission missionNew = new Mission();
|
||||
missionNew.setMissionId(sMissionEventsConfig.getNext());
|
||||
missionNew.setMissionStep(0);
|
||||
user.getMissionManager().getDoingMissions().put(sMissionEventsConfig.getNext(), missionNew);
|
||||
checkMissionReturn.missions.add(missionNew);
|
||||
}
|
||||
} else {
|
||||
user.getMissionManager().updateOneDoingMissions(mission.getMissionId(), mission);
|
||||
}
|
||||
return newEventId;
|
||||
checkMissionReturn.missions.add(mission);
|
||||
return checkMissionReturn;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -80,11 +80,9 @@ public class UserManager {
|
|||
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
||||
ItemUtil.drop(user,gameSetting.getBornItem());
|
||||
MissionManager missionManager = user.getMissionManager();
|
||||
SMissionEventsConfig sMissionEventsConfig = SMissionEventsConfig.sMissionEventsConfigMap.get(1);
|
||||
Mission mission = new Mission();
|
||||
mission.setMissionId(1);
|
||||
mission.setMissionStep(0);
|
||||
mission.setMissionInfo("0#0#" + sMissionEventsConfig.getMissionNum());
|
||||
missionManager.getDoingMissions().put(mission.getMissionId(), mission);
|
||||
MapManager mapManager = user.getMapManager();
|
||||
//TODO
|
||||
|
|
|
|||
Loading…
Reference in New Issue