MagicWeaponControl.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System.Collections.Generic;
  2. using Common.Utility.CombatEvent;
  3. using Core.Utility;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using Fort23.UTool;
  7. using GameLogic.Combat.CombatTool;
  8. using GameLogic.Hero;
  9. namespace GameLogic.Combat.Hero
  10. {
  11. /// <summary>
  12. /// 法宝的管理
  13. /// </summary>
  14. public class MagicWeaponControl
  15. {
  16. public bool isAutoUse;
  17. private BetterList<CombatMagicWeaponEntity> _allMagicWeapon = new BetterList<CombatMagicWeaponEntity>();
  18. public CombatMagicWeaponEntity[] AllMagicWeapon
  19. {
  20. get { return _allMagicWeapon.ToArray(true); }
  21. }
  22. public int MagicWeaponCount
  23. {
  24. get { return _allMagicWeapon.Count; }
  25. }
  26. // private CombatMagicWeaponEntity _currUserMagicWeapon;
  27. public CombatHeroEntity combatHeroEntity;
  28. public void AddMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  29. {
  30. if (combatHeroEntity.isPlayer)
  31. {
  32. AddMagicWeaponHeroEntityEventData addMagicWeaponHeroEntityEventData =
  33. AddMagicWeaponHeroEntityEventData.Create();
  34. addMagicWeaponHeroEntityEventData.CombatMagicWeaponEntity = combatMagicWeaponEntity;
  35. CombatEventManager.Instance.Dispatch(CombatEventType.AddMagicWeaponHeroEntity,
  36. addMagicWeaponHeroEntityEventData);
  37. }
  38. _allMagicWeapon.Add(combatMagicWeaponEntity);
  39. }
  40. public void RemoveMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  41. {
  42. _allMagicWeapon.Remove(combatMagicWeaponEntity);
  43. }
  44. public async CTask InitMagicWeapon(CombatHeroEntity combatHeroEntity, bool isPlayer)
  45. {
  46. isAutoUse = !isPlayer;
  47. this.combatHeroEntity = combatHeroEntity;
  48. CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
  49. List<FaBaoInfo> MagicWeaponID = combatHeroEntity.CurrCombatHeroInfo.MagicWeaponID;
  50. for (int i = 0; i < MagicWeaponID.Count; i++)
  51. {
  52. CombatMagicWeaponEntity heroEntity = new CombatMagicWeaponEntity();
  53. heroEntity.IsEnemy = combatHeroEntity.IsEnemy;
  54. heroEntity.number = i;
  55. cTaskAwaitBuffer.AddTask(heroEntity.Init(this, MagicWeaponID[i],
  56. delegate(CombatMagicWeaponEntity entity) { AddMagicWeapon(entity); }));
  57. }
  58. }
  59. public void UseMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  60. {
  61. CombatController.currActiveCombat.MagicWeaponCombatSence.AddMagicWeaponToSence(combatMagicWeaponEntity);
  62. }
  63. public void ReduceMagicCd(float cdBl)
  64. {
  65. for (int i = 0; i < _allMagicWeapon.Count; i++)
  66. {
  67. CombatMagicWeaponEntity combatMagicWeaponEntity = _allMagicWeapon[i];
  68. float v = combatMagicWeaponEntity.MaxCd * cdBl * 0.01f;
  69. combatMagicWeaponEntity.cd -= v;
  70. }
  71. }
  72. public void Update(float t)
  73. {
  74. for (int i = 0; i < _allMagicWeapon.Count; i++)
  75. {
  76. _allMagicWeapon[i].Update(t);
  77. }
  78. }
  79. }
  80. }