feat(任务): 添加任务类型

This commit is contained in:
luying
2022-12-29 10:46:44 +08:00
parent cd5fd0c074
commit a87ab664e4
8 changed files with 68 additions and 25 deletions

View File

@@ -104,7 +104,7 @@ export class NormalBattleHandler {
if (checkResult.status == -1) {
return checkResult.resResult
}
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
} else if (warInfo.warType == WAR_TYPE.MYSTERY) {
let checkResult = await checkDungeonNum(roleId, 1, battleId);
if (checkResult.status == -1) {
return checkResult.resResult
@@ -222,7 +222,7 @@ export class NormalBattleHandler {
if (towerEndResult.data.towerReward)
warReward.setFixReward(towerEndResult.data.towerReward)
}
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
} else if (warInfo.warType == WAR_TYPE.MYSTERY) {
let checkResult = await checkDungeonAndIncrease(roleId, isSuccess?1:0, false, battleId);
let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
if (role) {
@@ -344,7 +344,7 @@ export class NormalBattleHandler {
return checkResult.resResult
}
dailyNum = Object.assign(dailyNum, checkResult.data)
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
} else if (warInfo.warType == WAR_TYPE.MYSTERY) {
let checkResult = await checkDungeonAndIncrease(roleId, count, true, battleId);
if (checkResult.status == -1) {
return checkResult.resResult

View File

@@ -146,7 +146,7 @@ export function calculateWarStar(warStar: WarStar[] = [], battleId: number, star
}
export async function getBattleListOfMain(role: RoleType) {
let types = [ WAR_TYPE.NORMAL, WAR_TYPE.VESTIGE, WAR_TYPE.MAIN_ELITE, WAR_TYPE.TOWER, WAR_TYPE.MYSTERY, WAR_TYPE.MYSTERY_ELITE ];
let types = [ WAR_TYPE.NORMAL, WAR_TYPE.VESTIGE, WAR_TYPE.MAIN_ELITE, WAR_TYPE.TOWER, WAR_TYPE.MYSTERY, WAR_TYPE.BRANCH_ELITE ];
return await getBattleListOfTypes(role, types);
}

View File

@@ -427,13 +427,13 @@ export class CheckSingleTask {
}
case TASK_TYPE.HERO_QUALITY_STAR_UP: // 8. x名x品质升至x星
{
let { heroes, hero, oldStar } = param;
let { heroes, hero, oldStar, oldColorStar } = param;
if(param.heroes) { // 创建武将的时候
let records = await getRecord();
let num = 0;
for(let { hid, star } of heroes) {
for(let { hid, star, colorStar } of heroes) {
let dicHero = gameData.hero.get(hid);
if(dicHero.quality == dicTaskParam[1] && star == dicTaskParam[2] && records.indexOf(`${hid}`) == -1) {
if(dicHero.quality == dicTaskParam[1] && (star + colorStar) == dicTaskParam[2] && records.indexOf(`${hid}`) == -1) {
records.push(`${hid}`);
num ++;
}
@@ -442,7 +442,7 @@ export class CheckSingleTask {
} else { // 武将升星的时候
let hid = hero.hid;
let dicHero = gameData.hero.get(hid);
if(dicHero.quality == dicTaskParam[1] && hero.star >= dicTaskParam[2] && oldStar < dicTaskParam[2] ) {
if(dicHero.quality == dicTaskParam[1] && (hero.star + hero.colorStar) >= dicTaskParam[2] && (oldStar + oldColorStar) < dicTaskParam[2] ) {
let records = await getRecord();
if(records.indexOf(`${hid}`) == -1) {
records.push(`${hid}`);
@@ -682,7 +682,7 @@ export class CheckSingleTask {
{
let { warId, count } = param;
let dicWar = gameData.war.get(warId);
if(dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) {
if(dicWar.warType == WAR_TYPE.MYSTERY) {
result = { inc: count };
}
break;
@@ -691,7 +691,7 @@ export class CheckSingleTask {
{
let { warId, count } = param;
let dicWar = gameData.war.get(warId);
if ((dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) && this.checkIdList(dicTaskParam, 0, warId)) {
if ((dicWar.warType == WAR_TYPE.MYSTERY) && this.checkIdList(dicTaskParam, 0, warId)) {
result = { inc: count };
}
break;
@@ -1303,7 +1303,7 @@ export class CheckSingleTask {
{
let { warId, count } = param;
let dicWar = gameData.war.get(warId);
if(dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) {
if(dicWar.warType == WAR_TYPE.MYSTERY) {
result = { inc: count };
}
break;
@@ -1389,6 +1389,21 @@ export class CheckSingleTask {
result = { inc: count };
break;
}
case TASK_TYPE.STAR_UP_SUM: // 130. 升星总和
{
let { count } = param;
result = { inc: count };
break;
}
case TASK_TYPE.BATTLE_BRANCH_ELITE: // 131. 主线梦魇支线
{
let { warId, count } = param;
let dicWar = gameData.war.get(warId);
if (dicWar.warType == WAR_TYPE.BRANCH_ELITE && this.checkIdList(dicTaskParam, 0, warId)) {
result = { inc: count };
}
break;
}
}
return result
}

View File

@@ -64,7 +64,8 @@ export async function checkTaskInCreateHero(serverId: number, roleId: string, si
export async function checkTaskInHeroStarUp(serverId: number, roleId: string, sid: string, hero: HeroType, oldStar: number) {
let task = new CheckTask(serverId, roleId);
task.setParam(TASK_TYPE.HERO_STAR_UP, { hero });
task.setParam(TASK_TYPE.HERO_QUALITY_STAR_UP, { hero, oldStar });
task.setParam(TASK_TYPE.HERO_QUALITY_STAR_UP, { hero, oldStar, oldColorStar: 0 });
task.setParam(TASK_TYPE.STAR_UP_SUM, { count: hero.star - oldStar });
await task.saveAndPush(sid);
}
@@ -75,6 +76,8 @@ export async function checkTaskInHeroWakeUp(serverId: number, roleId: string, si
task.setParam(TASK_TYPE.HERO_QUALITY_WAKE_UP_COUNT, { hero, oldColorStar });
task.setParam(TASK_TYPE.HERO_WAKE_UP_COUNT, { hero, oldColorStar });
task.setParam(TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT, { hero, oldColorStar });
task.setParam(TASK_TYPE.HERO_QUALITY_STAR_UP, { hero, oldStar: 6, oldColorStar });
task.setParam(TASK_TYPE.STAR_UP_SUM, { count: hero.colorStar - oldColorStar });
await task.saveAndPush(sid);
}
@@ -136,6 +139,7 @@ export async function checkTaskInBattleStart(serverId: number, roleId: string, s
task.setParam(TASK_TYPE.BATTLE_VESTIGE, { warId, count: 1 });
task.setParam(TASK_TYPE.BATTLE_EXPEDITION, { warId, count: 1 });
task.setParam(TASK_TYPE.BATTLE_MAIN_ELITE, { warId, count: 1 });
task.setParam(TASK_TYPE.BATTLE_BRANCH_ELITE, { warId, count: 1 });
await task.saveAndPush(sid);
let dicWar = gameData.war.get(warId);
if(dicWar && dicWar.warType == WAR_TYPE.NORMAL) {
@@ -176,6 +180,7 @@ export async function checkTaskInBattleSweep(serverId: number, roleId: string, s
task.setParam(TASK_TYPE.BATTLE_DAILY_START, { warId, count });
task.setParam(TASK_TYPE.BATTLE_EXPEDITION_START, { warId, count });
task.setParam(TASK_TYPE.BATTLE_DUNGEON_START, { warId, count });
task.setParam(TASK_TYPE.BATTLE_BRANCH_ELITE, { warId, count });
await task.saveAndPush(sid);
}

View File

@@ -25,7 +25,7 @@ export const WAR_TYPE = {
GUILD_ACTIVITY: 10, // 军团活动
GUILD_TRAIN: 11, // 军团练兵场
MAIN_ELITE: 12, // 主线精英
MYSTERY_ELITE: 13, // 秘境精英
BRANCH_ELITE: 13, // 秘境精英
BRANCH: 14, // 支线
ACT_TREASURE_HUNT: 15, // 神州探秘
ACT_SELF_SHOP: 16, // 糜家商队

View File

@@ -788,6 +788,8 @@ export enum TASK_TYPE {
ARTIFACT_LV = 127, // 强化X件宝物至X级
ARTIFACT_QUALITY_EQUIP = 128, // 穿戴X件品质为X的宝物
ARTIFACT_COMPOSE = 129, // 合成X次宝物
STAR_UP_SUM = 130, // 总计升星次数
BATTLE_BRANCH_ELITE = 131, // 通关
}
// 任务累积类型

View File

@@ -658,6 +658,7 @@ export function getReasonByWarType(warType: number) {
// case WAR_TYPE.MYSTERY_ELITE:
// return ITEM_CHANGE_REASON.MYSTERY_ELITE_BATTLE_END;
case WAR_TYPE.BRANCH:
case WAR_TYPE.BRANCH_ELITE:
return ITEM_CHANGE_REASON.BRANCH_BATTLE_END;
case WAR_TYPE.ACT_TREASURE_HUNT:
return ITEM_CHANGE_REASON.ACT_TREASURE_HUNT_BATTLE_END;
@@ -692,7 +693,7 @@ export function getWarTypeName(warType: number) {
case WAR_TYPE.GUILD_ACTIVITY: return '军团活动';
case WAR_TYPE.GUILD_TRAIN: return '训练场';
case WAR_TYPE.MAIN_ELITE: return '主线精英';
case WAR_TYPE.MYSTERY_ELITE: return '秘境精英';
case WAR_TYPE.BRANCH_ELITE: return '梦魇支线';
case WAR_TYPE.BRANCH: return '支线';
case WAR_TYPE.ACT_TREASURE_HUNT: return '运营活动-神州探秘';
case WAR_TYPE.ACT_SELF_SHOP: return '运营活动-糜家商队';

View File

@@ -72,10 +72,10 @@
{
"id": 8,
"name": "武将",
"info": "x名x品质升至x星",
"info": "x名x初始品质升至x星",
"param": "herocount&quality&star&",
"string": "武将数量&品质&星级&",
"content": "升至x星是只算普通升星的;品质是使用等号判断的,紫色的升星不能达成蓝色的条件",
"content": "升星可算彩星但需加上普通升星的星数比如彩6星填12=6+6;品质是使用等号判断的,紫色的升星不能达成蓝色的条件",
"condition": "herocount",
"sumType": 1
},
@@ -325,7 +325,7 @@
"info": "通关秘境x次",
"param": "count&",
"string": "秘境挑战次数&",
"content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算",
"content": "只计算warType为6的关卡必须挑战胜利才计算扫荡也算",
"condition": "count",
"sumType": 2
},
@@ -335,7 +335,7 @@
"info": "秘境通关x关x难度",
"param": "warcount&warid&…",
"string": "填几个warid&关卡id&…",
"content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算",
"content": "只计算warType为6的关卡必须挑战胜利才计算扫荡也算",
"condition": "warcount",
"sumType": 1
},
@@ -362,7 +362,7 @@
{
"id": 48,
"name": "关卡",
"info": "通关遗迹x关",
"info": "通关支线x关",
"param": "warcount&warid",
"string": "挑战次数&",
"content": "只计算warType为2的关卡必须挑战胜利才计算扫荡也算",
@@ -571,11 +571,11 @@
},
{
"id": 73,
"name": "精英任务",
"info": "精英通关第x关",
"param": "warcount&warid&",
"name": "梦魇关卡",
"info": "梦魇通关第x关",
"param": "warcount&warid&",
"string": "关卡id",
"content": 0,
"content": "只计算warType为12的关卡必须挑战胜利才计算计算扫荡主线基金是算这个type的",
"condition": "warcount",
"sumType": 1
},
@@ -605,7 +605,7 @@
"info": "x名武将觉醒后升至x星",
"param": "herocount&star&",
"string": "武将数量&星级",
"content": 0,
"content": "只算彩星填1不用计算黄星的6",
"condition": "herocount",
"sumType": 1
},
@@ -1087,6 +1087,26 @@
"string": "次数&",
"content": 0,
"condition": "count",
"sumType": 2
"sumType": 1
},
{
"id": 130,
"name": "武将",
"info": "武将升星X次",
"param": "count&",
"string": "升星次数&",
"content": "星级上升了才算是1次升彩星也是算入的算所有武将的",
"condition": "count",
"sumType": 1
},
{
"id": 131,
"name": "关卡",
"info": "通关梦魇支线X关",
"param": "warcount&warid",
"string": "挑战次数&",
"content": "只计算warType为13的关卡必须挑战胜利才计算扫荡也算",
"condition": "count",
"sumType": 1
}
]