From 4c5eddac98b2abc4aa66233f647ae3d00c31a84f Mon Sep 17 00:00:00 2001 From: theBowja Date: Sun, 29 May 2022 15:18:47 -0400 Subject: [PATCH] vo --- myscripts/collateVoiceover.js | 53 +++++++++++++++++++++++++++++++++++ myscripts/myscript.js | 3 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 myscripts/collateVoiceover.js diff --git a/myscripts/collateVoiceover.js b/myscripts/collateVoiceover.js new file mode 100644 index 000000000..60e1e0804 --- /dev/null +++ b/myscripts/collateVoiceover.js @@ -0,0 +1,53 @@ +const xmat = getExcel('MaterialExcelConfigData'); +const xsource = getExcel('MaterialSourceDataExcelConfigData'); +const xfetter = getExcel('FettersExcelConfigData'); + +// copied from collateCharacter +const playerIdToTextMapHash = { 10000005: 2329553598, 10000007: 3241049361 }; + +function collateVoiceover(lang) { + const language = getLanguage(lang); + + let mynamecard = xplayableAvatar.reduce((accum, obj) => { + let data = {}; + data.Id = obj.Id; + + data.name = language[obj.NameTextMapHash]; + if(isPlayer(obj)) data.name = language[playerIdToTextMapHash[obj.Id]]; + + data.story = []; + data.combat = []; + let xvoices = xfetter.filter(ele => ele.AvatarId === obj.Id); + xvoices.forEach(ele => { + let tmp = { + Id: ele.FetterId, // DEBUG + title: language[ele.VoiceTitleTextMapHash], + text: sanitizeDescription(language[ele.VoiceFileTextTextMapHash]), + unlock: ele.Tips.map(e => language[e]).filter(e => e !== '') // TextList/JumpList + } + if(tmp.unlock.length === 0) delete tmp.unlock; + + if(ele.IsHiden === 1) data.story.push(tmp); + else if(ele.IsHiden === 2) data.combat.push(tmp); + else console.log('unknown voiceover tab: ' + ele.FetterId); + }); + + + // data.description = sanitizeDescription(language[obj.DescTextMapHash]); + // data.sortorder = obj.Id; + + // let sauce = xsource.find(ele => ele.Id === obj.Id); + // data.source = sauce.TextList.map(ele => language[ele]).filter(ele => ele !== ''); + + + let filename = makeFileName(getLanguage('EN')[isPlayer(obj) ? playerIdToTextMapHash[obj.Id] : obj.NameTextMapHash]); + if(filename === '') return accum; + if(accum[filename] !== undefined) console.log('filename collision: ' + filename); + accum[filename] = data; + return accum; + }, {}); + + return mynamecard; +} + +module.exports = collateVoiceover; \ No newline at end of file diff --git a/myscripts/myscript.js b/myscripts/myscript.js index 26bf14605..4b1b447b4 100644 --- a/myscripts/myscript.js +++ b/myscripts/myscript.js @@ -126,7 +126,7 @@ function exportData(folder, collateFunc, englishonly, skipwrite) { // exportData('talents', require('./collateTalent.js')); // exportData('weapons', require('./collateWeapon.js')); // exportCurve('weapons', 'WeaponCurveExcelConfigData') -exportData('artifacts', require('./collateArtifact.js')); +// exportData('artifacts', require('./collateArtifact.js')); // exportData('foods', require('./collateFood')); // exportData('materials', require('./collateMaterial'), false); // change: used both TextList/JumpList. temp removed dropdomain/daysofweek // exportData('domains', require('./collateDomain')); // run twice // remember to add back recommendedelements and disorder and entrypicpath @@ -143,6 +143,7 @@ exportData('artifacts', require('./collateArtifact.js')); // exportData('achievements', require('./collateAchievement')); // exportData('achievementgroups', require('./collateAchievementGroup')); // exportData('commissions', require('./collateCommission'), true); +exportData('voiceovers', require('./collateVoiceover'), true); // // exportData('fishingpoints', require('./collateFishingPoint'));