CombatHeroSkillControlBasic.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using System;
  2. using System.Collections.Generic;
  3. using Common.Utility.CombatEvent;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using Fort23.UTool;
  7. using GameLogic.Combat.CombatTool;
  8. using GameLogic.Combat.Skill;
  9. using UnityEngine;
  10. namespace GameLogic.Combat.Hero
  11. {
  12. public class CombatHeroSkillControlBasic : IDisposable
  13. {
  14. public BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
  15. protected CombatHeroEntity _combatHeroEntity;
  16. /// <summary>
  17. /// 当前显示跑CD的技能
  18. /// </summary>
  19. public SkillBasic currCdSkill;
  20. public T This<T>() where T : class
  21. {
  22. return this as T;
  23. }
  24. public async CTask Init(CombatHeroEntity combatHeroEntity)
  25. {
  26. _combatHeroEntity = combatHeroEntity;
  27. await ProInit();
  28. }
  29. protected virtual async CTask ProInit()
  30. {
  31. }
  32. public SkillBasic GetSkillBasic(int skillGroupId)
  33. {
  34. for (int i = 0; i < allSkill.Count; i++)
  35. {
  36. if (allSkill[i].SelfSkillConfig.IDGroup == skillGroupId)
  37. {
  38. return allSkill[i];
  39. }
  40. }
  41. return null;
  42. }
  43. public SkillBasic AddSkill(SkillConfig skillConfig)
  44. {
  45. if (string.IsNullOrEmpty(skillConfig.scriptName))
  46. {
  47. return null;
  48. }
  49. SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillConfig);
  50. if (skillBasic == null)
  51. {
  52. return null;
  53. }
  54. skillBasic.InitSkill(_combatHeroEntity);
  55. allSkill.Add(skillBasic);
  56. return skillBasic;
  57. }
  58. public void Update(float t)
  59. {
  60. for (int i = 0; i < allSkill.Count; i++)
  61. {
  62. allSkill[i].CombatUpdate(t);
  63. }
  64. ProUpdate(t);
  65. }
  66. protected virtual void ProUpdate(float t)
  67. {
  68. }
  69. public virtual void Dispose()
  70. {
  71. _combatHeroEntity = null;
  72. }
  73. public virtual void ProDormancyObj()
  74. {
  75. for (int i = 0; i < allSkill.size; i++)
  76. {
  77. SkillBasic skillBasic = allSkill[i];
  78. CObjectPool.Instance.Recycle(skillBasic);
  79. }
  80. allSkill.Clear();
  81. }
  82. }
  83. }