123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System;
- using System.Collections.Generic;
- using Common.Utility.CombatEvent;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Skill;
- using GameLogic.Hero;
- using UnityEngine;
- namespace GameLogic.Combat.Hero
- {
- public class CombatHeroSkillControlBasic : IDisposable
- {
- public BetterList<SkillBasic> allSkill = new BetterList<SkillBasic>();
- protected CombatHeroEntity _combatHeroEntity;
- /// <summary>
- /// 当前显示跑CD的技能
- /// </summary>
- public SkillBasic currCdSkill;
- public T This<T>() where T : class
- {
- return this as T;
- }
- public async CTask Init(CombatHeroEntity combatHeroEntity)
- {
- _combatHeroEntity = combatHeroEntity;
- await ProInit();
- }
- protected virtual async CTask ProInit()
- {
- }
- public SkillBasic GetSkillBasic(int skillGroupId)
- {
- for (int i = 0; i < allSkill.Count; i++)
- {
- if (allSkill[i].SelfSkillConfig.IDGroup == skillGroupId)
- {
- return allSkill[i];
- }
- }
- return null;
- }
- public virtual async CTask SetNewSkill(SkillInfo[] allSkill)
- {
- }
- public SkillBasic AddSkill(SkillInfo skillInfo)
- {
- if (string.IsNullOrEmpty(skillInfo.skillConfig.scriptName))
- {
- return null;
- }
- SkillBasic skillBasic = SkillScriptManager.Instance.CreateSkillBasic(skillInfo.skillConfig);
- if (skillBasic == null)
- {
- return null;
- }
- skillBasic.InitSkillConfig(_combatHeroEntity,skillInfo);
- // skillBasic.InitSkill(_combatHeroEntity);
- allSkill.Add(skillBasic);
- return skillBasic;
- }
- public void Update(float t)
- {
- for (int i = 0; i < allSkill.Count; i++)
- {
- allSkill[i].CombatUpdate(t);
- }
- ProUpdate(t);
- }
- protected virtual void ProUpdate(float t)
- {
- }
- public virtual void Dispose()
- {
- _combatHeroEntity = null;
- }
- public virtual void ProDormancyObj()
- {
- for (int i = 0; i < allSkill.size; i++)
- {
- SkillBasic skillBasic = allSkill[i];
- CObjectPool.Instance.Recycle(skillBasic);
- }
- allSkill.Clear();
- }
- }
- }
|