MagicWeaponControl.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. // private CombatMagicWeaponEntity _currUserMagicWeapon;
  19. public CombatHeroEntity combatHeroEntity;
  20. public void AddMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  21. {
  22. if (combatHeroEntity.isPlayer)
  23. {
  24. AddMagicWeaponHeroEntityEventData addMagicWeaponHeroEntityEventData =
  25. AddMagicWeaponHeroEntityEventData.Create();
  26. addMagicWeaponHeroEntityEventData.CombatMagicWeaponEntity = combatMagicWeaponEntity;
  27. CombatEventManager.Instance.Dispatch(CombatEventType.AddMagicWeaponHeroEntity,
  28. addMagicWeaponHeroEntityEventData);
  29. }
  30. _allMagicWeapon.Add(combatMagicWeaponEntity);
  31. }
  32. public void RemoveMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  33. {
  34. _allMagicWeapon.Remove(combatMagicWeaponEntity);
  35. }
  36. public async CTask InitMagicWeapon(CombatHeroEntity combatHeroEntity, bool isPlayer)
  37. {
  38. isAutoUse = !isPlayer;
  39. this.combatHeroEntity = combatHeroEntity;
  40. CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
  41. List<FaBaoInfo> MagicWeaponID = combatHeroEntity.CurrCombatHeroInfo.MagicWeaponID;
  42. for (int i = 0; i < MagicWeaponID.Count; i++)
  43. {
  44. CombatMagicWeaponEntity heroEntity = new CombatMagicWeaponEntity();
  45. heroEntity.IsEnemy = combatHeroEntity.IsEnemy;
  46. heroEntity.number = i;
  47. cTaskAwaitBuffer.AddTask(heroEntity.Init(this, MagicWeaponID[i],
  48. delegate(CombatMagicWeaponEntity entity) { AddMagicWeapon(entity); }));
  49. }
  50. }
  51. public void UseMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  52. {
  53. CombatController.currActiveCombat.MagicWeaponCombatSence.AddMagicWeaponToSence(combatMagicWeaponEntity);
  54. }
  55. public void ReduceMagicCd(float cdBl)
  56. {
  57. for (int i = 0; i < _allMagicWeapon.Count; i++)
  58. {
  59. CombatMagicWeaponEntity combatMagicWeaponEntity = _allMagicWeapon[i];
  60. float v = combatMagicWeaponEntity.MaxCd * cdBl * 0.01f;
  61. combatMagicWeaponEntity.cd -= v;
  62. }
  63. }
  64. public void Update(float t)
  65. {
  66. for (int i = 0; i < _allMagicWeapon.Count; i++)
  67. {
  68. _allMagicWeapon[i].Update(t);
  69. }
  70. }
  71. }
  72. }