123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using Fort23.Core;
- namespace GameLogic.Combat.Buff
- {
- public class BuffControl
- {
- private BetterList<BuffBasic> _allBuff = new BetterList<BuffBasic>();
- 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);
- }
- }
- }
- }
|