From 56bce9842201f62830f777798b501d31ba02341b Mon Sep 17 00:00:00 2001 From: vvo <> Date: Mon, 17 Oct 2022 19:33:03 +0800 Subject: [PATCH] pregene initial impl --- sdvx@asphyxia/index.ts | 2 +- .../webui/asset/js/premiumgenerator.js | 80 +++++++++++++++++++ .../webui/profile_-premium generator.pug | 38 +++++++++ 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 sdvx@asphyxia/webui/asset/js/premiumgenerator.js create mode 100644 sdvx@asphyxia/webui/profile_-premium generator.pug diff --git a/sdvx@asphyxia/index.ts b/sdvx@asphyxia/index.ts index c822d4b..05bbb1b 100644 --- a/sdvx@asphyxia/index.ts +++ b/sdvx@asphyxia/index.ts @@ -31,7 +31,7 @@ export function register() { R.GameCode('KFC'); R.Config('sdvx_eg_root_dir', { type: 'string', needRestart: true, default: '', name: 'Exceed Gear Data Directory', desc: 'The root directory of your SDVX Exceed Gear game files (for asset copying)'}); - R.Config('unlock_all_valk_items', { type: 'boolean', default: false, name:'Unlock All Valkyrie Items', desc: 'Unlock Nemsys, BGM, Submonitor BG and Stamp Items (Valk crews not included; check \'unlock all navigators\' option)'}); + R.Config('unlock_all_valk_items', { type: 'boolean', default: false, name:'Unlock All Valkyrie and Premium Items', desc: 'Unlock Nemsys, BGM, Submonitor BG and Stamp Items (Valk crews not included; check \'unlock all navigators\' option)'}); R.Config('enable_valk_songs' ,{ type: 'boolean', default: false, name:'Enable Valkyrie Model Songs', desc:'Unlock the valkyrie model songs on non-valkyrie mode.'}); R.Config('arena_szn',{ type: 'string', options: Object.keys(ARENA), default: 'Set 1 (04/25/22)', name: 'Arena Station Item Set', desc: 'Choose which season set of items in the arena station you want to show up in arena station'}); R.Config('x_record', {type: 'boolean', default: false, name: 'X-Record', desc: 'Activates X-record. 10 VM and 1 LM points per play.'}) diff --git a/sdvx@asphyxia/webui/asset/js/premiumgenerator.js b/sdvx@asphyxia/webui/asset/js/premiumgenerator.js new file mode 100644 index 0000000..4d597fb --- /dev/null +++ b/sdvx@asphyxia/webui/asset/js/premiumgenerator.js @@ -0,0 +1,80 @@ +function countPreGeneItems(preGeneItems, items_crew, items_stamp, items_subbg, items_bgm, items_nemsys) { + let totalItemsGot = 0 + console.log(totalItemsGot) + totalItemsGot += items_crew.filter(crew => preGeneItems['crew'].includes(crew['id'])).length + console.log(totalItemsGot) + totalItemsGot += items_stamp.filter(stamp => preGeneItems['stamp'].includes(stamp['id'])).length + console.log(totalItemsGot) + totalItemsGot += items_subbg.filter(subbg => preGeneItems['subbg'].includes(subbg['id'])).length + console.log(totalItemsGot) + return totalItemsGot +} + +$(document).ready(function() { + // let profile_data = JSON.parse(document.getElementById("data-pass").innerText); + let preGeneImageFetchURL = 'https://eacache.s.konaminet.jp/game/sdvx/common/images/pregene_item/' + let items_crew = JSON.parse(document.getElementById("data-pass-crew").innerText); + let items_stamp = JSON.parse(document.getElementById("data-pass-stamp").innerText); + let items_subbg = JSON.parse(document.getElementById("data-pass-subbg").innerText); + let items_bgm = JSON.parse(document.getElementById("data-pass-bgm").innerText); + let items_nemsys = JSON.parse(document.getElementById("data-pass-nemsys").innerText); + let unlock_all = (document.getElementById("data-pass-unlock-all").innerText === 'true'); + let preGeneItems = { + 'crew': [131], + 'stamp': [69, 70, 71, 72, 73, 74, 75, 76, 77, 78], + 'subbg': [166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185] + } + + console.log('crew') + $('.item_banners').append('

') + preGeneItems['crew'].forEach(crew => { + let itemBrightness = items_crew.find(item => item.id == subbg) != undefined ? 1 : 0.5 + $.get('/static/asset/pregene_item/crew/item_crew_' + crew + '.png', function(data, textStatus) { + if (textStatus == "success") { + console.log(crew + " loaded"); + } + }).fail(function(){ + console.log(crew + " not loaded. file not exist") + $('.crew-items').append('') + }); + }) + + console.log('stamp') + $('.item_banners').append('

') + preGeneItems['stamp'].forEach(stamp => { + let itemBrightness = items_stamp.find(item => item.id == stamp) != undefined ? 1 : 0.5 + $.get('/static/asset/pregene_item/stamp/item_stamp_' + stamp + '.png', function(data, textStatus) { + if (textStatus == "success") { + console.log(stamp + " loaded"); + } + }).fail(function(){ + console.log(stamp + " not loaded. file not exist") + $('.stamp-items').append('') + }); + }) + + console.log('subbg') + $('.item_banners').append('

') + preGeneItems['subbg'].forEach(subbg => { + let itemBrightness = items_subbg.find(item => item.id == subbg) != undefined ? 1 : 0.5 + $.get('/static/asset/pregene_item/bg/item_bg_' + subbg + '.png', function(data, textStatus) { + if (textStatus == "success") { + console.log(subbg + " loaded"); + } + }).fail(function(){ + console.log(subbg + " not loaded. file not exist") + $('.subbg-items').append('') + }); + }) + + if(!unlock_all) { + $('.count').text(countPreGeneItems(preGeneItems, items_crew, items_stamp, items_subbg, items_bgm, items_nemsys) + "/" + (preGeneItems['crew'].length + preGeneItems['stamp'].length + preGeneItems['subbg'].length)) + } else { + $('.card-content').text("Unlock all enabled.") + $('#pregene-roll').attr('disabled') + } + + $('#pregene-roll').on('click', function() { + console.log('clique') + }) +}) \ No newline at end of file diff --git a/sdvx@asphyxia/webui/profile_-premium generator.pug b/sdvx@asphyxia/webui/profile_-premium generator.pug new file mode 100644 index 0000000..f442d51 --- /dev/null +++ b/sdvx@asphyxia/webui/profile_-premium generator.pug @@ -0,0 +1,38 @@ +//DATA// + prem_items_crew: DB.Find(refid, {collection:"item",type:11,id:131}) + + prem_items_stamp: DB.Find(refid, { collection:"item",type:17 }) + + prem_items_subbg: DB.Find(refid, { collection:"item",type:18 }) + + prem_items_bgm: DB.Find(refid, { collection:"item",type:19 }) + + prem_items_nemsys: DB.Find(refid, { collection:"item",type:20 }) + + unlock_all: U.GetConfig('unlock_all_valk_items') + +- + //const padded = _.padStart(profile.id.toString(), 8); + //const sdvxid = `${padded.slice(0, 4)}-${padded.slice(4)}`; + +link(rel="stylesheet" href="static/asset/css/datatables.css") +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Premium Generator + .card-content + input.input(type="text" name="refid", value=refid readonly) + button(id="pregene-roll") Roll + div.count() + div.item_banners() + +div(hidden id='data-pass-crew') !{JSON.stringify(prem_items_crew)} +div(hidden id='data-pass-stamp') !{JSON.stringify(prem_items_stamp)} +div(hidden id='data-pass-subbg') !{JSON.stringify(prem_items_subbg)} +div(hidden id='data-pass-bgm') !{JSON.stringify(prem_items_bgm)} +div(hidden id='data-pass-nemsys') !{JSON.stringify(prem_items_nemsys)} +div(hidden id='data-pass-unlock-all') !{unlock_all} +script(src="static/asset/js/premiumgenerator.js") \ No newline at end of file