Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / activity / prop / buff / Buff.cs
@小李xl 小李xl on 26 Jun 2023 1 KB 移速道具

/// <summary>
/// 增益被动道具
/// </summary>
public abstract partial class Buff : Prop
{
    /// <summary>
    /// buff的拥有者
    /// </summary>
    public Role Master { get; private set; }
    
    /// <summary>
    /// 当被动被道具被拾起时调用
    /// </summary>
    /// <param name="master">拾起该buff的角色</param>
    protected abstract void OnPickUp(Role master);

    /// <summary>
    /// 当被动道具被移除时调用
    /// </summary>
    /// <param name="master">移除该buff的角色</param>
    protected abstract void OnRemove(Role master);

    public override void Interactive(ActivityObject master)
    {
        if (master is Role role)
        {
            Pickup();
            Master = role;
            role.PushBuff(this);
            OnPickUp(role);
        }
    }

    public override CheckInteractiveResult CheckInteractive(ActivityObject master)
    {
        if (master is Player)
        {
            return new CheckInteractiveResult(this, true, "拾起道具", ResourcePath.resource_sprite_ui_icon_icon_pickup_png);
        }
        return base.CheckInteractive(master);
    }
}