diff --git a/.gitignore b/.gitignore index 0bbfa97..389e944 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +handlers/test.json webui/test_asset s3p_extract.exe ffmpeg.exe \ No newline at end of file diff --git a/README.md b/README.md index d01cac6..57330ab 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # SOUND VOLTEX -**Plugin Version:** fork-6.0.3.3 +**Plugin Version:** fork-6.0.3.4 -**Supported game versions:** EXCEED GEAR (2024060401) +**Supported game versions:** EXCEED GEAR (2024070900) **Unsupported game versions:** Every other game, as they're untested. @@ -16,6 +16,22 @@ Changelog =========== +## fork-6.0.3.4 + +### New: + +1. Main: + - 2024070900 support + - Added ARENA season 14 (rank match: MEGAMIX BATTLE) + - ARENA STATION set 14 added. + - Added TAMANEKO Adventure: new unlock system where you complete map missions and earn food for TAMANEKO. Completing maps unlock new songs and new XCD charts. + - Track Liberation map can be enabled/disabled in the main settings. + - Check 'Unlocking Events -> Stamp Events -> TAMA猫アドベンチャー (TAMANEKO Adventure)' to toggle the event. + +2. Misc: + - Updated Achievements list. + + ## fork-6.0.3.3 ### New: @@ -46,24 +62,6 @@ Changelog - Updated ARENA STATION pricing to reflect real game server prices (might miss some though) -## fork-6.0.3.1 - -### New: - -1. Main: - - 2024040200 support - - Added BPL Season 3 Complete Stamp Event - collect stamps by clearing the BPL S3 songs to unlock NEMSYS ARENA World Hexathlon and 2 new songs. - - Check "Unlocking Events -> Stamp Events -> BPL S3 Complete Stamp Event" to toggle the stamp event. - - Added Mini Grace gift. - - Check "Unlocking Events -> Gift Events -> Mini Grace NEMSYS Crew Gift" to toggle the gift. -2. Misc: - - Added option to apply frames on the appeal card. Check out "Appeal Card Frame" in the customization page for the list of frames. - - Rival implementation. Check "Rivals" page under your profile. - - Originally this plugin will send all profiles as rivals. Users can now make their own list of rivals. - - Added simple score comparison table with your rival/s. - - Cleaned up stamp event code & data. - - ### Todo: 1. Figure out how to use image (png) files to appear in information/news popup. diff --git a/data/exg.ts b/data/exg.ts index ad09161..433b867 100644 --- a/data/exg.ts +++ b/data/exg.ts @@ -444,6 +444,13 @@ export const STAMP_EVENTS6 = { } ] } + }, + 'tamaadv': { + 'type': 'tama', + 'info': { + 'id': 39, + 'list': '1,2,3,4,5,6,7,8,9,10,11' + } } } @@ -1969,6 +1976,133 @@ export const ARENA = { param: 8, } ] + }, + 'Season 14 (MEGAMIX BATTLE 2024/07/11~2024/08/13)': { + details: { + season: 14, + rule: 0, + rank_match_target: 2, + time_start: BigInt(Date.parse('11 Jul 2024 00:00:00 GMT')), + time_end: BigInt(Date.parse('13 Aug 2024 23:59:59 GMT')), + shop_start: BigInt(Date.parse('11 Jul 2024 00:00:00 GMT')), + shop_end: BigInt(Date.parse('13 Aug 2024 23:59:59 GMT')), + is_open: 1, + is_shop: 1 + }, + arena_items: [ + { + catalog_id: 1, + catalog_type: 1, + price: 5000, + item_type: 0, + item_id: 2077, + param: 23, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 5000, + item_type: 0, + item_id: 2078, + param: 23, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 289, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 4000, + item_type: 0, + item_id: 241, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 4000, + item_type: 0, + item_id: 390, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 510, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 842, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 281, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 1745, + param: 23, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 8000, + item_type: 0, + item_id: 1742, + param: 23, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 4000, + item_type: 0, + item_id: 37, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 4000, + item_type: 0, + item_id: 239, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 2000, + item_type: 0, + item_id: 111, + param: 8, + }, + { + catalog_id: 1, + catalog_type: 1, + price: 2000, + item_type: 0, + item_id: 132, + param: 8, + } + ] } } diff --git a/handlers/common.ts b/handlers/common.ts index 1a43149..a5c2c81 100644 --- a/handlers/common.ts +++ b/handlers/common.ts @@ -254,11 +254,7 @@ export const common: EPR = async (info, data, send) => { 'type': 19, 'id': stmpEvntInfo['info']['id'], 'params': [ - 0, - 0, - 0, - 0, - 0, + 0, 0, 0, 0, 0, JSON.stringify(stmpEvntInfo['info']['data']), '', '', @@ -267,6 +263,33 @@ export const common: EPR = async (info, data, send) => { ] }) } + else if(eventData['events'][eventIter]['type'] === 'tama' && eventConfig[eventData['events'][eventIter]['id']] !== undefined && eventConfig[eventData['events'][eventIter]['id']]['toggle']) { + events.push('TAMAADV_ENABLE') + extend.push({ + 'type': 20, + 'id': stmpEvntInfo['info']['id'], + 'params': [ + 0, 0, 0, 0, 0, + (U.GetConfig('tama_track_lib') ? '0,' : '') + stmpEvntInfo['info']['list'], + '', + '', + '', + '' + ] + }) + } + } + } + + if(IO.Exists('handlers/test.json')) { + let bufTest = await IO.ReadFile('handlers/test.json') + let extendTest = JSON.parse(bufTest.toString()) + for(const ex in extendTest) { + extend.push({ + 'type': extendTest[ex]['type'], + 'id': extendTest[ex]['id'], + 'params': extendTest[ex]['params'] + }) } } diff --git a/index.ts b/index.ts index 00eb038..bc526b5 100644 --- a/index.ts +++ b/index.ts @@ -37,6 +37,7 @@ export function register() { R.Config('arena_szn',{ type: 'string', options: Object.keys(ARENA), default: 'None', name: 'Ranked Match Season', desc: 'Current ARENA/SINGLE BATTLE ranked season. Also sets ARENA STATION catalog corresponding to that season.'}); R.Config('enable_valk_songs' ,{ type: 'boolean', default: false, name:'Enable Valkyrie Model Songs', desc:'Enable the valkyrie model songs on non-valkyrie mode.'}); R.Config('use_blasterpass',{ type: 'boolean', default: true, name:'Use Blaster Pass', desc:'Enable Blaster Pass for VW and EG'}); + R.Config('tama_track_lib',{ type: 'boolean', default: true, name:'Enable Track Liberation', desc:'(Requires TAMANEKO adventure event to be enabled) A TAMANEKO adventure map that will unlock a random song that has no unlock condition. OVER ADVENTURE will be displayed if this is disabled and if you have completed all other adventures.'}); R.Config('unlock_all_valk_items', { type: 'boolean', default: false, name:'Unlock All Valkyrie and Premium Items', desc: 'Unlock Nemsys, BGM, Submonitor BG, System BG and Stamp Items (Valk crews not included; check \'unlock all navigators\' option)'}); R.Config('unlock_all_songs', { type: 'boolean', default: false, name:'Unlock All Songs'}); R.Config('unlock_all_navigators', { type: 'boolean', default: false, name:'Unlock All Navigators'} ); diff --git a/webui/asset/js/events.js b/webui/asset/js/events.js index d87afa0..35d7733 100644 --- a/webui/asset/js/events.js +++ b/webui/asset/js/events.js @@ -75,7 +75,7 @@ $(document).ready(async function() { } if(eventData['events'][eventIter]['enabled']) { - if(/stamp|completestamp/.test(eventData['events'][eventIter]['type'])) { + if(/stamp|completestamp|tama/.test(eventData['events'][eventIter]['type'])) { $('#stampevent_select').append( '' ) diff --git a/webui/asset/json/achievements.json b/webui/asset/json/achievements.json index e934334..ff22739 100644 --- a/webui/asset/json/achievements.json +++ b/webui/asset/json/achievements.json @@ -5299,6 +5299,202 @@ "rtype": "aptitle", "rid": 10327, "troptype": 3 + }, + { + "id": 758, + "title": "『KAC開催決定記念!オリジナル楽曲コンテスト2023』 の楽曲をすべてクリア", + "rtype": "aptitle", + "rid": 10328, + "troptype": 2 + }, + { + "id": 759, + "title": "『BEMANI PRO LEAGUE -SEASON 3- オリジナル楽曲コンテスト』 の楽曲をすべてクリア", + "rtype": "aptitle", + "rid": 10329, + "troptype": 2 + }, + { + "id": 760, + "title": "TAMA猫アドベンチャーを 初めてプレー", + "rtype": "aptitle", + "rid": 10330, + "troptype": 1 + }, + { + "id": 761, + "title": "TAMA猫アドベンチャーで 『BPL S3 オリジナル楽曲コンテスト マップ』をクリア", + "rtype": "aptitle", + "rid": 10331, + "troptype": 3 + }, + { + "id": 762, + "title": "TAMA猫アドベンチャーで 100マス 進む", + "rtype": "aptitle", + "rid": 10332, + "troptype": 1 + }, + { + "id": 763, + "title": "TAMA猫アドベンチャーで 500マス 進む", + "rtype": "pcb", + "rid": 100, + "troptype": 1 + }, + { + "id": 764, + "title": "TAMA猫アドベンチャーで 1000マス 進む", + "rtype": "aptitle", + "rid": 10333, + "troptype": 1 + }, + { + "id": 765, + "title": "TAMA猫アドベンチャーで 2000マス 進む", + "rtype": "pcb", + "rid": 100, + "troptype": 1 + }, + { + "id": 766, + "title": "TAMA猫アドベンチャーで 3000マス 進む", + "rtype": "aptitle", + "rid": 10334, + "troptype": 1 + }, + { + "id": 767, + "title": "TAMA猫アドベンチャーで 4000マス 進む", + "rtype": "pcb", + "rid": 100, + "troptype": 1 + }, + { + "id": 768, + "title": "TAMA猫アドベンチャーで 5000マス 進む", + "rtype": "aptitle", + "rid": 10335, + "troptype": 2 + }, + { + "id": 769, + "title": "TAMA猫アドベンチャーで 6000マス 進む", + "rtype": "pcb", + "rid": 300, + "troptype": 2 + }, + { + "id": 770, + "title": "TAMA猫アドベンチャーで 7000マス 進む", + "rtype": "aptitle", + "rid": 10336, + "troptype": 2 + }, + { + "id": 771, + "title": "TAMA猫アドベンチャーで 8000マス 進む", + "rtype": "pcb", + "rid": 300, + "troptype": 2 + }, + { + "id": 772, + "title": "TAMA猫アドベンチャーで 9000マス 進む", + "rtype": "pcb", + "rid": 300, + "troptype": 2 + }, + { + "id": 773, + "title": "TAMA猫アドベンチャーで 10000マス 進む", + "rtype": "aptitle", + "rid": 10337, + "troptype": 3 + }, + { + "id": 774, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 1周する", + "rtype": "aptitle", + "rid": 10338, + "troptype": 3 + }, + { + "id": 775, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 2周する", + "rtype": "aptitle", + "rid": 10339, + "troptype": 3 + }, + { + "id": 776, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 3周する", + "rtype": "aptitle", + "rid": 10340, + "troptype": 3 + }, + { + "id": 777, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 4周する", + "rtype": "aptitle", + "rid": 10341, + "troptype": 3 + }, + { + "id": 778, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 5周する", + "rtype": "aptitle", + "rid": 10342, + "troptype": 3 + }, + { + "id": 779, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 6周する", + "rtype": "aptitle", + "rid": 10343, + "troptype": 3 + }, + { + "id": 780, + "title": "TAMA猫アドベンチャーで『OVER ADVENTURE』を 7周する", + "rtype": "aptitle", + "rid": 10344, + "troptype": 3 + }, + { + "id": 781, + "title": "TAMA猫アドベンチャーでミッションを 10個クリア", + "rtype": "aptitle", + "rid": 10345, + "troptype": 1 + }, + { + "id": 782, + "title": "TAMA猫アドベンチャーでミッションを 30個クリア", + "rtype": "pcb", + "rid": 100, + "troptype": 1 + }, + { + "id": 783, + "title": "TAMA猫アドベンチャーでミッションを 50個クリア", + "rtype": "aptitle", + "rid": 10346, + "troptype": 2 + }, + { + "id": 784, + "title": "TAMA猫アドベンチャーでミッションを 70個クリア", + "rtype": "pcb", + "rid": 300, + "troptype": 2 + }, + { + "id": 785, + "title": "TAMA猫アドベンチャーでミッションを 100個クリア", + "rtype": "aptitle", + "rid": 10347, + "troptype": 3 } ] } \ No newline at end of file diff --git a/webui/asset/json/events.json b/webui/asset/json/events.json index ff4f594..1e6d4d2 100644 --- a/webui/asset/json/events.json +++ b/webui/asset/json/events.json @@ -286,6 +286,14 @@ "name": "BEMANI PRO LEAGUE -SEASON 3- Special Stamp", "desc": "Similar to BPL S2 stamp event (SuddeИDeath,) this is an event to unlock 10 songs, including { eXLIPXe }. Songs can be unlocked in any order, except for { eXLIPXe }, which will be available to unlock for 30 stamps once all the other songs are unlocked.", "info": "Toggle this on to enable this stamp event." + }, + { + "id": "tamaadv", + "type": "tama", + "enabled": true, + "name": "TAMA猫アドベンチャー (TAMANEKO Adventure)", + "desc": "New unlock system where you complete map missions to earn TAMANEKO food. New and XCD charts are available to unlock, as well as a 'Track Liberation' and 'OVER ADVENTURE' feature.", + "info": "Toggle to enable/disable event." } ], "flags": [