Projext/Assets/Scripts/Player/Stats/Stats.cs
2026-02-08 23:20:23 +09:00

56 lines
2.0 KiB
C#

using UnityEngine;
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("--- 밸런스 설정 ---")]
[SerializeField] private float runSpeedMultiplier = 1.5f;
/* =========================
* 실제 게임 로직용 프로퍼티
* ========================= */
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;
private void Update()
{
finalMaxHealth = MaxHealth;
finalMoveSpeed = CurrentMoveSpeed;
finalAttackDamage = TotalAttackDamage;
}
// ✨ [수정] 레벨업 시 체력과 공격력을 올려주도록 변경
public void AddBaseLevelUpStats(float hpAdd, float dmgAdd)
{
baseMaxHealth += hpAdd;
baseAttackDamage += dmgAdd;
}
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;
}