/// 몬스터 등급 (드랍 품질 및 UI 표시에 영향)
enum MonsterGrade {
  /// 일반 몬스터 (85% 확률)
  /// - 기본 드랍 확률
  /// - UI: 기본 색상, 접두사 없음
  normal,

  /// 정예 몬스터 (12% 확률)
  /// - 물약 드랍 +5%, 아이템 품질 향상
  /// - UI: 파란색, ★ 접두사
  elite,

  /// 보스 몬스터 (3% 확률)
  /// - 물약 드랍 +15%, 최고 아이템 품질
  /// - UI: 금색, ★★★ 접두사
  boss,
}

/// MonsterGrade 확장 메서드
extension MonsterGradeExtension on MonsterGrade {
  /// 물약 드랍 확률 보너스 (0.0 ~ 1.0)
  double get potionDropBonus => switch (this) {
    MonsterGrade.normal => 0.0,
    MonsterGrade.elite => 0.05, // +5%
    MonsterGrade.boss => 0.15, // +15%
  };

  /// UI 표시용 접두사 (몬스터 이름 앞에 붙음)
  String get displayPrefix => switch (this) {
    MonsterGrade.normal => '',
    MonsterGrade.elite => '★ ',
    MonsterGrade.boss => '★★★ ',
  };

  /// 스탯 배율 (전투력 강화)
  double get statMultiplier => switch (this) {
    MonsterGrade.normal => 1.0,
    MonsterGrade.elite => 1.3, // +30% 스탯
    MonsterGrade.boss => 1.8, // +80% 스탯
  };

  /// 경험치 배율
  double get expMultiplier => switch (this) {
    MonsterGrade.normal => 1.0,
    MonsterGrade.elite => 1.5, // +50% 경험치
    MonsterGrade.boss => 2.5, // +150% 경험치
  };

  /// UI 표시용 색상 코드 (hex)
  /// - Normal: null (기본 스타일 사용)
  /// - Elite: 파란색 (#7AA2F7)
  /// - Boss: 금색 (#E0AF68)
  int? get displayColorCode => switch (this) {
    MonsterGrade.normal => null,
    MonsterGrade.elite => 0xFF7AA2F7, // MP 파랑
    MonsterGrade.boss => 0xFFE0AF68, // 골드
  };
}
