using System.Collections.Generic; using Gameplay.Unit; namespace Gameplay.Buff { public class SideBuffManager { public int troopId; public List buffCachers; public SideBuffManager(int troopId) { this.troopId = troopId; buffCachers = new List(); } public void AddBuff(int buffId, GameUnit creator) { for (int i = 0; i < buffCachers.Count; i++) { var cacher = buffCachers[i]; if (cacher.buffId == buffId && cacher.creator == creator) { return; } } var nCacher = new GlobalBuffCacher(buffId, creator); buffCachers.Add(nCacher); // 遍历已有角色进行添加 nCacher.Init(); } public void RemoveBuff(int buffId, GameUnit creator) { for (int i = 0; i < buffCachers.Count; i++) { var cacher = buffCachers[i]; if (cacher.buffId == buffId && cacher.creator == creator) { cacher.Dispose(); buffCachers.RemoveAt(i); return; } } } public void AddToUnit(GameUnit unit) { for (int i = 0; i < buffCachers.Count; i++) { var cacher = buffCachers[i]; cacher.AddUnit(unit); } } public void RemoveFromUnit(GameUnit unit) { for (int i = 0; i < buffCachers.Count; i++) { var cacher = buffCachers[i]; cacher.RemoveUnit(unit); } } } }