using System.Collections.Generic;
namespace EerieVillage.Skills
{
///
/// 통합 플레이어 스탯. 패시브 보정이 모두 이 객체에 누적.
/// ActiveSkillRuntime의 EffectiveCooldown·EffectiveDamage 산출 입력.
/// BT12-Dev v1 §2-3 정합.
///
public class PlayerStats
{
/// 전역 싱글톤 참조 (PlayerSkillInventory가 갱신). Phase 2-D 정식 통합 시 DI 전환 예정.
public static PlayerStats Current = new PlayerStats();
/// 대미지 배율 — P01 봉황격·P02~P05 속성 강화
public float DamageMultiplier = 1.0f;
/// 쿨다운 배율 — P06 연사술 (0.8 = 20% 단축). EffectiveCooldown = BaseCooldown * CooldownMultiplier
public float CooldownMultiplier = 1.0f;
/// 광역 배율 — P07 광역확장
public float AreaMultiplier = 1.0f;
/// 추가 투사체 수 — P08 투사체증폭
public int ExtraProjectiles = 0;
/// 크리티컬 확률 — P09
public float CritChance = 0f;
/// 크리티컬 대미지 배율 — P10
public float CritDamage = 1.5f;
/// 추가 최대 하트 수 — P12·P13
public int ExtraMaxHearts = 0;
/// 피해 감소율 — P14 부적방패
public float DamageReduction = 0f;
/// 회피 확률 — P15 회피술
public float EvasionChance = 0f;
/// i-frame 연장 시간 (초) — P15
public float IFrameExtend = 0f;
/// 이동속도 배율 — P18 질풍보
public float MoveSpeedMultiplier = 1.0f;
/// 경험치 배율 — P19 선견지명
public float XPMultiplier = 1.0f;
/// 보물 발견 보너스 — P20 재물복
public float TreasureFindBonus = 0f;
/// 속성별 대미지 배율 (AttributeTag → float)
public Dictionary AttributeMultiplier = new Dictionary
{
{ AttributeTag.Physical, 1.0f },
{ AttributeTag.Fire, 1.0f },
{ AttributeTag.Frost, 1.0f },
{ AttributeTag.Lightning, 1.0f },
{ AttributeTag.Dark, 1.0f }
};
}
}