59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class Skill_TrapSetup : Projectile_Curved
|
|
{
|
|
public ProjectileHitChecker TrapHitChecker, ExplosionHitChecker;
|
|
public GameObject go_danger;
|
|
[Header("함정설치 거리")]
|
|
public float m_distance = 5f;
|
|
|
|
public override void Set(ProjectileData _data)
|
|
{
|
|
if (_data.shooter.IsRole(eRole.PC))
|
|
SkillCard.dic_button.Add(_data.m_SkillListTableData.n_SkillID, Boom);
|
|
TrapHitChecker.gameObject.SetActive(true);
|
|
TrapHitChecker.Get_Collider().enabled = false;
|
|
go_danger.SetActive(false);
|
|
ExplosionHitChecker.gameObject.SetActive(false);
|
|
_data.Action_OnHit = hitter => { Boom(); };
|
|
_data.eStartPos = eProjectileStartPos.ShooterCenter;
|
|
base.Set(_data);
|
|
Launch_Curved(transform.position, _data.shooter.Get_PositionFoward(m_distance), 1f, 2f, false,
|
|
() =>
|
|
{
|
|
TrapHitChecker.Get_Collider().enabled = true;
|
|
go_danger.SetActive(true);
|
|
});
|
|
StartCoroutine(Co_BoombyTime());
|
|
}
|
|
|
|
IEnumerator Co_BoombyTime()
|
|
{
|
|
yield return new WaitForSeconds(m_ProjecTileData.LifeTime - 1f);
|
|
Boom();
|
|
}
|
|
|
|
bool Boom()
|
|
{
|
|
if (TrapHitChecker.Get_Collider().enabled && !ExplosionHitChecker.gameObject.activeInHierarchy)
|
|
{
|
|
StartCoroutine(Co_Update());
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
IEnumerator Co_Update()
|
|
{
|
|
SkillCard.dic_button.Remove(m_ProjecTileData.m_SkillListTableData.n_SkillID);
|
|
TrapHitChecker.gameObject.SetActive(false);
|
|
go_danger.SetActive(false);
|
|
ExplosionHitChecker.Get_Collider().enabled = true;
|
|
ExplosionHitChecker.gameObject.SetActive(true);
|
|
yield return null;
|
|
ExplosionHitChecker.Get_Collider().enabled = false;
|
|
yield return new WaitForSeconds(1f);
|
|
Off(true);
|
|
}
|
|
} |