Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
388a28507b
|
@ -1,5 +1,9 @@
|
|||
package com.ljsd.jieling.core;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface GlobalsDef {
|
||||
String DEFAULT_NAME = "无名妖灵师";
|
||||
int MAP_MISSION_RETURN = -9999;
|
||||
|
@ -103,5 +107,7 @@ public interface GlobalsDef {
|
|||
|
||||
//特殊商店id
|
||||
|
||||
int DAILY_GOODS_FAST_ID = 1004;//每日礼包一键购买的礼包ID
|
||||
int[] DAILY_RECHARGE_IDS = new int[]{1001, 1002, 1003};//所有每日礼包,用来在一键购买每日礼包之后,把所有每日礼包设置为购买过的状态
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static com.ljsd.jieling.protocols.MessageTypeProto.MessageType.JADE_DYNASTY_REFRESH_TIME_RESPONSE;
|
||||
|
||||
/**
|
||||
* @author lilei
|
||||
* @create 2020-08-20 16:08
|
||||
* @description
|
||||
*/
|
||||
@Component
|
||||
public class JadeDynastyTimeHandler extends BaseHandler {
|
||||
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.JADE_DYNASTY_REFRESH_TIME_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
ActivityLogic.getInstance().getJadeDynastyNextRefreshTime(iSession, JADE_DYNASTY_REFRESH_TIME_RESPONSE);
|
||||
}
|
||||
}
|
|
@ -1323,4 +1323,11 @@ public class ActivityLogic implements IEventHandler{
|
|||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
public void getJadeDynastyNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000);
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
PlayerInfoProto.JadeDynastyRefreshTimeResponse response = PlayerInfoProto.JadeDynastyRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build();
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -67,5 +67,9 @@ public interface ActivityType {
|
|||
|
||||
int NEW_EIGHT_LOGIN = 56;//新的八日登录
|
||||
int SIGN_BOX= 57;//累计签到宝箱
|
||||
int JADE_DYNASTY_RECHARGE_SUM = 58;//破阵诛仙累充
|
||||
int JADE_DYNASTY_MISSION = 20000;//破阵诛仙任务
|
||||
int JADE_DYNASTY_SHOP = 20001;//破阵诛仙限时商市
|
||||
int JADE_DYNASTY_RARE_SHOP = 20002;//破阵诛仙珍奇宝阁
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum;
|
||||
import config.SGlobalActivity;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -50,7 +49,11 @@ public enum ActivityTypeEnum {
|
|||
COPY_PASS(ActivityType.COPY_PASS,ChapterRewardActivity::new),
|
||||
NEW_EIGHT_LOGIN(ActivityType.NEW_EIGHT_LOGIN,NewEightActivity::new),
|
||||
BEAUTY_BAG(ActivityType.BEAUTY_BAG,LimitRandomCardActivity::new),
|
||||
SIGN_BOX(ActivityType.SIGN_BOX,SignInSumActivity::new)
|
||||
SIGN_BOX(ActivityType.SIGN_BOX,SignInSumActivity::new),
|
||||
JADE_DYNASTY_RECHARGE_SUM(ActivityType.JADE_DYNASTY_RECHARGE_SUM, RechargeSumActivity::new),
|
||||
JADE_DYNASTY_MISSION(ActivityType.JADE_DYNASTY_MISSION, JadeDynastyTaskActivity::new),
|
||||
JADE_DYNASTY_SHOP(ActivityType.JADE_DYNASTY_SHOP, DefaultEmptyActivity::new),
|
||||
JADE_DYNASTY_RARE_SHOP(ActivityType.JADE_DYNASTY_RARE_SHOP, DefaultEmptyActivity::new),
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import config.SGlobalActivity;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class JadeDynastyTaskActivity extends AbstractActivity {
|
||||
|
||||
public JadeDynastyTaskActivity(int id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume(User user) throws Exception {
|
||||
LOGGER.info("[破阵诛仙任务活动刷新] [uid:{}] [activityId:{}]",user.getId(),id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JADE_DYNASTY_REFRESH, id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JADE_DYNASTY_WEEK_REFRESH, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
|
||||
LOGGER.info("[破阵诛仙任务活动] [初始化玩家数据] [uid:{}] [activityId:{}]",user.getId(),this.id);
|
||||
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JADE_DYNASTY_REFRESH, sGlobalActivity.getId());
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JADE_DYNASTY_WEEK_REFRESH, sGlobalActivity.getId());
|
||||
//这个活动只有任务奖励
|
||||
ActivityMission activityMission = new ActivityMission();
|
||||
ActivityLogic.getInstance().initOtherMission(activityMission,Collections.emptyList());
|
||||
user.getActivityManager().getActivityMissionMap().put(sGlobalActivity.getId(), activityMission);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -33,8 +33,8 @@ class SecretExpectRankActivity extends ExpectRankActivity {
|
|||
public void initActivity(User user) throws Exception {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
List<Integer> listValue = new ArrayList<>();
|
||||
listValue.add(36);//额外购买次数
|
||||
listValue.add(37);//额外免费次数
|
||||
listValue.add(153);//额外购买次数
|
||||
listValue.add(154);//额外免费次数
|
||||
Set<Integer> changedSet = new HashSet<>();
|
||||
long endTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(), sGlobalActivity.getEndTimeLong(), sGlobalActivity.getTime(), 0, 2);
|
||||
int time = (int)(endTime / 1000);
|
||||
|
|
|
@ -120,6 +120,8 @@ public class CumulationData {
|
|||
|
||||
public int rechargeTotal; //累計充值
|
||||
|
||||
public int rechargeTimes; //充值次数
|
||||
|
||||
public int refreshMrTimes; //刷新迷宫寻宝次数
|
||||
|
||||
public int especialEquipMaxLeve; //法宝最高等级达到5
|
||||
|
|
|
@ -53,6 +53,7 @@ public class UserMissionManager extends MongoBase {
|
|||
private BloodyMissionIdsType bloodyMissionIdsType =new BloodyMissionIdsType();
|
||||
private MissingRoomMissionType missingRoomMissionType = new MissingRoomMissionType();
|
||||
private AchieveMissionIdsType achievementMissionTypMap = new AchieveMissionIdsType();
|
||||
private JadeDynastyMissionType jadeDynastyMissionType = new JadeDynastyMissionType();//破阵诛仙任务
|
||||
|
||||
//数据累加项
|
||||
private CumulationData cumulationData = new CumulationData();
|
||||
|
@ -64,6 +65,8 @@ public class UserMissionManager extends MongoBase {
|
|||
private CumulationData treasureMonthCumulationData = new CumulationData();
|
||||
private CumulationData sevenHappyCumulationData = new CumulationData();
|
||||
private CumulationData achievementMap = new CumulationData();
|
||||
private CumulationData jadeDynastyCumulationData = new CumulationData();//破阵诛仙日数据
|
||||
private CumulationData jadeDynastyWeekCumulationData = new CumulationData();//破阵诛仙周数据
|
||||
|
||||
//触发任务上身
|
||||
public void openMission(User user,GameEvent event,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap, Object... parm) throws Exception {
|
||||
|
@ -93,7 +96,8 @@ public class UserMissionManager extends MongoBase {
|
|||
updateString("dailyMissionIdsType",dailyMissionIdsType);
|
||||
break;
|
||||
case TREASH_REFRESH:
|
||||
int[] refreshIds =resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
|
||||
int activityId = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
int[] refreshIds = resetTreasureTaskInfo(1,activityId,missionTypeEnumListMap,treasureCumulationData);
|
||||
treasureCumulationData = new CumulationData();
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, 0,false)/1000);
|
||||
CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime);
|
||||
|
@ -101,7 +105,8 @@ public class UserMissionManager extends MongoBase {
|
|||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true);
|
||||
break;
|
||||
case TREASH_WEEK_REFRESH:
|
||||
int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||
int aId = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
int[] weekRefreshIds = resetTreasureTaskInfo(2,aId,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||
if(weekRefreshIds != null){
|
||||
treasureWeekCumulationData = new CumulationData();
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
|
@ -112,6 +117,7 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
break;
|
||||
case TREASH_MONTH_REFRESH:
|
||||
int aid = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
user.getPlayerInfoManager().setTreasureLevel(0);
|
||||
Item item = user.getItemManager().getItem(Global.TREASURE_SCORE);
|
||||
if(item!=null){
|
||||
|
@ -126,7 +132,7 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
}
|
||||
treasureMonthCumulationData = new CumulationData();
|
||||
int[] monthRefreshIds1 = resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData);
|
||||
int[] monthRefreshIds1 = resetTreasureTaskInfo(3,aid,missionTypeEnumListMap,treasureMonthCumulationData);
|
||||
|
||||
// CommonProto.RefreshTask.Builder task3 = treasureIndicationBuild(1, dailyRefreshIds1);
|
||||
// CommonProto.RefreshTask.Builder task4 = treasureIndicationBuild(2, weekRefreshIds1);
|
||||
|
@ -134,6 +140,26 @@ public class UserMissionManager extends MongoBase {
|
|||
PlayerInfoProto.TreasureRefreshIndication indication3 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task5.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication3,true);
|
||||
break;
|
||||
case JADE_DYNASTY_REFRESH:
|
||||
int jadeAId = (int) parm[0];//当前轮次破阵诛仙的活动ID
|
||||
int[] mIds = resetJadeDynastyTaskInfo(1,jadeAId,missionTypeEnumListMap,jadeDynastyCumulationData);
|
||||
jadeDynastyCumulationData = new CumulationData();
|
||||
int nextRefreshTime= (int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, 0,false)/1000);
|
||||
CommonProto.RefreshTask.Builder t = treasureIndicationBuild(1, mIds).setRefreshTime(nextRefreshTime);
|
||||
PlayerInfoProto.JadeDynastyRefreshIndication indi = PlayerInfoProto.JadeDynastyRefreshIndication.newBuilder().addTasks(t.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.JADE_DYNASTY_REFRESH_INDICATION_VALUE,indi,true);
|
||||
break;
|
||||
case JADE_DYNASTY_WEEK_REFRESH:
|
||||
int jadeAid = (int) parm[0];//当前轮次破阵诛仙的活动ID
|
||||
int[] weekMIds = resetJadeDynastyTaskInfo(2,jadeAid,missionTypeEnumListMap,jadeDynastyWeekCumulationData);
|
||||
if(weekMIds != null){
|
||||
jadeDynastyWeekCumulationData = new CumulationData();
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekMIds).setRefreshTime(weekRefreshTime);
|
||||
PlayerInfoProto.JadeDynastyRefreshIndication indication2 = PlayerInfoProto.JadeDynastyRefreshIndication.newBuilder().addTasks(task2.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.JADE_DYNASTY_REFRESH_INDICATION_VALUE,indication2,true);
|
||||
}
|
||||
break;
|
||||
case SERVENHAPPY_REFRESH:
|
||||
List<STreasureTaskConfig> sTreasureTaskConfigs = null;
|
||||
sTreasureTaskConfigs = STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureTaskConfigListByActivityMap().get((int) parm[0]);
|
||||
|
@ -296,6 +322,11 @@ public class UserMissionManager extends MongoBase {
|
|||
updateString("treasureMissionIdsType",treasureMissionIdsType);
|
||||
}
|
||||
break;
|
||||
case JADE_DYNASTY_MISSION_REWARD:{
|
||||
jadeDynastyMissionType.rewardMission(user, (int) parm[0], missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION), jadeDynastyCumulationData);
|
||||
updateString("jadeDynastyMissionType",jadeDynastyMissionType);
|
||||
}
|
||||
break;
|
||||
case ACHIEVE_REWARD:{
|
||||
int missId = (int)parm[0];
|
||||
achievementMissionTypMap.rewardMission(missId, missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION));
|
||||
|
@ -404,6 +435,26 @@ public class UserMissionManager extends MongoBase {
|
|||
|
||||
}
|
||||
}
|
||||
if(!jadeDynastyMissionType.getDoingMissionIds().isEmpty() ){
|
||||
List<SThemeActivityTaskConfig> sThemeActivityTaskConfigs = SThemeActivityTaskConfig.sThemeTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue());
|
||||
if(sThemeActivityTaskConfigs!=null){
|
||||
CumulationData.Result result = jadeDynastyCumulationData.updateData(missionType, parm);
|
||||
CumulationData.Result weekResult = jadeDynastyWeekCumulationData.updateData(missionType, parm);
|
||||
if(result!=null){
|
||||
result.setMissionTimeType(1);
|
||||
jadeDynastyMissionType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION),jadeDynastyCumulationData);
|
||||
updateString("jadeDynastyCumulationData",jadeDynastyCumulationData);
|
||||
updateString("jadeDynastyMissionType",jadeDynastyMissionType);
|
||||
}
|
||||
if(weekResult!=null){
|
||||
weekResult.setMissionTimeType(2);
|
||||
jadeDynastyMissionType.calCumulationDataResult(user,weekResult,missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION),jadeDynastyWeekCumulationData);
|
||||
updateString("jadeDynastyWeekCumulationData",jadeDynastyWeekCumulationData);
|
||||
updateString("jadeDynastyMissionType",jadeDynastyMissionType);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(!sevenHappyMissionType.getDoingMissionIds().isEmpty() ){
|
||||
List<STreasureTaskConfig> sTreasureTaskConfigs = STableManager.getFigureConfig(TaskStaticConfig.class).getsTreasureTaskConfigListByTypeMap().get(missionType.getMissionTypeValue());
|
||||
|
@ -443,37 +494,49 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
|
||||
|
||||
private int[] resetTreasureTaskInfo(int type,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData treasureCumulationData){
|
||||
private int[] resetTreasureTaskInfo(int type, int activityId, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData treasureCumulationData){
|
||||
//周刷新检测
|
||||
if(type==2){
|
||||
if(treasureMissionIdsType.getWeekRefresh()!=0&&!TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(),TimeUtils.now(),1,5)){
|
||||
return null;
|
||||
}
|
||||
treasureMissionIdsType.setWeekRefresh(TimeUtils.now());
|
||||
if (type == 2) {
|
||||
if (treasureMissionIdsType.getWeekRefresh() != 0 && !TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(), TimeUtils.now(), 1, 5)) {
|
||||
return null;
|
||||
}
|
||||
int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS);
|
||||
List<Integer> taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type);
|
||||
for(Integer treasure:taskTypeMap){
|
||||
if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){
|
||||
treasureMissionIdsType.getDoingMissionIds().remove(treasure);
|
||||
treasureMissionIdsType.setWeekRefresh(TimeUtils.now());
|
||||
}
|
||||
//int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS);
|
||||
List<Integer> taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type);
|
||||
List<Integer> newTasks = new ArrayList<>();
|
||||
for (Integer treasure : taskTypeMap) {
|
||||
STreasureSunlongTaskConfig config = STreasureSunlongTaskConfig.treasureTaskConfig.get(treasure);
|
||||
//需要判断这个任务是不是当前轮次的
|
||||
if (config.getActivityId() == activityId) {
|
||||
newTasks.add(treasure);
|
||||
}
|
||||
if(treasureMissionIdsType.getFinishMissionIds().contains(treasure)){
|
||||
if (treasureMissionIdsType.getDoingMissionIds().contains(treasure)) {
|
||||
treasureMissionIdsType.getDoingMissionIds().remove(treasure);
|
||||
}
|
||||
if (treasureMissionIdsType.getFinishMissionIds().contains(treasure)) {
|
||||
treasureMissionIdsType.getFinishMissionIds().remove(treasure);
|
||||
}
|
||||
if(treasureMissionIdsType.getRewardedMissionIds().get(treasure)){
|
||||
if (treasureMissionIdsType.getRewardedMissionIds().get(treasure)) {
|
||||
treasureMissionIdsType.getRewardedMissionIds().clear(treasure);
|
||||
}
|
||||
}
|
||||
int[][] randomTask = new int[taskTypeMap.size()][];
|
||||
/*
|
||||
戒灵秘宝之前的任务刷新逻辑是,不关联活动ID
|
||||
每次刷新任务从表里配的里边随机出SpecialConfig中配置的活动数量
|
||||
现在更改为,不随机,关联活动ID 2020.08.20
|
||||
*/
|
||||
/*int[][] randomTask = new int[taskTypeMap.size()][];
|
||||
for(int i = 0 ; i<randomTask.length;i++){
|
||||
int [] temp=new int[2];
|
||||
temp[0] = taskTypeMap.get(i);
|
||||
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight();
|
||||
randomTask[i] = temp;
|
||||
}
|
||||
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,Math.max(typeMissionNum[type-1],randomTask.length));// typeMissionNum[type-1]
|
||||
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,Math.max(typeMissionNum[type-1],randomTask.length));*/// typeMissionNum[type-1]
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
|
||||
for(Integer task:tasks){
|
||||
int[] tasks = new int[newTasks.size()];
|
||||
for(Integer task:newTasks){
|
||||
missionStateChangeInfos.add(new MissionStateChangeInfo(task, MissionState.DOING,0));
|
||||
treasureMissionIdsType.getDoingMissionIds().add(task);
|
||||
}
|
||||
|
@ -490,6 +553,45 @@ public class UserMissionManager extends MongoBase {
|
|||
return tasks;
|
||||
}
|
||||
|
||||
private int[] resetJadeDynastyTaskInfo(int type, int activityId, Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData jadeDynastyCumulationData){
|
||||
//周刷新检测
|
||||
if (type == 2) {
|
||||
if (jadeDynastyMissionType.getWeekRefresh() != 0 && !TimeUtils.isSpanTime(jadeDynastyMissionType.getWeekRefresh(), TimeUtils.now(), 1, 5)) {
|
||||
return null;
|
||||
}
|
||||
jadeDynastyMissionType.setWeekRefresh(TimeUtils.now());
|
||||
}
|
||||
List<Integer> taskTypeMap = SThemeActivityTaskConfig.taskTypeMap.get(type);
|
||||
List<Integer> newTasks = new ArrayList<>();
|
||||
for (Integer treasure : taskTypeMap) {
|
||||
SThemeActivityTaskConfig config = SThemeActivityTaskConfig.idTaskConfig.get(treasure);
|
||||
//需要判断这个任务是不是当前轮次的
|
||||
if (config.getActivityId() == activityId) {
|
||||
newTasks.add(treasure);
|
||||
}
|
||||
jadeDynastyMissionType.getDoingMissionIds().remove(treasure);
|
||||
jadeDynastyMissionType.getFinishMissionIds().remove(treasure);
|
||||
if (jadeDynastyMissionType.getRewardedMissionIds().get(treasure)) {
|
||||
jadeDynastyMissionType.getRewardedMissionIds().clear(treasure);
|
||||
}
|
||||
}
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION);
|
||||
int[] tasks = new int[newTasks.size()];
|
||||
for (int i = 0; i < newTasks.size(); i++) {
|
||||
missionStateChangeInfos.add(new MissionStateChangeInfo(newTasks.get(i), MissionState.DOING,0));
|
||||
jadeDynastyMissionType.getDoingMissionIds().add(newTasks.get(i));
|
||||
tasks[i] = newTasks.get(i);
|
||||
}
|
||||
jadeDynastyCumulationData = new CumulationData();
|
||||
updateString("jadeDynastyMissionType",jadeDynastyMissionType);
|
||||
if(type==1){
|
||||
updateString("jadeDynastyCumulationData",jadeDynastyCumulationData);
|
||||
}else if(type==2){
|
||||
updateString("jadeDynastyWeekCumulationData",jadeDynastyCumulationData);
|
||||
}
|
||||
return tasks;
|
||||
}
|
||||
|
||||
private CommonProto.RefreshTask.Builder treasureIndicationBuild(int type,int[] refreshIds){
|
||||
CommonProto.RefreshTask.Builder task = CommonProto.RefreshTask.newBuilder().setType(type);
|
||||
for(int i = 0;i<refreshIds.length;i++){
|
||||
|
@ -533,6 +635,8 @@ public class UserMissionManager extends MongoBase {
|
|||
return treasureCumulationData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ServenMissionIdsType getSevenHappyMissionType() {
|
||||
return sevenHappyMissionType;
|
||||
}
|
||||
|
@ -573,4 +677,16 @@ public class UserMissionManager extends MongoBase {
|
|||
public CumulationData getAchievementMap() {
|
||||
return achievementMap;
|
||||
}
|
||||
|
||||
public JadeDynastyMissionType getJadeDynastyMissionType() {
|
||||
return jadeDynastyMissionType;
|
||||
}
|
||||
|
||||
public CumulationData getJadeDynastyCumulationData() {
|
||||
return jadeDynastyCumulationData;
|
||||
}
|
||||
|
||||
public CumulationData getJadeDynastyWeekCumulationData() {
|
||||
return jadeDynastyWeekCumulationData;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ public enum GameEvent {
|
|||
CARD_RANDWM,// 使用普通召唤num次 (十连抽num计10)
|
||||
GUILD_GIVE,//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次
|
||||
TEN_CHALLENGE,//挑战十绝阵num次 //TODO
|
||||
// SIX_RANDOM,//使用6灵阁召唤num次
|
||||
// SIX_RANDOM,//使用6灵阁召唤num次
|
||||
EXPEDITION_FINISH,//猎妖之路通过第floor层的首领节点(每层最多一个)num次
|
||||
DESPOSE_HERO,//分解英雄
|
||||
DEATH_PATH,//击杀过关十绝阵num次//TODO
|
||||
|
@ -101,4 +101,8 @@ public enum GameEvent {
|
|||
GOT_SOUL_MARK,//获取魂印事件
|
||||
CHAMPIONSHIP_RANK,//巅峰联赛排名
|
||||
PLAY_MINI_GAME,//参与森罗幻境小游戏
|
||||
|
||||
JADE_DYNASTY_REFRESH,//破阵诛仙任务日刷新
|
||||
JADE_DYNASTY_WEEK_REFRESH,//破阵诛仙周刷新
|
||||
JADE_DYNASTY_MISSION_REWARD,//破阵诛仙周刷新
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ public enum GameMisionType {
|
|||
BLOODYMISSION(7),
|
||||
MISSINGROOMMISSION(8),
|
||||
ACHIEVEMISSION(9),
|
||||
JADE_DYNASTY_MISSION(10),//破阵诛仙任务
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
|
|
@ -54,6 +54,7 @@ public class MissionLoigc {
|
|||
getBloodyMisison(user,missionList);
|
||||
getMissingRoomMission(user,missionList);
|
||||
getAchieveMission(user,missionList);
|
||||
getJadeDynastyMission(user, missionList);
|
||||
PlayerInfoProto.GetMissionResponse build = PlayerInfoProto.GetMissionResponse.newBuilder().addAllUserMissionInfo(missionList).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_MISSION_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
@ -199,6 +200,39 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
private static void getJadeDynastyMission(User user, List<CommonProto.UserMissionInfo> missionList) {
|
||||
JadeDynastyMissionType jadeDynastyMissionType = user.getUserMissionManager().getJadeDynastyMissionType();
|
||||
CumulationData jadeDynastyCumulationData = user.getUserMissionManager().getJadeDynastyCumulationData();
|
||||
CumulationData jadeDynastyWeekCumulationData = user.getUserMissionManager().getJadeDynastyWeekCumulationData();
|
||||
|
||||
int jadeMissionType = GameMisionType.JADE_DYNASTY_MISSION.getType();
|
||||
for(Integer id:jadeDynastyMissionType.getDoingMissionIds()){
|
||||
SThemeActivityTaskConfig config = SThemeActivityTaskConfig.idTaskConfig.get(id);
|
||||
int progress = config.getTaskValue()[1][0];
|
||||
switch (config.getType()){
|
||||
case 1:
|
||||
progress = getDoingProgress(user,jadeDynastyCumulationData,config.getTaskType(),config.getTaskValue()[0]);
|
||||
break;
|
||||
case 2:
|
||||
progress = getDoingProgress(user,jadeDynastyWeekCumulationData,config.getTaskType(),config.getTaskValue()[0]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(id).setState(0).setType(jadeMissionType).setProgress(progress).setTakeTimes(0).build());
|
||||
}
|
||||
for(Integer id:jadeDynastyMissionType.getFinishMissionIds()){
|
||||
STreasureSunlongTaskConfig config = STreasureSunlongTaskConfig.treasureTaskConfig.get(id);
|
||||
int progress = config.getTaskValue()[1][0];
|
||||
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(id).setState(1).setType(jadeMissionType).setProgress(progress).setTakeTimes(0).build());
|
||||
}
|
||||
for(Map.Entry<Integer,STreasureSunlongTaskConfig> taskId:STreasureSunlongTaskConfig.treasureTaskConfig.entrySet()){
|
||||
if(jadeDynastyMissionType.getRewardedMissionIds().get(taskId.getKey())){
|
||||
missionList.add(CommonProto.UserMissionInfo.newBuilder().setMissionId(taskId.getKey()).setState(2).setType(jadeMissionType).setProgress(taskId.getValue().getTaskValue()[1][0]).setTakeTimes(0).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void getDailyMission(User user,List<CommonProto.UserMissionInfo> missionList){
|
||||
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||
|
@ -425,6 +459,19 @@ public class MissionLoigc {
|
|||
}
|
||||
}
|
||||
|
||||
if(type == GameMisionType.JADE_DYNASTY_MISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.JADE_DYNASTY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.JADE_DYNASTY_MISSION);
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
||||
Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,"");
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD);
|
||||
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(type == GameMisionType.SEVENMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.SEVENHAPPY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.SEVENMISSION);
|
||||
|
@ -439,7 +486,6 @@ public class MissionLoigc {
|
|||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.ACHIEVEMISSION);
|
||||
}
|
||||
|
||||
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD);
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,missionId);
|
||||
|
|
|
@ -99,6 +99,7 @@ public enum MissionType {
|
|||
|
||||
LUCKY_WHEELS_TIMES(83),//幸运探宝%次
|
||||
FINISH_EXPEDITION_HERO_TIMES(84),//完成猎妖之路次数达到
|
||||
|
||||
SEVEN_GIFT_BUY(86),//购买7日狂欢福利礼包%s次七日狂欢积分
|
||||
FINISIN_DAILY_CHALLENGE_TIMES(87),//完成%s类型(0为不限类型)的日常副本%s次
|
||||
|
||||
|
@ -117,14 +118,11 @@ public enum MissionType {
|
|||
|
||||
GOT_ANY_ITEM(109),//暂时不实现,占位,任意途径获得quality品质(无品质限定为0)type类别(无类别限制为-1)的itemid道具(无指定道具限定为0)num个
|
||||
|
||||
//110-累计n天挑战车迟斗法 --类型105已实现
|
||||
ARENA_CONSECUTIVE_WIN(111),//竞技场连胜
|
||||
PLAY_MINI_GAME_TIMES(112),//森罗幻境中参与n次小游戏
|
||||
CHAMPIONSHIP_RANK(113),//巅峰联赛中达到num名
|
||||
//114-天宫寻宝中接取任意星级任务n次 --类型76已实现
|
||||
GOT_SOUL_MARK(115),//获得指定品质魂印数量
|
||||
//117-累计探索森罗幻境num层 --类型32已实现
|
||||
//118-充值达到num金额 --类型74已实现
|
||||
RECHARGE_TIMES(117),//充值任意金额次数
|
||||
;
|
||||
|
||||
private int missionType;
|
||||
|
|
|
@ -111,6 +111,7 @@ public class DataManagerDistributor {
|
|||
judges.put(MissionType.FRIEND_APPLY,new FriendApplyManager());
|
||||
|
||||
judges.put(MissionType.REARGE_TOTAL,new RechargeTotalManger());
|
||||
judges.put(MissionType.RECHARGE_TIMES,new RechargeTimesManager());
|
||||
judges.put(MissionType.FINISH_MISSING_ROOM,new FinishMissionRoomManager());
|
||||
judges.put(MissionType.REFRESH_MISSING_ROOM,new RefreshMissionRoomMamager());
|
||||
judges.put(MissionType.SPECIAL_EQUIP_LEVEL_UP,new EspecialEquipLeveMamager());
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
/**
|
||||
* @author lilei
|
||||
* @create 2020-08-20 18:08
|
||||
* @description
|
||||
*/
|
||||
public class RechargeTimesManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
CumulationData.Result result = null;
|
||||
if (missionType == MissionType.RECHARGE_TIMES) {
|
||||
data.rechargeTimes++;
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return data.rechargeTimes>=cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getProcess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.rechargeTimes;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.ljsd.jieling.logic.mission.event;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.GameMisionType;
|
||||
import com.ljsd.jieling.logic.mission.main.MissionStateChangeInfo;
|
||||
|
||||
import java.util.List;
|
||||
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 {
|
||||
user.getUserMissionManager().openMission(user,event,misionTypeListMap,parm);
|
||||
}
|
||||
}
|
|
@ -39,6 +39,8 @@ public class MissionEventDistributor {
|
|||
eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess());
|
||||
eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess());
|
||||
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_REFRESH,new JadeDynastyRefreshEventProcess());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_WEEK_REFRESH,new JadeDynastyRefreshEventProcess());
|
||||
|
||||
|
||||
List<MissionType> typeList = new ArrayList<>();
|
||||
|
@ -189,6 +191,7 @@ public class MissionEventDistributor {
|
|||
eventProcessor.put(GameEvent.BLOODY_MISSION_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.MISSING_ROOM_MISSION_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.ACHIEVE_REWARD,new RewardEventProcessor());
|
||||
eventProcessor.put(GameEvent.JADE_DYNASTY_MISSION_REWARD,new RewardEventProcessor());
|
||||
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
|
@ -312,6 +315,7 @@ public class MissionEventDistributor {
|
|||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.REARGE_TOTAL);
|
||||
typeList.add(MissionType.RECHARGE_TIMES);
|
||||
eventEnumListMap.put(GameEvent.RECHARGE_TOTAL,typeList);
|
||||
eventProcessor.put(GameEvent.RECHARGE_TOTAL,new CumulationDataEventProcessor());
|
||||
|
||||
|
@ -440,6 +444,7 @@ public class MissionEventDistributor {
|
|||
missionTypeEnumListMap.put(GameMisionType.BLOODYMISSION, new ArrayList<>());
|
||||
missionTypeEnumListMap.put(GameMisionType.MISSINGROOMMISSION, new ArrayList<>());
|
||||
missionTypeEnumListMap.put(GameMisionType.ACHIEVEMISSION, new ArrayList<>());
|
||||
missionTypeEnumListMap.put(GameMisionType.JADE_DYNASTY_MISSION, new ArrayList<>());
|
||||
|
||||
|
||||
} else {
|
||||
|
@ -452,6 +457,7 @@ public class MissionEventDistributor {
|
|||
missionTypeEnumListMap.get(GameMisionType.BLOODYMISSION).clear();
|
||||
missionTypeEnumListMap.get(GameMisionType.MISSINGROOMMISSION).clear();
|
||||
missionTypeEnumListMap.get(GameMisionType.ACHIEVEMISSION).clear();
|
||||
missionTypeEnumListMap.get(GameMisionType.JADE_DYNASTY_MISSION).clear();
|
||||
|
||||
|
||||
}
|
||||
|
@ -488,7 +494,7 @@ public class MissionEventDistributor {
|
|||
if(gameMisionType==GameMisionType.MISSINGROOMMISSION){
|
||||
continue;
|
||||
}
|
||||
if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION|| gameMisionType == GameMisionType.ACHIEVEMISSION){
|
||||
if(gameMisionType == GameMisionType.COPYMISSION || gameMisionType == GameMisionType.TREASUREMISSION || gameMisionType == GameMisionType.SEVENMISSION || gameMisionType == GameMisionType.BLOODYMISSION|| gameMisionType == GameMisionType.ACHIEVEMISSION || gameMisionType == GameMisionType.JADE_DYNASTY_MISSION){
|
||||
progress = missionStateChangeInfo.getProgress();
|
||||
}
|
||||
if(missionState == MissionState.DOING){
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
package com.ljsd.jieling.logic.mission.main;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.SThemeActivityTaskConfig;
|
||||
import config.STreasureSunlongTaskConfig;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class JadeDynastyMissionType extends AbstractMissionType{
|
||||
|
||||
private long weekRefresh;
|
||||
|
||||
public long getWeekRefresh() {
|
||||
return weekRefresh;
|
||||
}
|
||||
|
||||
public void setWeekRefresh(long weekRefresh) {
|
||||
this.weekRefresh = weekRefresh;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openMission(User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumList) {
|
||||
|
||||
}
|
||||
|
||||
public void rewardMission(User user,int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap, CumulationData cumulationData) throws Exception {
|
||||
SThemeActivityTaskConfig taskConfig = SThemeActivityTaskConfig.idTaskConfig.get(missionId);
|
||||
if(taskConfig == null){return;}
|
||||
if (!getFinishMissionIds().contains(missionId)) {
|
||||
return ;
|
||||
}
|
||||
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral());
|
||||
missionTypeEnumListMap.add(stateChangeInfo);
|
||||
getFinishMissionIds().remove(missionId);
|
||||
getRewardedMissionIds().set(missionId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int[][] reward(int missionId) {
|
||||
return new int[0][];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {
|
||||
|
||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||
List<SThemeActivityTaskConfig> sThemeActivityTaskConfigs = SThemeActivityTaskConfig.sThemeTaskConfigListByTypeMapTmp.get(result.subType.getMissionTypeValue());
|
||||
if(sThemeActivityTaskConfigs == null){
|
||||
return;
|
||||
}
|
||||
for(SThemeActivityTaskConfig sThemeActivityTaskConfig : sThemeActivityTaskConfigs){
|
||||
int id = sThemeActivityTaskConfig.getId();
|
||||
if(!doingMissionIds.contains(sThemeActivityTaskConfig.getId())){
|
||||
continue;
|
||||
}
|
||||
if(sThemeActivityTaskConfig.getType()!=result.getMissionTimeType()){
|
||||
continue;
|
||||
}
|
||||
//完成
|
||||
int finishParm = sThemeActivityTaskConfig.getTaskValue()[1][0];
|
||||
|
||||
boolean isFinish;
|
||||
int doingProgress;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(sThemeActivityTaskConfig.getTaskType()));
|
||||
if(missTypeData instanceof AbstractDataManager &&((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sThemeActivityTaskConfig.getTaskValue())){
|
||||
doingProgress = ((AbstractDataManager) missTypeData).getProcess(user,cumulationData,sThemeActivityTaskConfig.getTaskValue()[0]);
|
||||
isFinish=true;
|
||||
}else {
|
||||
doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sThemeActivityTaskConfig.getTaskType(), sThemeActivityTaskConfig.getTaskValue()[0]);
|
||||
isFinish =doingProgress>=finishParm;
|
||||
}
|
||||
|
||||
if( isFinish){
|
||||
doingMissionIds.remove(id);
|
||||
getFinishMissionIds().add(id);
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.FINISH,doingProgress,0);
|
||||
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||
continue;
|
||||
}
|
||||
if(finishParm<0){
|
||||
continue;
|
||||
}
|
||||
int sendProgress = doingProgress;
|
||||
if(sendProgress>=finishParm){
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.FINISH,sendProgress,0);
|
||||
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||
}else{
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.DOING,sendProgress,0);
|
||||
missionStateChangeInfos.add(missionStateChangeInfo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -267,6 +267,7 @@ public class BuyGoodsLogic {
|
|||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.LUCKYCAT,price);
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.DAILY_RECHARGE,price);
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_NUM,price);
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.JADE_DYNASTY_RECHARGE_SUM,price);
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.RECHARGE_SUM_DAY, user.getPlayerInfoManager().getRechargedaily());
|
||||
ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.FIND_FAIRY_FESTIVAL, price);
|
||||
|
||||
|
@ -293,6 +294,13 @@ public class BuyGoodsLogic {
|
|||
|
||||
rechargeInfo.updateBuyGoodsTimes(goodsId,buyCount);
|
||||
|
||||
if (goodsId == GlobalsDef.DAILY_GOODS_FAST_ID) {
|
||||
//每日礼包一键购买之后,把所有单个的每日礼包的购买次数加一
|
||||
for (int gId : GlobalsDef.DAILY_RECHARGE_IDS) {
|
||||
rechargeInfo.updateBuyGoodsTimes(gId,1);
|
||||
}
|
||||
}
|
||||
|
||||
ISession session = OnlineUserManager.getSessionByUid(uid);
|
||||
//特殊礼包次数
|
||||
if(sRechargeCommodityConfig.getTime()==4&&(sRechargeCommodityConfig.getDiscountType().length==3||sRechargeCommodityConfig.getDiscountType().length==4)){
|
||||
|
@ -451,6 +459,9 @@ public class BuyGoodsLogic {
|
|||
if(goodsType == GiftGoodsType.SUN_LONG){
|
||||
user.getPlayerInfoManager().setHadBuyTreasure(1);
|
||||
}
|
||||
if (sRechargeCommodityConfig.getId() == GlobalsDef.DAILY_GOODS_FAST_ID) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isHadBought( Map<Integer, Integer> buyGoodsTimes,int giftGoodsType){
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
package config;
|
||||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="ThemeActivityTaskConfig")
|
||||
public class SThemeActivityTaskConfig implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int activityId;
|
||||
|
||||
private int type;
|
||||
|
||||
private int taskType;
|
||||
|
||||
private int[][] taskValue;
|
||||
|
||||
private int[][] integral;
|
||||
|
||||
private int weight;
|
||||
|
||||
public static Map<Integer, SThemeActivityTaskConfig> idTaskConfig;
|
||||
|
||||
public static Map<Integer, List<Integer>> taskTypeMap;
|
||||
|
||||
public static Map<Integer,List<SThemeActivityTaskConfig>> sThemeTaskConfigListByTypeMapTmp;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
idTaskConfig = STableManager.getConfig(SThemeActivityTaskConfig.class);
|
||||
taskTypeMap = new HashMap<>();
|
||||
sThemeTaskConfigListByTypeMapTmp = new HashMap<>();
|
||||
for(Map.Entry<Integer, SThemeActivityTaskConfig> entry:idTaskConfig.entrySet()){
|
||||
SThemeActivityTaskConfig entryValue = entry.getValue();
|
||||
taskTypeMap.computeIfAbsent(entryValue.getType(),v->new ArrayList<>()).add(entry.getKey());
|
||||
sThemeTaskConfigListByTypeMapTmp.computeIfAbsent(entryValue.getTaskType(),v->new ArrayList<>()).add(entryValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getActivityId() {
|
||||
return activityId;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getTaskType() {
|
||||
return taskType;
|
||||
}
|
||||
|
||||
public int[][] getTaskValue() {
|
||||
return taskValue;
|
||||
}
|
||||
|
||||
public int[][] getIntegral() {
|
||||
return integral;
|
||||
}
|
||||
|
||||
public int getWeight() {
|
||||
return weight;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue