This commit is contained in:
vvo
2024-09-05 16:56:57 +08:00
parent 825e2621b0
commit 20ba236f5b
9 changed files with 438 additions and 46 deletions
+18 -18
View File
@@ -1,8 +1,8 @@
# SOUND VOLTEX
**Plugin Version:** fork-6.0.3.5
**Plugin Version:** fork-6.0.3.6
**Supported game versions:** EXCEED GEAR (2024080500)
**Supported game versions:** EXCEED GEAR (2024082700)
**Unsupported game versions:** Every other game, as they're untested.
@@ -16,6 +16,22 @@
Changelog
===========
## fork-6.0.3.6
### New:
1. Main:
- ARENA Rank Season 15 (ARENA BATTLE, point system)
- ARENA STATION 15: no new songs/charts
- PREMIUM GENERATOR Vol. 5 (Near & Noah EG Set)
- Complete the set to get alternate style for Near & Noah.
2. Misc:
- Added missing licensed songs released prior to EXCEED GEAR.
- [GitHub](https://github.com/22vv0/asphyxia_plugins/issues/4)
- Misc WebUI fixes.
## fork-6.0.3.5
### New:
@@ -37,22 +53,6 @@ Changelog
- Run asset update to pull webui assets from game files.
## 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 unlocks 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.
### Todo:
1. Figure out how to use image (png) files to appear in information/news popup.
+130 -9
View File
@@ -62,15 +62,16 @@ export const INFORMATION6 = {
}
export const LICENSED_SONGS6 = [
'1471', '1477', '1634', '1635', '1636', '1637', '1649', '1650', '1653', '1654',
'1655', '1657', '1658', '1739', '1740', '1741', '1744', '1753', '1754', '1755',
'1756', '1757', '1758', '1759', '1760', '1761', '1810', '1813', '1814', '1821',
'1866', '1867', '1871', '1872', '1873', '1874', '1857', '1858', '1860', '1861',
'1862', '1856', '1859', '1863', '1864', '1865', '1903', '1904', '1911', '1916',
'1917', '1960', '1961', '1962', '2028', '2029', '1912', '1913', '2030', '2031',
'2032', '2033', '2034', '2035', '2036', '1905', '1882', '2058', '2069', '2070',
'2071', '2072', '2073', '2074', '2075', '2076', '2066', '2067', '2068', '2165',
'2166', '2167', '2172', '2173', '2174', '2175', '2184'
'158', '940', '1056', '1057', '1337', '1338', '1339', '1340', '1341', '1342',
'1343', '1344', '1471', '1477', '1634', '1635', '1636', '1637', '1649', '1650',
'1653', '1654', '1655', '1657', '1658', '1739', '1740', '1741', '1744', '1753',
'1754', '1755', '1756', '1757', '1758', '1759', '1760', '1761', '1810', '1813',
'1814', '1821', '1866', '1867', '1871', '1872', '1873', '1874', '1857', '1858',
'1860', '1861', '1862', '1856', '1859', '1863', '1864', '1865', '1903', '1904',
'1911', '1916', '1917', '1960', '1961', '1962', '2028', '2029', '1912', '1913',
'2030', '2031', '2032', '2033', '2034', '2035', '2036', '1905', '1882', '2058',
'2069', '2070', '2071', '2072', '2073', '2074', '2075', '2076', '2066', '2067',
'2068', '2165', '2166', '2167', '2172', '2173', '2174', '2175', '2184'
]
export const STAMP_EVENTS6 = {
@@ -2114,6 +2115,117 @@ export const ARENA = {
param: 8,
}
]
},
'Season 15 (ARENA BATTLE 2024/09/052024/09/30)': {
details: {
season: 15,
rule: 1,
rank_match_target: 0,
time_start: BigInt(Date.parse('05 Sep 2024 00:00:00 GMT')),
time_end: BigInt(Date.parse('30 Sep 2024 23:59:59 GMT')),
shop_start: BigInt(Date.parse('05 Sep 2024 00:00:00 GMT')),
shop_end: BigInt(Date.parse('30 Sep 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: 634,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 8000,
item_type: 0,
item_id: 348,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 8000,
item_type: 0,
item_id: 165,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 4000,
item_type: 0,
item_id: 1743,
param: 23,
},
{
catalog_id: 1,
catalog_type: 1,
price: 4000,
item_type: 0,
item_id: 1846,
param: 23,
},
{
catalog_id: 1,
catalog_type: 1,
price: 8000,
item_type: 0,
item_id: 342,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 4000,
item_type: 0,
item_id: 131,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 4000,
item_type: 0,
item_id: 612,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 2000,
item_type: 0,
item_id: 8,
param: 8,
},
{
catalog_id: 1,
catalog_type: 1,
price: 2000,
item_type: 0,
item_id: 323,
param: 8,
}
]
}
}
@@ -2655,6 +2767,15 @@ export const PREGENE = [
"subbg": [464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482]
},
probability: [0.05, 0.39, 0.6]
},
{
id: 12,
items: {
"crew": [161],
"stamp": [384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396],
"subbg": [498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514]
},
probability: [0.05, 0.39, 0.6]
}
]
+10
View File
@@ -125,6 +125,16 @@ export const common: EPR = async (info, data, send) => {
limited: K.ITEM('u8', limitedNo),
});
}
// Licensed songs released pre-exceed gear
else if (LICENSED_SONGS6.includes(i.toString())) {
for(let j = 0; j < 5; j++) {
songs.push({
music_id: K.ITEM('s32', i),
music_type: K.ITEM('u8', j),
limited: K.ITEM('u8', limitedNo),
});
}
}
}
}
}
+19
View File
@@ -5,6 +5,7 @@ import { Skill } from '../models/skill';
import { getVersion, IDToCode, GetCounter } from '../utils';
import { Mix } from '../models/mix';
import { Rival } from '../models/rival';
import { Item } from '../models/item';
import { PREGENE, COURSES6} from '../data/exg';
import { textureslist } from '../data/webui'
import * as fs from 'fs';
@@ -810,6 +811,24 @@ export const preGeneRoll = async (data: { set: number, refid: string, items: []
} else console.log('pregeneset none')
}
export const preGeneReward = async (data: { reward: [], refid: string }, send: WebUISend) => {
let reward = Object.values(data.reward)
let rewardItem = await DB.Find<Item>(data.refid, {collection: 'item', type: reward[0], id: reward[1], param: reward[2]})
if(rewardItem.length === 0) {
DB.Upsert(data.refid, { collection: "item", type: reward[0], id: reward[1] }, { $set: { param: reward[2] } })
send.json({
received: true,
reward: reward
})
} else {
send.json({
received: false,
reward: reward
})
}
}
export const manageEvents = async (data: { eventConfig: {} }) => {
IO.WriteFile('webui/asset/config/events.json', JSON.stringify(data.eventConfig, null, 4));
}
+2
View File
@@ -9,6 +9,7 @@ import {
getRivalScores,
addRival,
preGeneRoll,
preGeneReward,
manageEvents,
manageStartupFlags
} from './handlers/webui';
@@ -51,6 +52,7 @@ export function register() {
R.WebUIEvent('getRivalScores', getRivalScores);
R.WebUIEvent('addRival', addRival);
R.WebUIEvent('preGeneRoll', preGeneRoll);
R.WebUIEvent('preGeneReward', preGeneReward);
R.WebUIEvent('manageEvents', manageEvents);
R.WebUIEvent('manageStartupFlags', manageStartupFlags);
R.WebUIEvent('updateProfile', updateProfile);
+1 -1
View File
@@ -83,7 +83,7 @@ function getMedal(clear) {
function getAppealCard(appeal) {
var result = appeal_db["appeal_card_data"]["card"].filter(object => object["@id"] == appeal);
return "static/asset/ap_card/" + ((result.length > 0) ? result[0]["info"]["texture"] : 'ap_06_0001') + ".jpg"
return "static/asset/ap_card/" + ((result.length > 0) ? result[0]["info"]["texture"] : 'ap_06_0001') + ".png"
}
function getSongLevel(musicid, type) {
+22 -1
View File
@@ -55,7 +55,10 @@ async function loadItems(itemSet, gene_edition, items_crew, items_stamp, items_s
let geneItems = await getGeneratorEditionItems(gene_edition, itemSet)
let itemCounts = countGeneItems(geneItems, items_crew, items_stamp, items_subbg, items_bgm, items_nemsys, items_sysbg)
if(gene_edition === 'premium') {
if(itemCounts[0] >= itemCounts[1]) $('#pregene-roll').attr('disabled', 'disabled')
if(itemCounts[0] >= itemCounts[1]) {
$('#pregene-roll').attr('disabled', 'disabled')
checkSetReward(geneItems)
}
else $('#pregene-roll').removeAttr('disabled')
} else if(gene_edition === 'valkyrie') {
$('#valgene-roll').attr('disabled', 'disabled')
@@ -126,6 +129,24 @@ function redirectAfterRoll() {
location.search = urlParams;
}
function checkSetReward(geneItems) {
let refid = document.getElementsByName("refid")[0].value
if ('reward' in geneItems) {
emit('preGeneReward', {
reward: geneItems.reward,
refid: refid
}).then(
function(response) {
if(response.data.received) {
$('.modal-card-head').append('<p class="modal-card-title">Got reward for completing set - ' + response.data.reward[4] + '</p>')
$('.modal-card-body').append('<img style="width: 400px; padding: 10px;" src="static/asset/valgene_item/item_' + response.data.reward[3] + '_' + response.data.reward[1] + '.png">')
$('.modal-card-foot').append('<button onclick=redirectAfterRoll(); class="button is-primary">Close</button>')
$('.modal').addClass('is-active')
}
})
}
}
$(document).ready(async function() {
if(document.getElementById("data-pass-unlock-all").innerText === 'true') {
$('.card-content').text("The \"Unlock All Valkyrie and Premium Items\" option is enabled. You wouldn't need this.")
+225 -17
View File
@@ -2591,87 +2591,87 @@
{
"value": 498,
"type": "slideshow",
"name": "subbg_0498"
"name": "Second Game"
},
{
"value": 499,
"type": "slideshow",
"name": "subbg_0499"
"name": "archive::zip"
},
{
"value": 500,
"type": "normal",
"name": "subbg_0500.png"
"name": "XROSS THE XOUL"
},
{
"value": 501,
"type": "normal",
"name": "subbg_0501.png"
"name": "Inixia"
},
{
"value": 502,
"type": "normal",
"name": "subbg_0502.png"
"name": "Dawn of Asia(Alkome Remix)"
},
{
"value": 503,
"type": "normal",
"name": "subbg_0503.png"
"name": "EXCEED GEAR クライマックスシーズン"
},
{
"value": 504,
"type": "video",
"name": "subbg_0504.mp4"
"name": "ゲーム背景(HEAVENLY)"
},
{
"value": 505,
"type": "video",
"name": "subbg_0505.mp4"
"name": "ゲーム背景(LIVESTAGE)"
},
{
"value": 506,
"type": "video",
"name": "subbg_0506.mp4"
"name": "ゲーム背景(赤い月)"
},
{
"value": 507,
"type": "video",
"name": "subbg_0507.mp4"
"name": "ゲーム背景(夜の海)"
},
{
"value": 508,
"type": "video",
"name": "subbg_0508.mp4"
"name": "ゲーム背景(桜)"
},
{
"value": 509,
"type": "video",
"name": "subbg_0509.mp4"
"name": "ゲーム背景(Firestorm)"
},
{
"value": 510,
"type": "video",
"name": "subbg_0510.mp4"
"name": "ゲーム背景(マサカリブレイド)"
},
{
"value": 511,
"type": "video",
"name": "subbg_0511.mp4"
"name": "ゲーム背景(月光乱舞)"
},
{
"value": 512,
"type": "video",
"name": "subbg_0512.mp4"
"name": "全てを真紅に染め上げる"
},
{
"value": 513,
"type": "video",
"name": "subbg_0513.mp4"
"name": "10年の軌跡、重ねる奇跡。"
},
{
"value": 514,
"type": "video",
"name": "subbg_0514.mp4"
"name": "今宵、新たなキセキを穿つ"
}
],
"bgm": [
@@ -9132,6 +9132,214 @@
{
"value": 1532,
"name": "東方Project 06 4"
},
{
"value": 1533,
"name": "おしゃべりニアノア 001 1"
},
{
"value": 1534,
"name": "おしゃべりニアノア 001 2"
},
{
"value": 1535,
"name": "おしゃべりニアノア 001 3"
},
{
"value": 1536,
"name": "おしゃべりニアノア 001 4"
},
{
"value": 1537,
"name": "おしゃべりニアノア 002 1"
},
{
"value": 1538,
"name": "おしゃべりニアノア 002 2"
},
{
"value": 1539,
"name": "おしゃべりニアノア 002 3"
},
{
"value": 1540,
"name": "おしゃべりニアノア 002 4"
},
{
"value": 1541,
"name": "おしゃべりニアノア 003 1"
},
{
"value": 1542,
"name": "おしゃべりニアノア 003 2"
},
{
"value": 1543,
"name": "おしゃべりニアノア 003 3"
},
{
"value": 1544,
"name": "おしゃべりニアノア 003 4"
},
{
"value": 1545,
"name": "おしゃべりニアノア 004 1"
},
{
"value": 1546,
"name": "おしゃべりニアノア 004 2"
},
{
"value": 1547,
"name": "おしゃべりニアノア 004 3"
},
{
"value": 1548,
"name": "おしゃべりニアノア 004 4"
},
{
"value": 1549,
"name": "おしゃべりグレイス 008 1"
},
{
"value": 1550,
"name": "おしゃべりグレイス 008 2"
},
{
"value": 1551,
"name": "おしゃべりグレイス 008 3"
},
{
"value": 1552,
"name": "おしゃべりグレイス 008 4"
},
{
"value": 1553,
"name": "おしゃべりマキシマ 006 1"
},
{
"value": 1554,
"name": "おしゃべりマキシマ 006 2"
},
{
"value": 1555,
"name": "おしゃべりマキシマ 006 3"
},
{
"value": 1556,
"name": "おしゃべりマキシマ 006 4"
},
{
"value": 1557,
"name": "おしゃべりつまぶき 006 1"
},
{
"value": 1558,
"name": "おしゃべりつまぶき 006 2"
},
{
"value": 1559,
"name": "おしゃべりつまぶき 006 3"
},
{
"value": 1560,
"name": "おしゃべりつまぶき 006 4"
},
{
"value": 1561,
"name": "おしゃべりかなで 006 1"
},
{
"value": 1562,
"name": "おしゃべりかなで 006 2"
},
{
"value": 1563,
"name": "おしゃべりかなで 006 3"
},
{
"value": 1564,
"name": "おしゃべりかなで 006 4"
},
{
"value": 1565,
"name": "おしゃべり雷刀 004 1"
},
{
"value": 1566,
"name": "おしゃべり雷刀 004 2"
},
{
"value": 1567,
"name": "おしゃべり雷刀 004 3"
},
{
"value": 1568,
"name": "おしゃべり雷刀 004 4"
},
{
"value": 1569,
"name": "おしゃべり雷刀 005 1"
},
{
"value": 1570,
"name": "おしゃべり雷刀 005 2"
},
{
"value": 1571,
"name": "おしゃべり雷刀 005 3"
},
{
"value": 1572,
"name": "おしゃべり雷刀 005 4"
},
{
"value": 1573,
"name": "おしゃべり烈風刀 004 1"
},
{
"value": 1574,
"name": "おしゃべり烈風刀 004 2"
},
{
"value": 1575,
"name": "おしゃべり烈風刀 004 3"
},
{
"value": 1576,
"name": "おしゃべり烈風刀 004 4"
},
{
"value": 1577,
"name": "おしゃべり烈風刀 005 1"
},
{
"value": 1578,
"name": "おしゃべり烈風刀 005 2"
},
{
"value": 1579,
"name": "おしゃべり烈風刀 005 3"
},
{
"value": 1580,
"name": "おしゃべり烈風刀 005 4"
},
{
"value": 1581,
"name": "おしゃべり紅刃 009 1"
},
{
"value": 1582,
"name": "おしゃべり紅刃 009 2"
},
{
"value": 1583,
"name": "おしゃべり紅刃 009 3"
},
{
"value": 1584,
"name": "おしゃべり紅刃 009 4"
}
],
"akaname": [
+11
View File
@@ -112,6 +112,17 @@
"stamp": [368, 369, 370, 371, 372, 373, 374, 375, 376, 377],
"subbg": [464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482]
}
},
{
"id": 12,
"name": "Premium Generator Vol. 5",
"jpn_exc": false,
"items": {
"crew": [161],
"stamp": [384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396],
"subbg": [498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514]
},
"reward": [11, 161, 5, "crew", "NEAR & NOAH (EXCEED GEAR) Alternate Style"]
}
],
"valgene":[