50 lines
1.4 KiB
C#
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;
|
|
}
|
|
} |