diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index 673d45d27..a2aefcfb4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -76,6 +76,7 @@ public class UserMissionManager extends MongoBase { private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据 private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据 private CumulationData mistyTripCumulationData = new CumulationData();//缥缈之旅数据 + private CumulationData cowFlyCumulationData = new CumulationData();//牛气冲天数据 /** * 奖励处理任务 @@ -103,7 +104,7 @@ public class UserMissionManager extends MongoBase { case DAILY_MISSION_REWARD:{ dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION)); if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){ - calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]); + calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap, parm[0]); updateString("dailyMissionIdsType",dailyMissionIdsType); } } @@ -212,6 +213,20 @@ public class UserMissionManager extends MongoBase { } } } + + // 牛气冲天活动数据处理 + if(!cowFlySkyMissionType.getDoingMissionIds().isEmpty()){ + Map flyMap = SArroGantFly.getTaskTypeMap().get(missionType.getMissionTypeValue()); + if (flyMap != null && !flyMap.isEmpty()) { + CumulationData.Result result = cowFlyCumulationData.updateData(missionType, parm); + if(result != null){ + cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION), cowFlyCumulationData); + setCowFlySkyMissionType(cowFlySkyMissionType); + setCowFlyCumulationData(cowFlyCumulationData); + } + } + } + if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){ List sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue()); if(sTreasureTaskConfigs!=null){ @@ -319,9 +334,6 @@ public class UserMissionManager extends MongoBase { // vip任务 vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData); updateString("vipMissionIdsType",vipMissionIdsType); - // 牛气冲天任务 - cowFlySkyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.COWFLYSKYMISSION),cumulationData); - updateString("cowFlySkyMissionType",cowFlySkyMissionType); // 家园任务 homeMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.HOME_MISSION),cumulationData); updateString("homeMissionType",homeMissionType); @@ -450,6 +462,15 @@ public class UserMissionManager extends MongoBase { updateString("treasureMissionIdsType", treasureMissionIdsType); } + public CumulationData getCowFlyCumulationData() { + return cowFlyCumulationData; + } + + public void setCowFlyCumulationData(CumulationData cowFlyCumulationData) { + this.cowFlyCumulationData = cowFlyCumulationData; + updateString("cowFlyCumulationData", cowFlyCumulationData); + } + public TreasureMissionType getTreasureMissionIdsType() { return treasureMissionIdsType; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java index d34d2fbc6..7e59d8b2d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/CowFlySkyRefreshEventProcess.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.mission.event; +import com.ljsd.jieling.logic.dao.CumulationData; import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; @@ -25,6 +26,7 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor { cowFlySkyMissionType.getFinishMissionIds().clear(); cowFlySkyMissionType.getRewardedMissionIds().clear(); cowFlySkyMissionType.getDoingMissionIds().addAll(arro); + missionManager.setCowFlyCumulationData(new CumulationData()); missionManager.setCowFlySkyMissionType(cowFlySkyMissionType); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java index 0098a0500..4a7ebb1f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/JadeDynastyWeekRefreshEventProcess.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.mission.event; -import com.ljsd.jieling.logic.dao.UserMissionManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameMisionType; @@ -13,7 +12,6 @@ import java.util.Map; public class JadeDynastyWeekRefreshEventProcess implements BaseGameEventProcessor { @Override public void onGameEvent(User user, Map> misionTypeListMap, GameEvent event, Object... parm) throws Exception { - UserMissionManager missionManager = user.getUserMissionManager(); //当前轮次破阵诛仙的活动ID int jadeAid = (int) parm[0]; MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,2, jadeAid, misionTypeListMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index 101fa4d3e..f937178a6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType { } } - @Override - public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { - // 进行中得任务 + public void missionRefresh(User user, List flyList, List missionStateChangeInfos, CumulationData cumulationData){ Set doingMissionIds = getDoingMissionIds(); - Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); - if (flyMap == null || flyMap.isEmpty()){ - return; - } - for (SArroGantFly fly : flyMap.values()) { + for (SArroGantFly fly : flyList) { // 任务子id int id = fly.getId(); // 不在执行中 @@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType { // 任务列表更新 doingMissionIds.remove(id); getFinishMissionIds().add(id); - } } + + @Override + public void calCumulationDataResult(User user, CumulationData.Result result, List missionStateChangeInfos, CumulationData cumulationData) throws Exception { + Map flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue()); + if (flyMap == null || flyMap.isEmpty()){ + return; + } + missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); + } + +// public void initRefreshCumulationData(User user, List missionStateChangeInfos, CumulationData cumulationData, int activityId){ +// Map flyMap = SArroGantFly.getActivityMap().get(activityId); +// if (flyMap == null || flyMap.isEmpty()){ +// return; +// } +// missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData); +// } }