2018-12-13 14:49:57 +01:00
|
|
|
using System;
|
2019-04-15 21:11:38 -06:00
|
|
|
using Robust.Shared.GameObjects;
|
|
|
|
|
using Robust.Shared.Map;
|
|
|
|
|
using Robust.Shared.Serialization;
|
2018-12-13 14:49:57 +01:00
|
|
|
|
|
|
|
|
namespace Content.Shared.GameObjects.Components.Weapons.Ranged
|
|
|
|
|
{
|
2020-06-22 05:47:15 +10:00
|
|
|
public abstract class SharedRangedWeaponComponent : Component
|
2018-12-13 14:49:57 +01:00
|
|
|
{
|
2020-06-22 05:47:15 +10:00
|
|
|
// Each RangedWeapon should have a RangedWeapon component +
|
|
|
|
|
// some kind of RangedBarrelComponent (this dictates what ammo is retrieved).
|
2018-12-13 14:49:57 +01:00
|
|
|
public override string Name => "RangedWeapon";
|
|
|
|
|
public override uint? NetID => ContentNetIDs.RANGED_WEAPON;
|
2020-06-22 05:47:15 +10:00
|
|
|
}
|
2018-12-13 14:49:57 +01:00
|
|
|
|
2020-06-22 05:47:15 +10:00
|
|
|
[Serializable, NetSerializable]
|
|
|
|
|
public sealed class RangedWeaponComponentState : ComponentState
|
|
|
|
|
{
|
|
|
|
|
public FireRateSelector FireRateSelector { get; }
|
|
|
|
|
|
|
|
|
|
public RangedWeaponComponentState(
|
|
|
|
|
FireRateSelector fireRateSelector
|
|
|
|
|
) : base(ContentNetIDs.RANGED_WEAPON)
|
2018-12-13 14:49:57 +01:00
|
|
|
{
|
2020-06-22 05:47:15 +10:00
|
|
|
FireRateSelector = fireRateSelector;
|
2018-12-13 14:49:57 +01:00
|
|
|
}
|
2020-06-22 05:47:15 +10:00
|
|
|
}
|
2018-12-13 14:49:57 +01:00
|
|
|
|
2020-06-22 05:47:15 +10:00
|
|
|
[Serializable, NetSerializable]
|
|
|
|
|
public sealed class FirePosComponentMessage : ComponentMessage
|
|
|
|
|
{
|
|
|
|
|
public GridCoordinates Target { get; }
|
2018-12-13 14:49:57 +01:00
|
|
|
|
2020-06-22 05:47:15 +10:00
|
|
|
public FirePosComponentMessage(GridCoordinates target)
|
|
|
|
|
{
|
|
|
|
|
Target = target;
|
2018-12-13 14:49:57 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|