feat: IngameUI의 캐릭터 stat 변경 부분 적용되도록 수정

This commit is contained in:
aube.lee
2025-02-19 14:12:54 +09:00
parent 3f3faf9cce
commit ac551330ea
5 changed files with 55 additions and 34 deletions

View File

@@ -28,6 +28,9 @@ namespace TON
private VariableJoystick joystick;
public Rigidbody2D rb;
public event System.Action<float, float> OnHPChanged;
public event System.Action<float, float> OnSPChanged;
public void Start()
{
@@ -35,7 +38,6 @@ namespace TON
joystick = ControllerUI.Instance.joystick;
ControllerUI.Instance.linkedCharactor = this;
attackCollider.EnableCollider(false); // 기본 공격 Enable 비활성화
Initialize();
@@ -49,6 +51,9 @@ namespace TON
currentHP = maxHP = playerData.hp;
currentSP = maxSP = playerData.mp;
OnHPChanged?.Invoke(currentHP, maxHP);
OnSPChanged?.Invoke(currentSP, maxSP);
}
@@ -170,6 +175,14 @@ namespace TON
public void SkillAttack(string skillId)
{
SkillBase skillBase = SkillDataManager.Singleton.GetSkillInstance(skillId);
// 스킬을 사용할 수 있는 스킬포인트가 있는지 판단
// 스킬 포인트가 부족하다면 스킬을 수행하지 못함
if (currentSP < skillBase.SkillData.mpConsumption) return;
currentSP -= skillBase.SkillData.mpConsumption;
OnSPChanged?.Invoke(currentSP, maxSP);
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
bool canExecute = SkillDataManager.Singleton.CanExecuteSkill(skillId);
if (canExecute)
@@ -189,6 +202,8 @@ namespace TON
currentHP -= damage;
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
OnHPChanged?.Invoke(currentHP, maxHP);
// 체력이 0 아래로 떨어지고 현 상태가 IsAlive 일때만 동작하도록 함
if (currentHP <= 0f && prevHP > 0)
{

View File

@@ -15,12 +15,5 @@ namespace TON
linkedCharactor = GetComponent<CharacterBase>();
}
private void Start()
{
IngameUI.Instance.SetHP(linkedCharactor.currentHP, linkedCharactor.maxHP);
IngameUI.Instance.SetSP(linkedCharactor.currentSP, linkedCharactor.maxSP);
IngameUI.Instance.SetPlayerImage(PlayerDataManager.Singleton.player.type);
}
}
}