chore: Assets 디렉토리 구조 정리 및 네이밍 컨벤션 적용
- Assets/_Game/ 하위로 게임 에셋 통합 - External/ 패키지 벤더별 분류 (Synty, Animations, UI) - 에셋 네이밍 컨벤션 확립 및 적용 (Data_Skill_, Data_SkillEffect_, Prefab_, Anim_, Model_, BT_ 등) - pre-commit hook으로 네이밍 컨벤션 자동 검사 추가 - RESTRUCTURE_CHECKLIST.md 작성 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
60
Assets/_Game/Scripts/Stats/CharacterStats.cs
Normal file
60
Assets/_Game/Scripts/Stats/CharacterStats.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Colosseum.Stats
|
||||
{
|
||||
/// <summary>
|
||||
/// 캐릭터 스탯 관리 컴포넌트.
|
||||
/// 6개 기본 스탯과 파생 스탯을 관리.
|
||||
/// </summary>
|
||||
public class CharacterStats : MonoBehaviour
|
||||
{
|
||||
[Header("기본 스탯")]
|
||||
[SerializeField] private CharacterStat strength = new CharacterStat(10f);
|
||||
[SerializeField] private CharacterStat dexterity = new CharacterStat(10f);
|
||||
[SerializeField] private CharacterStat intelligence = new CharacterStat(10f);
|
||||
[SerializeField] private CharacterStat vitality = new CharacterStat(10f);
|
||||
[SerializeField] private CharacterStat wisdom = new CharacterStat(10f);
|
||||
[SerializeField] private CharacterStat spirit = new CharacterStat(10f);
|
||||
|
||||
// 기본 스탯 접근자
|
||||
public CharacterStat Strength => strength;
|
||||
public CharacterStat Dexterity => dexterity;
|
||||
public CharacterStat Intelligence => intelligence;
|
||||
public CharacterStat Vitality => vitality;
|
||||
public CharacterStat Wisdom => wisdom;
|
||||
public CharacterStat Spirit => spirit;
|
||||
|
||||
// 파생 스탯 프로퍼티
|
||||
// 최대 체력 = VIT * 10
|
||||
public float MaxHealth => vitality.FinalValue * 10f;
|
||||
|
||||
// 최대 마나 = SPI * 5
|
||||
public float MaxMana => spirit.FinalValue * 5f;
|
||||
|
||||
// 물리 대미지 = STR * 2
|
||||
public float PhysicalDamage => strength.FinalValue * 2f;
|
||||
|
||||
// 마법 대미지 = INT * 2
|
||||
public float MagicDamage => intelligence.FinalValue * 2f;
|
||||
|
||||
// 회복력 = WIS * 1.5
|
||||
public float HealPower => wisdom.FinalValue * 1.5f;
|
||||
|
||||
/// <summary>
|
||||
/// 스탯 타입으로 CharacterStat 가져오기
|
||||
/// </summary>
|
||||
public CharacterStat GetStat(StatType statType)
|
||||
{
|
||||
return statType switch
|
||||
{
|
||||
StatType.Strength => strength,
|
||||
StatType.Dexterity => dexterity,
|
||||
StatType.Intelligence => intelligence,
|
||||
StatType.Vitality => vitality,
|
||||
StatType.Wisdom => wisdom,
|
||||
StatType.Spirit => spirit,
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user