66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using System.Collections.Generic;
|
|
using Gameplay.Common;
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|