From 67b09a864ac08af9c57619005b296834e6644e30 Mon Sep 17 00:00:00 2001 From: Luna Date: Fri, 3 Oct 2025 18:20:26 +0200 Subject: [PATCH] hehe trisync --- .../matches/[matchGuid]/+page.svelte | 81 +++++++++++++------ 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/src/routes/tournaments/[tournamentguid]/matches/[matchGuid]/+page.svelte b/src/routes/tournaments/[tournamentguid]/matches/[matchGuid]/+page.svelte index 70fbf8b..e9461b1 100644 --- a/src/routes/tournaments/[tournamentguid]/matches/[matchGuid]/+page.svelte +++ b/src/routes/tournaments/[tournamentguid]/matches/[matchGuid]/+page.svelte @@ -100,6 +100,16 @@ let showAddFromTAPoolPopup: boolean = false; let allowAddFromTAPool: boolean = true; + interface PlayerModState { + platformId: string; + isColorSwitched: boolean; + isHandSwitched: boolean; + isBlueDisabled: boolean; + isRedDisabled: boolean; + } + + let playerModificationStates: PlayerModState[] = [] + // User editing state let isModifyGameplayPopupVisible: boolean = false; let editingPlayerPlatformId: string, editingPlayerName: string, editingPlayerPfp: string = ""; @@ -817,35 +827,59 @@ try { const results: any[] = []; - // Helper function to check if a specific modifier is enabled const isModifierEnabled = (modifier: Command_ModifyGameplay_Modifier): boolean => { return (modifiers & (1 << modifier)) !== 0; }; - // Apply each modifier if enabled - if (isModifierEnabled(Command_ModifyGameplay_Modifier.InvertColors)) { - console.log('Inverting colors for users:', userIds); - const response = await client.flipColors(tournamentGuid, userIds); - results.push({ type: 'InvertColors', response }); - } + let flipColorUserIds: string[] = []; + let flipHandUserIds: string[] = []; + let flipBlueUserIds: string[] = []; + let flipRedUserIds: string[] = []; - if (isModifierEnabled(Command_ModifyGameplay_Modifier.InvertHandedness)) { - console.log('Inverting handedness for users:', userIds); - const response = await client.flipHands(tournamentGuid, userIds); - results.push({ type: 'InvertHandedness', response }); - } + await Promise.all(userIds.map(userId => { + const userObject = playerModificationStates.find(x => x.platformId == userId); + if(!userObject) { + if(isModifierEnabled(Command_ModifyGameplay_Modifier.InvertColors)) flipColorUserIds = [...flipColorUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.InvertHandedness)) flipHandUserIds = [...flipHandUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.DisableBlueNotes)) flipBlueUserIds = [...flipBlueUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.DisableRedNotes)) flipRedUserIds = [...flipRedUserIds, userId]; + playerModificationStates = [...playerModificationStates, { + platformId: userId, + isColorSwitched: isModifierEnabled(Command_ModifyGameplay_Modifier.InvertColors), + isHandSwitched: isModifierEnabled(Command_ModifyGameplay_Modifier.InvertHandedness), + isBlueDisabled: isModifierEnabled(Command_ModifyGameplay_Modifier.DisableBlueNotes), + isRedDisabled: isModifierEnabled(Command_ModifyGameplay_Modifier.DisableRedNotes) + }]; + } else { + if(isModifierEnabled(Command_ModifyGameplay_Modifier.InvertColors) !== userObject.isColorSwitched) flipColorUserIds = [...flipColorUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.InvertHandedness) !== userObject.isHandSwitched) flipHandUserIds = [...flipHandUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.DisableBlueNotes) !== userObject.isBlueDisabled) flipBlueUserIds = [...flipBlueUserIds, userId]; + if(isModifierEnabled(Command_ModifyGameplay_Modifier.DisableRedNotes) !== userObject.isRedDisabled) flipRedUserIds = [...flipRedUserIds, userId]; + playerModificationStates = [...playerModificationStates.filter(x => x.platformId != userId), { + platformId: userId, + isColorSwitched: !userObject.isColorSwitched, + isHandSwitched: !userObject.isHandSwitched, + isBlueDisabled: !userObject.isBlueDisabled, + isRedDisabled: !userObject.isRedDisabled + }]; + } + })); - if (isModifierEnabled(Command_ModifyGameplay_Modifier.DisableBlueNotes)) { - console.log('Disabling blue notes for users:', userIds); - const response = await client.disableBlueNotes(tournamentGuid, userIds); - results.push({ type: 'DisableBlueNotes', response }); - } + console.log('Inverting colors for users:', flipColorUserIds); + const response1 = await client.flipColors(tournamentGuid, flipColorUserIds); + results.push({ type: 'InvertColors', response1 }); - if (isModifierEnabled(Command_ModifyGameplay_Modifier.DisableRedNotes)) { - console.log('Disabling red notes for users:', userIds); - const response = await client.disableRedNotes(tournamentGuid, userIds); - results.push({ type: 'DisableRedNotes', response }); - } + console.log('Inverting handedness for users:', flipHandUserIds); + const response2 = await client.flipHands(tournamentGuid, flipHandUserIds); + results.push({ type: 'InvertHandedness', response2 }); + + console.log('Disabling blue notes for users:', flipBlueUserIds); + const response3 = await client.disableBlueNotes(tournamentGuid, flipBlueUserIds); + results.push({ type: 'DisableBlueNotes', response3 }); + + console.log('Disabling red notes for users:', flipRedUserIds); + const response4 = await client.disableRedNotes(tournamentGuid, flipRedUserIds); + results.push({ type: 'DisableRedNotes', response4 }); console.log(`Applied ${results.length} modifiers successfully`); console.log("Modifier apply res", results); @@ -867,8 +901,7 @@ async function handleSendModifyGameplay(event: CustomEvent) { const { platformId, modifiers } = event.detail; - // Convert platformId to userIds array if needed - const userIds = [platformId]; // or however you map platform ID to user IDs + const userIds = [platformId]; await handleSetGameplayModifiersForUsersVerbose(userIds, modifiers); }