循环活动二版
parent
065d492cde
commit
5b82fa8fb6
|
@ -458,8 +458,8 @@ public class ActivityLogic implements IEventHandler{
|
|||
long latelyEndTime = latelyStartTime + (endTime - startTime);
|
||||
|
||||
ActivityMission mission = activityMissionMap.get(activityId);
|
||||
// 活动存在,当前时间大于最近的结束时间,表示当期活动结束
|
||||
if (mission != null && now > latelyEndTime){
|
||||
// 活动存在,(当前时间大于最近的结束时间 或 活动创建时间大于最近得开启时间),表示当期活动结束
|
||||
if (mission != null && (now > latelyEndTime || mission.getCreatTime() < latelyStartTime)){
|
||||
goRewardActivity(user,activityId,builder, isRemove);
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -206,9 +206,6 @@ public class SuperFundNewActivity extends AbstractActivity {
|
|||
|
||||
/**
|
||||
* 获取礼包信息
|
||||
* @param user
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private ReceiveWelfareBag getBagInfo(User user){
|
||||
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.root.User;
|
||||
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.ToolsUtil;
|
||||
import config.*;
|
||||
|
@ -38,6 +40,8 @@ public class WeekCardActivity extends AbstractActivity {
|
|||
ActivityLogic.getInstance().initOtherMission(mission, new ArrayList<>());
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
|
||||
// 刷新礼包信息
|
||||
refreshGood(user);
|
||||
// 初始化礼包信息
|
||||
user.getPlayerInfoManager().setWeekCard(new HashMap<>());
|
||||
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() ){
|
||||
|
||||
List<SAchievementConfig> sAchievementConfigs = SAchievementConfig.sTaskConfigByTypeMap.get(missionType.getMissionTypeValue());
|
||||
if(sAchievementConfigs!=null&& !sAchievementConfigs.isEmpty()){
|
||||
CumulationData.Result result= achievementMap.updateData(missionType, parm);
|
||||
|
@ -314,7 +313,7 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
// 公用任务类型,累计次数形式
|
||||
CumulationData.Result result = cumulationData.updateData(missionType, parm);
|
||||
if(result!=null){
|
||||
if(result != null){
|
||||
updateString("cumulationData",cumulationData);
|
||||
// vip任务
|
||||
vipMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.VIPMISSION),cumulationData);
|
||||
|
|
|
@ -103,13 +103,13 @@ public class MissionLogic {
|
|||
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();
|
||||
JadeDynastyMissionType jadeDynastyMissionType = missionManager.getJadeDynastyMissionType();
|
||||
//周刷新检测
|
||||
if (type == 2) {
|
||||
if (jadeDynastyMissionType.getWeekRefresh() != 0 && TimeUtils.now()<jadeDynastyMissionType.getWeekRefresh() ) {
|
||||
return null;
|
||||
return;
|
||||
}
|
||||
jadeDynastyMissionType.setWeekRefresh(TimeUtils.now());
|
||||
}
|
||||
|
@ -142,6 +142,5 @@ public class MissionLogic {
|
|||
if(type==2){
|
||||
missionManager.setJadeDynastyWeekCumulationData(jadeDynastyCumulationData);
|
||||
}
|
||||
return tasks;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
@ -8,10 +9,7 @@ import com.ljsd.jieling.logic.mission.main.CowFlySkyMissionType;
|
|||
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||
import config.SArroGantFly;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
|
||||
@Override
|
||||
|
@ -26,5 +24,10 @@ public class CowFlySkyRefreshEventProcess implements BaseGameEventProcessor {
|
|||
cowFlySkyMissionType.getRewardedMissionIds().clear();
|
||||
cowFlySkyMissionType.getDoingMissionIds().addAll(arro);
|
||||
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;
|
||||
|
||||
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 JadeDynastyRefreshEventProcess implements BaseGameEventProcessor {
|
||||
@Override
|
||||
public void onGameEvent(User user, Map<GameMisionType, List<MissionStateChangeInfo>> misionTypeListMap, GameEvent event, Object... parm) throws Exception {
|
||||
UserMissionManager missionManager = user.getUserMissionManager();
|
||||
//当前轮次破阵诛仙的活动ID
|
||||
int jadeAid = (int) parm[0];
|
||||
MissionLogic.getInstance().resetJadeDynastyTaskInfo(user,1, jadeAid, misionTypeListMap);
|
||||
|
|
|
@ -20,7 +20,7 @@ public class MistyTripRefreshEventProcess implements BaseGameEventProcessor {
|
|||
UserMissionManager missionManager = user.getUserMissionManager();
|
||||
MistyTripMissionType mistyTripMissionType = missionManager.getMistyTripMissionType();
|
||||
//任务开始
|
||||
if(mistyTripMissionType.getDoingMissionIds().size() != 0 || mistyTripMissionType.getFinishMissionIds().size() != 0){
|
||||
if(!mistyTripMissionType.getDoingMissionIds().isEmpty() || !mistyTripMissionType.getFinishMissionIds().isEmpty()){
|
||||
return;
|
||||
}
|
||||
Set<Integer> journeyWithWind = STableManager.getConfig(SJourneyWithWind.class).keySet();
|
||||
|
|
|
@ -51,15 +51,9 @@ public class CowFlySkyMissionType extends AbstractMissionType {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) throws Exception {
|
||||
// 进行中得任务
|
||||
public void missionRefresh(User user, List<SArroGantFly> flyList, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
|
||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||
Map<Integer, SArroGantFly> 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<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