using Content.Shared.Random;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared.RatKing;
///
/// This is used for entities that can be
/// rummaged through by the rat king to get loot.
///
[RegisterComponent, NetworkedComponent, Access(typeof(SharedRatKingSystem))]
[AutoGenerateComponentState]
public sealed partial class RatKingRummageableComponent : Component
{
///
/// Whether or not this entity has been rummaged through already.
///
[DataField("looted"), ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
public bool Looted;
///
/// How long it takes to rummage through a rummageable container.
///
[DataField("rummageDuration"), ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
public float RummageDuration = 3f;
///
/// A weighted random entity prototype containing the different loot that rummaging can provide.
///
[DataField("rummageLoot", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
public string RummageLoot = "RatKingLoot";
///
/// Sound played on rummage completion.
///
[DataField("sound")]
public SoundSpecifier? Sound = new SoundCollectionSpecifier("storageRustle");
}