Melee refactor (#10897)
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
using Content.Shared.Weapons.Ranged.Components;
|
||||
|
||||
namespace Content.Server.Weapons.Ranged.Components;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed class AmmoCounterComponent : SharedAmmoCounterComponent {}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace Content.Server.Weapons.Ranged.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed class ChemicalAmmoComponent : Component
|
||||
{
|
||||
public const string DefaultSolutionName = "ammo";
|
||||
|
||||
[DataField("solution")]
|
||||
public string SolutionName { get; set; } = DefaultSolutionName;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
|
||||
|
||||
namespace Content.Server.Weapons.Ranged.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Plays the specified sound upon receiving damage of that type.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed class RangedDamageSoundComponent : Component
|
||||
{
|
||||
// TODO: Limb damage changing sound type.
|
||||
|
||||
/// <summary>
|
||||
/// Specified sounds to apply when the entity takes damage with the specified group.
|
||||
/// Will fallback to defaults if none specified.
|
||||
/// </summary>
|
||||
[ViewVariables, DataField("soundGroups",
|
||||
customTypeSerializer: typeof(PrototypeIdDictionarySerializer<SoundSpecifier, DamageGroupPrototype>))]
|
||||
public Dictionary<string, SoundSpecifier>? SoundGroups;
|
||||
|
||||
/// <summary>
|
||||
/// Specified sounds to apply when the entity takes damage with the specified type.
|
||||
/// Will fallback to defaults if none specified.
|
||||
/// </summary>
|
||||
[ViewVariables, DataField("soundTypes",
|
||||
customTypeSerializer: typeof(PrototypeIdDictionarySerializer<SoundSpecifier, DamageTypePrototype>))]
|
||||
public Dictionary<string, SoundSpecifier>? SoundTypes;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using Robust.Shared.Audio;
|
||||
|
||||
namespace Content.Server.Weapons.Ranged.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Responsible for handling recharging a basic entity ammo provider over time.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed class RechargeBasicEntityAmmoComponent : Component
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField("minRechargeCooldown")]
|
||||
public float MinRechargeCooldown = 30f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField("maxRechargeCooldown")]
|
||||
public float MaxRechargeCooldown = 45f;
|
||||
|
||||
[DataField("rechargeSound")]
|
||||
public SoundSpecifier RechargeSound = new SoundPathSpecifier("/Audio/Magic/forcewall.ogg")
|
||||
{
|
||||
Params = AudioParams.Default.WithVolume(-5f)
|
||||
};
|
||||
|
||||
[DataField("accumulatedFrametime")]
|
||||
public float AccumulatedFrameTime;
|
||||
/// <summary>
|
||||
/// Number of seconds until the next recharge.
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float NextRechargeTime = 0f;
|
||||
}
|
||||
Reference in New Issue
Block a user