feat(core): 몬스터 등급 시스템 추가

- MonsterGrade 열거형 및 색상 정의
- GameState/ItemStats 확장
- pq_logic 유틸리티 함수 추가
- ASCII 색상 상수 추가
This commit is contained in:
JiWoong Sul
2026-01-05 17:52:47 +09:00
parent e112378ad2
commit 5c8ab0d3f4
5 changed files with 156 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import 'package:asciineverdie/src/core/model/combat_state.dart';
import 'package:asciineverdie/src/core/model/equipment_item.dart';
import 'package:asciineverdie/src/core/model/equipment_slot.dart';
import 'package:asciineverdie/src/core/model/item_stats.dart';
import 'package:asciineverdie/src/core/model/monster_grade.dart';
import 'package:asciineverdie/src/core/model/potion.dart';
import 'package:asciineverdie/src/core/model/skill.dart';
import 'package:asciineverdie/src/core/util/deterministic_random.dart';
@@ -280,6 +281,7 @@ class TaskInfo {
this.monsterBaseName,
this.monsterPart,
this.monsterLevel,
this.monsterGrade,
});
final String caption;
@@ -294,6 +296,9 @@ class TaskInfo {
/// 킬 태스크의 몬스터 레벨 (애니메이션 크기 결정용)
final int? monsterLevel;
/// 킬 태스크의 몬스터 등급 (Normal/Elite/Boss)
final MonsterGrade? monsterGrade;
factory TaskInfo.empty() =>
const TaskInfo(caption: '', type: TaskType.neutral);
@@ -303,6 +308,7 @@ class TaskInfo {
String? monsterBaseName,
String? monsterPart,
int? monsterLevel,
MonsterGrade? monsterGrade,
}) {
return TaskInfo(
caption: caption ?? this.caption,
@@ -310,6 +316,7 @@ class TaskInfo {
monsterBaseName: monsterBaseName ?? this.monsterBaseName,
monsterPart: monsterPart ?? this.monsterPart,
monsterLevel: monsterLevel ?? this.monsterLevel,
monsterGrade: monsterGrade ?? this.monsterGrade,
);
}
}