TASK 【ID1006339】日常任务及戒灵秘宝调整
parent
03b5acec1d
commit
bc00118998
|
@ -254,5 +254,7 @@ public interface BIReason {
|
||||||
|
|
||||||
int TRIAL_ADD_HP_CONSUME = 1062;//试炼回春散消耗
|
int TRIAL_ADD_HP_CONSUME = 1062;//试炼回春散消耗
|
||||||
|
|
||||||
|
int DAILY_SCORE_CONSUME = 1063;//删除日常任务积分
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1250,13 +1250,13 @@ public class ActivityLogic implements IEventHandler{
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getActivityStatusByType(User user,int type){
|
public Set<Integer> getActivityStatusByType(User user,int type){
|
||||||
List<SGlobalActivity> activities = SGlobalActivity.sGlobalActivityMapByType.get(type);
|
List<SGlobalActivity> activities = SGlobalActivity.sGlobalActivityMapByType.get(type);
|
||||||
if(activities.isEmpty()){
|
if(activities.isEmpty()){
|
||||||
return null;
|
return new HashSet<>();
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
Object[] objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).toArray();
|
Set<Integer> objects = activities.stream().filter(n -> user.getActivityManager().getActivityMissionMap().keySet().contains(n.getId())).map(sGlobalActivity -> sGlobalActivity.getId()).collect(Collectors.toSet());
|
||||||
return objects;
|
return objects;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,7 +264,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DAILY_MISSION_REWARD:{
|
case DAILY_MISSION_REWARD:{
|
||||||
dailyMissionIdsType.rewardMission((int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
|
dailyMissionIdsType.rewardMission(user,(int)parm[0], missionTypeEnumListMap.get(GameMisionType.DAILYMISSION));
|
||||||
if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){
|
if(!missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).isEmpty()){
|
||||||
calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]);
|
calCumulationDataResult(user,MissionType.FINSIH_DAYILY_TIMES,missionTypeEnumListMap,(int)parm[0]);
|
||||||
updateString("dailyMissionIdsType",dailyMissionIdsType);
|
updateString("dailyMissionIdsType",dailyMissionIdsType);
|
||||||
|
@ -452,7 +452,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight();
|
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight();
|
||||||
randomTask[i] = temp;
|
randomTask[i] = temp;
|
||||||
}
|
}
|
||||||
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask,typeMissionNum[type-1]);// 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);
|
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
|
||||||
for(Integer task:tasks){
|
for(Integer task:tasks){
|
||||||
treasureMissionIdsType.getDoingMissionIds().add(task);
|
treasureMissionIdsType.getDoingMissionIds().add(task);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.mission.main;
|
package com.ljsd.jieling.logic.mission.main;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||||
|
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||||
|
@ -7,8 +9,10 @@ import com.ljsd.jieling.logic.mission.MissionState;
|
||||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import config.SDailyTasksConfig;
|
import config.SDailyTasksConfig;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -24,9 +28,33 @@ public class DailyMissionIdsType extends AbstractMissionType{
|
||||||
@Override
|
@Override
|
||||||
public int[][] reward(int missionId) {
|
public int[][] reward(int missionId) {
|
||||||
SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||||
|
|
||||||
return sDailyTasksConfigById.getReward();
|
return sDailyTasksConfigById.getReward();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void rewardMission( User user, int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap){
|
||||||
|
if (!getFinishMissionIds().contains(missionId)) {
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
getFinishMissionIds().remove(missionId);
|
||||||
|
getRewardedMissionIds().set(missionId);
|
||||||
|
|
||||||
|
SDailyTasksConfig sDailyTasksConfigById = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||||
|
int[][] reward = sDailyTasksConfigById.getReward();
|
||||||
|
//添加戒灵秘宝奖励
|
||||||
|
MissionStateChangeInfo stateChangeInfo;
|
||||||
|
if(ActivityLogic.getInstance().getActivityStatusByType(user,ActivityType.TREASURE).size()!=0){
|
||||||
|
int[][] mazePoint = sDailyTasksConfigById.getMazePoint();
|
||||||
|
int[][] ints = new int[reward.length + mazePoint.length][];
|
||||||
|
System.arraycopy(reward, 0, ints, 0, reward.length);
|
||||||
|
System.arraycopy(mazePoint, 0, ints, reward.length, mazePoint.length);
|
||||||
|
stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, ints);
|
||||||
|
}else {
|
||||||
|
stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD, reward);
|
||||||
|
}
|
||||||
|
missionTypeEnumListMap.add(stateChangeInfo);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {
|
public void calCumulationDataResult(User user, CumulationData.Result result, List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData) {
|
||||||
|
|
||||||
|
|
|
@ -389,8 +389,13 @@ public class PlayerLogic {
|
||||||
fBuilder.setPlayerBindPhone(CommonProto.PlayerBindPhone.newBuilder().setPhoneNum(phoneBindInfo.getPhoneNum()).setState(phoneBindInfo.getState()).build());
|
fBuilder.setPlayerBindPhone(CommonProto.PlayerBindPhone.newBuilder().setPhoneNum(phoneBindInfo.getPhoneNum()).setState(phoneBindInfo.getState()).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
//清除日清任务道具
|
Item item = user.getItemManager().getItem(Global.DAILY_TASK_REMOVE_ITEM);
|
||||||
user.getItemManager().removeItem(Global.DAILY_TASK_REMOVE_ITEM);
|
if (item != null) {
|
||||||
|
Map<Integer, Integer> dailyScore = new HashMap<>();
|
||||||
|
dailyScore.put(Global.DAILY_TASK_REMOVE_ITEM, item.getItemNum());
|
||||||
|
//清除日清任务道具
|
||||||
|
ItemUtil.itemCost(user, dailyScore, BIReason.DAILY_SCORE_CONSUME, 1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ public class SDailyTasksConfig implements BaseConfig {
|
||||||
|
|
||||||
private int[][] reward;
|
private int[][] reward;
|
||||||
|
|
||||||
|
private int[][] mazePoint;//戒灵秘宝积分
|
||||||
|
|
||||||
public static Map<Integer, SDailyTasksConfig> config;
|
public static Map<Integer, SDailyTasksConfig> config;
|
||||||
public static Map<Integer, List<SDailyTasksConfig>> sTaskConfigByTypeMap;
|
public static Map<Integer, List<SDailyTasksConfig>> sTaskConfigByTypeMap;
|
||||||
|
@ -64,4 +65,8 @@ public class SDailyTasksConfig implements BaseConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int[][] getMazePoint() {
|
||||||
|
return mazePoint;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue