BUFF列表管理

当玩家获得新BUFF时。
对其判断,以决定是将其:
直接加入
替换旧BUFF
与已有BUFF叠加
先上图
BUFF列表管理_第1张图片

再上码
代码没跑过不知道有没有BUG,逻辑基本就是这样了。

//buff 列表管理
public void getBuff(var newBuff)
{
	if(buffList.Count >= buffListMax)
	{	Debuger.Log("buff列表已满,拒绝添加!");	return;}

    switch (newBuff.mode)
    {
        case "替换": buffReplace(newBuff, buffList);
        break;

        case "叠加": buffSuperposition(newBuff, buffList);
		break;

        default: buffAdd(newBuff, buffList)
        break;
    }
}
//buff 替换
public void buffReplace(var newBuff, var buffList)
{
	foreach (var b in buffList)
	{
		if(newBuff.type == b.type)
		{
			if(newBuff.value <= b.value)
				return;
			if(newBuff.time <= b.time)
				return;
			buffList.Remove(b);
			buffList.Add(newBuff);
		}
	}
}
//buff 叠加
public void buffSuperposition(var newBuff, var buffList)
{
	foreach (var b in buffList)
	{
		if(newBuff.type == b.type)
		{
			switch (newBuff.typeValue)
		    {
		        case "buff效果值": b.value += newBuff.value;
		        break;
				//"buff持续时间"
		        default: b.time += newBuff.time;
		        break;
		    }
			return ;
		}
	}
}
//buff 添加
public void buffAdd(var newBuff, var buffList)
{
	buffList.Add(newBuff);
}



你可能感兴趣的:(Planner策划,GamesDesign游戏设计,FlowChart流程图,C#)