2026-02-08 14:20:23 +00:00
|
|
|
|
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;
|
|
|
|
|
|
|
2026-02-01 15:49:12 +00:00
|
|
|
|
[Header("--- 장착 장비 ---")]
|
2026-02-08 14:20:23 +00:00
|
|
|
|
public float weaponDamage;
|
2026-02-01 15:49:12 +00:00
|
|
|
|
|
2026-01-29 16:11:10 +00:00
|
|
|
|
[Header("--- 밸런스 설정 ---")]
|
2026-01-29 06:58:38 +00:00
|
|
|
|
[SerializeField] private float runSpeedMultiplier = 1.5f;
|
2026-02-01 15:49:12 +00:00
|
|
|
|
|
2026-01-29 06:58:38 +00:00
|
|
|
|
/* =========================
|
2026-01-29 16:11:10 +00:00
|
|
|
|
* 실제 게임 로직용 프로퍼티
|
2026-01-29 06:58:38 +00:00
|
|
|
|
* ========================= */
|
2026-01-29 16:11:10 +00:00
|
|
|
|
public float MaxHealth => baseMaxHealth + bonusMaxHealth;
|
|
|
|
|
|
public float BaseAttackDamage => baseAttackDamage + bonusAttackDamage;
|
2026-02-01 15:49:12 +00:00
|
|
|
|
public float TotalAttackDamage => BaseAttackDamage + weaponDamage;
|
2026-01-29 16:11:10 +00:00
|
|
|
|
|
2026-02-08 14:20:23 +00:00
|
|
|
|
// ✨ [수정] 이제 무게 페널티 없이 순수 속도만 계산합니다.
|
|
|
|
|
|
public float CurrentMoveSpeed => baseMoveSpeed + bonusMoveSpeed;
|
2026-01-29 16:11:10 +00:00
|
|
|
|
public float CurrentRunSpeed => CurrentMoveSpeed * runSpeedMultiplier;
|
2026-01-29 06:58:38 +00:00
|
|
|
|
|
|
|
|
|
|
private void Update()
|
|
|
|
|
|
{
|
|
|
|
|
|
finalMaxHealth = MaxHealth;
|
|
|
|
|
|
finalMoveSpeed = CurrentMoveSpeed;
|
2026-02-01 15:49:12 +00:00
|
|
|
|
finalAttackDamage = TotalAttackDamage;
|
2026-01-29 16:11:10 +00:00
|
|
|
|
}
|
2026-01-29 06:58:38 +00:00
|
|
|
|
|
2026-02-08 14:20:23 +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;
|
|
|
|
|
|
|
2026-02-08 14:20:23 +00:00
|
|
|
|
// ✨ [제거] 무게 및 힘 관련 함수들(UpdateWeaponWeight, ResetWeight)이 삭제되었습니다.
|
2026-01-29 16:11:10 +00:00
|
|
|
|
|
|
|
|
|
|
[Header("--- 최종 능력치 (Read Only) ---")]
|
|
|
|
|
|
[SerializeField] private float finalMaxHealth;
|
|
|
|
|
|
[SerializeField] private float finalMoveSpeed;
|
|
|
|
|
|
[SerializeField] private float finalAttackDamage;
|
|
|
|
|
|
}
|