mirror of
https://github.com/theBowja/GenshinData-1.git
synced 2025-04-28 18:18:13 +09:00
61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
// object map that converts relic EquipType to a property name
|
|
const relicTypeToPropertyName = { 'EQUIP_BRACER': 'flower', 'EQUIP_NECKLACE': 'plume', 'EQUIP_SHOES': 'sands', 'EQUIP_RING': 'goblet', 'EQUIP_DRESS': 'circlet'};
|
|
|
|
function collateArtifact(lang) {
|
|
const language = getLanguage(lang);
|
|
const xsets = getExcel('ReliquarySetExcelConfigData');
|
|
const xrelics = getExcel('ReliquaryExcelConfigData');
|
|
const xreliccodex = getExcel('ReliquaryCodexExcelConfigData');
|
|
const xrefine = getExcel('EquipAffixExcelConfigData');
|
|
|
|
let myartifact = xsets.reduce((accum, obj) => {
|
|
if(obj.setIcon === '') return accum;
|
|
let setname;
|
|
let filename;
|
|
let data = {};
|
|
|
|
// get available rarities
|
|
data.rarity = xreliccodex.reduce((accum, relic) => {
|
|
if(obj.setId !== relic.suitId) return accum;
|
|
relic.level = relic.level.toString();
|
|
if(accum.indexOf(relic.level) === -1) accum.push(relic.level);
|
|
return accum;
|
|
}, []);
|
|
|
|
// set bonus effects
|
|
obj.setNeedNum.forEach((ele, ind) => {
|
|
let effect = xrefine.find(e => e.affixId === obj.EquipAffixId*10 + ind);
|
|
data[ele+'pc'] = language[effect.descTextMapHash];
|
|
if(setname === undefined) {
|
|
setname = language[effect.nameTextMapHash];
|
|
filename = makeFileName(getLanguage('EN')[effect.nameTextMapHash]);
|
|
}
|
|
});
|
|
|
|
if(data.rarity.length === 0) {
|
|
if(lang === 'EN') console.log(`Artifact set: ${setname} not available`);
|
|
return accum;
|
|
}
|
|
|
|
data.images = {};
|
|
// relic pieces
|
|
obj.containsList.forEach(ele => {
|
|
let relic = xrelics.find(e => e.id === ele);
|
|
let relicdata = {};
|
|
relicdata.name = language[relic.nameTextMapHash];
|
|
relicdata.relictype = xmanualtext.find(ele => ele.textMapId === relic.equipType).textMapContentTextMapHash;
|
|
relicdata.relictype = language[relicdata.relictype];
|
|
relicdata.description = language[relic.descTextMapHash];
|
|
data[relicTypeToPropertyName[relic.equipType]] = relicdata;
|
|
data.images['name'+relicTypeToPropertyName[relic.equipType]] = relic.icon;
|
|
data.images[relicTypeToPropertyName[relic.equipType]] = `https://upload-os-bbs.mihoyo.com/game_record/genshin/equip/${relic.icon}.png`;
|
|
});
|
|
|
|
data.name = setname;
|
|
accum[filename] = data;
|
|
return accum;
|
|
}, {});
|
|
return myartifact;
|
|
}
|
|
|
|
module.exports = collateArtifact; |