-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
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
- IGameEventListener interface defined
- GameEvent abstract base class created
- EventType enum defined
- PlayerLevelUpEvent implemented
- EnemyDefeatedEvent implemented
- ItemPickedUpEvent implemented
- PlayerDeathEvent implemented
- GameEventSystem static class with Subscribe/Unsubscribe/Publish
- GameLogger demo listener implemented
- Code comment explaining Observer pattern choice
- All classes documented with XML comments
Reactions are currently unavailable