using Content.Shared._DV.Armor.Systems; using Content.Shared.Damage; using Content.Shared.Whitelist; using Robust.Shared.GameStates; namespace Content.Shared._DV.Armor.Components; /// /// Used for armor that can be held in your hands. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(HandHeldArmorSystem))] public sealed partial class HandHeldArmorComponent : Component { /// /// The Entity holding the handheld armor. /// [DataField, AutoNetworkedField] public EntityUid? Holder; /// /// The damage reduction /// [DataField(required: true), AutoNetworkedField] public DamageModifierSet Modifiers; /// /// A multiplier applied to the calculated point value /// to determine the monetary value of the armor /// [DataField, AutoNetworkedField] public float PriceMultiplier = 1; /// /// If true, you can examine the armor to see the protection. If false, the verb won't appear. /// [DataField, AutoNetworkedField] public bool ShowArmorOnExamine = true; /// /// DeltaV - Gets the effective stamina melee damage coefficient, based on the armor's blunt protection. /// [ViewVariables] public float StaminaMeleeDamageCoefficient => Modifiers.Coefficients.GetValueOrDefault("Blunt", 1.0f); /// /// The required components for the held armor to be active while held. /// /// A Bible only protects the holder if they have the BibleUserComponent. /// No whitelist check when null. [DataField, AutoNetworkedField] public EntityWhitelist? Whitelist; /// /// The Loc string for the message shown in the armor examination if the user fails the whitelist requirements. /// [DataField, AutoNetworkedField] public string? WhitelistFailMessage; /// /// Components for the held armor to be inactive while held. /// /// A clown with the clumsy cannot make use of a parrying dagger. /// No blacklist check when null. [DataField, AutoNetworkedField] public EntityWhitelist? Blacklist; /// /// The Loc string for the message shown in the armor examination if the user fails the blacklist requirements. /// [DataField, AutoNetworkedField] public string? BlacklistFailMessage; }