using GameLogic.Combat.Hero;
using UnityEngine;
namespace GameLogic.Combat.CombatTool
{
///
/// 法宝战斗场景
///
public class MagicWeaponCombatSence
{
private BetterList _enemyMagicWeaponList = new BetterList();
private BetterList _playerMagicWeaponList = new BetterList();
///
/// 战斗包围盒 minX miny maxx maxy
///
public Vector4 combatBox;
///
/// 我方法宝入场点
///
public Vector3 myEnterCombatPos;
///
/// 地方法宝入场点
///
public Vector3 enemyEnterCombatPos;
public void SetMagicWeaponCombatSence(Vector3 myHeroPos, Vector3 fangXiang)
{
myEnterCombatPos = myHeroPos + fangXiang * 2 + new Vector3(0, 10, 0);
myEnterCombatPos = myHeroPos + fangXiang * 18 + new Vector3(0, 10, 0);
}
///
/// 将法宝添加导战斗场景
///
///
public void AddMagicWeaponToSence(CombatMagicWeaponEntity combatMagicWeaponEntity)
{
if (combatMagicWeaponEntity.IsEnemy)
{
_enemyMagicWeaponList.Add(combatMagicWeaponEntity);
}
else
{
_playerMagicWeaponList.Add(combatMagicWeaponEntity);
}
combatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
}
public void Update(float t)
{
for (int i = 0; i < _enemyMagicWeaponList.Count; i++)
{
_enemyMagicWeaponList[i].Update(t);
}
for (int i = 0; i < _playerMagicWeaponList.Count; i++)
{
_playerMagicWeaponList[i].Update(t);
}
}
public CombatMagicWeaponEntity FindCollidingTarget(CombatMagicWeaponEntity combatMagicWeaponEntity)
{
bool isEnemy = combatMagicWeaponEntity.IsEnemy;
BetterList magicWeaponList =
isEnemy ? _enemyMagicWeaponList : _playerMagicWeaponList;
if (magicWeaponList == null)
{
return null;
}
for (int i = 0; i < magicWeaponList.Count; i++)
{
if (magicWeaponList[i].CollidingTarget == combatMagicWeaponEntity)
{
return magicWeaponList[i];
}
}
int index = CombatCalculateTool.Instance.GetOdd(0, magicWeaponList.Count);
return magicWeaponList[index];
}
}
}