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"; }