Project_WL/Assets/Script/Character/Mob/Boss/Boss_QueenUndead.cs

93 lines
2.9 KiB
C#

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<int> 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);
}
}