活动:添加弹出礼包每日弹出的逻辑

This commit is contained in:
qiaoxin
2021-06-07 20:26:11 +08:00
parent c2e2d188ff
commit 9817528b26
3 changed files with 481 additions and 336 deletions

View File

@@ -23,6 +23,7 @@ import { ActivityGrowthFundModel, ActivityGrowthFundModelType } from '../db/Acti
import { ActivityBuyRecordsModel } from '../db/ActivityBuyRecords';
import { PopUpShopData } from '../domain/activityField/popUpShopField';
import { ActivityPopUpShopModel } from '../db/ActivityPopUpShop';
import { ActivityPopUpShopRecordModel, ActivityPopUpShopRecordModelType } from '../db/ActivityPopUpShopRecord';
import moment = require("moment");
@@ -590,377 +591,395 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
for (let task of allTaskData) {
if (task.taskType == taskType) {
let popShopData = new PopUpShopData(task, activity.activityId);
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
if (!taskRecord || !taskRecord.isPush) {
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
if (addCount) {
let beginTime = new Date();
let endTime = moment(new Date()).add(task.duration, 'h').toDate();
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
//推送
if (task.condition <= playerRecord.totalCount) {
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
}
} else if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
//推送
// let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, addCount, beginTime, endTime);
// popShopData.setPlayerRecords(playerRecord)
// pushMessage = pushMessage.concat(popShopData);
} else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT) {//每天统计
} else {
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
//推送
if (task.condition <= playerRecord.totalCount) {
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
let beginTime = new Date();
let endTime = moment(new Date()).add(task.duration, 'h').toDate();
if (taskType == TASK_TYPE.ROLE_TERAPH_STAGE_UP) {//只要触发就弹出礼包商店
//推送
let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, count, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
} else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT || taskType == TASK_TYPE.GACHA_QUALITY_COUNT) {//每天统计
let recordDate = moment(new Date()).startOf('d').toDate()
let recordData: ActivityPopUpShopRecordModelType = await ActivityPopUpShopRecordModel.findRecordData(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate)
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, null);
if (recordData && (recordData.count < task.condition) && (recordData.count + addCount >= task.condition)) {//完成当天任务
let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, count, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
await ActivityPopUpShopRecordModel.addRecord(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate, addCount)
} else {
await ActivityPopUpShopRecordModel.addRecord(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate, addCount)
}
} else {
let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType)
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
if (!taskRecord || !taskRecord.isPush) {
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData);
if (addCount) {
if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) {
let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
//推送
if (task.condition <= playerRecord.totalCount) {
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
}
} else {
let playerRecord = await ActivityPopUpShopModel.addTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount);
//推送
if (task.condition <= playerRecord.totalCount) {
playerRecord = await ActivityPopUpShopModel.pushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, beginTime, endTime);
popShopData.setPlayerRecords(playerRecord)
pushMessage = pushMessage.concat(popShopData);
}
}
}
}
if (record) {
await ActivityPopUpShopModel.addTaskRecord(serverId, activity.activityId, roleId, task.id, task.taskType, JSON.stringify(record));
if (record) {
await ActivityPopUpShopModel.addTaskRecord(serverId, activity.activityId, roleId, task.id, task.taskType, JSON.stringify(record));
}
}
}
}
}
}
}
//主线成长基金
if (taskType === TASK_TYPE.BATTLE_MAIN) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
let taskArray = growthFundActivity.unLockItem(parma.warId);
//推送
pushMessage = pushMessage.concat(taskArray);
}
}
//镇念塔成长基金getRoleOnlineInfo
if (taskType === TASK_TYPE.BATTLE_TOWER_LV) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
let taskArray = growthFundActivity.unLockItem(parma.towerLv);
//推送
pushMessage = pushMessage.concat(taskArray);
}
}
//精英成长基金
if (taskType === TASK_TYPE.BATTLE_MAIN_ELITE) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
let taskArray = growthFundActivity.unLockItem(parma.mainEliteWarId);
//推送
pushMessage = pushMessage.concat(taskArray);
}
}
return pushMessage;
}
/**
* 达成任务标准
*
* @param {string} roleId 角色Id
* @param {number} taskType 任务类型
* @param {number} taskParam 任务条件数据
* @param {number} count 数据
* @param {number} parma 参数
*
*/
export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any, recordData?: any): any {
console.log('达成任务标准', roleId, taskType, taskParam, count, paramObj)
let param = splitString(taskParam, '&');
let addCount: number = 0; // 条件是否满足
let record: any = null;
switch (taskType) {
case TASK_TYPE.ROLE_LV://重置数据
addCount = count;
break;
case TASK_TYPE.GUILD_JOIN:
addCount = count;
break;
case TASK_TYPE.LOGIN_SUM:
addCount = count;
break;
case TASK_TYPE.HERO_NUM:
addCount = count;
break;
case TASK_TYPE.HERO_QUALITY_STAR_UP://herocount&quality&star&
addCount = (param[1] == paramObj.quality) && (param[2] == paramObj.star) ? count : 0;
break;
case TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT://herocount&quality&star& {oldQuality, quality: hero.quality}
addCount = (param[1] == paramObj.oldQuality) && (param[2] == paramObj.quality) ? count : 0;
break;
case TASK_TYPE.HERO_QUALITY_WAKE_UP_COUNT://herocount&quality
addCount = (param[1] == paramObj.quality) ? count : 0;
break;
case TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT://herocount&colorStar& colorStar:彩星 1表示觉醒
addCount = (param[1] == paramObj.colorStar) ? count : 0;
break;
case TASK_TYPE.HERO_STAGE_UP://herocount&star&
addCount = (param[1] == paramObj.job) ? count : 0;
break;
case TASK_TYPE.EQUIP_JEWEL_STAGE://count&stage&
addCount = (param[1] == paramObj.stage) ? count : 0;
break;
case TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE://count&stage&
addCount = (param[1] == paramObj.stage) ? count : 0;
break;
case TASK_TYPE.EQUIP_QUALITY:
addCount = param[1] == paramObj.quality ? count : 0;
break;
case TASK_TYPE.ROLE_TITLE://重置数据
addCount = param[0] <= count ? count : 0;
break;
case TASK_TYPE.GASHA:
addCount = count;
break;
case TASK_TYPE.EQUIP_STRENGTHEN:
for (let obj of paramObj) {
// obj.hid;//英雄di
// obj.oldLv;//栏位升级前等级
// obj.lv;//栏位升级后等级
// obj.id;//栏位id
if (param[1] > obj.oldLv && param[1] <= obj.lv) {
addCount++;
//主线成长基金
if (taskType === TASK_TYPE.BATTLE_MAIN) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN, ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
let taskArray = growthFundActivity.unLockItem(parma.warId);
//推送
pushMessage = pushMessage.concat(taskArray);
}
break;
case TASK_TYPE.EQUIP_REFINE_LV:
addCount = (param[1] == paramObj.lv) ? count : 0;
break;
case TASK_TYPE.BATTLE_MAIN:
addCount = (param[1] == paramObj.warId) ? 1 : 0;
break;
case TASK_TYPE.EQUIP_JEWEL_SUM:
addCount = count;
break;
case TASK_TYPE.GUILD_TRAIN:
addCount = count;
break;
case TASK_TYPE.ROLE_SCHOOL_PUT_HERO:
addCount = count;
break;
case TASK_TYPE.GUILD_ACTIVITY:
addCount = count;
break;
case TASK_TYPE.EQUIP_SUM:
addCount = count;
break;
case TASK_TYPE.HERO_LV://{ hid, lv}
{
let hid = paramObj.hid;
let lv = paramObj.lv;
if (lv < param[1]) {
break;
}
//镇念塔成长基金getRoleOnlineInfo
if (taskType === TASK_TYPE.BATTLE_TOWER_LV) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_TOWER, ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
if (recordData) {
record = recordData;
if (recordData.indexOf(hid) != -1) {
let taskArray = growthFundActivity.unLockItem(parma.towerLv);
//推送
pushMessage = pushMessage.concat(taskArray);
}
}
//精英成长基金
if (taskType === TASK_TYPE.BATTLE_MAIN_ELITE) {
allActivity = await ActivityModel.findOpenActivityByTypes(activityGroupId, [ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP], new Date());
for (let activity of allActivity) {
let growthFundActivity = new GrowthFundData(activity);
let playerRecords: ActivityGrowthFundModelType[] = await ActivityGrowthFundModel.findData(activity.activityId, roleId);
growthFundActivity.setPlayerRecords(playerRecords);
if (growthFundActivity.isVipActivity()) {//vip高阶需要购买
let buyRecords = await ActivityBuyRecordsModel.findRecordsByActivityId(activity.activityId, roleId);
growthFundActivity.initBuyRecords(buyRecords);
}
let taskArray = growthFundActivity.unLockItem(parma.mainEliteWarId);
//推送
pushMessage = pushMessage.concat(taskArray);
}
}
return pushMessage;
}
/**
* 达成任务标准
*
* @param {string} roleId 角色Id
* @param {number} taskType 任务类型
* @param {number} taskParam 任务条件数据
* @param {number} count 数据
* @param {number} parma 参数
*
*/
export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any, recordData?: any): any {
console.log('达成任务标准', roleId, taskType, taskParam, count, paramObj)
let param = splitString(taskParam, '&');
let addCount: number = 0; // 条件是否满足
let record: any = null;
switch (taskType) {
case TASK_TYPE.ROLE_LV://重置数据
addCount = count;
break;
case TASK_TYPE.GUILD_JOIN:
addCount = count;
break;
case TASK_TYPE.LOGIN_SUM:
addCount = count;
break;
case TASK_TYPE.HERO_NUM:
addCount = count;
break;
case TASK_TYPE.HERO_QUALITY_STAR_UP://herocount&quality&star&
addCount = (param[1] == paramObj.quality) && (param[2] == paramObj.star) ? count : 0;
break;
case TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT://herocount&quality&star& {oldQuality, quality: hero.quality}
addCount = (param[1] == paramObj.oldQuality) && (param[2] == paramObj.quality) ? count : 0;
break;
case TASK_TYPE.HERO_QUALITY_WAKE_UP_COUNT://herocount&quality
addCount = (param[1] == paramObj.quality) ? count : 0;
break;
case TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT://herocount&colorStar& colorStar:彩星 1表示觉醒
addCount = (param[1] == paramObj.colorStar) ? count : 0;
break;
case TASK_TYPE.HERO_STAGE_UP://herocount&star&
addCount = (param[1] == paramObj.job) ? count : 0;
break;
case TASK_TYPE.EQUIP_JEWEL_STAGE://count&stage&
addCount = (param[1] == paramObj.stage) ? count : 0;
break;
case TASK_TYPE.EQUIP_SUIT_JEWEL_STAGE://count&stage&
addCount = (param[1] == paramObj.stage) ? count : 0;
break;
case TASK_TYPE.EQUIP_QUALITY:
addCount = param[1] == paramObj.quality ? count : 0;
break;
case TASK_TYPE.ROLE_TITLE://重置数据
addCount = param[0] <= count ? count : 0;
break;
case TASK_TYPE.GASHA:
addCount = count;
break;
case TASK_TYPE.EQUIP_STRENGTHEN:
for (let obj of paramObj) {
// obj.hid;//英雄di
// obj.oldLv;//栏位升级前等级
// obj.lv;//栏位升级后等级
// obj.id;//栏位id
if (param[1] > obj.oldLv && param[1] <= obj.lv) {
addCount++;
}
}
break;
case TASK_TYPE.EQUIP_REFINE_LV:
addCount = (param[1] == paramObj.lv) ? count : 0;
break;
case TASK_TYPE.BATTLE_MAIN:
addCount = (param[1] == paramObj.warId) ? 1 : 0;
break;
case TASK_TYPE.EQUIP_JEWEL_SUM:
addCount = count;
break;
case TASK_TYPE.GUILD_TRAIN:
addCount = count;
break;
case TASK_TYPE.ROLE_SCHOOL_PUT_HERO:
addCount = count;
break;
case TASK_TYPE.GUILD_ACTIVITY:
addCount = count;
break;
case TASK_TYPE.EQUIP_SUM:
addCount = count;
break;
case TASK_TYPE.HERO_LV://{ hid, lv}
{
let hid = paramObj.hid;
let lv = paramObj.lv;
if (lv < param[1]) {
break;
}
} else {
record = [];
}
addCount = count;
record.push(hid)
break;
}
case TASK_TYPE.HERO_TRAIN_SUM://训练X次是所有武将的训练次数的总和达到要求就好了
{
addCount = count;
break;
}
case TASK_TYPE.HERO_TRAIN://X名武将训练Y次要求单名武将训练Y次这样的武将要有X名
{
let hid = paramObj.hid;
if (recordData) {
record = recordData;
let oldCount = record[hid];
if (oldCount) {
if (oldCount < param[1] && (oldCount + count >= param[1])) {
addCount = count;
record[hid] = oldCount + count;
if (recordData) {
record = recordData;
if (recordData.indexOf(hid) != -1) {
break;
}
} else {
record = [];
}
addCount = count;
record.push(hid)
break;
}
case TASK_TYPE.HERO_TRAIN_SUM://训练X次是所有武将的训练次数的总和达到要求就好了
{
addCount = count;
break;
}
case TASK_TYPE.HERO_TRAIN://X名武将训练Y次要求单名武将训练Y次这样的武将要有X名
{
let hid = paramObj.hid;
if (recordData) {
record = recordData;
let oldCount = record[hid];
if (oldCount) {
if (oldCount < param[1] && (oldCount + count >= param[1])) {
addCount = count;
record[hid] = oldCount + count;
break;
}
} else {
record[hid] = count;
if (count >= param[1]) {
addCount = count;
break;
}
}
} else {
record = {};
record[hid] = count;
if (count >= param[1]) {
addCount = count;
break;
}
}
} else {
record = {};
record[hid] = count;
if (count >= param[1]) {
break;
}
case TASK_TYPE.BATTLE_EXPEDITION:
{
addCount = count;
break;
}
case TASK_TYPE.BATTLE_EXPEDITION_BOX:
{
addCount = count;
break;
}
case TASK_TYPE.HERO_QUALITY:
{
let quality = param[1]
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
addCount = heroes.length;
break;
}
case TASK_TYPE.PVP_WIN_SERIES:
{
addCount = count;
break;
}
case TASK_TYPE.PVP_WIN:
{
addCount = count;
break;
}
case TASK_TYPE.BATTLE_TOWER_LV://{towerLv}
{
let towerLv = paramObj.towerLv;
if (recordData) {
if (recordData >= towerLv) {
break;
}
}
record = towerLv;
addCount = towerLv;
break;
}
case TASK_TYPE.BATTLE_MAIN_ELITE:
{
if (paramObj.mainEliteWarId == param[1]) {
addCount = count;
break;
}
break;
}
break;
}
case TASK_TYPE.BATTLE_EXPEDITION:
{
addCount = count;
break;
}
case TASK_TYPE.BATTLE_EXPEDITION_BOX:
{
addCount = count;
break;
}
case TASK_TYPE.HERO_QUALITY:
{
let quality = param[1]
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
addCount = heroes.length;
break;
}
case TASK_TYPE.PVP_WIN_SERIES:
{
addCount = count;
break;
}
case TASK_TYPE.PVP_WIN:
{
addCount = count;
break;
}
case TASK_TYPE.BATTLE_TOWER_LV://{towerLv}
{
let towerLv = paramObj.towerLv;
if (recordData) {
if (recordData >= towerLv) {
break;
case TASK_TYPE.BATTLE_DUNGEON_WAR:
{
if (paramObj.warId == param[1]) {
addCount = count;
}
break;
}
record = towerLv;
addCount = towerLv;
break;
}
case TASK_TYPE.BATTLE_MAIN_ELITE:
{
if (paramObj.mainEliteWarId == param[1]) {
case TASK_TYPE.HERO_NUM:
{
addCount = count;
break;
}
break;
}
case TASK_TYPE.BATTLE_DUNGEON_WAR:
{
if (paramObj.warId == param[1]) {
case TASK_TYPE.PVP:
{
addCount = count;
break;
}
break;
}
case TASK_TYPE.HERO_NUM:
{
addCount = count;
break;
}
case TASK_TYPE.PVP:
{
addCount = count;
break;
}
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId count&wardId&
{
if (paramObj.trainId == param[1]) {
addCount = count;
}
break;
}
case TASK_TYPE.HERO_UNLOCK://
{
let camp = param[1]
let heroes = paramObj.dicHeroes.filter(hero => { return hero.camp == camp })
addCount = heroes.length;
break;
}
case TASK_TYPE.GACHA_QUALITY_COUNT://count&quality&
{
let quality = param[1]
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
addCount = heroes.length;
break;
}
case TASK_TYPE.ROLE_TERAPH_STAGE_UP://
{
addCount = count;
break;
}
case TASK_TYPE.HERO_WAKE_UP_COUNT:
{
let hid = paramObj.hid;
if (recordData) {
record = recordData;
if (recordData.indexOf(hid) != -1) {
break;
case TASK_TYPE.GUILD_TRAIN_COUNT://trainId count&wardId&
{
if (paramObj.trainId == param[1]) {
addCount = count;
}
} else {
record = [];
break;
}
case TASK_TYPE.HERO_UNLOCK://
{
let camp = param[1]
let heroes = paramObj.dicHeroes.filter(hero => { return hero.camp == camp })
addCount = heroes.length;
break;
}
case TASK_TYPE.GACHA_QUALITY_COUNT://count&quality&
{
let quality = param[1]
let heroes = paramObj.heroes.filter(hero => { return hero.quality == quality })
addCount = heroes.length;
break;
}
case TASK_TYPE.ROLE_TERAPH_STAGE_UP://
{
addCount = count;
break;
}
addCount = count;
record.push(hid)
case TASK_TYPE.HERO_WAKE_UP_COUNT:
{
let hid = paramObj.hid;
if (recordData) {
record = recordData;
if (recordData.indexOf(hid) != -1) {
break;
}
} else {
record = [];
}
addCount = count;
record.push(hid)
break;
}
case TASK_TYPE.EQUIP_QUALITY_COUNT:
{
let quality = param[1]
let equips = paramObj.equips.filter(equip => { return equip.quality == quality })
addCount = equips.length;
break;
}
default:
addCount = 0;
break;
}
default:
addCount = 0;
break;
}
console.log('dddddddddddd', addCount, record)
return { addCount, record };
}
/**
* 创建账号时临时获得可开启功能主要用于check 主公升级任务
* 该函数不会存储funcs如pvp开启会在entryHandler里面再查一次funcs那时候正式开启
* @param dataFuncs
* @param lv
*/
export async function getCreateUserFuncs(dataFuncs: number[], lv: number) {
let addFuncs: number[] = [];
for (let [id, dicFunSwitch] of gameData.funcsSwitch) {
if (dataFuncs.includes(id)) continue; // 已开启过了
if (dicFunSwitch && lv >= dicFunSwitch.param) {
addFuncs.push(id);
}
console.log('dddddddddddd', addCount, record)
return { addCount, record };
}
return addFuncs;
}
/**
* 创建账号时临时获得可开启功能主要用于check 主公升级任务
* 该函数不会存储funcs如pvp开启会在entryHandler里面再查一次funcs那时候正式开启
* @param dataFuncs
* @param lv
*/
export async function getCreateUserFuncs(dataFuncs: number[], lv: number) {
let addFuncs: number[] = [];
for (let [id, dicFunSwitch] of gameData.funcsSwitch) {
if (dataFuncs.includes(id)) continue; // 已开启过了
if (dicFunSwitch && lv >= dicFunSwitch.param) {
addFuncs.push(id);
}
}
return addFuncs;
}