MagicWeaponCombatSence.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using GameLogic.Combat.Hero;
  2. using UnityEngine;
  3. namespace GameLogic.Combat.CombatTool
  4. {
  5. /// <summary>
  6. /// 法宝战斗场景
  7. /// </summary>
  8. public class MagicWeaponCombatSence
  9. {
  10. private BetterList<CombatMagicWeaponEntity> _enemyMagicWeaponList = new BetterList<CombatMagicWeaponEntity>();
  11. private BetterList<CombatMagicWeaponEntity> _playerMagicWeaponList = new BetterList<CombatMagicWeaponEntity>();
  12. /// <summary>
  13. /// 战斗包围盒 minX miny maxx maxy
  14. /// </summary>
  15. public Vector4 combatBox;
  16. /// <summary>
  17. /// 我方法宝入场点
  18. /// </summary>
  19. public Vector3 myEnterCombatPos;
  20. /// <summary>
  21. /// 地方法宝入场点
  22. /// </summary>
  23. public Vector3 enemyEnterCombatPos;
  24. public void SetMagicWeaponCombatSence(Vector3 myHeroPos, Vector3 fangXiang)
  25. {
  26. myEnterCombatPos = myHeroPos + fangXiang * 2 + new Vector3(0, 10, 0);
  27. myEnterCombatPos = myHeroPos + fangXiang * 18 + new Vector3(0, 10, 0);
  28. }
  29. /// <summary>
  30. /// 将法宝添加导战斗场景
  31. /// </summary>
  32. /// <param name="combatMagicWeaponEntity"></param>
  33. public void AddMagicWeaponToSence(CombatMagicWeaponEntity combatMagicWeaponEntity)
  34. {
  35. if (combatMagicWeaponEntity.IsEnemy)
  36. {
  37. _enemyMagicWeaponList.Add(combatMagicWeaponEntity);
  38. }
  39. else
  40. {
  41. _playerMagicWeaponList.Add(combatMagicWeaponEntity);
  42. }
  43. combatMagicWeaponEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  44. }
  45. public void Update(float t)
  46. {
  47. for (int i = 0; i < _enemyMagicWeaponList.Count; i++)
  48. {
  49. _enemyMagicWeaponList[i].Update(t);
  50. }
  51. for (int i = 0; i < _playerMagicWeaponList.Count; i++)
  52. {
  53. _playerMagicWeaponList[i].Update(t);
  54. }
  55. }
  56. public CombatMagicWeaponEntity FindCollidingTarget(CombatMagicWeaponEntity combatMagicWeaponEntity)
  57. {
  58. bool isEnemy = combatMagicWeaponEntity.IsEnemy;
  59. BetterList<CombatMagicWeaponEntity> magicWeaponList =
  60. isEnemy ? _enemyMagicWeaponList : _playerMagicWeaponList;
  61. if (magicWeaponList == null)
  62. {
  63. return null;
  64. }
  65. for (int i = 0; i < magicWeaponList.Count; i++)
  66. {
  67. if (magicWeaponList[i].CollidingTarget == combatMagicWeaponEntity)
  68. {
  69. return magicWeaponList[i];
  70. }
  71. }
  72. int index = CombatCalculateTool.Instance.GetOdd(0, magicWeaponList.Count);
  73. return magicWeaponList[index];
  74. }
  75. }
  76. }