using Adon.Game.BO;
using Adon.Game.Helper;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AdonGameKit
{
///
/// 言灵法阵爆炸
///
public class YLMagicCircleBomb : MonoBehaviour
{
///
/// 爆炸范围
///
public float m_AttackSight = 3;
///
/// 爆炸角度
///
public float m_AttackAngle = 360;
public BaseYLPartAdon m_YL;//释放者挂件(言灵)
public BaseHero m_Hero;
public Transform m_BombEff;
public float m_FireTimeMax = 1;
public string m_CurUseSkill;
float fireTime;
bool isFire;
void Awake()
{
fireTime = m_FireTimeMax;
}
// Start is called before the first frame update
void Start()
{
gameObject.GetComponentInChildren().SetOwner(this.gameObject);
}
private void Update()
{
if (isFire)
{
//计时,周期发送伤害
if (fireTime >= m_FireTimeMax)
{
fireTime = 0;
///检测范围内的怪
List monsters = PlayerHelperAdon.GetNearMonsters(m_AttackSight, m_AttackAngle, gameObject);
for (int i = 0; i < monsters.Count; i++)
{
BaseMonsterAdon monster = monsters[i].GetComponent();
//X2Battle.X2BattleManager.Instance.mBulletModel.OnCastSkill(
// m_Hero.mData.UID, m_CurUseSkill,
// false, m_YL.M_YLType, monster.mData.UID, false);
BulletMessage.catSkillFun(m_Hero.mData.UID, m_CurUseSkill,
false, (int)m_YL.M_YLType, monster.mData.UID, false);
//实例化克隆爆炸光效
Transform effobj = Instantiate(m_BombEff);
effobj.position = monster.m_HitObj.position;//设置爆炸位置
effobj.gameObject.SetActive(true);
effobj.gameObject.AddComponent();
}
}
fireTime += Time.deltaTime;
}
}
public void SetHero(BaseHero _hero)
{
m_Hero = _hero;
}
public void SetBombEff(Transform _bombEff)
{
m_BombEff = _bombEff;
}
///
/// 攻击触发
///
/// 子连击id
public void OnAttackOn(string attackId)
{
isFire = true;
}
public void OnAttackOff()
{
isFire = false;
}
#if UNITY_EDITOR
///
/// 绘制打击配置
///
private void OnDrawGizmosSelected()
{
Vector3 forward = transform.forward;
UnityEditor.Handles.color = new Color(1.0f, 0.0f, 0.0f, 0.1f);
Vector3 rotatedForward = Quaternion.Euler(0, -m_AttackAngle * 0.5f, 0) * transform.forward;
UnityEditor.Handles.DrawSolidArc(transform.position, Vector3.up, rotatedForward, m_AttackAngle, m_AttackSight);
}
#endif
}
}