2026-04-08 스킬시스템 진행중, 폴더구조 변경등
This commit is contained in:
29
Assets/02_Scripts/Skill/Effects/ZoneEffect.cs
Normal file
29
Assets/02_Scripts/Skill/Effects/ZoneEffect.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class ZoneEffect : MonoBehaviour, ISkillEffect
|
||||
{
|
||||
public void Execute(SkillInstance skill, Transform caster, float chargeRatio)
|
||||
{
|
||||
Vector3 center = caster.position + caster.forward * skill.CurrentLevelData.Range;
|
||||
SpawnZone(skill, center);
|
||||
}
|
||||
|
||||
public void ExecuteAtPosition(SkillInstance skill, Transform caster, Vector3 targetPos, float chargeRatio)
|
||||
{
|
||||
SpawnZone(skill, targetPos);
|
||||
}
|
||||
|
||||
private void SpawnZone(SkillInstance skill, Vector3 position)
|
||||
{
|
||||
if (skill.Data.ZonePrefab == null) return;
|
||||
|
||||
GameObject zoneObj = Instantiate(skill.Data.ZonePrefab, position, Quaternion.identity);
|
||||
ZoneEntity entity = zoneObj.GetComponent<ZoneEntity>();
|
||||
if (entity != null)
|
||||
{
|
||||
SkillLevelData data = skill.CurrentLevelData;
|
||||
float tickDmg = data.TickDamage > 0 ? data.TickDamage : data.Damage;
|
||||
entity.Init(tickDmg, data.Range, data.Duration, data.TickInterval, skill.Data.AppliedDebuffs);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user