using Fort23.Core; namespace GameLogic.Combat.Buff { public class BuffControl { private BetterList _allBuff = new BetterList(); private CombatHeroEntity _combatHeroEntity; public void Init(CombatHeroEntity combatHeroEntity) { _combatHeroEntity = combatHeroEntity; } public void AddBuff(CombatHeroEntity source, BuffInfo buffInfo) { BuffBasic buffBasic = GetBuffBasic(buffInfo.BuffConfig.scriptsName); if (buffBasic == null) { return; } buffBasic.Init(_combatHeroEntity, source, buffInfo); _allBuff.Add(buffBasic); } protected BuffBasic GetBuffBasic(string buffName) { string typeName = "GameLogic.Combat.Buff." + buffName; { System.Type type = System.Type.GetType(typeName); if (type == null) { return null; } BuffBasic sb = (BuffBasic)CObjectPool.Instance.Fetch(type); return sb; } } public void RemoveBuff(BuffBasic buffBasic) { if (buffBasic == null) { return; } _allBuff.Remove(buffBasic); buffBasic.Dispose(); CObjectPool.Instance.Recycle(buffBasic); } public void Update(float t) { for (int i = 0; i < _allBuff.Count; i++) { _allBuff[i].Update(t); } } } }