osrs-tools
Version:
A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information
70 lines (69 loc) • 4.95 kB
JavaScript
import { LeaguesSeason } from "./DemonicPact.model";
import { LeagueRegionName } from "./LeaguesRegion.model";
const RAGING_ECHOES_REGIONS_SOURCE = "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas";
const DEMONIC_PACTS_LEAGUE_REGIONS_SOURCE = "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas";
export const RAGING_ECHOES_REGION_UNLOCK_MILESTONES = [
{ unlockNumber: 1, tasksRequired: 90 },
{ unlockNumber: 2, tasksRequired: 200 },
{ unlockNumber: 3, tasksRequired: 400 },
];
export const RAGING_ECHOES_REGIONS = {
season: LeaguesSeason.Leagues7,
displayName: "Raging Echoes League Regions",
source: RAGING_ECHOES_REGIONS_SOURCE,
maxSelectableRegions: 3,
selectableUnlockMilestones: [...RAGING_ECHOES_REGION_UNLOCK_MILESTONES],
regions: [
region(LeagueRegionName.Misthalin, true, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Misthalin"),
region(LeagueRegionName.Karamja, false, true, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Karamja"),
region(LeagueRegionName.Asgarnia, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Asgarnia"),
region(LeagueRegionName.FremennikProvince, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Fremennik_Province"),
region(LeagueRegionName.Kandarin, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Kandarin"),
region(LeagueRegionName.KharidianDesert, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Kharidian_Desert"),
region(LeagueRegionName.Morytania, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Morytania"),
region(LeagueRegionName.Tirannwn, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Tirannwn"),
region(LeagueRegionName.Wilderness, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Wilderness"),
region(LeagueRegionName.KebosAndKourend, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Kourend"),
region(LeagueRegionName.Varlamore, false, false, "https://oldschool.runescape.wiki/w/Raging_Echoes_League/Areas/Varlamore"),
],
};
export const DEMONIC_PACTS_LEAGUE_REGION_UNLOCK_MILESTONES = [{ unlockNumber: 1 }, { unlockNumber: 2 }, { unlockNumber: 3 }];
export const DEMONIC_PACTS_LEAGUE_REGIONS = {
season: LeaguesSeason.Leagues7,
displayName: "Demonic Pacts League Regions",
source: DEMONIC_PACTS_LEAGUE_REGIONS_SOURCE,
maxSelectableRegions: 3,
selectableUnlockMilestones: [...DEMONIC_PACTS_LEAGUE_REGION_UNLOCK_MILESTONES],
regions: [
region(LeagueRegionName.Varlamore, true, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Varlamore"),
region(LeagueRegionName.Karamja, false, true, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Karamja"),
region(LeagueRegionName.Asgarnia, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Asgarnia"),
region(LeagueRegionName.FremennikProvince, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Fremennik_Province"),
region(LeagueRegionName.Kandarin, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Kandarin"),
region(LeagueRegionName.KharidianDesert, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Kharidian_Desert"),
region(LeagueRegionName.Morytania, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Morytania"),
region(LeagueRegionName.Tirannwn, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Tirannwn"),
region(LeagueRegionName.Wilderness, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Wilderness"),
region(LeagueRegionName.KebosAndKourend, false, false, "https://oldschool.runescape.wiki/w/Demonic_Pacts_League/Areas/Kourend"),
],
};
export function getRegionByName(regionSet, name) {
return regionSet.regions.find((regionData) => regionData.name === name);
}
export function getStarterRegions(regionSet) {
return regionSet.regions.filter((regionData) => regionData.isStarterUnlocked || regionData.isTutorialUnlocked);
}
export function getSelectableRegions(regionSet) {
return regionSet.regions.filter((regionData) => !regionData.isStarterUnlocked && !regionData.isTutorialUnlocked);
}
export function getTasksRequiredForRegionUnlockNumber(regionSet, unlockNumber) {
return regionSet.selectableUnlockMilestones.find((unlockData) => unlockData.unlockNumber === unlockNumber)?.tasksRequired;
}
function region(name, isStarterUnlocked, isTutorialUnlocked, wikiUrl) {
return {
name,
wikiUrl,
isStarterUnlocked,
isTutorialUnlocked,
};
}