循环活动二版
parent
065d492cde
commit
5b82fa8fb6
|
@ -458,8 +458,8 @@ public class ActivityLogic implements IEventHandler{
|
||||||
long latelyEndTime = latelyStartTime + (endTime - startTime);
|
long latelyEndTime = latelyStartTime + (endTime - startTime);
|
||||||
|
|
||||||
ActivityMission mission = activityMissionMap.get(activityId);
|
ActivityMission mission = activityMissionMap.get(activityId);
|
||||||
// 活动存在,当前时间大于最近的结束时间,表示当期活动结束
|
// 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束
|
||||||
if (mission != null && now > latelyEndTime){
|
if (mission != null && (now > latelyEndTime || mission.getCreatTime() < latelyStartTime)){
|
||||||
goRewardActivity(user,activityId,builder, isRemove);
|
goRewardActivity(user,activityId,builder, isRemove);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,9 +206,6 @@ public class SuperFundNewActivity extends AbstractActivity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取礼包信息
|
* 获取礼包信息
|
||||||
* @param user
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
private ReceiveWelfareBag getBagInfo(User user){
|
private ReceiveWelfareBag getBagInfo(User user){
|
||||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
|
|
|
@ -11,6 +11,8 @@ import com.ljsd.jieling.logic.activity.event.SuperBoxEvent;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
|
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.AbstractWelfareBag;
|
||||||
|
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.PerpetualWelfareBag;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.ToolsUtil;
|
import com.ljsd.jieling.util.ToolsUtil;
|
||||||
import config.*;
|
import config.*;
|
||||||
|
@ -38,6 +40,8 @@ public class WeekCardActivity extends AbstractActivity {
|
||||||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||||
|
|
||||||
|
// 刷新礼包信息
|
||||||
|
refreshGood(user);
|
||||||
// 初始化礼包信息
|
// 初始化礼包信息
|
||||||
user.getPlayerInfoManager().setWeekCard(new HashMap<>());
|
user.getPlayerInfoManager().setWeekCard(new HashMap<>());
|
||||||
LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id);
|
LOGGER.info("月卡初始化...uid={} activityId={}",user.getId(), id);
|
||||||
|
@ -67,6 +71,30 @@ public class WeekCardActivity extends AbstractActivity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新礼包信息
|
||||||
|
*/
|
||||||
|
private void refreshGood(User user){
|
||||||
|
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
|
if (activity == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int[] canBuyRechargeId = activity.getCanBuyRechargeId();
|
||||||
|
if (canBuyRechargeId == null || canBuyRechargeId.length <= 0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer, AbstractWelfareBag> receiveMap = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap();
|
||||||
|
for (int goodId : canBuyRechargeId) {
|
||||||
|
AbstractWelfareBag bag = receiveMap.get(goodId);
|
||||||
|
if (bag == null){
|
||||||
|
LOGGER.error("礼包刷新结束,礼包不存在,活动id:{},礼包id:{}",id, canBuyRechargeId[0]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
PerpetualWelfareBag welfareBag = (PerpetualWelfareBag) bag;
|
||||||
|
welfareBag.refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 封装周卡信息
|
* 封装周卡信息
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -269,7 +269,6 @@ public class UserMissionManager extends MongoBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!achievementMissionTypMap.getDoingMissionIds().isEmpty() ){
|
if(!achievementMissionTypMap.getDoingMissionIds().isEmpty() ){
|
||||||
|
|
||||||
List<SAchievementConfig> sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue());
|
List<SAchievementConfig> sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue());
|
||||||
if(sAchievementConfigs!=null&& !sAchievementConfigs.isEmpty()){
|
if(sAchievementConfigs!=null&& !sAchievementConfigs.isEmpty()){
|
||||||
CumulationData.Result result= achievementMap.updateData(missionType, parm);
|
CumulationData.Result result= achievementMap.updateData(missionType, parm);
|
||||||
|
@ -314,7 +313,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
}
|
}
|
||||||
// 公用任务类型,累计次数形式
|
// 公用任务类型,累计次数形式
|
||||||
CumulationData.Result result = cumulationData.updateData(missionType, parm);
|
CumulationData.Result result = cumulationData.updateData(missionType, parm);
|
||||||
if(result!=null){
|
if(result != null){
|
||||||
updateString("cumulationData",cumulationData);
|
updateString("cumulationData",cumulationData);
|
||||||
// vip任务
|
// vip任务
|
||||||
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
|
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
|
||||||
|
|
|
@ -103,13 +103,13 @@ public class MissionLogic {
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] resetJadeDynastyTaskInfo(User user, int type, int activityId, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap){
|
public void resetJadeDynastyTaskInfo(User user, int type, int activityId, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap){
|
||||||
UserMissionManager missionManager = user.getUserMissionManager();
|
UserMissionManager missionManager = user.getUserMissionManager();
|
||||||
JadeDynastyMissionType jadeDynastyMissionType = missionManager.getJadeDynastyMissionType();
|
JadeDynastyMissionType jadeDynastyMissionType = missionManager.getJadeDynastyMissionType();
|
||||||
//周刷新检测
|
//周刷新检测
|
||||||
if (type == 2) {
|
if (type == 2) {
|
||||||
if (jadeDynastyMissionType.getWeekRefresh() != 0 && TimeUtils.now()<jadeDynastyMissionType.getWeekRefresh() ) {
|
if (jadeDynastyMissionType.getWeekRefresh() != 0 && TimeUtils.now()<jadeDynastyMissionType.getWeekRefresh() ) {
|
||||||
return null;
|
return;
|
||||||
}
|
}
|
||||||
jadeDynastyMissionType.setWeekRefresh(TimeUtils.now());
|
jadeDynastyMissionType.setWeekRefresh(TimeUtils.now());
|
||||||
}
|
}
|
||||||
|
@ -142,6 +142,5 @@ public class MissionLogic {
|
||||||
if(type==2){
|
if(type==2){
|
||||||
missionManager.setJadeDynastyWeekCumulationData(jadeDynastyCumulationData);
|
missionManager.setJadeDynastyWeekCumulationData(jadeDynastyCumulationData);
|
||||||
}
|
}
|
||||||
return tasks;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ljsd.jieling.logic.mission.event;
|
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.UserMissionManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
|
@ -8,10 +9,7 @@ import com.ljsd.jieling.logic.mission.main.CowFlySkyMissionType;
|
||||||
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||||
import config.SArroGantFly;
|
import config.SArroGantFly;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
|
public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
|
||||||
@Override
|
@Override
|
||||||
|
@ -26,5 +24,10 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
|
||||||
cowFlySkyMissionType.getRewardedMissionIds().clear();
|
cowFlySkyMissionType.getRewardedMissionIds().clear();
|
||||||
cowFlySkyMissionType.getDoingMissionIds().addAll(arro);
|
cowFlySkyMissionType.getDoingMissionIds().addAll(arro);
|
||||||
missionManager.setCowFlySkyMissionType(cowFlySkyMissionType);
|
missionManager.setCowFlySkyMissionType(cowFlySkyMissionType);
|
||||||
|
|
||||||
|
// 刷新数据
|
||||||
|
CumulationData cumulationData = user.getUserMissionManager().getCumulationData();
|
||||||
|
List<MissionStateChangeInfo> infos = misionTypeListMap.getOrDefault(GameMisionType.COWFLYSKYMISSION, new ArrayList<>());
|
||||||
|
cowFlySkyMissionType.initRefreshCumulationData(user,infos,cumulationData,activityCowId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.ljsd.jieling.logic.mission.event;
|
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.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
import com.ljsd.jieling.logic.mission.GameMisionType;
|
import com.ljsd.jieling.logic.mission.GameMisionType;
|
||||||
|
@ -13,7 +12,6 @@ import java.util.Map;
|
||||||
public class JadeDynastyRefreshEventProcess implements BaseGameEventProcessor {
|
public class JadeDynastyRefreshEventProcess implements BaseGameEventProcessor {
|
||||||
@Override
|
@Override
|
||||||
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
|
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
|
||||||
UserMissionManager missionManager = user.getUserMissionManager();
|
|
||||||
//当前轮次破阵诛仙的活动ID
|
//当前轮次破阵诛仙的活动ID
|
||||||
int jadeAid = (int) parm[0];
|
int jadeAid = (int) parm[0];
|
||||||
MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,1, jadeAid, misionTypeListMap);
|
MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,1, jadeAid, misionTypeListMap);
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class MistyTripRefreshEventProcess implements BaseGameEventProcessor {
|
||||||
UserMissionManager missionManager = user.getUserMissionManager();
|
UserMissionManager missionManager = user.getUserMissionManager();
|
||||||
MistyTripMissionType mistyTripMissionType = missionManager.getMistyTripMissionType();
|
MistyTripMissionType mistyTripMissionType = missionManager.getMistyTripMissionType();
|
||||||
//任务开始
|
//任务开始
|
||||||
if(mistyTripMissionType.getDoingMissionIds().size() != 0 || mistyTripMissionType.getFinishMissionIds().size() != 0){
|
if(!mistyTripMissionType.getDoingMissionIds().isEmpty() || !mistyTripMissionType.getFinishMissionIds().isEmpty()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Set<Integer> journeyWithWind = STableManager.getConfig(SJourneyWithWind.class).keySet();
|
Set<Integer> journeyWithWind = STableManager.getConfig(SJourneyWithWind.class).keySet();
|
||||||
|
|
|
@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void missionRefresh(User user, List<SArroGantFly> flyList, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
|
||||||
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
|
|
||||||
// 进行中得任务
|
|
||||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||||
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getTaskTypeMap().get(result.subType.getMissionTypeValue());
|
for (SArroGantFly fly : flyList) {
|
||||||
if (flyMap == null || flyMap.isEmpty()){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (SArroGantFly fly : flyMap.values()) {
|
|
||||||
// 任务子id
|
// 任务子id
|
||||||
int id = fly.getId();
|
int id = fly.getId();
|
||||||
// 不在执行中
|
// 不在执行中
|
||||||
|
@ -84,7 +78,23 @@ public class CowFlySkyMissionType extends AbstractMissionType {
|
||||||
// 任务列表更新
|
// 任务列表更新
|
||||||
doingMissionIds.remove(id);
|
doingMissionIds.remove(id);
|
||||||
getFinishMissionIds().add(id);
|
getFinishMissionIds().add(id);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
|
||||||
|
Map<Integer, SArroGantFly> 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<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData, int activityId){
|
||||||
|
Map<Integer, SArroGantFly> flyMap = SArroGantFly.getActivityMap().get(activityId);
|
||||||
|
if (flyMap == null || flyMap.isEmpty()){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
missionRefresh(user, new ArrayList<>(flyMap.values()), missionStateChangeInfos, cumulationData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue