You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

53 lines
1.4 KiB

using UnityEngine;
using IVDataFormat;
public class GamePlayBuffMgr : Singleton<GamePlayBuffMgr>
{
BuffDataGroup buffGroup;
public BuffDataGroup BuffGroup => buffGroup;
private void Awake()
{
buffGroup = new BuffDataGroup();
buffGroup.OnChanged += OnChangedBuffList;
}
private void OnDestroy()
{
buffGroup.OnChanged -= OnChangedBuffList;
}
private void Update()
{
foreach (var list in buffGroup.BuffMap.Values)
{
for (int i = 0; i < list.Count;)
{
var buff = list[i];
if (!buff.UpdateDuration(Time.fixedDeltaTime))
buffGroup.RemoveBuff(buff);
else
i++;
}
}
}
private void OnChangedBuffList(BuffData buffData, bool added)
{
switch (buffData.Key)
{
case eEffectType.AtkBuff:
case eEffectType.HpBuff:
case eEffectType.GoldDropRate:
case eEffectType.ExpDropRate:
case eEffectType.SkillDamage:
BuffMgr.Instance.CalcCharStat(buffData.Key);
BattleMgr.Instance.GetPlayer().RefreshStat();
break;
case eEffectType.PlayerSkillCoolFix:
BattleMgr.Instance.RecalcAllSkillCool();
break;
}
}
}