✨ feat(稷下学宫): ff931afe4到7421822f6

This commit is contained in:
luying
2023-08-30 11:02:52 +08:00
parent 59a334d673
commit 05cbe318e9
102 changed files with 147876 additions and 715 deletions
+192 -1
View File
@@ -866,6 +866,167 @@ export function checkRouteParam(route: string, msg: any) {
if (!checkNaturalNumbers(msg.id)) return false;
break;
}
case "battle.rougeHandler.getData":
break;
case "battle.rougeHandler.getGame":
break;
case "battle.rougeHandler.getInitCharaCard":
{
let { type, grade } = msg
if (!checkNaturalNumbers(type, grade)) return false;
break;
}
case "battle.rougeHandler.startGame":
{
let { gameCode, authorType } = msg;
if (!checkNaturalStrings(gameCode)) return false;
if (!checkNaturalNumbers(authorType)) return false;
break;
}
case "battle.rougeHandler.gameEnd":
{
let { gameCode } = msg;
if (!checkNaturalStrings(gameCode)) return false;
break;
}
case "battle.rougeHandler.chooseNode":
{
let { gameCode, layer, detailCode } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkNaturalNumbers(layer)) return false;
break;
}
case "battle.rougeHandler.checkBattle":
{
let { gameCode, detailCode, warId, charaCodes } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkNaturalNumbers(warId)) return false;
if (!checkIsDuplicateStrings(charaCodes)) return false;
break;
}
case "battle.rougeHandler.battleEnd":
{
let { gameCode, detailCode, battleCode, warId, status, round, rougeDamage, isAp, isRound } = msg;
if (!checkNaturalStrings(gameCode, detailCode, battleCode)) return false;
if (!checkNaturalNumbers(warId, round, status)) return false;
if (!checkBooleanIfExist(isAp, isRound)) return false;
if (!isArray(rougeDamage) || rougeDamage.length == 0) return false;
let charaCodes: string[] = [];
for (let { charaCode } of rougeDamage) {
if (!charaCode) return false;
charaCodes.push(charaCode);
}
if (!checkIsDuplicateStrings(charaCodes)) return false;
break;
}
case "battle.rougeHandler.chooseReward":
{
let { gameCode, detailCode, groupIndex, optionIndexs } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkNaturalNumbers(groupIndex)) return false;
if (!checkIsDuplicateNumbers(optionIndexs)) return false;
break;
}
case "battle.rougeHandler.reRandomReward":
{
let { gameCode, detailCode, rewardType } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkNaturalNumbers(rewardType)) return false;
break;
}
case "battle.rougeHandler.shopBuy":
{
let { gameCode, detailCode, optionIndex } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkNaturalNumbers(optionIndex)) return false;
break;
}
case "battle.rougeHandler.chooseOption":
{
let { gameCode, detailCode, eventOptions } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
if (!checkIsDuplicateNumbers(eventOptions)) return false;
break;
}
case "battle.rougeHandler.recovery":
{
let { gameCode, detailCode } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
break;
}
case "battle.rougeHandler.trainCard":
{
let { gameCode, detailCode, cardCode } = msg;
if (!checkNaturalStrings(gameCode, detailCode, cardCode)) return false;
break;
}
case "battle.rougeHandler.nodeEnd":
{
let { gameCode, detailCode, } = msg;
if (!checkNaturalStrings(gameCode, detailCode)) return false;
break;
}
case "battle.rougeHandler.putOnOrOffCard":
{
let { gameCode, charaCode, cards } = msg;
if (!checkNaturalStrings(gameCode, charaCode)) return false;
let cardCodes: string[] = [], indexs: number[] = [];
for (let { index, cardCode } of cards) {
indexs.push(index);
if (cardCode) cardCodes.push(cardCode);
}
if (!checkIsDuplicateNumbers(indexs)) return false;
if (!checkIsDuplicateStrings(cardCodes)) return false;
break;
}
case "battle.rougeHandler.exchangeChara":
{
let { gameCode, oldCharaCode, newCharaCode } = msg;
if (!checkNaturalStrings(gameCode, oldCharaCode, newCharaCode)) return false;
break;
}
case "battle.rougeHandler.unlockTech":
{
if (!checkNaturalNumbers(msg.techId)) return false;
break;
}
case "battle.rougeHandler.putOnCircle":
{
if (!checkNaturalNumbers(msg.circleId, msg.hid)) return false;
break;
}
case "battle.rougeHandler.chooseSkillCard":
{
if (!checkNaturalStrings(msg.gameCode, msg.charaCode)) return false;
if (!checkNaturalNumbers(msg.skillType, msg.id)) return false;
break;
}
case "battle.rougeHandler.receiveCollectionReward":
{
if (!checkNaturalNumbers(msg.type, msg.id)) return false;
break;
}
case "battle.rougeHandler.receiveScore":
{
if (!checkNaturalNumbers(msg.index)) return false;
break;
}
case "chat.chatHandler.sendGroupMessage":
{
let { channel, type, content, targetRoleId, targetMsgCode } = msg;
@@ -2223,11 +2384,17 @@ export function checkRouteParam(route: string, msg: any) {
case "activity.bindPhoneHandler.debugSetGiftCodeStatus":
case 'activity.rebateHandler.debugSetRebate':
case 'activity.newHeroGKHandler.debugResetGK':
case 'battle.rougeHandler.debugClearTech':
case "battle.rougeHandler.debugAddCard":
case "battle.rougeHandler.debugAddScore":
case "battle.rougeHandler.debugRepaireScoreReward":
case "battle.rougeHandler.debugAddCollection":
{
if (msg.magicWord !== DEBUG_MAGIC_WORD || !isDevelopEnv()) return false;
break;
}
case "battle.rougeHandler.debugAddLimitId":
case "comBattle.comBattleHandler.getTeams":
case "comBattle.comBattleHandler.teammateReady":
case "comBattle.comBattleHandler.battleEnd":
@@ -2363,4 +2530,28 @@ function checkCombo(combo: { groupId: number, levelList: number[] }[]) {
}
}
return true;
}
function checkIsDuplicateNumbers(array: number[]) {
const seen = new Set();
for (const item of array) {
if (!isNumber(item)) return false;
if (seen.has(item)) {
return false; // 发现重复元素
}
seen.add(item);
}
return true; // 没有重复元素
}
function checkIsDuplicateStrings(array: string[]) {
const seen = new Set();
for (const item of array) {
if (!isString(item)) return false;
if (seen.has(item)) {
return false; // 发现重复元素
}
seen.add(item);
}
return true; // 没有重复元素
}