using Adon.Game.BO;
using Adon.Game.Helper;
using AdonGameKit;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 怪物陷阱
///
public class MonsterTrapBullet : MonoBehaviour
{
public float m_AttackAngle = 360;//攻击角度
public float m_AttackSight = 0.8f;//攻击范围
public string m_SkillID;
private BaseMonsterAdon m_BaseMonsterAdon;
bool isFire;
float fireIntervalsTimer;
float m_FireIntervalsTime = 1;
float fireLifeTimer;
float fireLife = 4;
// Start is called before the first frame update
void Start()
{
fireIntervalsTimer = m_FireIntervalsTime;
}
// Update is called once per frame
void Update()
{
//先检测玩家是否进入范围
///检测范围内的英雄
if (PlayerHelperAdon.GetNearEnemyHero(m_AttackSight, m_AttackAngle, gameObject) != null)
{
isFire = true;
}
else
{
isFire = false;
}
//if (m_BaseMonsterAdon.time == null)
//{
// return;
//}
fireLifeTimer += m_BaseMonsterAdon.time.deltaTime;
if (fireLifeTimer >= fireLife) isFire = false;
if (isFire)
{
//计时,周期发送伤害
if (fireIntervalsTimer >= m_FireIntervalsTime)
{
fireIntervalsTimer = 0;
///检测范围内的英雄
List heros = PlayerHelperAdon.GetNearEnemyHero(m_AttackSight, m_AttackAngle, gameObject);
for (int i = 0; i < heros.Count; i++)
{
BaseHero component = heros[i].GetComponent();
//发送战斗信息,等待后台处理逻辑返回数据
//X2Battle.X2BattleManager.Instance.mBulletModel.OnCastSkill(
// m_BaseMonsterAdon.mData.UID, m_SkillID,
// false, X2Battle.EBulletCastPoint.ECAST_POINT_DEFLUAT, component.mData.UID, false);
BulletMessage.catSkillFun(m_BaseMonsterAdon.mData.UID, m_SkillID,
false, (int)X2Battle.EBulletCastPoint.ECAST_POINT_DEFLUAT, component.mData.UID, false);
//实例化克隆爆炸光效
//Transform effobj = Instantiate(m_BombEff);
//effobj.position = monster.m_HitObj.position;//设置爆炸位置
//effobj.gameObject.SetActive(true);
}
}
fireIntervalsTimer += m_BaseMonsterAdon.time.deltaTime;
}
}
public void SetMonster(BaseMonsterAdon monster)
{
m_BaseMonsterAdon = monster;
}
#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
}