46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class Skill_ExplosionArea : ProjectileBase
|
|
{
|
|
[Header("스킬 판정 범위")]
|
|
public BoxCollider m_Collider;
|
|
|
|
bool isStep3;
|
|
|
|
public override void Set(ProjectileData _data)
|
|
{
|
|
_data.eStartPos = eProjectileStartPos.Custom;
|
|
_data.v3_StartPos = _data.shooter.Get_position();
|
|
base.Set(_data);
|
|
transform.eulerAngles = Vector3.zero;
|
|
Set_ReduceCoolTime_byStep(1);
|
|
isStep3 = IsStep(3);
|
|
|
|
StartCoroutine(Co_ExplosionArea());
|
|
}
|
|
|
|
IEnumerator Co_ExplosionArea()
|
|
{
|
|
m_Collider.size = Vector3.one * 4f;
|
|
if (IsStep(2)) m_Collider.size = Vector3.one * (4f + Get_AwakenData(2, 1));
|
|
|
|
m_Collider.enabled = false;
|
|
yield return new WaitForSeconds(2.8f);
|
|
m_Collider.enabled = true;
|
|
yield return new WaitForSeconds(0.05f);
|
|
m_Collider.enabled = false;
|
|
yield return new WaitForSeconds(0.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;
|
|
}
|
|
} |