2026-04-08 스킬시스템 진행중, 폴더구조 변경등

This commit is contained in:
2026-04-08 05:36:01 +09:00
parent 0844a07902
commit 4eca51b885
1334 changed files with 61947 additions and 14859 deletions

View File

@@ -4,17 +4,40 @@ public class DamageEffect : MonoBehaviour, ISkillEffect
{
public void Execute(SkillInstance skill, Transform caster, float chargeRatio)
{
SkillLevelData levelData = skill.CurrentLevelData;
float finalDamage = levelData.Damage * chargeRatio;
float range = levelData.Range;
Vector3 center = caster.position + caster.forward * skill.CurrentLevelData.Range * 0.5f;
ApplyDamage(skill, caster, center, chargeRatio);
}
Collider[] hits = Physics.OverlapSphere(caster.position + caster.forward * range * 0.5f, range);
public void ExecuteAtPosition(SkillInstance skill, Transform caster, Vector3 targetPos, float chargeRatio)
{
ApplyDamage(skill, caster, targetPos, chargeRatio);
}
private void ApplyDamage(SkillInstance skill, Transform caster, Vector3 center, float chargeRatio)
{
SkillLevelData levelData = skill.CurrentLevelData;
int damage = Mathf.RoundToInt(levelData.Damage * chargeRatio);
Collider[] hits = Physics.OverlapSphere(center, levelData.Range);
foreach (Collider hit in hits)
{
if (hit.transform == caster) continue;
// IDamageable 등 인터페이스가 있으면 여기서 적용
Debug.Log($"{hit.name}에게 {finalDamage} 데미지");
IDamageable target = hit.GetComponent<IDamageable>();
if (target != null)
{
target.TakeDamage(damage, caster);
if (skill.Data.AppliedDebuffs != null)
{
StatusEffectReceiver receiver = hit.GetComponent<StatusEffectReceiver>();
if (receiver != null)
{
foreach (var debuff in skill.Data.AppliedDebuffs)
receiver.ApplyDebuff(debuff);
}
}
}
}
}
}