MediaWiki:ClassMasteryData.js: Difference between revisions
From EQOA Sandstorm Wiki
Jump to navigationJump to search
RenodorDev (talk | contribs) (Created page with "window.EQOA_CM_DATA = { classes: { WAR: "Warrior", PAL: "Paladin", SK: "Shadowknight", RGE: "Rogue", BRD: "Bard", RAN: "Ranger", MNK: "Monk", CL: "Cleric", DRD: "Druid", SHA: "Shaman", NEC: "Necromancer", MAG: "Magician", ENC: "Enchanter", WIZ: "Wizard", ALC: "Alchemist" }, raceClasses: { Human: ["WAR", "PAL", "RGE", "BRD", "RAN", "...") |
RenodorDev (talk | contribs) No edit summary |
||
| Line 31: | Line 31: | ||
}, | }, | ||
raceCodes: { | |||
Human: "HUM", | |||
Elf: "ELF", | |||
DarkElf: "DELF", | |||
Gnome: "GNO", | |||
Dwarf: "DWF", | |||
Halfling: "HLF", | |||
Troll: "TRL", | |||
Ogre: "OGR", | |||
Erudite: "ERU", | |||
Barbarian: "BAR" | |||
}, | |||
masteries: | maxLevel: 60, | ||
cmPerLevel: 25, | |||
masteries: [] | |||
}; | }; | ||
(function () { | |||
if (!window.EQOA_CM_RAW) return; | |||
var lines = window.EQOA_CM_RAW.trim().split(/\r?\n/); | |||
if (lines.length < 2) return; | |||
var headers = lines[0].split("\t").map(function (h) { | |||
return h.trim(); | |||
}); | |||
function get(row, name) { | |||
var index = headers.indexOf(name); | |||
return index === -1 ? "" : (row[index] || "").trim(); | |||
} | |||
function splitCodes(value) { | |||
if (!value) return []; | |||
return value.split(/\s+/).filter(Boolean); | |||
} | |||
window.EQOA_CM_DATA.masteries = lines.slice(1).map(function (line) { | |||
var row = line.split("\t"); | |||
return { | |||
name: get(row, "Mastery"), | |||
description: get(row, "Description"), | |||
classification: get(row, "Classification"), | |||
subCategory: get(row, "Sub-Category"), | |||
races: splitCodes(get(row, "Race")), | |||
archetype: get(row, "Archetype"), | |||
classes: splitCodes(get(row, "Class")), | |||
level: parseInt(get(row, "Level"), 10) || 0, | |||
points: parseInt(get(row, "Points"), 10) || 0, | |||
cmSpentReq: parseInt(get(row, "CM Spent Req"), 10) || 0, | |||
req1: get(row, "CM Req 1"), | |||
req2: get(row, "CM Req 2"), | |||
req3: get(row, "CM Req 3"), | |||
req4: get(row, "CM Req 4") | |||
}; | |||
}).filter(function (cm) { | |||
return cm.name; | |||
}); | |||
})(); | |||
Revision as of 18:02, 14 May 2026
window.EQOA_CM_DATA = {
classes: {
WAR: "Warrior",
PAL: "Paladin",
SK: "Shadowknight",
RGE: "Rogue",
BRD: "Bard",
RAN: "Ranger",
MNK: "Monk",
CL: "Cleric",
DRD: "Druid",
SHA: "Shaman",
NEC: "Necromancer",
MAG: "Magician",
ENC: "Enchanter",
WIZ: "Wizard",
ALC: "Alchemist"
},
raceClasses: {
Human: ["WAR", "PAL", "RGE", "BRD", "RAN", "MNK", "CL", "DRD", "NEC", "MAG", "ENC", "WIZ", "ALC"],
Elf: ["WAR", "PAL", "RGE", "BRD", "RAN", "CL", "DRD", "MAG", "ENC", "WIZ"],
DarkElf: ["WAR", "SK", "RGE", "CL", "NEC", "MAG", "ENC", "WIZ", "ALC"],
Gnome: ["WAR", "RGE", "CL", "NEC", "MAG", "ENC", "WIZ", "ALC"],
Dwarf: ["WAR", "PAL", "RGE", "CL"],
Halfling: ["WAR", "RGE", "RAN", "DRD"],
Troll: ["WAR", "SK", "RGE", "SHA"],
Ogre: ["WAR", "SK", "SHA", "ALC"],
Erudite: ["PAL", "CL", "NEC", "MAG", "ENC", "WIZ", "ALC"],
Barbarian: ["WAR", "RGE", "RAN", "SHA", "ALC"]
},
raceCodes: {
Human: "HUM",
Elf: "ELF",
DarkElf: "DELF",
Gnome: "GNO",
Dwarf: "DWF",
Halfling: "HLF",
Troll: "TRL",
Ogre: "OGR",
Erudite: "ERU",
Barbarian: "BAR"
},
maxLevel: 60,
cmPerLevel: 25,
masteries: []
};
(function () {
if (!window.EQOA_CM_RAW) return;
var lines = window.EQOA_CM_RAW.trim().split(/\r?\n/);
if (lines.length < 2) return;
var headers = lines[0].split("\t").map(function (h) {
return h.trim();
});
function get(row, name) {
var index = headers.indexOf(name);
return index === -1 ? "" : (row[index] || "").trim();
}
function splitCodes(value) {
if (!value) return [];
return value.split(/\s+/).filter(Boolean);
}
window.EQOA_CM_DATA.masteries = lines.slice(1).map(function (line) {
var row = line.split("\t");
return {
name: get(row, "Mastery"),
description: get(row, "Description"),
classification: get(row, "Classification"),
subCategory: get(row, "Sub-Category"),
races: splitCodes(get(row, "Race")),
archetype: get(row, "Archetype"),
classes: splitCodes(get(row, "Class")),
level: parseInt(get(row, "Level"), 10) || 0,
points: parseInt(get(row, "Points"), 10) || 0,
cmSpentReq: parseInt(get(row, "CM Spent Req"), 10) || 0,
req1: get(row, "CM Req 1"),
req2: get(row, "CM Req 2"),
req3: get(row, "CM Req 3"),
req4: get(row, "CM Req 4")
};
}).filter(function (cm) {
return cm.name;
});
})();