-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Description
Implement turn-based combat system with CombatEngine class.
Depends on: Character, Player, Enemy, and ICombatStrategy issues
CombatEngine Class
RunCombat(Player player, Enemy enemy)
Returns CombatOutcome with:
- Winner (Character)
- TotalDamageDealt (int)
- ExperienceEarned (int)
- GoldEarned (int)
- TurnCount (int)
Combat Rules
- Player attacks first each turn
- Each character uses their ICombatStrategy.Execute()
- Combat continues until one character dies (Health <= 0)
- Publishes events via GameEventSystem:
- EnemyDefeatedEvent if player wins
- PlayerDeathEvent if enemy wins
Requirements
- No UI/console output in CombatEngine
- Pure game logic only
- Combat result encapsulates all outcome data
Acceptance Criteria
- CombatEngine class created
- RunCombat(Player player, Enemy enemy) method implemented
- CombatOutcome class defined with all properties
- Player attacks first each turn
- Uses ICombatStrategy.Execute() for attacks
- Combat continues until one character's Health <= 0
- Publishes EnemyDefeatedEvent on enemy death
- Publishes PlayerDeathEvent on player death
- Returns complete CombatOutcome
- No UI logic in class
- Class documented with XML comments
Reactions are currently unavailable