Files
discord-decomp/modules/quests/utils/QuestMatchingUtils.tsx
T
2026-11-01 12:12:55 +02:00

121 lines
4.2 KiB
TypeScript

// Metro module 10502 (f10503).
import ApplicationStore from "../../applications/ApplicationStore";
import { DISCORD_APPLICATION_ID, PLAY_ACTIVITY_CLOUD_GAMING_QUEST_ID, PLAY_ACTIVITY_SOCIAL_ENTRY_APPLICATION_ID } from "../QuestConstants";
import { ActivityGamePlatforms } from "../../../Constants";
import { XBOX_ACTIVITY_APPLICATION_ID } from "../../activities/Constants";
import { getAllApplicationIds, getConsoleApplicationId, hasPlayOnDesktopTask, getActivityApplicationId } from "./QuestTaskUtils";
import { isQuestExpired } from "./QuestDataUtils";
import { canLaunchActivity } from "./QuestUtils";
function $mk84953($env) {
return (a0) => a0 === $env[0];
}
let getQuestByActivity, questMatchesApplicationId;
const questMatchesActivity = function questMatchesActivity(a0, a1) {
let r21;
let r3 = a0 != null;
if (r3) {
const r0 = a0.application_id === XBOX_ACTIVITY_APPLICATION_ID || a0.platform === ActivityGamePlatforms.XBOX;
L23: {
if (!r0 && !(a0.platform === ActivityGamePlatforms.PS4 || a0.platform === ActivityGamePlatforms.PS5)) {
r21 = a1 != null && a1.id === PLAY_ACTIVITY_CLOUD_GAMING_QUEST_ID && a0.application_id === PLAY_ACTIVITY_SOCIAL_ENTRY_APPLICATION_ID;
if (r21) {
break L23;
}
let r27 = a0.application_id != null;
if (r27) {
let env18081;
const application_id = a0.application_id;
const r10 = env18081 = {};
env18081[0] = application_id;
const allApplicationIds = getAllApplicationIds(a1);
r27 = allApplicationIds != null && allApplicationIds.some($mk84953(r10));
}
r21 = r27;
} else {
const r39 = a0.name.toLowerCase();
const consoleApplicationId = getConsoleApplicationId(a1);
const r2 = consoleApplicationId == null;
let r47 = false;
if (!r2) {
const application = ApplicationStore.getApplication(consoleApplicationId);
r47 = application != null && r39 === application.name.toLowerCase();
}
r21 = r47;
}
}
r3 = r21;
}
return r3;
};
getQuestByActivity = function getQuestByActivity(a0, a1) {
for (const item of a0) {
const [, r27] = item;
if (!questMatchesActivity(a1, r27)) {
continue;
}
if (isQuestExpired(r27)) {
continue;
}
return r27;
}
};
questMatchesApplicationId = function questMatchesApplicationId(a0, a1) {
let env18082;
const r2 = env18082 = {};
env18082[0] = a0;
const allApplicationIds = getAllApplicationIds(a1);
return allApplicationIds != null && allApplicationIds.some($mk84953(r2));
};
export { questMatchesActivity };
export { getQuestByActivity };
export function getQuestByApplicationId(a0, a1) {
let r0 = void 0;
for (const item of a0) {
const [, r29] = item;
if (!questMatchesApplicationId(a1, r29)) {
continue;
}
if (isQuestExpired(r29)) {
continue;
}
r0 = r29;
break;
}
return r0;
}
export function allPlayOnDesktopQuestsByApplicationId(a0, c18083_0) {
return Array.from(a0.values()).filter((item) => {
let env26700;
const r5 = env26700 = {};
env26700[0] = c18083_0;
const allApplicationIds = getAllApplicationIds(item);
return allApplicationIds != null && allApplicationIds.some($mk84953(r5)) && !isQuestExpired(item) && hasPlayOnDesktopTask({
quest: item
});
});
}
export function getQuestsFromActivities(a0, a1) {
if (a1 != null && a0 != null) {
for (const item of a1) {
const questByActivity = getQuestByActivity(a0, item);
if (questByActivity == null) {
continue;
}
return questByActivity;
}
return null;
}
return null;
}
export function getEligibleQuestsForApplicationId(a0, a1) {
let r3 = arguments[2];
if (r3 === void 0) {
r3 = false;
}
let c18084_1 = r3;
return a1 == null ? [] : Array.from(a0.values()).filter((item) => {
const activityApplicationId = getActivityApplicationId(item);
return item != null && canLaunchActivity(item) && !isQuestExpired(item) && activityApplicationId === a1 && activityApplicationId !== DISCORD_APPLICATION_ID && (item.userStatus?.completedAt == null || c18084_1) && (item.userStatus?.enrolledAt == null || c18084_1);
});
}