JinChanChan/Assets/Scripts/Buff/Buff.cs

43 lines
1.1 KiB
C#

using UnityEngine;
namespace Game
{
public abstract class Buff
{
// 血量、蓝量、攻击力、防御力、攻击速度、回蓝速度、回血速度、
public string BuffName;
public float BuffDuration; // Buff 持续时间(秒)
public float TimeRemaining; // 剩余时间
public Character ApplyCharacter;
protected Buff(string buffName, float buffDuration)
{
BuffName = buffName;
BuffDuration = buffDuration;
}
// Buff 更新,减少剩余时间
public void Update(float deltaTime)
{
TimeRemaining -= deltaTime;
if (TimeRemaining <= 0)
{
OnBuffExpire();
}
} // Buff 过期时调用
protected virtual void OnBuffExpire()
{
Debug.Log($"{BuffName} expired!");
}
// Buff 应用效果
public abstract void ApplyEffect(Character character);
// Buff 移除效果
public abstract void RemoveEffect(Character character);
}
}