using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Bible.Components;
///
/// Marks an entity as Bible that heals somebody on interaction.
///
[RegisterComponent, NetworkedComponent]
[Access(typeof(BibleSystem))]
public sealed partial class BibleComponent : Component
{
///
/// Default sound when Bible hits somebody.
///
private static readonly ProtoId DefaultBibleHitSound = new("BibleHit");
///
/// Default sound when Bible fails to heal somebody.
///
private static readonly ProtoId DefaultBibleSizzleSound = new("BibleSizzle");
///
/// Default sound when Bible heals somebody.
///
private static readonly ProtoId DefaultBibleHealSound = new("BibleHeal");
///
/// Sound to play when Bible hits somebody.
///
[DataField]
public SoundSpecifier BibleHitSound = new SoundCollectionSpecifier(DefaultBibleHitSound, AudioParams.Default.AddVolume(-4f));
///
/// Sound to play when Bible fails to heal somebody.
///
[DataField]
public SoundSpecifier SizzleSound = new SoundCollectionSpecifier(DefaultBibleSizzleSound);
///
/// Sound to play when Bible heals somebody.
///
[DataField]
public SoundSpecifier HealSound = new SoundCollectionSpecifier(DefaultBibleHealSound);
///
/// Damage that will be healed on a success.
///
[DataField(required: true)]
public DamageSpecifier Damage = default!;
///
/// Damage that will be dealt on a failure.
///
[DataField(required: true)]
public DamageSpecifier DamageOnFail = default!;
///
/// Damage that will be dealt when a non-chaplain attempts to heal.
///
[DataField(required: true)]
public DamageSpecifier DamageOnUntrainedUse = default!;
///
/// Chance theBbible will fail to heal someone with no helmet.
///
[DataField]
public float FailChance = 0.34f;
///
/// Loc string played when a non-chaplain attempts to use the bible.
///
[DataField]
public string SizzleText = "bible-sizzle";
///
/// Loc string shown to others when the bible fails to heal the target.
///
[DataField]
public string HealFailOthersText = "bible-heal-fail-others";
///
/// Loc string shown to the user when the bible fails to heal the target.
///
[DataField]
public string HealFailSelfText = "bible-heal-fail-self";
///
/// Loc string shown to others when the bible successfully heals the target.
///
[DataField]
public string HealSuccessOthersText = "bible-heal-success-others";
///
/// Loc string shown to the user when the bible successfully heals the target.
///
[DataField]
public string HealSuccessSelfText = "bible-heal-success-self";
///
/// Loc string shown to others when the bible hits a target without wounds.
///
[DataField]
public string HealSuccessNoneOthersText = "bible-heal-success-none-others";
///
/// Loc string shown to the user when the bible hits a target without wounds.
///
[DataField]
public string HealSuccessNoneSelfText = "bible-heal-success-none-self";
///
/// A short light effect to display when successfully healing someone.
///
[DataField]
public EntProtoId? HealingLightEffect = "HolyLightEffect";
}