using System.Collections; using System.Collections.Generic; using UnityEngine; public class BossMobActor : MobActor { public List list_indicator; int m_attackIndex = 0, m_maxAttackIndex; float m_attackspeed; protected override void Awake() { base.Awake(); Init(); } void Init() { list_indicator.ForEach(f => f.SetActive(false)); } public override void Del_Target(bool forcedel = false) { base.Del_Target(forcedel); if (m_Target == null) Init(); } public override void Play_Attack(int _attack, float _as) { if (m_maxAttackIndex == 0) m_maxAttackIndex = m_MonsterTableData.Get_MaxAttackIndex(); if (isPlaying(eAnim.Attack, eAnim.Attack2, eAnim.Attack3)) return; if (m_Target) transform.LookAt(m_Target.transform); CurAnim = eAnim.Attack + m_attackIndex; var aniname = MyValue.Get_AnimName(eAnim.Attack + m_attackIndex); AnimationPlay(aniname); m_attackspeed = _as; m_animation.speed = 0.1f; // 느리게 만들자 } public override void Indicator(int a) { base.Indicator(a); var index = 0; if (isPlaying(eAnim.Attack2)) index = 1; else if (isPlaying(eAnim.Attack3)) index = 2; list_indicator[index].SetActive(a == 0); if (a == 1) { // 데미지 투사체 생성 m_animation.speed = m_attackspeed; var startpos = Get_CenterPositionFoward(); if (ProjectileInfo.Ins) { if (index == 0) ProjectileInfo.Ins.Shoot_Projectile(m_MonsterTableData.s_Porjectile1, this, m_Target, 1f, startpos, m_MonsterTableData.f_ProjectileLifeTime1); else if (index == 1) ProjectileInfo.Ins.Shoot_Projectile(m_MonsterTableData.s_Porjectile2, this, m_Target, 1f, startpos, m_MonsterTableData.f_ProjectileLifeTime2); else ProjectileInfo.Ins.Shoot_Projectile(m_MonsterTableData.s_Porjectile3, this, m_Target, 1f, startpos, m_MonsterTableData.f_ProjectileLifeTime3); } Set_Coroutine_withCancel(() => { Change_MobStatus(eMobStatus.PatrolWait); ++m_attackIndex; if (m_attackIndex >= m_maxAttackIndex) m_attackIndex = 0; }, 0.95f - m_animation.GetCurrentAnimatorStateInfo(0).normalizedTime); } } protected override void Set_Die() { base.Set_Die(); Init(); } protected override void On_NavMeshAgent() { base.On_NavMeshAgent(); Init(); } }