青龙秘宝,新增部分任务类型
parent
e81eeb4cf6
commit
f73829b5d4
|
|
@ -45,4 +45,6 @@ public interface VipPrivilegeType {
|
|||
int SIGN_AGAIN = 1005; //每日签到充值后再领一次
|
||||
int ADVENTURE_ADD_TIME = 2002;//挂机时常增加
|
||||
|
||||
int DRAGON_TREASURE_SUPPLY = 1007;//青龙宝藏每周补给
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,8 +33,9 @@ public class ServerZeroHandler extends BaseHandler {
|
|||
GlobalDataManaager.flushGoodsTimes(user);
|
||||
PlayerLogic.getInstance().sendDayilyMail(user,-1);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
//发送每日孙龙邮件
|
||||
if(user.getPlayerInfoManager().getHadBuyTreasure()!=0){
|
||||
//发送每日孙龙邮件l
|
||||
// 这段暂时注掉,青龙秘宝没有这个需求,防止活动开启后发送错误的邮件
|
||||
/*if(user.getPlayerInfoManager().getHadBuyTreasure()!=0){
|
||||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||
for(Map.Entry<Integer, ActivityMission> entry:activityMissionMap.entrySet()){
|
||||
if(SGlobalActivity.getsGlobalActivityMap().get(entry.getKey()).getType()== ActivityType.TREASURE){
|
||||
|
|
@ -42,7 +43,7 @@ public class ServerZeroHandler extends BaseHandler {
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1246,9 +1246,11 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
int num = 0;
|
||||
int[][] cost= SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_COST);
|
||||
for(int i = level;i>treasureLevel;i--){
|
||||
//这段代码并没有实现每一级相同的购买价格???
|
||||
/*for(int i = level;i>treasureLevel;i--){
|
||||
num+=MathUtils.calABX(i,cost[1]);
|
||||
}
|
||||
}*/
|
||||
num = (int)MathUtils.calABX(level - treasureLevel, cost[1]);
|
||||
int[][] costItems = new int[1][];
|
||||
int[] costTemp = {cost[0][0],num};
|
||||
costItems[0]=costTemp;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.Item;
|
||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.VipInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.store.GiftGoodsType;
|
||||
|
|
@ -16,10 +19,9 @@ import com.ljsd.jieling.protocols.MessageTypeProto;
|
|||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SGlobalActivity;
|
||||
import config.SRechargeCommodityConfig;
|
||||
import config.STreasureSunlongConfig;
|
||||
import config.*;
|
||||
|
||||
import javax.lang.model.type.PrimitiveType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -33,16 +35,19 @@ public class TreasureActivity extends AbstractActivity {
|
|||
|
||||
@Override
|
||||
public void onResume(User user) throws Exception {
|
||||
LOGGER.info("戒灵秘宝日常刷新...");
|
||||
LOGGER.info("青龙秘宝日常刷新...");
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH, id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, id);
|
||||
//TODO 周任务刷新需关联刷新每周补给特权状态,活动开启时同样需要清除之前的特权状态
|
||||
//戒灵秘宝改为青龙秘宝,只有周任务和月任务 2020.8.14
|
||||
//user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
LOGGER.info("戒灵秘宝初始化...");
|
||||
|
||||
LOGGER.info("[青龙秘宝初始化] [uid:{}]",user.getId());
|
||||
if(user.getPlayerInfoManager().getHadBuyTreasure() == 1){
|
||||
LOGGER.info("戒灵秘宝初始化...reset buy");
|
||||
LOGGER.info("[青龙秘宝初始化] [重置秘宝解锁状态] [uid:{}]",user.getId());
|
||||
user.getPlayerInfoManager().setHadBuyTreasure(0);
|
||||
int id=0;
|
||||
for(SRechargeCommodityConfig sRechargeCommodityConfig : SRechargeCommodityConfig.rechargeCommodityConfigMap.values()){
|
||||
|
|
@ -56,7 +61,8 @@ public class TreasureActivity extends AbstractActivity {
|
|||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, sGlobalActivity.getId());
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH, sGlobalActivity.getId());
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, sGlobalActivity.getId());
|
||||
//戒灵秘宝改为青龙秘宝,只有周任务和月任务 2020.8.14
|
||||
//user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, sGlobalActivity.getId());
|
||||
ActivityMission activityMission = new ActivityMission();
|
||||
List<Integer> levels = new ArrayList<>(STreasureSunlongConfig.levelTreasureConfigMap.get(id).keySet());
|
||||
if(levels.contains(0)){
|
||||
|
|
@ -79,20 +85,45 @@ public class TreasureActivity extends AbstractActivity {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 领取活动奖励
|
||||
* @param session
|
||||
* @param user
|
||||
* @param activityId
|
||||
* @param missionId -2:每日补给,-1:全部奖励,其他为特定的奖励
|
||||
* @throws Exception
|
||||
*/
|
||||
private void takeTreasureReward(ISession session, User user, int activityId, int missionId) throws Exception {
|
||||
int rewardResponseValue = MessageTypeProto.MessageType.TAKE_ACTIVITY_REWARD_RESPONSE_VALUE;
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
int changeState = getChangerState(user);
|
||||
List<int[][]> dropList = new ArrayList<>(2);
|
||||
// Set<Integer> missionIds = new HashSet<>();
|
||||
if(missionId==-1){
|
||||
getAllTreasureRewards(user,activityMission,changeState,dropList);
|
||||
}else{
|
||||
if (missionId == -2) {
|
||||
if (user.getPlayerInfoManager().getHadBuyTreasure() == 0) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("请先解锁秘宝"));
|
||||
}
|
||||
boolean received = false;
|
||||
VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(VipPrivilegeType.DRAGON_TREASURE_SUPPLY);
|
||||
if (vipInfo != null) {
|
||||
if (vipInfo.getCount() > 0) {
|
||||
received = true;
|
||||
}
|
||||
}
|
||||
if (received) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("本周补给已领取"));
|
||||
}
|
||||
user.getPlayerInfoManager().updateVipPrivilage(VipPrivilegeType.DRAGON_TREASURE_SUPPLY,1);
|
||||
int[][] rewards = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_REWARD);
|
||||
dropList.add(rewards);
|
||||
} else if (missionId == -1) {
|
||||
getAllTreasureRewards(user, activityMission, changeState, dropList);
|
||||
} else {
|
||||
int state = activityMission.getActivityMissionMap().get(missionId).getState();
|
||||
if(state==changeState||state==ActivityType.FINISH_TAKED){
|
||||
if (state == changeState || state == ActivityType.FINISH_TAKED) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("该奖励已领取过"));
|
||||
}
|
||||
dropByState(dropList,state,changeState,missionId);
|
||||
dropByState(dropList, state, changeState, missionId);
|
||||
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
|
||||
progressInfo.setState(changeState);
|
||||
progressInfo.setProgrss(0);
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ public class CumulationData {
|
|||
|
||||
private int arenaScore;
|
||||
|
||||
|
||||
private int consumeGem ;
|
||||
|
||||
private Map<Integer,Integer> storyFightInfo =new HashMap<>(3);
|
||||
|
|
@ -150,6 +151,14 @@ public class CumulationData {
|
|||
public int car_play_time;//
|
||||
public int car_play_loot_time;//
|
||||
|
||||
//指定品质魂印获取数量
|
||||
private Map<Integer, Integer> qualitySoulMarkMap = new HashMap<>();
|
||||
|
||||
//竞技场连胜,正的代表上一场赢了,负的代表上一场输了
|
||||
private int arenaConsecutiveWin;
|
||||
|
||||
//巅峰联赛名次
|
||||
private int championshipRank;
|
||||
|
||||
public Result updateData(MissionType missionType, Object...parm) throws Exception {
|
||||
return DataManagerDistributor.updateData(this, missionType,parm);
|
||||
|
|
@ -294,4 +303,55 @@ public class CumulationData {
|
|||
public Map<Integer, Integer> getStoryFightInfo() {
|
||||
return storyFightInfo;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getQualitySoulMarkMap() {
|
||||
if (qualitySoulMarkMap == null) {
|
||||
qualitySoulMarkMap = new HashMap<>();
|
||||
}
|
||||
return qualitySoulMarkMap;
|
||||
}
|
||||
|
||||
public void setQualitySoulMarkMap(Map<Integer, Integer> qualitySoulMarkMap) {
|
||||
this.qualitySoulMarkMap = qualitySoulMarkMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加指定品质魂印获取数量
|
||||
* @param quality
|
||||
* @param num
|
||||
*/
|
||||
public void addQualitySoulMarkNum(int quality, int num){
|
||||
if (qualitySoulMarkMap == null) {
|
||||
qualitySoulMarkMap = new HashMap<>();
|
||||
}
|
||||
qualitySoulMarkMap.merge(quality, num, (oldV, newV) -> oldV + newV);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定品质的魂印获得的数量
|
||||
* @param quality
|
||||
* @return
|
||||
*/
|
||||
public int getQualitySoulMarkNum(int quality){
|
||||
if (qualitySoulMarkMap == null) {
|
||||
qualitySoulMarkMap = new HashMap<>();
|
||||
}
|
||||
return qualitySoulMarkMap.getOrDefault(quality,0);
|
||||
}
|
||||
|
||||
public int getArenaConsecutiveWin() {
|
||||
return arenaConsecutiveWin;
|
||||
}
|
||||
|
||||
public void setArenaConsecutiveWin(int arenaConsecutiveWin) {
|
||||
this.arenaConsecutiveWin = arenaConsecutiveWin;
|
||||
}
|
||||
|
||||
public int getChampionshipRank() {
|
||||
return championshipRank;
|
||||
}
|
||||
|
||||
public void setChampionshipRank(int championshipRank) {
|
||||
this.championshipRank = championshipRank;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.TaskStaticConfig;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
|
@ -103,9 +104,10 @@ public class UserMissionManager extends MongoBase {
|
|||
break;
|
||||
case TREASH_WEEK_REFRESH:
|
||||
int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||
if(weekRefreshIds!=null){
|
||||
if(weekRefreshIds != null){
|
||||
treasureWeekCumulationData = new CumulationData();
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
user.getPlayerInfoManager().clearVipCount(VipPrivilegeType.DRAGON_TREASURE_SUPPLY);
|
||||
CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true);
|
||||
|
|
@ -379,15 +381,15 @@ public class UserMissionManager extends MongoBase {
|
|||
if(!treasureMissionIdsType.getDoingMissionIds().isEmpty() ){
|
||||
List<STreasureSunlongTaskConfig> sTreasureTaskConfigs = STreasureSunlongTaskConfig.sTreasureTaskConfigListByTypeMapTmp.get(missionType.getMissionTypeValue());
|
||||
if(sTreasureTaskConfigs!=null){
|
||||
CumulationData.Result result = treasureCumulationData.updateData(missionType, parm);
|
||||
//CumulationData.Result result = treasureCumulationData.updateData(missionType, parm);
|
||||
CumulationData.Result weekResult = treasureWeekCumulationData.updateData(missionType, parm);
|
||||
CumulationData.Result monthResult = treasureMonthCumulationData.updateData(missionType, parm);
|
||||
if(result!=null){
|
||||
/*if(result!=null){
|
||||
result.setMissionTimeType(1);
|
||||
treasureMissionIdsType.calCumulationDataResult(user,result,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureCumulationData);
|
||||
updateString("treasureCumulationData",treasureCumulationData);
|
||||
updateString("treasureMissionIdsType",treasureMissionIdsType);
|
||||
}
|
||||
}*/
|
||||
if(weekResult!=null){
|
||||
weekResult.setMissionTimeType(2);
|
||||
treasureMissionIdsType.calCumulationDataResult(user,weekResult,missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION),treasureWeekCumulationData);
|
||||
|
|
@ -489,6 +491,7 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
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++){
|
||||
|
|
|
|||
|
|
@ -98,4 +98,7 @@ public enum GameEvent {
|
|||
CAR_PLAY,//参与车迟斗法num次.//TODO
|
||||
CAR_PLAY_LOOT,//于车迟斗法中抢夺其他玩家积分num次//TODO
|
||||
|
||||
GOT_SOUL_MARK,//获取魂印事件
|
||||
|
||||
CHAMPIONSHIP_RANK,//巅峰联赛排名
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,6 +114,17 @@ public enum MissionType {
|
|||
CAR_PLAY_LOOT_TIME(106),//于车迟斗法中抢夺其他玩家积分num次
|
||||
RANDOM_All_TIMES(107),//使用募英殿内(即包含魂晶、友情、普通三种方式)任意类型招募武将num次
|
||||
ITEMUSE(108),//消耗代币(道具类型为1特殊类)itemid的数量达到num
|
||||
|
||||
GOT_ANY_ITEM(109),//暂时不实现,占位,任意途径获得quality品质(无品质限定为0)type类别(无类别限制为-1)的itemid道具(无指定道具限定为0)num个
|
||||
|
||||
CAR_PLAY_DAYS(110),//累计n天挑战车迟斗法
|
||||
ARENA_CONSECUTIVE_WIN(111),//竞技场连胜
|
||||
//森罗幻境中参与n次小游戏
|
||||
CHAMPIONSHIP_RANK(113),//巅峰联赛中达到num名
|
||||
//天宫寻宝中接取任意星级任务n次
|
||||
GOT_SOUL_MARK(115),//获得指定品质魂印数量
|
||||
//累计探索森罗幻境n层
|
||||
//充值达到num金额
|
||||
;
|
||||
|
||||
private int missionType;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
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;
|
||||
import config.SItem;
|
||||
import manager.STableManager;
|
||||
|
||||
/**
|
||||
* @author lilei
|
||||
* @create 2020-08-14 20:35
|
||||
* @description 竞技场连胜
|
||||
*/
|
||||
public class ArenaConsecutiveWinManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
CumulationData.Result result = null;
|
||||
int fightResult = (int)parm[0];
|
||||
if (missionType == MissionType.ARENA_CONSECUTIVE_WIN) {
|
||||
if (fightResult == 1) {
|
||||
//大于等于0代表上一场胜利或之前没有挑战过
|
||||
if (data.getArenaConsecutiveWin() >= 0) {
|
||||
data.setArenaConsecutiveWin(data.getArenaConsecutiveWin() + 1);
|
||||
}else{
|
||||
//为负代表上一场输了
|
||||
data.setArenaConsecutiveWin(1);
|
||||
}
|
||||
} else if (data.getArenaConsecutiveWin() > 0) {
|
||||
data.setArenaConsecutiveWin(-data.getArenaConsecutiveWin());
|
||||
}
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
if(data.getArenaConsecutiveWin() < 0) return false;
|
||||
return data.getArenaConsecutiveWin() >= cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getProcess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.getArenaConsecutiveWin() > 0 ? data.getArenaConsecutiveWin() : 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
* @description 巅峰联赛排名
|
||||
* @create 2020-08-17 14:51
|
||||
*/
|
||||
public class ChampionshipRankManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
CumulationData.Result result = null;
|
||||
if (missionType == MissionType.CHAMPIONSHIP_RANK) {
|
||||
int rank = (int)parm[0];
|
||||
if (data.getChampionshipRank() == 0 || data.getChampionshipRank() > rank) {
|
||||
data.setChampionshipRank(rank);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return super.isFinish(user, data, cfgValue, parm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getProcess(User user, CumulationData data, int[] missionSubType) {
|
||||
return super.getProcess(user, data, missionSubType);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
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;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
@ -136,8 +135,10 @@ public class DataManagerDistributor {
|
|||
judges.put(MissionType.RANDOM_All_TIMES,new RandomAllTypeTimes());
|
||||
judges.put(MissionType.ITEMUSE,new ItemUseDataManager());
|
||||
|
||||
judges.put(MissionType.GOT_SOUL_MARK, new GotSoulMarkManager());
|
||||
judges.put(MissionType.ARENA_CONSECUTIVE_WIN, new ArenaConsecutiveWinManager());
|
||||
|
||||
|
||||
judges.put(MissionType.CHAMPIONSHIP_RANK, new ChampionshipRankManager());
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
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;
|
||||
import config.SItem;
|
||||
import manager.STableManager;
|
||||
|
||||
/**
|
||||
* @author lilei
|
||||
* @create 2020-08-14 20:35
|
||||
* @description 获取指定品质魂印任务
|
||||
*/
|
||||
public class GotSoulMarkManager extends AbstractDataManager {
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
CumulationData.Result result = null;
|
||||
int itemId = (int)parm[0];
|
||||
int num = (int)parm[1];
|
||||
if(missionType == MissionType.GOT_SOUL_MARK){
|
||||
data.addQualitySoulMarkNum(STableManager.getConfig(SItem.class).get(itemId).getQuantity(),num);
|
||||
result = new CumulationData.Result(missionType);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return data.getQualitySoulMarkNum(cfgValue[0][0]) >= cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getProcess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.getQualitySoulMarkNum(missionSubType[0]);
|
||||
}
|
||||
}
|
||||
|
|
@ -89,6 +89,7 @@ public class MissionEventDistributor {
|
|||
typeList.add(MissionType.ARENA_CHALLENEGE_NUMS);
|
||||
typeList.add(MissionType.ARENA_SCORE);
|
||||
typeList.add(MissionType.ARENA_FIGHTSUCCES_TIMES);
|
||||
typeList.add(MissionType.ARENA_CONSECUTIVE_WIN);
|
||||
eventEnumListMap.put(GameEvent.ARENA_CHALLENGE,typeList);
|
||||
eventProcessor.put(GameEvent.ARENA_CHALLENGE,new CumulationDataEventProcessor());
|
||||
|
||||
|
|
@ -397,6 +398,16 @@ public class MissionEventDistributor {
|
|||
eventEnumListMap.put(GameEvent.CAR_PLAY_LOOT,typeList);
|
||||
eventProcessor.put(GameEvent.CAR_PLAY_LOOT,new CumulationDataEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.GOT_SOUL_MARK);
|
||||
eventEnumListMap.put(GameEvent.GOT_SOUL_MARK, typeList);
|
||||
eventProcessor.put(GameEvent.GOT_SOUL_MARK, new CumulationDataEventProcessor());
|
||||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.CHAMPIONSHIP_RANK);
|
||||
eventEnumListMap.put(GameEvent.CHAMPIONSHIP_RANK, typeList);
|
||||
eventProcessor.put(GameEvent.CHAMPIONSHIP_RANK, new CumulationDataEventProcessor());
|
||||
|
||||
}
|
||||
|
||||
public static final ThreadLocal<Map<GameMisionType, List<MissionStateChangeInfo>>> threadMissionChangeList =
|
||||
|
|
|
|||
|
|
@ -619,6 +619,8 @@ public class ItemUtil {
|
|||
user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),itemNum);
|
||||
ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),itemNum,reason);
|
||||
}
|
||||
} else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), itemNum);
|
||||
}
|
||||
}
|
||||
if (dropBuilder != null) {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class SSpecialConfig implements BaseConfig {
|
|||
public static final String SUNLONG_DAILYTASKS = "Sunlong_DailyTasks";//孙龙的宝藏每日、每周、每月任务个数
|
||||
public static final String SUNLONG_COST = "Sunlong_Cost";//孙龙的宝藏购买等级
|
||||
public static final String SUNLONG_INTEGRAL = "Sunlong_Integral";//孙龙的宝藏每日积分礼包
|
||||
public static final String SUNLONG_REWARD = "Sunlong_Reward";//孙龙的宝藏礼包\
|
||||
public static final String SUNLONG_REWARD = "Sunlong_Reward";//青龙秘宝每周补给
|
||||
public static final String LAMP_TEXT_SPEED = "lamp_text_speed";//跑马灯速度
|
||||
public static final String TIME_LIMIT_RECRUITMENT_INTEGRAL = "time_limit_recruitment_integral";//限时抽卡一次积分
|
||||
public static final String TIME_LIMIT_RECRUITMENT_FREEINTEGRAL = "time_limit_recruitment_FreeIntegral";//东海寻仙每获得150分赠送一次免费招募
|
||||
|
|
|
|||
|
|
@ -30,6 +30,13 @@ public class STreasureSunlongTaskConfig implements BaseConfig {
|
|||
public static Map<Integer, List<Integer>> taskTypeMap;
|
||||
|
||||
public static Map<Integer,List<STreasureSunlongTaskConfig>> sTreasureTaskConfigListByTypeMapTmp;
|
||||
|
||||
/**
|
||||
* 提出来一本轮配置任务奖励的积分道具的ID
|
||||
* 用来在活动开始的时候,清除玩家背包里上一轮相同的积分道具
|
||||
*/
|
||||
private static int TASK_INTEGRAL;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
treasureTaskConfig = STableManager.getConfig(STreasureSunlongTaskConfig.class);
|
||||
|
|
@ -39,6 +46,9 @@ public class STreasureSunlongTaskConfig implements BaseConfig {
|
|||
STreasureSunlongTaskConfig entryValue = entry.getValue();
|
||||
taskTypeMap.computeIfAbsent(entryValue.getType(),v->new ArrayList<>()).add(entry.getKey());
|
||||
sTreasureTaskConfigListByTypeMapTmp.computeIfAbsent(entryValue.getTaskType(),v->new ArrayList<>()).add(entryValue);
|
||||
if (TASK_INTEGRAL == 0) {
|
||||
TASK_INTEGRAL = entryValue.integral[0][0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -71,5 +81,7 @@ public class STreasureSunlongTaskConfig implements BaseConfig {
|
|||
return weight;
|
||||
}
|
||||
|
||||
|
||||
public static int getTaskIntegral() {
|
||||
return TASK_INTEGRAL;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue