feat(core): 장비 시스템 및 게임 상태 모델 확장

- Equipment 클래스를 11개 슬롯으로 확장 (원본 Main.dfm 충실)
- TaskInfo에 몬스터 정보(baseName, part) 추가
- Stats에 현재 HP/MP 필드 추가
- 히스토리 기능 구현 (plotHistory, questHistory)
- pq_logic winEquip/winStatIndex 원본 로직 개선
- 퀘스트 몬스터 처리 로직 구현
- SaveData 직렬화 확장
This commit is contained in:
JiWoong Sul
2025-12-09 22:30:37 +09:00
parent b512fde1fb
commit b450bf2600
12 changed files with 571 additions and 208 deletions

View File

@@ -1 +1,29 @@
enum EquipmentSlot { weapon, shield, armor }
/// 장비 슬롯 (원본 Main.dfm Equips ListView 순서)
/// 0=Weapon, 1=Shield, 2-10=Armor 계열
enum EquipmentSlot {
weapon, // 0: 무기 → K.Weapons
shield, // 1: 방패 → K.Shields
helm, // 2: 투구 → K.Armors
hauberk, // 3: 사슬갑옷 → K.Armors
brassairts, // 4: 상완갑 → K.Armors
vambraces, // 5: 전완갑 → K.Armors
gauntlets, // 6: 건틀릿 → K.Armors
gambeson, // 7: 갬비슨(누비옷) → K.Armors
cuisses, // 8: 허벅지갑 → K.Armors
greaves, // 9: 정강이갑 → K.Armors
sollerets, // 10: 철제신발 → K.Armors
}
extension EquipmentSlotX on EquipmentSlot {
/// 무기 슬롯 여부
bool get isWeapon => this == EquipmentSlot.weapon;
/// 방패 슬롯 여부
bool get isShield => this == EquipmentSlot.shield;
/// 방어구(armor) 슬롯 여부 (2-10)
bool get isArmor => index >= 2;
/// 슬롯 인덱스 (0-10)
int get slotIndex => index;
}