플레이어 체력 자연 회복 기능 추가
전투 상태 감지 기능 player stat으로 관리 가능
This commit is contained in:
@@ -19,6 +19,12 @@ namespace Northbound
|
||||
[SerializeField] private float baseSight = 10f;
|
||||
[SerializeField] private float baseAttackRange = 2f;
|
||||
|
||||
[Header("Health Regeneration")]
|
||||
[Tooltip("초당 체력 회복량")]
|
||||
[SerializeField] private float baseHpRegen = 2f;
|
||||
[Tooltip("전투 종료 후 회복 시작까지의 대기 시간 (초)")]
|
||||
[SerializeField] private float baseHpRegenDelay = 5f;
|
||||
|
||||
private PlayerUpgradeManager _upgradeManager;
|
||||
|
||||
private void Awake()
|
||||
@@ -129,6 +135,25 @@ namespace Northbound
|
||||
return baseAttackRange + bonus;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 초당 체력 회복량 반환
|
||||
/// </summary>
|
||||
public float GetHpRegen()
|
||||
{
|
||||
float bonus = CalculateStatBonus("player_hp_regen");
|
||||
return baseHpRegen + bonus;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 전투 종료 후 회복 시작 대기 시간 반환 (초)
|
||||
/// </summary>
|
||||
public float GetHpRegenDelay()
|
||||
{
|
||||
float bonus = CalculateStatBonus("player_hp_regen_delay");
|
||||
// delay는 보통 줄어드는 것이 좋으므로 음수 bonus는 감소로 처리
|
||||
return Mathf.Max(1f, baseHpRegenDelay + bonus);
|
||||
}
|
||||
|
||||
#region Base Stat Setters (에디터/초기화용)
|
||||
|
||||
public void SetBaseMaxHp(int value) => baseMaxHp = value;
|
||||
@@ -138,6 +163,8 @@ namespace Northbound
|
||||
public void SetBaseMoveSpeed(float value) => baseMoveSpeed = value;
|
||||
public void SetBaseSight(float value) => baseSight = value;
|
||||
public void SetBaseAttackRange(float value) => baseAttackRange = value;
|
||||
public void SetBaseHpRegen(float value) => baseHpRegen = value;
|
||||
public void SetBaseHpRegenDelay(float value) => baseHpRegenDelay = value;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -153,7 +180,9 @@ namespace Northbound
|
||||
$" Manpower: {GetManpower()} (기본: {baseManpower})\n" +
|
||||
$" Move Speed: {GetMoveSpeed()} (기본: {baseMoveSpeed})\n" +
|
||||
$" Sight: {GetSight()} (기본: {baseSight})\n" +
|
||||
$" Attack Range: {GetAttackRange()} (기본: {baseAttackRange})");
|
||||
$" Attack Range: {GetAttackRange()} (기본: {baseAttackRange})\n" +
|
||||
$" HP Regen: {GetHpRegen():F1}/s (기본: {baseHpRegen})\n" +
|
||||
$" HP Regen Delay: {GetHpRegenDelay():F1}s (기본: {baseHpRegenDelay})");
|
||||
|
||||
if (_upgradeManager != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user