diff --git a/gitadora@asphyxia/handlers/profiles_delta.ts b/gitadora@asphyxia/handlers/profiles_delta.ts index a67bb38..ee12609 100644 --- a/gitadora@asphyxia/handlers/profiles_delta.ts +++ b/gitadora@asphyxia/handlers/profiles_delta.ts @@ -93,6 +93,7 @@ export const getPlayer: EPR = async (info, data, send) => { const profile = dm ? dmProfile : gfProfile; const extra = dm ? dmExtra : gfExtra; + applyPlayHudPreset(extra.playstyle); await applySharedFavoriteMusicToExtra(refid, extra) @@ -771,6 +772,19 @@ async function updatePlayerScoreCollection(refid, playedStages, version, game) { return scores } +function applyPlayHudPreset(playstyle: number[]): void { + if (!Array.isArray(playstyle)) return; + + // Only pad array to required length for version upgrades (50→70). + // Do NOT overwrite any existing values — let the user's saved settings persist. + if (playstyle.length < 70) { + for (let i = playstyle.length; i < 70; i++) { + playstyle[i] = 0; + } + } +} + + async function getPlayerRanking(refid: string, version: string, game: 'gf' | 'dm') : Promise { let profiles = await getAllProfiles(version, game) let playerCount = profiles.length diff --git a/gitadora@asphyxia/models/extra.ts b/gitadora@asphyxia/models/extra.ts index d607aa3..2777254 100644 --- a/gitadora@asphyxia/models/extra.ts +++ b/gitadora@asphyxia/models/extra.ts @@ -18,6 +18,7 @@ export interface Extra { } export function getDefaultExtra(game: 'gf' | 'dm', version: string, id: number) : Extra { + const playstyleLength = version == 'galaxywave' || version == 'galaxywave_delta' ? 70 : 50; const result : Extra = { collection: 'extra', pluginVer: PLUGIN_VER, @@ -25,7 +26,7 @@ export function getDefaultExtra(game: 'gf' | 'dm', version: string, id: number) game, version, id, - playstyle: Array(50).fill(0), + playstyle: Array(playstyleLength).fill(0), custom: Array(50).fill(0), list_1: Array(100).fill(-1), list_2: Array(100).fill(-1), @@ -34,8 +35,34 @@ export function getDefaultExtra(game: 'gf' | 'dm', version: string, id: number) reward_status: Array(50).fill(0), } result.playstyle[1] = 1 // Note scroll speed (should default to 1.0x) + result.playstyle[25] = 0 + result.playstyle[26] = 1 + result.playstyle[27] = 1 + result.playstyle[28] = 1 + result.playstyle[29] = 1 + result.playstyle[30] = 1 + result.playstyle[31] = 1 + result.playstyle[32] = 1 + result.playstyle[33] = 1 + result.playstyle[34] = 1 + result.playstyle[35] = 3 result.playstyle[36] = 20 // Target Timing Adjustment result.playstyle[48] = 20 // Note Display Adjustment + + if (playstyleLength >= 70) { + result.playstyle[21] = 50 //DELTA 判定ライン位置 + result.playstyle[26] = 0 //DELTA 判定エフェクト位置 + result.playstyle[27] = 0 //DELTA SHUTTER IN + result.playstyle[28] = 0 //DELTA SHUTTER OUT + result.playstyle[56] = 0 + result.playstyle[57] = 1 + result.playstyle[58] = 1 + result.playstyle[59] = 1 + result.playstyle[60] = 17 + result.playstyle[61] = 1 + result.playstyle[62] = 1 + result.playstyle[63] = 1 + } return result }