MagicWeaponControl.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. namespace GameLogic.Combat.Hero
  9. {
  10. /// <summary>
  11. /// 法宝的管理
  12. /// </summary>
  13. public class MagicWeaponControl
  14. {
  15. public bool isAutoUse;
  16. private BetterList<CombatMagicWeaponEntity> _allMagicWeapon = new BetterList<CombatMagicWeaponEntity>();
  17. // private CombatMagicWeaponEntity _currUserMagicWeapon;
  18. public CombatHeroEntity combatHeroEntity;
  19. public void AddMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  20. {
  21. if (combatHeroEntity.isPlayer)
  22. {
  23. AddMagicWeaponHeroEntityEventData addMagicWeaponHeroEntityEventData =
  24. AddMagicWeaponHeroEntityEventData.Create();
  25. addMagicWeaponHeroEntityEventData.CombatMagicWeaponEntity = combatMagicWeaponEntity;
  26. CombatEventManager.Instance.Dispatch(CombatEventType.AddMagicWeaponHeroEntity,
  27. addMagicWeaponHeroEntityEventData);
  28. }
  29. _allMagicWeapon.Add(combatMagicWeaponEntity);
  30. }
  31. public void RemoveMagicWeapon(CombatMagicWeaponEntity combatMagicWeaponEntity)
  32. {
  33. _allMagicWeapon.Remove(combatMagicWeaponEntity);
  34. }
  35. public async CTask InitMagicWeapon(CombatHeroEntity combatHeroEntity, bool isPlayer)
  36. {
  37. isAutoUse = !isPlayer;
  38. this.combatHeroEntity = combatHeroEntity;
  39. CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
  40. List<int> MagicWeaponID = combatHeroEntity.CurrCombatHeroInfo.MagicWeaponID;
  41. for (int i = 0; i < MagicWeaponID.Count; i++)
  42. {
  43. CombatMagicWeaponEntity heroEntity = new CombatMagicWeaponEntity();
  44. heroEntity.IsEnemy = combatHeroEntity.IsEnemy;
  45. heroEntity.number = i;
  46. MagicWeaponConfig magicWeaponConfig = ConfigComponent.Instance.Get<MagicWeaponConfig>(MagicWeaponID[i]);
  47. cTaskAwaitBuffer.AddTask(heroEntity.Init(this, magicWeaponConfig,
  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. }