using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Bible.Components
{
///
/// This lets you summon a mob or item with an alternative verb on the item
///
[RegisterComponent]
public sealed partial class SummonableComponent : Component
{
///
/// Default sound to play when entity is summoned.
///
private static readonly ProtoId DefaultSummonSound = new("Summon");
///
/// Sound to play when entity is summoned.
///
[DataField]
public SoundSpecifier SummonSound = new SoundCollectionSpecifier(DefaultSummonSound, AudioParams.Default.WithVolume(-4f));
///
/// Used for a special item only the Chaplain can summon. Usually a mob, but supports regular items too.
///
[DataField("specialItem", customTypeSerializer: typeof(PrototypeIdSerializer))]
public string? SpecialItemPrototype = null;
public bool AlreadySummoned = false;
[DataField("requiresBibleUser")]
public bool RequiresBibleUser = true;
///
/// The specific creature this summoned, if the SpecialItemPrototype has a mobstate.
///
[ViewVariables]
public EntityUid? Summon = null;
[DataField("summonAction", customTypeSerializer: typeof(PrototypeIdSerializer))]
public string SummonAction = "ActionBibleSummon";
[DataField("summonActionEntity")]
public EntityUid? SummonActionEntity;
/// Used for respawning
[DataField("accumulator")]
public float Accumulator = 0f;
[DataField("respawnTime")]
public float RespawnTime = 180f;
}
}