地图任务
parent
c7fdef8058
commit
2b28e768fb
|
|
@ -105,6 +105,6 @@ public class EventType {
|
|||
public static final int fightEvent = 2;
|
||||
public static final int shopEvent = 3;
|
||||
public static final int updateOptionalEvent = 4;
|
||||
public static final int passMap = 4;
|
||||
public static final int passMap = 5;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ public class MapLogic {
|
|||
if (mapManager.getTemporaryItems() != null) {
|
||||
mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems()));
|
||||
}
|
||||
MapMission mapMissionProgres = mapManager.getMapMissionProgres();
|
||||
MapMission mapMissionProgres = mapManager.getCopyMissionProgresById(mapId);
|
||||
if (mapMissionProgres != null) {
|
||||
Map<Integer, Integer> allMissionProgress = mapMissionProgres.getAllMissionProgress();
|
||||
List<CommonProto.ExploreDetail> exploreDetailList = new ArrayList<>(allMissionProgress.size());
|
||||
|
|
@ -820,7 +820,7 @@ public class MapLogic {
|
|||
public void resetMapInfo(User user, boolean needTemporaryItem) throws Exception {
|
||||
MapManager mapManager = user.getMapManager();
|
||||
mapManager.setFoodBufferMap(new HashMap<>());
|
||||
mapManager.setMapMissionProgres(null);
|
||||
mapManager.clearCopyMission(mapManager.getCurMapId());
|
||||
mapManager.setMission(null);
|
||||
mapManager.setMapInfo(new HashMap<>());
|
||||
mapManager.setWalkCells(new HashSet<>());
|
||||
|
|
@ -1179,7 +1179,7 @@ public class MapLogic {
|
|||
|
||||
public void initMapMission( MapManager mapManager){
|
||||
int mapId = mapManager.getCurMapId();
|
||||
if(mapManager.getMapMissionProgres()!=null){
|
||||
if(mapManager.getCopyMissionProgresById(mapId)!=null){
|
||||
return;
|
||||
}
|
||||
List<SAccomplishmentConfig> sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(mapId);
|
||||
|
|
@ -1193,7 +1193,7 @@ public class MapLogic {
|
|||
missionProgress.put(id,0);
|
||||
}
|
||||
MapMission mapMission = new MapMission(mapId,missionProgress);
|
||||
mapManager.setMapMissionProgres(mapMission);
|
||||
mapManager.setCopyMissionProgres(mapMission);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1918,7 +1918,7 @@ public class MapLogic {
|
|||
if (mapManager.getTemporaryItems() != null) {
|
||||
mapEnterResponse.setTemporaryItems(CBean2Proto.getDrop(mapManager.getTemporaryItems()));
|
||||
}
|
||||
MapMission mapMissionProgres = mapManager.getMapMissionProgres();
|
||||
MapMission mapMissionProgres = mapManager.getCopyMissionProgresById(mapManager.getCurMapId());
|
||||
if (mapMissionProgres != null) {
|
||||
Map<Integer, Integer> allMissionProgress = mapMissionProgres.getAllMissionProgress();
|
||||
List<CommonProto.ExploreDetail> exploreDetailList = new ArrayList<>(allMissionProgress.size());
|
||||
|
|
|
|||
|
|
@ -41,9 +41,7 @@ public class MapManager extends MongoBase {
|
|||
private Map<Integer,Integer> foodBufferMap = new HashMap<>();
|
||||
private Map<String,Map<Integer, Integer>> heroAllAttributeMap = new HashMap<>(5);
|
||||
|
||||
private MapMission mapMissionProgres;
|
||||
|
||||
private MapMission copyMissionProgres=new MapMission(); //副本累计
|
||||
private Map<Integer,MapMission> copyMissionProgresMap=new HashMap<>(); //副本累计
|
||||
|
||||
private Set<Integer> takeCopyMisionRewards =new HashSet<>();//副本奖励
|
||||
|
||||
|
|
@ -331,15 +329,6 @@ public class MapManager extends MongoBase {
|
|||
this.canMoveTime = canMoveTime;
|
||||
}
|
||||
|
||||
public MapMission getMapMissionProgres() {
|
||||
return mapMissionProgres;
|
||||
}
|
||||
|
||||
public void setMapMissionProgres(MapMission mapMissionProgres) {
|
||||
this.mapMissionProgres = mapMissionProgres;
|
||||
updateString("mapMissionProgres", mapMissionProgres);
|
||||
}
|
||||
|
||||
public Map<Integer, CrossInfo> getCrossInfoMap() {
|
||||
return crossInfoMap;
|
||||
}
|
||||
|
|
@ -408,8 +397,8 @@ public class MapManager extends MongoBase {
|
|||
}
|
||||
}
|
||||
|
||||
public MapMission getCopyMissionProgres() {
|
||||
return copyMissionProgres;
|
||||
public MapMission getCopyMissionProgresById(int copyId) {
|
||||
return copyMissionProgresMap.get(copyId);
|
||||
}
|
||||
|
||||
public int getFindSuddenlyBossMapId() {
|
||||
|
|
@ -462,7 +451,12 @@ public class MapManager extends MongoBase {
|
|||
}
|
||||
|
||||
public void setCopyMissionProgres(MapMission copyMissionProgres) {
|
||||
updateString("copyMissionProgres" , copyMissionProgres);
|
||||
this.copyMissionProgres = copyMissionProgres;
|
||||
updateString("copyMissionProgresMap." + copyMissionProgres.getMapId() , copyMissionProgres);
|
||||
this.copyMissionProgresMap.put(copyMissionProgres.getMapId(),copyMissionProgres);
|
||||
}
|
||||
|
||||
public void clearCopyMission(int copyId){
|
||||
removeString(getMongoKey() + ".copyMissionProgresMap." + copyId);
|
||||
this.copyMissionProgresMap.remove(copyId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,10 +32,19 @@ public class MapMissionManager {
|
|||
missionTypes.add(MapMissionType.KILL_BOSS);
|
||||
typeByEventTypeMap.put(EventType.fightEvent,missionTypes);
|
||||
|
||||
missionTypes = new ArrayList<>(1);
|
||||
missionTypes = new ArrayList<>(2);
|
||||
missionTypes.add(MapMissionType.DIGGER_EVENT);
|
||||
missionTypes.add(MapMissionType.OPEN_BOX);
|
||||
typeByEventTypeMap.put(EventType.updatePonintEvent,missionTypes);
|
||||
|
||||
|
||||
missionTypes = new ArrayList<>(5);
|
||||
missionTypes.add(MapMissionType.PASS_FINISH_DIFFICULT_MAP);
|
||||
missionTypes.add(MapMissionType.PASS_INTIME_MAP);
|
||||
missionTypes.add(MapMissionType.PASS_DEATH_MAP_EVENT);
|
||||
missionTypes.add(MapMissionType.PASS_TEAM_FORCE_EVENT);
|
||||
missionTypes.add(MapMissionType.PASS_TEAM_NOT_PROFESSION_EVENT);
|
||||
typeByEventTypeMap.put(EventType.passMap,missionTypes);
|
||||
}
|
||||
|
||||
public static int updateMapMission(MapManager mapManager, int eventType, int eventId, int bossIdOrItemId){
|
||||
|
|
@ -44,12 +53,11 @@ public class MapMissionManager {
|
|||
if(mapId==0){
|
||||
return 0;
|
||||
}
|
||||
MapMission mapMission = mapManager.getMapMissionProgres();
|
||||
MapMission mapMission = mapManager.getCopyMissionProgresById(mapId);
|
||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapId);
|
||||
mapId=sChallengeConfig.getMapId();
|
||||
boolean copyMissionUpdate = false;
|
||||
if(sChallengeConfig.getType()==2){
|
||||
mapMission = mapManager.getCopyMissionProgres();
|
||||
copyMissionUpdate= true;
|
||||
}
|
||||
if(mapMission == null ){
|
||||
|
|
@ -82,6 +90,7 @@ public class MapMissionManager {
|
|||
if(isHit && !updateProgress){
|
||||
continue;
|
||||
}
|
||||
boolean isNeedReset = false;
|
||||
for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){
|
||||
int missionId = sAccomplishmentConfig.getId();
|
||||
Integer missionValue = allMissionProgress.get(missionId);
|
||||
|
|
@ -95,6 +104,7 @@ public class MapMissionManager {
|
|||
for(int targetEventIdTmp : values[0]){
|
||||
if(targetEventIdTmp == eventId){
|
||||
updateProgress = true;
|
||||
isNeedReset =true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -111,6 +121,9 @@ public class MapMissionManager {
|
|||
readySendCopyMission(missionStateChangeInfo);
|
||||
}
|
||||
}
|
||||
if(isNeedReset){
|
||||
updateProgress = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -131,20 +144,17 @@ public class MapMissionManager {
|
|||
}
|
||||
}
|
||||
if(needUpdate){
|
||||
if(copyMissionUpdate){
|
||||
mapManager.setCopyMissionProgres(mapMission);
|
||||
}else{
|
||||
mapManager.setMapMissionProgres(mapMission);
|
||||
}
|
||||
mapManager.setCopyMissionProgres(mapMission);
|
||||
}
|
||||
return mapMission.getTotalWeight();
|
||||
}
|
||||
|
||||
public static void processPassMapEvent(User user,int passTime){
|
||||
MapManager mapManager = user.getMapManager();
|
||||
MapMission copyMissionProgres = mapManager.getCopyMissionProgres();
|
||||
|
||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId());
|
||||
int mapId = sChallengeConfig.getId();
|
||||
MapMission copyMissionProgres = mapManager.getCopyMissionProgresById(mapId);
|
||||
int difficultType = sChallengeConfig.getDifficultType();
|
||||
HeroLogic.getInstance().calTeamTotalForce(user,mapManager.getTeamId(),false);
|
||||
Map<Integer, Integer> allMissionProgress = copyMissionProgres.getAllMissionProgress();
|
||||
|
|
@ -217,7 +227,7 @@ public class MapMissionManager {
|
|||
}
|
||||
}
|
||||
if(needUpdate){
|
||||
user.getMapManager().setCopyMissionProgres(user.getMapManager().getCopyMissionProgres());
|
||||
user.getMapManager().setCopyMissionProgres(copyMissionProgres);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,15 +66,19 @@ public class MissionLoigc {
|
|||
|
||||
|
||||
public static void getCopyMission(User user,List<CommonProto.UserMissionInfo> missionList){
|
||||
MapMission copyMissionProgres = user.getMapManager().getCopyMissionProgres();
|
||||
Map<Integer, Integer> allMissionProgress =new HashMap<>();
|
||||
Set<Integer> takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards();
|
||||
if(copyMissionProgres!=null){
|
||||
allMissionProgress = copyMissionProgres.getAllMissionProgress();
|
||||
}
|
||||
|
||||
int missionType = GameMisionType.COPYMISSION.getType();
|
||||
boolean needUpdate = false;
|
||||
|
||||
for(Integer copyId: SChallengeConfig.copyIds){
|
||||
boolean needUpdate = false;
|
||||
MapMission copyMissionProgres = user.getMapManager().getCopyMissionProgresById(copyId);
|
||||
Map<Integer, Integer> allMissionProgress =new HashMap<>();
|
||||
Set<Integer> takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards();
|
||||
if(copyMissionProgres==null){
|
||||
copyMissionProgres = new MapMission();
|
||||
copyMissionProgres.setMapId(copyId);
|
||||
copyMissionProgres.setAllMissionProgress(allMissionProgress);
|
||||
}
|
||||
List<SAccomplishmentConfig> sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(copyId);
|
||||
for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){
|
||||
Integer missionId = sAccomplishmentConfig.getId();
|
||||
|
|
@ -100,10 +104,11 @@ public class MissionLoigc {
|
|||
}
|
||||
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionId).setState(state).setType(missionType).setProgress(mineProgess).build());
|
||||
}
|
||||
if(needUpdate){
|
||||
user.getMapManager().setCopyMissionProgres(copyMissionProgres);
|
||||
}
|
||||
}
|
||||
if(needUpdate){
|
||||
user.getMapManager().setCopyMissionProgres(user.getMapManager().getCopyMissionProgres());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void getVipMission(User user,List<CommonProto.UserMissionInfo> missionList){
|
||||
|
|
@ -146,9 +151,12 @@ public class MissionLoigc {
|
|||
if(type == GameMisionType.COPYMISSION.getType()){ //副本 任务
|
||||
Set<Integer> takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards();
|
||||
if(takeCopyMisionRewards.contains(missionId)){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"had taked reward");
|
||||
return;
|
||||
}
|
||||
Map<Integer, Integer> allMissionProgress = user.getMapManager().getCopyMissionProgres().getAllMissionProgress();
|
||||
SAccomplishmentConfig sAccomplishmentConfig = SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId);
|
||||
int mapId = sAccomplishmentConfig.getMapId();
|
||||
Map<Integer, Integer> allMissionProgress = user.getMapManager().getCopyMissionProgresById(mapId).getAllMissionProgress();
|
||||
int finsihProgress = SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId).getValues()[1][0];
|
||||
if(!allMissionProgress.containsKey(missionId) || allMissionProgress.get(missionId) <finsihProgress){
|
||||
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"mission can not get reward");
|
||||
|
|
|
|||
Loading…
Reference in New Issue