Description
Implement an event system using the Observer pattern for game-wide notifications.
IGameEventListener Interface
- OnEvent(GameEvent gameEvent)
GameEvent Abstract Base Class
- EventType (enum)
- Message (string)
- Timestamp (DateTime)
EventType Enum
- PlayerLevelUp
- EnemyDefeated
- ItemPickedUp
- PlayerDeath
Concrete Event Classes
- PlayerLevelUpEvent (includes new level)
- EnemyDefeatedEvent (includes enemy name, XP, gold)
- ItemPickedUpEvent (includes item name)
- PlayerDeathEvent (includes cause of death)
GameEventSystem Static Class
- Subscribe(IGameEventListener listener)
- Unsubscribe(IGameEventListener listener)
- Publish(GameEvent gameEvent)
Demo Implementation
- GameLogger class implements IGameEventListener
- Prints events to console with formatting
Requirements
- Include code comment explaining Observer pattern choice
- Thread-safe implementation (not required if single-threaded)
Acceptance Criteria
Description
Implement an event system using the Observer pattern for game-wide notifications.
IGameEventListener Interface
GameEvent Abstract Base Class
EventType Enum
Concrete Event Classes
GameEventSystem Static Class
Demo Implementation
Requirements
Acceptance Criteria