using System; using System.Collections; using UnityEngine; public class Boss_QueenUndead : BossMobActor { [Header("스킬1 쿨타임")] public float Skill1CoolTime = 6f; [Header("스킬1 지속 시간")] public float Skill1LifeTime = 5f; [Header("스킬1 마나번")] public float Skill1Manaburn = 0.02f; [Header("스킬1 발동거리")] public float Skill1Distance = 15f; [Header("---------------------------------------")] public bool Perforation_Line; [Header("스킬2 쿨타임")] public float Skill2CoolTime = 18f; [Header("스킬2 차징시간")] public float Skill2ChargingTime = 2f; [Header("스킬2 데미지")] public float Skill2Dmg = 3.2f; public override void Set(MonsterTableData mobtable, Vector3 pos, Action actDie, int order) { base.Set(mobtable, pos, actDie, order); CoolTime_Skill1 = 1f; CoolTime_Skill2 = 2f; } protected override void Init(bool initSkill1CoolTime, bool initSkill2CoolTime) { base.Init(initSkill1CoolTime, initSkill2CoolTime); if (initSkill1CoolTime) CoolTime_Skill1 = Skill1CoolTime; if (initSkill2CoolTime) CoolTime_Skill2 = Skill2CoolTime; } protected override void Update() { base.Update(); if (IsDead() || IsStop) return; if (UseSkillIndex == 1 && MobStatus != eMobStatus.Skill) { if (isTarget && Vector3.Distance(m_Target.Get_position(), Get_position()) >= Skill1Distance) StartCoroutine(Co_Skill1()); else UseSkillIndex = 0; } else if (UseSkillIndex == 2 && MobStatus != eMobStatus.Skill) StartCoroutine(Co_Skill2()); } IEnumerator Co_Skill1() { Change_MobStatus(eMobStatus.Skill); AnimationPlay("boss_skill1"); // 차징 중 yield return new WaitForSeconds(1f); if (isTarget) { m_Target.Buff_or_Debuff(eCC.SilenceCurse, Skill1LifeTime, Skill1Manaburn); var skilltype = table_skilltypeconfig.Ins.Get_Data_orNull(eSkillExtraType.SilenceCurse); InGameInfo.Ins.Show_Effect(skilltype.e_SkillEffect, m_Target, skilltype.e_EffectLocation, Skill1LifeTime); } Check_Battle(); Init(true, false); } IEnumerator Co_Skill2() { //Change_MobStatus(eMobStatus.Skill); //AnimationPlay("boss_skill2charging"); //InGameInfo.Ins.Show_Effect("Effect_AnubisCharging2", this, eEffectLocation.Bottom, Skill2ChargingTime); //// 차징 중 yield return new WaitForSeconds(Skill2ChargingTime); //for (int i = 0; i < Skill2Count; i++) //{ // if (isTarget) transform.LookAt(m_Target.transform); // else break; // AnimationPlay("boss_skill2attack"); // yield return new WaitForSeconds(Skill2AttackDelay); //} //Check_Battle(); //Init(false, true); } }