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

50 lines
1.4 KiB
C#

using System.Collections;
using UnityEngine;
public class Skill_ExplosionArea : ProjectileBase
{
[Header("스킬 판정 범위")]
public BoxCollider m_Collider;
public Transform tf_effect;
Vector3 originScale = Vector3.zero;
bool isStep3;
public override void Set(ProjectileData _data)
{
if (originScale == Vector3.zero) originScale = tf_effect.localScale;
_data.eStartPos = eProjectileStartPos.Custom;
_data.v3_StartPos = _data.shooter.Get_position();
_data.Action_OnHit = hitter => { hitter.KnockBack(1f, 8f, null, true); };
base.Set(_data);
transform.eulerAngles = Vector3.zero;
Set_ReduceCoolTime_byStep(1);
isStep3 = IsStep(3);
StartCoroutine(Co_ExplosionArea());
}
IEnumerator Co_ExplosionArea()
{
tf_effect.localScale = originScale;
if (IsStep(2)) tf_effect.localScale *= Get_AwakenData(2, 1);
m_Collider.enabled = true;
yield return null;
yield return null;
m_Collider.enabled = false;
yield return new WaitForSeconds(1.5f);
Off(true);
}
public override bool ProcessCollider(Collider other, bool Off_byHit = true, bool NoDMG = false)
{
if (base.ProcessCollider(other, Off_byHit, NoDMG))
{
if (isStep3) other.GetComponent<Actor>().Stun_AfterKnockBack(Get_AwakenData(3, 1));
return true;
}
return false;
}
}