Project_WL/Assets/Script/Character/Projectile/Projectile/Projectile_Split.cs

31 lines
1.0 KiB
C#

public class Projectile_Split : ProjectileBase
{
public float DamageArea = 0f;
public bool ReTarget = false;
public override void Set(ProjectileData _data)
{
_data.DamageArea = DamageArea;
if (ReTarget) _data.target =
ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(_data.shooter.IsEnemy(), transform.position);
if(_data.target == null) { Off(); return; }
base.Set(_data);
StartCoroutine(Co_Move_Split(() =>
{
if (_data.target == null) { Off(); }
else
{
if (DamageArea > 0f)
{
var enemies = Get_Enemies(transform, DamageArea);
for (int i = 0; i < enemies.Count; i++)
enemies[i].Get_Damage(_data.shooter.Get_DamageInfo(_data));
}
else
_data.target.Get_Damage(_data.shooter.Get_DamageInfo(_data));
Off();
}
}, _data.v3_StartPos, _data.target.Get_position(), 1f));
}
}