Viewing old revision of Module:TEST/Trade_Items
You are viewing an old revision of this page from 1/19/2026, 4:13:12 PM.
View latest versionNo documentation subpage (
/doc) found for this module.const Versions = await require("TEST/Versions");
const LatestGameVersion = Versions.latest;
const VersionEntries = Versions.versions || [];
function isEmptyModule(mod) {
return !mod || Object.keys(mod).length === 0;
}
function renderTable(items) {
let wikitext = '';
wikitext += '{| class="lg-table lg-table--striped"\n';
wikitext += '! Icon !! Name !! Category !! Rarity !! Vendor Cost\n';
for (const id in items) {
const item = items[id];
wikitext += '|-\n';
// Icon
if (item.icon) {
wikitext += `| {{ItemIcon|${item.icon}}}\n`;
} else {
wikitext += '| —\n';
}
// Name
wikitext += `| '''${item.name || id}'''\n`;
// Category
wikitext += `| ${item.category || '—'}\n`;
// Rarity
if (item.rarity) {
wikitext += `| {{Rarity|${item.rarity}}}\n`;
} else {
wikitext += '| common\n';
}
// Vendor cost
if (item.economy && item.economy.vendorCost != null) {
wikitext += `| ${item.economy.vendorCost}\n`;
} else {
wikitext += '| —\n';
}
}
wikitext += '|}\n';
return wikitext;
}
exports.TEST = async function (props = {}) {
let DATA = await require(`TEST/Trade_Items/data/${LatestGameVersion}`);
let usedVersion = LatestGameVersion;
// Fallback: iterate versions list in order
if (isEmptyModule(DATA)) {
for (const entry of VersionEntries) {
const v = entry.id;
const candidate = await require(`TEST/Trade_Items/data/${v}`);
if (!isEmptyModule(candidate)) {
DATA = candidate;
usedVersion = v;
break;
}
}
}
if (isEmptyModule(DATA)) {
return '⚠️ Trade item data is unavailable for all known versions.';
}
let output = '';
output += `''Data version: <code>${usedVersion}</code>''\n\n`;
output += renderTable(DATA);
return output;
};