[Combat] IDamageable 인터페이스 적용으로 대미지 시스템 일원화

- PlayerNetworkController에 IDamageable 인터페이스 구현
- DamageEffect, HealEffect가 IDamageable 사용하도록 변경
- 플레이어와 보스 모두에게 대미지/힐 적용 가능

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-03-12 01:29:26 +09:00
parent 14338f752f
commit f4a0c250fb
3 changed files with 77 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
using UnityEngine;
using Colosseum.Stats;
using Colosseum.Player;
using Colosseum.Combat;
namespace Colosseum.Skills.Effects
{
@@ -34,11 +35,11 @@ namespace Colosseum.Skills.Effects
// 대미지 계산
float totalDamage = CalculateDamage(caster);
// 타겟에 대미지 적용
var networkController = target.GetComponent<PlayerNetworkController>();
if (networkController != null)
// 타겟에 대미지 적용 (IDamageable 인터페이스 사용)
var damageable = target.GetComponent<IDamageable>();
if (damageable != null)
{
networkController.TakeDamageRpc(totalDamage);
damageable.TakeDamage(totalDamage, caster);
}
Debug.Log($"[Damage] {caster.name} -> {target.name}: {totalDamage:F1} ({damageType})");

View File

@@ -1,6 +1,7 @@
using UnityEngine;
using Colosseum.Stats;
using Colosseum.Player;
using Colosseum.Combat;
namespace Colosseum.Skills.Effects
{
@@ -22,11 +23,11 @@ namespace Colosseum.Skills.Effects
// 회복량 계산
float totalHeal = CalculateHeal(caster);
// 타겟에 회복 적용
var networkController = target.GetComponent<PlayerNetworkController>();
if (networkController != null)
// 타겟에 회복 적용 (IDamageable 인터페이스 사용)
var damageable = target.GetComponent<IDamageable>();
if (damageable != null)
{
networkController.RestoreHealthRpc(totalHeal);
damageable.Heal(totalHeal);
}
Debug.Log($"[Heal] {caster.name} -> {target.name}: {totalHeal:F1}");