✨ feat(稷下学宫): 添加挑战关主动触发随机奖励接口
This commit is contained in:
@@ -1203,6 +1203,32 @@ export class RougeHandler {
|
||||
});
|
||||
}
|
||||
|
||||
async challengeRandom(msg: { detailCode: string }, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
const { detailCode } = msg;
|
||||
let dbDetail = await RougelikeRecordDetailModel.findByDetailCode(detailCode);
|
||||
if (!dbDetail) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
let { gameCode, layer, nodeId, nodeType, rewards = [], challenge } = dbDetail;
|
||||
if (rewards.length > 0 || nodeType != ROUGE_LIKE_NODE_TYPE.CHALLENGE || (challenge?.status || 0) < 2) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
|
||||
const dbRecord = await RougelikeRecordModel.findByGameCode(gameCode);
|
||||
if (!dbRecord) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
const { authorType, type, grade } = dbRecord;
|
||||
|
||||
const typeGradeData = gameData.rougeTypeGrade.get(type + '_' + grade);
|
||||
if (!typeGradeData) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
const layerPlanData = gameData.rougeLayerPlan.get(typeGradeData.layerPlan + '_' + layer);
|
||||
if (!layerPlanData) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
let result = await getLayerNodeReward(roleId, gameCode, authorType, nodeId, layerPlanData.rewardPlan, layer);
|
||||
if (!result || !result.rewards) return resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
rewards = result.rewards;
|
||||
|
||||
dbDetail = await RougelikeRecordDetailModel.updateByCode(gameCode, detailCode, { $set: { rewards } });
|
||||
if (!dbDetail || !dbDetail.rewards) resResult(STATUS.ROUGE_CHALLENGE_RANDOM_FAIL);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { gameCode, detailCode, rewards: dbDetail.rewards })
|
||||
}
|
||||
|
||||
/**
|
||||
* debug接口,清空科技树
|
||||
* @param msg
|
||||
|
||||
@@ -859,12 +859,12 @@ export async function updateChalleng(dbRecord: RougelikeRecordType, roleId: stri
|
||||
challenge.status = 2;
|
||||
|
||||
//处理在挑战进度完成时再随机奖励
|
||||
const typeGradeData = gameData.rougeTypeGrade.get(type + '_' + grade);
|
||||
if (!typeGradeData) continue;
|
||||
const layerPlanData = gameData.rougeLayerPlan.get(typeGradeData.layerPlan + '_' + layer);
|
||||
if (!layerPlanData) continue;
|
||||
let result = await getLayerNodeReward(roleId, gameCode, authorType, nodeId, layerPlanData.rewardPlan, layer);
|
||||
rewards = result.rewards;
|
||||
// const typeGradeData = gameData.rougeTypeGrade.get(type + '_' + grade);
|
||||
// if (!typeGradeData) continue;
|
||||
// const layerPlanData = gameData.rougeLayerPlan.get(typeGradeData.layerPlan + '_' + layer);
|
||||
// if (!layerPlanData) continue;
|
||||
// let result = await getLayerNodeReward(roleId, gameCode, authorType, nodeId, layerPlanData.rewardPlan, layer);
|
||||
// rewards = result.rewards;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1004,7 +1004,12 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if (!checkNaturalStrings(gameCode, oldCharaCode, newCharaCode)) return false;
|
||||
break;
|
||||
}
|
||||
|
||||
case "battle.rougeHandler.challengeRandom":
|
||||
{
|
||||
let { detailCode } = msg;
|
||||
if (!checkNaturalStrings(detailCode)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.rougeHandler.unlockTech":
|
||||
{
|
||||
if (!checkNaturalNumbers(msg.techId)) return false;
|
||||
|
||||
Reference in New Issue
Block a user