fix code duplication
All checks were successful
Build / build (pull_request) Successful in 51s

This commit is contained in:
Sainan 2025-07-06 07:19:32 +02:00
parent ae1026df67
commit 5b325c4800

View File

@ -397,7 +397,7 @@ const getSeasonDailyChallenge = (pools: IRotatingSeasonChallengePools, day: numb
const pushSeasonWeeklyChallenge = ( const pushSeasonWeeklyChallenge = (
activeChallenges: ISeasonChallenge[], activeChallenges: ISeasonChallenge[],
pools: IRotatingSeasonChallengePools, pool: string[],
week: number, week: number,
id: number id: number
): void => { ): void => {
@ -407,29 +407,7 @@ const pushSeasonWeeklyChallenge = (
const rng = new SRng(new SRng(challengeId).randomInt(0, 100_000)); const rng = new SRng(new SRng(challengeId).randomInt(0, 100_000));
let challenge: string; let challenge: string;
do { do {
challenge = rng.randomElement(pools.weekly)!; challenge = rng.randomElement(pool)!;
} while (activeChallenges.some(x => x.Challenge == challenge));
activeChallenges.push({
_id: { $oid: "67e1bb2d9d00cb47" + challengeId.toString().padStart(8, "0") },
Activation: { $date: { $numberLong: weekStart.toString() } },
Expiry: { $date: { $numberLong: weekEnd.toString() } },
Challenge: challenge
});
};
const pushSeasonWeeklyHardChallenge = (
activeChallenges: ISeasonChallenge[],
pools: IRotatingSeasonChallengePools,
week: number,
id: number
): void => {
const weekStart = EPOCH + week * 604800000;
const weekEnd = weekStart + 604800000;
const challengeId = week * 7 + id;
const rng = new SRng(new SRng(challengeId).randomInt(0, 100_000));
let challenge: string;
do {
challenge = rng.randomElement(pools.hardWeekly)!;
} while (activeChallenges.some(x => x.Challenge == challenge)); } while (activeChallenges.some(x => x.Challenge == challenge));
activeChallenges.push({ activeChallenges.push({
_id: { $oid: "67e1bb2d9d00cb47" + challengeId.toString().padStart(8, "0") }, _id: { $oid: "67e1bb2d9d00cb47" + challengeId.toString().padStart(8, "0") },
@ -447,8 +425,8 @@ const pushWeeklyActs = (
const weekStart = EPOCH + week * 604800000; const weekStart = EPOCH + week * 604800000;
const weekEnd = weekStart + 604800000; const weekEnd = weekStart + 604800000;
pushSeasonWeeklyChallenge(activeChallenges, pools, week, 0); pushSeasonWeeklyChallenge(activeChallenges, pools.weekly, week, 0);
pushSeasonWeeklyChallenge(activeChallenges, pools, week, 1); pushSeasonWeeklyChallenge(activeChallenges, pools.weekly, week, 1);
if (pools.hasWeeklyPermanent) { if (pools.hasWeeklyPermanent) {
activeChallenges.push({ activeChallenges.push({
_id: { $oid: "67e1b96e9d00cb47" + (week * 7 + 0).toString().padStart(8, "0") }, _id: { $oid: "67e1b96e9d00cb47" + (week * 7 + 0).toString().padStart(8, "0") },
@ -468,14 +446,14 @@ const pushWeeklyActs = (
Expiry: { $date: { $numberLong: weekEnd.toString() } }, Expiry: { $date: { $numberLong: weekEnd.toString() } },
Challenge: "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyPermanentKillEnemies" Challenge: "/Lotus/Types/Challenges/Seasons/Weekly/SeasonWeeklyPermanentKillEnemies"
}); });
pushSeasonWeeklyHardChallenge(activeChallenges, pools, week, 2); pushSeasonWeeklyChallenge(activeChallenges, pools.hardWeekly, week, 2);
pushSeasonWeeklyHardChallenge(activeChallenges, pools, week, 3); pushSeasonWeeklyChallenge(activeChallenges, pools.hardWeekly, week, 3);
} else { } else {
pushSeasonWeeklyChallenge(activeChallenges, pools, week, 2); pushSeasonWeeklyChallenge(activeChallenges, pools.weekly, week, 2);
pushSeasonWeeklyChallenge(activeChallenges, pools, week, 3); pushSeasonWeeklyChallenge(activeChallenges, pools.weekly, week, 3);
pushSeasonWeeklyChallenge(activeChallenges, pools, week, 4); pushSeasonWeeklyChallenge(activeChallenges, pools.weekly, week, 4);
pushSeasonWeeklyHardChallenge(activeChallenges, pools, week, 5); pushSeasonWeeklyChallenge(activeChallenges, pools.hardWeekly, week, 5);
pushSeasonWeeklyHardChallenge(activeChallenges, pools, week, 6); pushSeasonWeeklyChallenge(activeChallenges, pools.hardWeekly, week, 6);
} }
}; };