Project_WL/Assets/Script/Character/Projectile/Skill/Skill_ChainLightning.cs

57 lines
1.5 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Skill_ChainLightning : ProjectileBase
{
List<Actor> list_mob;
int m_Count = 4;
float OffTime;
public override void Set(ProjectileData _data)
{
_data.eStartPos = eProjectileStartPos.ShooterCenter;
transform.localScale = Vector3.one * 1.5f;
base.Set(_data);
m_ProjectTileData.Speed = 40f;
m_Count = IsStep(1) ? 8 : 4;
m_LifeTime = 0f;
OffTime = 0f;
list_mob = Get_Enemies(transform, 10f);
}
void Update()
{
if (OffTime > 0f)
{
OffTime -= Time.deltaTime;
if (OffTime <= 0f)
Off(true);
return;
}
if (list_mob == null || list_mob.Count < 1)
{
OffTime = 1f;
return;
}
if (m_LifeTime <= 0f)
{
var targetpos = list_mob[0].Get_Center_position();
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjectTileData.Speed);
if (Vector3.Distance(transform.position, targetpos) < 0.2f)
{
m_LifeTime = 0.3f;
m_Count -= 1;
list_mob[0].Get_Damage(Get_DamageInfo());
list_mob.RemoveAt(0);
}
if (m_Count <= 0)
OffTime = 1f;
}
else
m_LifeTime -= Time.deltaTime;
}
}