Skip to content

[3pts] Define ICombatStrategy interface and implement concrete strategies #10

@github-actions

Description

@github-actions

Description

Implement the Strategy pattern for combat actions using ICombatStrategy interface.

Depends on: Character base class issue

ICombatStrategy Interface

  • Execute(Character attacker, Character target) returns CombatResult

CombatResult Class

  • DamageDealt (int)
  • AttackerName (string)
  • TargetName (string)
  • Message (string)

Concrete Strategy Implementations

MeleeStrategy

  • Direct physical damage calculation
  • Uses attacker's AttackPower and target's Defense

MagicStrategy

  • Magic damage that partially bypasses defense
  • Different calculation than melee

RangedStrategy

  • Ranged attack with different mechanics
  • Unique damage calculation

Integration

  • Add CombatStrategy property to Character base class
  • Include code comment explaining Strategy pattern choice

Acceptance Criteria

  • ICombatStrategy interface defined with Execute method
  • CombatResult class created with all properties
  • MeleeStrategy implemented
  • MagicStrategy implemented
  • RangedStrategy implemented
  • Character.CombatStrategy property added
  • Each strategy has distinct damage calculation
  • Code comment explaining Strategy pattern included
  • All classes and interfaces documented with XML comments

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions