From e6d43be260123a342dfd7fdee921bdb44bda5165 Mon Sep 17 00:00:00 2001 From: Janis Date: Tue, 31 Mar 2026 14:00:51 +0200 Subject: [PATCH] feat: add PromotionRequiredEvent to Observer for pawn promotion notification Co-Authored-By: Claude Haiku 4.5 --- .../scala/de/nowchess/chess/observer/Observer.scala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala b/modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala index 3ed526b..7d465c5 100644 --- a/modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala +++ b/modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala @@ -1,6 +1,6 @@ package de.nowchess.chess.observer -import de.nowchess.api.board.{Board, Color} +import de.nowchess.api.board.{Board, Color, Square} import de.nowchess.chess.logic.GameHistory /** Base trait for all game state events. @@ -51,6 +51,15 @@ case class InvalidMoveEvent( reason: String ) extends GameEvent +/** Fired when a pawn reaches the back rank and the player must choose a promotion piece. */ +case class PromotionRequiredEvent( + board: Board, + history: GameHistory, + turn: Color, + from: Square, + to: Square +) extends GameEvent + /** Fired when the board is reset. */ case class BoardResetEvent( board: Board,