Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / PropFragment.cs

using System.Text.Json;

/// <summary>
/// 道具逻辑片段组件
/// </summary>
public abstract class PropFragment : Component<PropActivity>
{
    /// <summary>
    /// 所属角色对象
    /// </summary>
    public Role Role => Master?.Master;
    
    /// <summary>
    /// 初始化被动属性参数
    /// </summary>
    public abstract void InitParam(JsonElement[] args);
    
    /// <summary>
    /// 当道具被拾起时调用 (在 Role 赋值之后调用)
    /// </summary>
    public abstract void OnPickUpItem();

    /// <summary>
    /// 当道具被移除时调用 (在 Role 置为 null 之前调用)
    /// </summary>
    public abstract void OnRemoveItem();

    /// <summary>
    /// 返回道具是否在背包中
    /// </summary>
    public bool IsInPackage()
    {
        return Master != null;
    }
}