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

54 lines
1.7 KiB
C#
Raw Normal View History

2025-01-17 00:28:44 +00:00
using CodeStage.AntiCheat.ObscuredTypes;
using System.Collections;
using UnityEngine;
public class Skill_PhantomFrenzy : ProjectileBase
{
[Header("공격 애니메이션")]
public string attackAnimationName = "ass_skill3_attack";
[Header("공격 횟수")]
public int AttackCount = 7;
[Header("공격 거리")]
public float AttackDistance = 10f;
public override void Set(ProjectileData _data)
{
base.Set(_data);
StartCoroutine(Co_Update());
}
IEnumerator Co_Update()
{
// 이동 비활성화
OptionInfo.Ins.PCMove = false;
var shooter = m_ProjectTileData.shooter;
ObscuredInt attackTimes = AttackCount; // 공격 횟수 설정
attackTimes.RandomizeCryptoKey();
Actor target = m_ProjectTileData.target;
while (attackTimes > 0)
{
bool moveCompleted = false;
// 목표 지점으로 이동 (이동 완료 시 moveCompleted = true)
shooter.MoveToTarget(target, 0.5f, () => moveCompleted = true);
// 공격 애니메이션 실행
shooter.AnimationPlay(attackAnimationName);
// 이동 완료 대기
while (!moveCompleted || shooter.isPlaying()) yield return null;
// 남은 공격 횟수 감소
--attackTimes;
attackTimes.RandomizeCryptoKey();
target = ActorInfo.Ins.Get_Far_EnemyActor_orNull(shooter.IsEnemy(), shooter.Get_position(), AttackDistance);
if (DSUtil.CheckNull(target)) break;
}
// 이동 활성화 및 대기 상태로 전환
OptionInfo.Ins.PCMove = true;
shooter.Play_Idle();
}
}