Project_WL/Assets/Script/Character/NPC/WitchEnemyActor.cs

57 lines
1.8 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class WitchEnemyActor : MobActor
{
public List<int> list_MagicID = new List<int>();
public int MagicLv = 10;
List<SkillListTableData> list_Magic = new List<SkillListTableData>();
List<float> list_cooltime = new List<float>();
protected override void Awake()
{
base.Awake();
for (int i = 0; i < list_MagicID.Count; i++)
{
list_Magic.Add(table_skilllist.Ins.Get_Data_orNull(list_MagicID[i]));
list_cooltime.Add(0f);
}
}
protected override void Update()
{
for (int i = 0; i < list_cooltime.Count; i++)
{
if (!isTarget || m_Target.IsDead()) continue;
if (list_cooltime[i] > 0f)
list_cooltime[i] -= Time.deltaTime;
if (list_cooltime[i] <= 0f && CurAnim < eAnim.Die && !IsCC())
{
if (!dic_MagicData.ContainsKey(0))
dic_MagicData.Add(0, new UseMagicInfo());
dic_MagicData[0].m_uiIndex = -1;
dic_MagicData[0].m_SkillTableData = list_Magic[i];
m_Magic = dic_MagicData[0];
list_cooltime[i] = m_Magic.m_SkillTableData.f_CoolTime;
Play_Skill(m_Magic.m_SkillTableData.s_Animation);
}
}
base.Update();
}
void Shoot_MyProjectile()
{
Reset_AttackCoolTime();
Shoot_MagicMissile();
}
void Shoot_MagicMissile()
{
var centerpos = Get_Center_position();
var y = Random.Range(0, 2) == 0 ? centerpos.y + Random.Range(0f, 0.5f) : centerpos.y - Random.Range(0f, 0.5f);
centerpos = new Vector3(centerpos.x, y, centerpos.z);
ProjectileInfo.Ins.Shoot_Projectile("MagicMissile", this, m_Target, 1f, centerpos, 10f);
}
}