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

38 lines
1.7 KiB
C#

using System.Collections;
using UnityEngine;
public class Skill_DarkAmbush : ProjectileBase
{
public Projectile_StopAndColliderControl colliderControl;
public override void Set(ProjectileData _data)
{
_data.eStartPos = eProjectileStartPos.Shooter;
base.Set(_data);
transform.eulerAngles = Vector3.zero;
WL.Combat.Weapon.WLGhostStrike.OnSet(this); // WL #943-⑦ 훅(1줄) — 폭발(Exp_*) 자리마다 PC 공격 자세 실루엣(WLGhostStrike.json) · 원본 진행 · 피해 그대로
StartCoroutine(Co_Update());
}
IEnumerator Co_Update()
{
colliderControl.gameObject.SetActive(false);
colliderControl.Set(m_ProjecTileData);
m_ProjecTileData.shooter.Set_Invisible(1.5f, null);
bool keepCam = WL.Combat.Weapon.WLGhostStrike.KeepCamera(this); // WL #953 PD 「카메라 각도를 바꾸지 말고 현재 상태로 착지」 — 규칙(WLGhostStrike.json keepCamera)이면 탑뷰 전환 생략
if (MyValue.m_RealCamera != null && !keepCam) MyValue.m_RealCamera.Set_TopView(m_ProjecTileData.shooter); // WL #881 섬 RealCamera 없음 가드
yield return new WaitForSeconds(0.25f);
colliderControl.gameObject.SetActive(true);
yield return new WaitForSeconds(1.75f);
if (MyValue.m_RealCamera != null && !keepCam) MyValue.m_RealCamera.Set_TopView(null); // WL #881 섬 RealCamera 없음 가드
Off(true);
}
protected override void Off(bool forceoff = false, bool showtimeovereffect = true)
{
base.Off(forceoff, showtimeovereffect);
if (isProjectiledata && !DSUtil.CheckNull(m_ProjecTileData.shooter))
m_ProjecTileData.shooter.Play_Idle();
}
}