diff --git a/lib/data/race_data.dart b/lib/data/race_data.dart index c883111..59988be 100644 --- a/lib/data/race_data.dart +++ b/lib/data/race_data.dart @@ -151,9 +151,9 @@ class RaceData { }, passives: [ PassiveAbility( - type: PassiveType.deathEquipmentPreserve, - value: 1.0, - description: '사망 시 장비 1개 유지', + type: PassiveType.defenseBonus, + value: 0.10, + description: '방어력 +10%', ), ], ); diff --git a/lib/src/core/model/combat_state.dart b/lib/src/core/model/combat_state.dart index 3140b3f..c393234 100644 --- a/lib/src/core/model/combat_state.dart +++ b/lib/src/core/model/combat_state.dart @@ -21,6 +21,7 @@ class CombatState { this.activeDoTs = const [], this.lastPotionUsedMs = 0, this.activeDebuffs = const [], + this.isFirstPlayerAttack = true, }); /// 플레이어 전투 스탯 @@ -59,6 +60,9 @@ class CombatState { /// 몬스터에 적용된 활성 디버프 목록 final List activeDebuffs; + /// 첫 번째 플레이어 공격 여부 (firstStrikeBonus 적용용) + final bool isFirstPlayerAttack; + // ============================================================================ // 유틸리티 // ============================================================================ @@ -124,6 +128,7 @@ class CombatState { List? activeDoTs, int? lastPotionUsedMs, List? activeDebuffs, + bool? isFirstPlayerAttack, }) { return CombatState( playerStats: playerStats ?? this.playerStats, @@ -140,6 +145,7 @@ class CombatState { activeDoTs: activeDoTs ?? this.activeDoTs, lastPotionUsedMs: lastPotionUsedMs ?? this.lastPotionUsedMs, activeDebuffs: activeDebuffs ?? this.activeDebuffs, + isFirstPlayerAttack: isFirstPlayerAttack ?? this.isFirstPlayerAttack, ); } diff --git a/lib/src/core/model/race_traits.dart b/lib/src/core/model/race_traits.dart index 1960e50..7dd5503 100644 --- a/lib/src/core/model/race_traits.dart +++ b/lib/src/core/model/race_traits.dart @@ -20,9 +20,6 @@ enum PassiveType { /// MP 배율 보너스 mpBonus, - - /// 사망 시 장비 보존 - deathEquipmentPreserve, } /// 패시브 능력 (passive ability)