2026-04-08 스킬시스템 진행중, 폴더구조 변경등
This commit is contained in:
@@ -4,10 +4,19 @@ public class AreaEffect : MonoBehaviour, ISkillEffect
|
||||
{
|
||||
public void Execute(SkillInstance skill, Transform caster, float chargeRatio)
|
||||
{
|
||||
SkillLevelData levelData = skill.CurrentLevelData;
|
||||
float finalDamage = levelData.Damage * chargeRatio;
|
||||
Vector3 center = caster.position + caster.forward * skill.CurrentLevelData.Range;
|
||||
ApplyArea(skill, caster, center, chargeRatio);
|
||||
}
|
||||
|
||||
Vector3 center = caster.position + caster.forward * levelData.Range;
|
||||
public void ExecuteAtPosition(SkillInstance skill, Transform caster, Vector3 targetPos, float chargeRatio)
|
||||
{
|
||||
ApplyArea(skill, caster, targetPos, chargeRatio);
|
||||
}
|
||||
|
||||
private void ApplyArea(SkillInstance skill, Transform caster, Vector3 center, float chargeRatio)
|
||||
{
|
||||
SkillLevelData levelData = skill.CurrentLevelData;
|
||||
int damage = Mathf.RoundToInt(levelData.Damage * chargeRatio);
|
||||
|
||||
if (skill.Data.EffectPrefab != null)
|
||||
{
|
||||
@@ -19,25 +28,21 @@ public void Execute(SkillInstance skill, Transform caster, float chargeRatio)
|
||||
{
|
||||
if (hit.transform == caster) continue;
|
||||
|
||||
Debug.Log($"[범위] {hit.name}에게 {finalDamage} 데미지");
|
||||
}
|
||||
}
|
||||
IDamageable target = hit.GetComponent<IDamageable>();
|
||||
if (target != null)
|
||||
{
|
||||
target.TakeDamage(damage, caster);
|
||||
|
||||
public void ExecuteAtPosition(SkillInstance skill, Transform caster, Vector3 targetPos)
|
||||
{
|
||||
SkillLevelData levelData = skill.CurrentLevelData;
|
||||
|
||||
if (skill.Data.EffectPrefab != null)
|
||||
{
|
||||
Instantiate(skill.Data.EffectPrefab, targetPos, Quaternion.identity);
|
||||
}
|
||||
|
||||
Collider[] hits = Physics.OverlapSphere(targetPos, levelData.Range);
|
||||
foreach (Collider hit in hits)
|
||||
{
|
||||
if (hit.transform == caster) continue;
|
||||
|
||||
Debug.Log($"[범위지정] {hit.name}에게 {levelData.Damage} 데미지");
|
||||
if (skill.Data.AppliedDebuffs != null)
|
||||
{
|
||||
StatusEffectReceiver receiver = hit.GetComponent<StatusEffectReceiver>();
|
||||
if (receiver != null)
|
||||
{
|
||||
foreach (var debuff in skill.Data.AppliedDebuffs)
|
||||
receiver.ApplyDebuff(debuff);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user