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; }