Projext/Assets/Scripts/Player/Stats/Stats.cs

56 lines
2.0 KiB
C#
Raw Normal View History

using UnityEngine;
2026-01-29 06:58:38 +00:00
public class Stats : MonoBehaviour
{
[Header("--- 기본 능력치 ---")]
[SerializeField] private float baseMaxHealth = 100f;
[SerializeField] private float baseMoveSpeed = 5f;
[SerializeField] private float baseAttackDamage = 10f;
[Header("--- 보너스 능력치 ---")]
public float bonusMaxHealth;
public float bonusMoveSpeed;
public float bonusAttackDamage;
[Header("--- 장착 장비 ---")]
public float weaponDamage;
[Header("--- 밸런스 설정 ---")]
2026-01-29 06:58:38 +00:00
[SerializeField] private float runSpeedMultiplier = 1.5f;
2026-01-29 06:58:38 +00:00
/* =========================
*
2026-01-29 06:58:38 +00:00
* ========================= */
public float MaxHealth => baseMaxHealth + bonusMaxHealth;
public float BaseAttackDamage => baseAttackDamage + bonusAttackDamage;
public float TotalAttackDamage => BaseAttackDamage + weaponDamage;
// ✨ [수정] 이제 무게 페널티 없이 순수 속도만 계산합니다.
public float CurrentMoveSpeed => baseMoveSpeed + bonusMoveSpeed;
public float CurrentRunSpeed => CurrentMoveSpeed * runSpeedMultiplier;
2026-01-29 06:58:38 +00:00
private void Update()
{
finalMaxHealth = MaxHealth;
finalMoveSpeed = CurrentMoveSpeed;
finalAttackDamage = TotalAttackDamage;
}
2026-01-29 06:58:38 +00:00
// ✨ [수정] 레벨업 시 체력과 공격력을 올려주도록 변경
public void AddBaseLevelUpStats(float hpAdd, float dmgAdd)
{
baseMaxHealth += hpAdd;
baseAttackDamage += dmgAdd;
}
2026-01-29 06:58:38 +00:00
public void AddMaxHealth(float value) => bonusMaxHealth += value;
public void AddMoveSpeed(float value) => bonusMoveSpeed += value;
public void AddAttackDamage(float value) => bonusAttackDamage += value;
// ✨ [제거] 무게 및 힘 관련 함수들(UpdateWeaponWeight, ResetWeight)이 삭제되었습니다.
[Header("--- 최종 능력치 (Read Only) ---")]
[SerializeField] private float finalMaxHealth;
[SerializeField] private float finalMoveSpeed;
[SerializeField] private float finalAttackDamage;
}