From 6bc79b0102cd4384ccd0685999bec760ae03d724 Mon Sep 17 00:00:00 2001 From: beo3000 Date: Tue, 30 Dec 2025 20:19:30 +0100 Subject: [PATCH] fix bellValue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zusammenfassung des Problems: - BellValue wurde in Zeile 357 auf false zurückgesetzt, BEVOR es für Trigger ausgewertet wurde - afterThrowState.ThrowPanel.BellValue war dadurch immer false - Bell-Expenses und Bell-GIFs wurden nie ausgelöst Lösung: - bellValue wird jetzt als separater Parameter aus action.AfterThrowState.BellValue übergeben - Die Auswertung erfolgt mit dem ursprünglichen Wert, bevor er zurückgesetzt wird --- src/Koogle.Web/Store/GameState/GameEffects.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Koogle.Web/Store/GameState/GameEffects.cs b/src/Koogle.Web/Store/GameState/GameEffects.cs index db74d04..6b5479d 100644 --- a/src/Koogle.Web/Store/GameState/GameEffects.cs +++ b/src/Koogle.Web/Store/GameState/GameEffects.cs @@ -439,7 +439,8 @@ public class GameEffects winnerId)); // Fire expense triggers for special throw events - await FireThrowTriggersAsync(state, currentPlayerId.Value, action, afterThrowState, dispatcher); + // Note: Use action.AfterThrowState.BellValue since afterThrowState has BellValue reset to false + await FireThrowTriggersAsync(state, currentPlayerId.Value, action, afterThrowState, action.AfterThrowState.BellValue, dispatcher); // Record player statistics (game-type independent) await RecordPlayerStatisticsAsync(state, currentPlayerId.Value, afterThrowState); @@ -892,6 +893,7 @@ public class GameEffects Guid currentPlayerId, RecordThrowAction action, AfterThrowState afterThrowState, + bool bellValue, IDispatcher dispatcher) { // Skip if no day or game context @@ -989,7 +991,7 @@ public class GameEffects } // Check for Bell hit - if (afterThrowState.ThrowPanel.BellValue) + if (bellValue) { var expenses = await _gameEventService.RegisterBellAsync( currentPlayerId, @@ -1014,7 +1016,7 @@ public class GameEffects } // Trigger GIF playback for special events - await TriggerGifForEventsAsync(state, gameId, action, afterThrowState, dispatcher); + await TriggerGifForEventsAsync(state, gameId, action, afterThrowState, bellValue, dispatcher); } catch (Exception ex) { @@ -1032,6 +1034,7 @@ public class GameEffects Guid gameId, RecordThrowAction action, AfterThrowState afterThrowState, + bool bellValue, IDispatcher dispatcher) { var clubId = _clubContext.ClubId; @@ -1046,7 +1049,7 @@ public class GameEffects { triggeredEvent = ThrowEventType.Circle; } - else if (afterThrowState.ThrowPanel.BellValue) + else if (bellValue) { triggeredEvent = ThrowEventType.Bell; }