NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/SideBuffManager.cs

66 lines
1.8 KiB
C#

using System.Collections.Generic;
using Gameplay.Unit;
namespace Gameplay.Buff
{
public class SideBuffManager
{
public int troopId;
public List<GlobalBuffCacher> buffCachers;
public SideBuffManager(int troopId)
{
this.troopId = troopId;
buffCachers = new List<GlobalBuffCacher>();
}
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);
}
}
}
}