✨ 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
@@ -104,7 +104,7 @@ export class NormalBattleHandler {
if (checkResult.status == -1) { if (checkResult.status == -1) {
return checkResult.resResult 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); let checkResult = await checkDungeonNum(roleId, 1, battleId);
if (checkResult.status == -1) { if (checkResult.status == -1) {
return checkResult.resResult return checkResult.resResult
@@ -222,7 +222,7 @@ export class NormalBattleHandler {
if (towerEndResult.data.towerReward) if (towerEndResult.data.towerReward)
warReward.setFixReward(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 checkResult = await checkDungeonAndIncrease(roleId, isSuccess?1:0, false, battleId);
let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess); let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
if (role) { if (role) {
@@ -344,7 +344,7 @@ export class NormalBattleHandler {
return checkResult.resResult return checkResult.resResult
} }
dailyNum = Object.assign(dailyNum, checkResult.data) 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); let checkResult = await checkDungeonAndIncrease(roleId, count, true, battleId);
if (checkResult.status == -1) { if (checkResult.status == -1) {
return checkResult.resResult return checkResult.resResult
@@ -146,7 +146,7 @@ export function calculateWarStar(warStar: WarStar[] = [], battleId: number, star
} }
export async function getBattleListOfMain(role: RoleType) { 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); return await getBattleListOfTypes(role, types);
} }
+22 -7
View File
@@ -427,13 +427,13 @@ export class CheckSingleTask {
} }
case TASK_TYPE.HERO_QUALITY_STAR_UP: // 8. x名x品质升至x星 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) { // 创建武将的时候 if(param.heroes) { // 创建武将的时候
let records = await getRecord(); let records = await getRecord();
let num = 0; let num = 0;
for(let { hid, star } of heroes) { for(let { hid, star, colorStar } of heroes) {
let dicHero = gameData.hero.get(hid); 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}`); records.push(`${hid}`);
num ++; num ++;
} }
@@ -442,7 +442,7 @@ export class CheckSingleTask {
} else { // 武将升星的时候 } else { // 武将升星的时候
let hid = hero.hid; let hid = hero.hid;
let dicHero = gameData.hero.get(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(); let records = await getRecord();
if(records.indexOf(`${hid}`) == -1) { if(records.indexOf(`${hid}`) == -1) {
records.push(`${hid}`); records.push(`${hid}`);
@@ -682,7 +682,7 @@ export class CheckSingleTask {
{ {
let { warId, count } = param; let { warId, count } = param;
let dicWar = gameData.war.get(warId); 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 }; result = { inc: count };
} }
break; break;
@@ -691,7 +691,7 @@ export class CheckSingleTask {
{ {
let { warId, count } = param; let { warId, count } = param;
let dicWar = gameData.war.get(warId); 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 }; result = { inc: count };
} }
break; break;
@@ -1303,7 +1303,7 @@ export class CheckSingleTask {
{ {
let { warId, count } = param; let { warId, count } = param;
let dicWar = gameData.war.get(warId); 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 }; result = { inc: count };
} }
break; break;
@@ -1389,6 +1389,21 @@ export class CheckSingleTask {
result = { inc: count }; result = { inc: count };
break; 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 return result
} }
+6 -1
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) { export async function checkTaskInHeroStarUp(serverId: number, roleId: string, sid: string, hero: HeroType, oldStar: number) {
let task = new CheckTask(serverId, roleId); let task = new CheckTask(serverId, roleId);
task.setParam(TASK_TYPE.HERO_STAR_UP, { hero }); 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); 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_QUALITY_WAKE_UP_COUNT, { hero, oldColorStar });
task.setParam(TASK_TYPE.HERO_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_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); 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_VESTIGE, { warId, count: 1 });
task.setParam(TASK_TYPE.BATTLE_EXPEDITION, { 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_MAIN_ELITE, { warId, count: 1 });
task.setParam(TASK_TYPE.BATTLE_BRANCH_ELITE, { warId, count: 1 });
await task.saveAndPush(sid); await task.saveAndPush(sid);
let dicWar = gameData.war.get(warId); let dicWar = gameData.war.get(warId);
if(dicWar && dicWar.warType == WAR_TYPE.NORMAL) { 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_DAILY_START, { warId, count });
task.setParam(TASK_TYPE.BATTLE_EXPEDITION_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_DUNGEON_START, { warId, count });
task.setParam(TASK_TYPE.BATTLE_BRANCH_ELITE, { warId, count });
await task.saveAndPush(sid); await task.saveAndPush(sid);
} }
+1 -1
View File
@@ -25,7 +25,7 @@ export const WAR_TYPE = {
GUILD_ACTIVITY: 10, // 军团活动 GUILD_ACTIVITY: 10, // 军团活动
GUILD_TRAIN: 11, // 军团练兵场 GUILD_TRAIN: 11, // 军团练兵场
MAIN_ELITE: 12, // 主线精英 MAIN_ELITE: 12, // 主线精英
MYSTERY_ELITE: 13, // 秘境精英 BRANCH_ELITE: 13, // 秘境精英
BRANCH: 14, // 支线 BRANCH: 14, // 支线
ACT_TREASURE_HUNT: 15, // 神州探秘 ACT_TREASURE_HUNT: 15, // 神州探秘
ACT_SELF_SHOP: 16, // 糜家商队 ACT_SELF_SHOP: 16, // 糜家商队
+2
View File
@@ -788,6 +788,8 @@ export enum TASK_TYPE {
ARTIFACT_LV = 127, // 强化X件宝物至X级 ARTIFACT_LV = 127, // 强化X件宝物至X级
ARTIFACT_QUALITY_EQUIP = 128, // 穿戴X件品质为X的宝物 ARTIFACT_QUALITY_EQUIP = 128, // 穿戴X件品质为X的宝物
ARTIFACT_COMPOSE = 129, // 合成X次宝物 ARTIFACT_COMPOSE = 129, // 合成X次宝物
STAR_UP_SUM = 130, // 总计升星次数
BATTLE_BRANCH_ELITE = 131, // 通关
} }
// 任务累积类型 // 任务累积类型
+2 -1
View File
@@ -658,6 +658,7 @@ export function getReasonByWarType(warType: number) {
// case WAR_TYPE.MYSTERY_ELITE: // case WAR_TYPE.MYSTERY_ELITE:
// return ITEM_CHANGE_REASON.MYSTERY_ELITE_BATTLE_END; // return ITEM_CHANGE_REASON.MYSTERY_ELITE_BATTLE_END;
case WAR_TYPE.BRANCH: case WAR_TYPE.BRANCH:
case WAR_TYPE.BRANCH_ELITE:
return ITEM_CHANGE_REASON.BRANCH_BATTLE_END; return ITEM_CHANGE_REASON.BRANCH_BATTLE_END;
case WAR_TYPE.ACT_TREASURE_HUNT: case WAR_TYPE.ACT_TREASURE_HUNT:
return ITEM_CHANGE_REASON.ACT_TREASURE_HUNT_BATTLE_END; 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_ACTIVITY: return '军团活动';
case WAR_TYPE.GUILD_TRAIN: return '训练场'; case WAR_TYPE.GUILD_TRAIN: return '训练场';
case WAR_TYPE.MAIN_ELITE: 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.BRANCH: return '支线';
case WAR_TYPE.ACT_TREASURE_HUNT: return '运营活动-神州探秘'; case WAR_TYPE.ACT_TREASURE_HUNT: return '运营活动-神州探秘';
case WAR_TYPE.ACT_SELF_SHOP: return '运营活动-糜家商队'; case WAR_TYPE.ACT_SELF_SHOP: return '运营活动-糜家商队';
+31 -11
View File
@@ -72,10 +72,10 @@
{ {
"id": 8, "id": 8,
"name": "武将", "name": "武将",
"info": "x名x品质升至x星", "info": "x名x初始品质升至x星",
"param": "herocount&quality&star&", "param": "herocount&quality&star&",
"string": "武将数量&品质&星级&", "string": "武将数量&品质&星级&",
"content": "升至x星是只算普通升星的;品质是使用等号判断的,紫色的升星不能达成蓝色的条件", "content": "升星可算彩星,但需加上普通升星的星数,比如彩6星填12=6+6;品质是使用等号判断的,紫色的升星不能达成蓝色的条件",
"condition": "herocount", "condition": "herocount",
"sumType": 1 "sumType": 1
}, },
@@ -325,7 +325,7 @@
"info": "通关秘境x次", "info": "通关秘境x次",
"param": "count&", "param": "count&",
"string": "秘境挑战次数&", "string": "秘境挑战次数&",
"content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算", "content": "只计算warType为6的关卡;必须挑战胜利才计算;扫荡也算",
"condition": "count", "condition": "count",
"sumType": 2 "sumType": 2
}, },
@@ -335,7 +335,7 @@
"info": "秘境通关x关x难度", "info": "秘境通关x关x难度",
"param": "warcount&warid&…", "param": "warcount&warid&…",
"string": "填几个warid&关卡id&…", "string": "填几个warid&关卡id&…",
"content": "只计算warType为6或13的关卡;必须挑战胜利才计算;扫荡也算", "content": "只计算warType为6的关卡;必须挑战胜利才计算;扫荡也算",
"condition": "warcount", "condition": "warcount",
"sumType": 1 "sumType": 1
}, },
@@ -362,7 +362,7 @@
{ {
"id": 48, "id": 48,
"name": "关卡", "name": "关卡",
"info": "通关遗迹x关", "info": "通关支线x关",
"param": "warcount&warid", "param": "warcount&warid",
"string": "挑战次数&", "string": "挑战次数&",
"content": "只计算warType为2的关卡;必须挑战胜利才计算;扫荡也算", "content": "只计算warType为2的关卡;必须挑战胜利才计算;扫荡也算",
@@ -571,11 +571,11 @@
}, },
{ {
"id": 73, "id": 73,
"name": "精英任务", "name": "梦魇关卡",
"info": "精英通关第x关", "info": "梦魇通关第x关",
"param": "warcount&warid&", "param": "warcount&warid&…",
"string": "关卡id", "string": "关卡id",
"content": 0, "content": "只计算warType为12的关卡;必须挑战胜利才计算;计算扫荡;主线基金是算这个type的",
"condition": "warcount", "condition": "warcount",
"sumType": 1 "sumType": 1
}, },
@@ -605,7 +605,7 @@
"info": "x名武将觉醒后升至x星", "info": "x名武将觉醒后升至x星",
"param": "herocount&star&", "param": "herocount&star&",
"string": "武将数量&星级", "string": "武将数量&星级",
"content": 0, "content": "只算彩星,填1,不用计算黄星的6",
"condition": "herocount", "condition": "herocount",
"sumType": 1 "sumType": 1
}, },
@@ -1087,6 +1087,26 @@
"string": "次数&", "string": "次数&",
"content": 0, "content": 0,
"condition": "count", "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
} }
] ]