31 lines
1.0 KiB
C#
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));
|
|
}
|
|
} |