Star Wars 14: Shuttle weapon update (#23644)
* setup codebase * make auto-fire, but its broken * collider problem * fix rate, add toggle port * add laser * power cages * ginormous cells * fix inhand * add pirate cannon * salvage gun * functional Nuke cannon * rewrite to standart grenade * fix naming, add emp sprite * grenade cartridge * thruster fix * nuke cannon * audio + visual polish * balance tweak * tweaks * laser balance tweak: new Electronic damage modifier set, reduce structural cannon damage * resprite energy cages, start implementing in game * fix cage recharger craft * add small laser gun * fix colliders * add lasers and ptk to research and crafting * finish implementing weapon to rnd and sec * some fixes * splitted grenades and cannon balls * integrate new cannon balls * tweaks stick * move circuits to sectechfab, fix * fix? * add ability to E shoot, without signals * fix! * fix?!?! and naming tweak * go! * Lank fix * oh * mornings don't start with coffee. * the morning starts with bug fixes. * fucking bugs! * finally * it is now possible to craft projectiles separately from cartridges * +2 fix * refactor * piu * More weight * add AutoShootGunComponent * move autoshoot to partial * SetEnabled() * some fixes * remove CanShootWithoutUser field * remove null-checks ToCoordinates from AttemptShoot() * war without reason * return to home * ? * forgot remove it * review * Fix formatting and update path --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
@@ -0,0 +1,24 @@
|
|||||||
|
using Content.Server.DeviceLinking.Systems;
|
||||||
|
using Content.Shared.DeviceLinking;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Server.DeviceLinking.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A system that allows you to fire GunComponent + AmmoProvider by receiving signals from DeviceLinking
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(GunSignalControlSystem))]
|
||||||
|
public sealed partial class GunSignalControlComponent : Component
|
||||||
|
{
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<SinkPortPrototype> TriggerPort = "Trigger";
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<SinkPortPrototype> TogglePort = "Toggle";
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<SinkPortPrototype> OnPort = "On";
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public ProtoId<SinkPortPrototype> OffPort = "Off";
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
using Content.Server.DeviceLinking.Components;
|
||||||
|
using Content.Server.DeviceLinking.Events;
|
||||||
|
using Content.Shared.Weapons.Ranged.Components;
|
||||||
|
using Content.Shared.Weapons.Ranged.Systems;
|
||||||
|
using Robust.Shared.Map;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace Content.Server.DeviceLinking.Systems;
|
||||||
|
|
||||||
|
public sealed partial class GunSignalControlSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly DeviceLinkSystem _signalSystem = default!;
|
||||||
|
[Dependency] private readonly SharedGunSystem _gun = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
SubscribeLocalEvent<GunSignalControlComponent, MapInitEvent>(OnInit);
|
||||||
|
SubscribeLocalEvent<GunSignalControlComponent, SignalReceivedEvent>(OnSignalReceived);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInit(Entity<GunSignalControlComponent> gunControl, ref MapInitEvent args)
|
||||||
|
{
|
||||||
|
_signalSystem.EnsureSinkPorts(gunControl, gunControl.Comp.TriggerPort, gunControl.Comp.TogglePort, gunControl.Comp.OnPort, gunControl.Comp.OffPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSignalReceived(Entity<GunSignalControlComponent> gunControl, ref SignalReceivedEvent args)
|
||||||
|
{
|
||||||
|
if (!TryComp<GunComponent>(gunControl, out var gun))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (args.Port == gunControl.Comp.TriggerPort)
|
||||||
|
_gun.AttemptShoot(gunControl, gun);
|
||||||
|
|
||||||
|
if (!TryComp<AutoShootGunComponent>(gunControl, out var autoShoot))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (args.Port == gunControl.Comp.TogglePort)
|
||||||
|
_gun.SetEnabled(gunControl, autoShoot, !autoShoot.Enabled);
|
||||||
|
|
||||||
|
if (args.Port == gunControl.Comp.OnPort)
|
||||||
|
_gun.SetEnabled(gunControl, autoShoot, true);
|
||||||
|
|
||||||
|
if (args.Port == gunControl.Comp.OffPort)
|
||||||
|
_gun.SetEnabled(gunControl, autoShoot, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -78,8 +78,8 @@ public sealed class PneumaticCannonSystem : SharedPneumaticCannonSystem
|
|||||||
if (gas == null && component.GasUsage > 0f)
|
if (gas == null && component.GasUsage > 0f)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(TryComp<StatusEffectsComponent>(args.User, out var status)
|
if (TryComp<StatusEffectsComponent>(args.User, out var status)
|
||||||
&& component.Power == PneumaticCannonPower.High)
|
&& component.Power == PneumaticCannonPower.High)
|
||||||
{
|
{
|
||||||
_stun.TryParalyze(args.User, TimeSpan.FromSeconds(component.HighPowerStunTime), true, status);
|
_stun.TryParalyze(args.User, TimeSpan.FromSeconds(component.HighPowerStunTime), true, status);
|
||||||
Popup.PopupEntity(Loc.GetString("pneumatic-cannon-component-power-stun",
|
Popup.PopupEntity(Loc.GetString("pneumatic-cannon-component-power-stun",
|
||||||
|
|||||||
29
Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using Content.Shared.Weapons.Ranged.Components;
|
||||||
|
|
||||||
|
namespace Content.Server.Weapons.Ranged.Systems;
|
||||||
|
|
||||||
|
public sealed partial class GunSystem
|
||||||
|
{
|
||||||
|
public override void Update(float frameTime)
|
||||||
|
{
|
||||||
|
base.Update(frameTime);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On server because client doesn't want to predict other's guns.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Automatic firing without stopping if the AutoShootGunComponent component is exist and enabled
|
||||||
|
var query = EntityQueryEnumerator<AutoShootGunComponent, GunComponent>();
|
||||||
|
|
||||||
|
while (query.MoveNext(out var uid, out var autoShoot, out var gun))
|
||||||
|
{
|
||||||
|
if (!autoShoot.Enabled)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (gun.NextFire > Timing.CurTime)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
AttemptShoot(uid, gun);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -212,7 +212,9 @@ public sealed partial class GunSystem : SharedGunSystem
|
|||||||
// can't use map coords above because funny FireEffects
|
// can't use map coords above because funny FireEffects
|
||||||
var fromEffect = fromCoordinates;
|
var fromEffect = fromCoordinates;
|
||||||
var dir = mapDirection.Normalized();
|
var dir = mapDirection.Normalized();
|
||||||
var lastUser = user;
|
|
||||||
|
//in the situation when user == null, means that the cannon fires on its own (via signals). And we need the gun to not fire by itself in this case
|
||||||
|
var lastUser = user ?? gunUid;
|
||||||
|
|
||||||
if (hitscan.Reflective != ReflectType.None)
|
if (hitscan.Reflective != ReflectType.None)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using Content.Shared.Weapons.Ranged.Systems;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.Weapons.Ranged.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Allows GunSystem to automatically fire while this component is enabled
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunSystem)), AutoGenerateComponentState]
|
||||||
|
public sealed partial class AutoShootGunComponent : Component
|
||||||
|
{
|
||||||
|
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||||
|
public bool Enabled;
|
||||||
|
}
|
||||||
@@ -5,7 +5,6 @@ using Robust.Shared.GameStates;
|
|||||||
using Robust.Shared.Map;
|
using Robust.Shared.Map;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
|
|
||||||
|
|
||||||
namespace Content.Shared.Weapons.Ranged.Components;
|
namespace Content.Shared.Weapons.Ranged.Components;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using Content.Shared.Weapons.Ranged.Components;
|
||||||
|
|
||||||
|
namespace Content.Shared.Weapons.Ranged.Systems;
|
||||||
|
|
||||||
|
public partial class SharedGunSystem
|
||||||
|
{
|
||||||
|
public void SetEnabled(EntityUid uid, AutoShootGunComponent component, bool status)
|
||||||
|
{
|
||||||
|
component.Enabled = status;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -37,7 +37,7 @@ namespace Content.Shared.Weapons.Ranged.Systems;
|
|||||||
|
|
||||||
public abstract partial class SharedGunSystem : EntitySystem
|
public abstract partial class SharedGunSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!;
|
[Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!;
|
||||||
[Dependency] protected readonly IGameTiming Timing = default!;
|
[Dependency] protected readonly IGameTiming Timing = default!;
|
||||||
[Dependency] protected readonly IMapManager MapManager = default!;
|
[Dependency] protected readonly IMapManager MapManager = default!;
|
||||||
[Dependency] private readonly INetManager _netManager = default!;
|
[Dependency] private readonly INetManager _netManager = default!;
|
||||||
@@ -214,6 +214,17 @@ public abstract partial class SharedGunSystem : EntitySystem
|
|||||||
gun.ShotCounter = 0;
|
gun.ShotCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Shoots by assuming the gun is the user at default coordinates.
|
||||||
|
/// </summary>
|
||||||
|
public void AttemptShoot(EntityUid gunUid, GunComponent gun)
|
||||||
|
{
|
||||||
|
var coordinates = new EntityCoordinates(gunUid, new Vector2(0, -1));
|
||||||
|
gun.ShootCoordinates = coordinates;
|
||||||
|
AttemptShoot(gunUid, gunUid, gun);
|
||||||
|
gun.ShotCounter = 0;
|
||||||
|
}
|
||||||
|
|
||||||
private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun)
|
private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun)
|
||||||
{
|
{
|
||||||
if (gun.FireRate <= 0f ||
|
if (gun.FireRate <= 0f ||
|
||||||
@@ -385,12 +396,9 @@ public abstract partial class SharedGunSystem : EntitySystem
|
|||||||
var finalLinear = physics.LinearVelocity + targetMapVelocity - currentMapVelocity;
|
var finalLinear = physics.LinearVelocity + targetMapVelocity - currentMapVelocity;
|
||||||
Physics.SetLinearVelocity(uid, finalLinear, body: physics);
|
Physics.SetLinearVelocity(uid, finalLinear, body: physics);
|
||||||
|
|
||||||
if (user != null)
|
var projectile = EnsureComp<ProjectileComponent>(uid);
|
||||||
{
|
Projectiles.SetShooter(uid, projectile, user ?? gunUid);
|
||||||
var projectile = EnsureComp<ProjectileComponent>(uid);
|
projectile.Weapon = gunUid;
|
||||||
Projectiles.SetShooter(uid, projectile, user.Value);
|
|
||||||
projectile.Weapon = gunUid;
|
|
||||||
}
|
|
||||||
|
|
||||||
TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle());
|
TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ research-technology-wave-particle-harnessing = Wave Particle Harnessing
|
|||||||
research-technology-advanced-riot-control = Advanced Riot Control
|
research-technology-advanced-riot-control = Advanced Riot Control
|
||||||
research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry
|
research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry
|
||||||
research-technology-experimental-battery-ammo = Experimental Battery Ammo
|
research-technology-experimental-battery-ammo = Experimental Battery Ammo
|
||||||
|
research-technology-basic-shuttle-armament = Shuttle basic armament
|
||||||
|
research-technology-advanced-shuttle-weapon = Advanced shuttle weapons
|
||||||
|
|
||||||
research-technology-basic-robotics = Basic Robotics
|
research-technology-basic-robotics = Basic Robotics
|
||||||
research-technology-basic-anomalous-research = Basic Anomalous Research
|
research-technology-basic-anomalous-research = Basic Anomalous Research
|
||||||
|
|||||||
@@ -60,6 +60,16 @@
|
|||||||
Heat: 5
|
Heat: 5
|
||||||
Piercing: 10
|
Piercing: 10
|
||||||
|
|
||||||
|
# for fragile electronics like consoles or shuttle engines.
|
||||||
|
- type: damageModifierSet
|
||||||
|
id: Electronic
|
||||||
|
coefficients:
|
||||||
|
Blunt: 0.7
|
||||||
|
Slash: 0.5
|
||||||
|
Piercing: 0.7
|
||||||
|
Shock: 2
|
||||||
|
Heat: 3
|
||||||
|
|
||||||
# Like metallic, but without flat reduction so it can be damaged with fists.
|
# Like metallic, but without flat reduction so it can be damaged with fists.
|
||||||
- type: damageModifierSet
|
- type: damageModifierSet
|
||||||
id: FlimsyMetallic
|
id: FlimsyMetallic
|
||||||
|
|||||||
@@ -661,6 +661,29 @@
|
|||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 15
|
price: 15
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageRechargerCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: cage recharger machine board
|
||||||
|
description: A machine printed circuit board for a energy cage recharger.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Misc/module.rsi
|
||||||
|
state: charger_APC
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: PowerCageRecharger
|
||||||
|
requirements:
|
||||||
|
Capacitor: 4
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 5
|
||||||
|
Cable: 10
|
||||||
|
- type: PhysicalComposition
|
||||||
|
materialComposition:
|
||||||
|
Steel: 30
|
||||||
|
Plastic: 30
|
||||||
|
- type: StaticPrice
|
||||||
|
price: 30
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BorgChargerCircuitboard
|
id: BorgChargerCircuitboard
|
||||||
parent: BaseMachineCircuitboard
|
parent: BaseMachineCircuitboard
|
||||||
@@ -1229,3 +1252,90 @@
|
|||||||
Steel: 5
|
Steel: 5
|
||||||
CableHV: 5
|
CableHV: 5
|
||||||
Uranium: 2
|
Uranium: 2
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: LSE-400c "Svalinn machine gun" machine board
|
||||||
|
description: A machine printed circuit board for an LSE-400c "Svalinn machine gun"
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: security
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: ShuttleGunSvalinnMachineGun
|
||||||
|
requirements:
|
||||||
|
MatterBin: 2
|
||||||
|
Manipulator: 4
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 5
|
||||||
|
CableHV: 5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunPerforatorCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: LSE-1200c "Perforator" machine board
|
||||||
|
description: A machine printed circuit board for an LSE-1200c "Perforator"
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: security
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: ShuttleGunPerforator
|
||||||
|
requirements:
|
||||||
|
MatterBin: 4
|
||||||
|
Manipulator: 6
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 10
|
||||||
|
CableHV: 5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunFriendshipCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: EXP-320g "Friendship" machine board
|
||||||
|
description: A machine printed circuit board for an EXP-320g "Friendship"
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: security
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: ShuttleGunFriendship
|
||||||
|
requirements:
|
||||||
|
MatterBin: 3
|
||||||
|
Manipulator: 2
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 7
|
||||||
|
CableHV: 5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunDusterCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: EXP-2100g "Duster" machine board
|
||||||
|
description: A machine printed circuit board for an EXP-2100g "Duster"
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: security
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: ShuttleGunDuster
|
||||||
|
requirements:
|
||||||
|
MatterBin: 6
|
||||||
|
Manipulator: 4
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 10
|
||||||
|
CableHV: 5
|
||||||
|
Uranium: 2
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunKineticCircuitboard
|
||||||
|
parent: BaseMachineCircuitboard
|
||||||
|
name: PTK-800 "Matter Dematerializer" machine board
|
||||||
|
description: A machine printed circuit board for an PTK-800 "Matter Dematerializer"
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
state: security
|
||||||
|
- type: MachineBoard
|
||||||
|
prototype: ShuttleGunKinetic
|
||||||
|
requirements:
|
||||||
|
MatterBin: 2
|
||||||
|
Manipulator: 3
|
||||||
|
materialRequirements:
|
||||||
|
Steel: 5
|
||||||
|
CableHV: 2
|
||||||
|
|
||||||
@@ -267,3 +267,139 @@
|
|||||||
- type: BatterySelfRecharger
|
- type: BatterySelfRecharger
|
||||||
autoRecharge: true
|
autoRecharge: true
|
||||||
autoRechargeRate: 40
|
autoRechargeRate: 40
|
||||||
|
|
||||||
|
# Power cage (big heavy power cell for big devices)
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BasePowerCage
|
||||||
|
abstract: true
|
||||||
|
parent: BasePowerCell
|
||||||
|
components:
|
||||||
|
- type: Item
|
||||||
|
size: Ginormous
|
||||||
|
- type: MultiHandedItem
|
||||||
|
- type: SolutionContainerManager
|
||||||
|
solutions:
|
||||||
|
battery:
|
||||||
|
maxVol: 15
|
||||||
|
- type: Extractable
|
||||||
|
juiceSolution:
|
||||||
|
reagents:
|
||||||
|
- ReagentId: Zinc
|
||||||
|
Quantity: 15
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- PowerCage
|
||||||
|
- type: HitscanBatteryAmmoProvider
|
||||||
|
proto: RedShuttleLaser
|
||||||
|
fireCost: 150
|
||||||
|
- type: ClothingSpeedModifier
|
||||||
|
walkModifier: 0.8
|
||||||
|
sprintModifier: 0.8
|
||||||
|
- type: HeldSpeedModifier
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageSmall
|
||||||
|
parent: BasePowerCage
|
||||||
|
name: small-capacity power cage
|
||||||
|
description: A rechargeable power cage for big devices. This is the cheapest kind you can find.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: small
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
- type: Battery
|
||||||
|
maxCharge: 1400
|
||||||
|
startingCharge: 1400
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageMedium
|
||||||
|
parent: BasePowerCage
|
||||||
|
name: medium-capacity power cage
|
||||||
|
description: A rechargeable power cage for big devices. The gold standard of capacity and cost.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: medium
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
- type: Battery
|
||||||
|
maxCharge: 2700
|
||||||
|
startingCharge: 2700
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageHigh
|
||||||
|
parent: BasePowerCage
|
||||||
|
name: high-capacity power cage
|
||||||
|
description: A rechargeable power cage for big devices. Increased capacity for increased power levels.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: high
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
- type: Battery
|
||||||
|
maxCharge: 6200
|
||||||
|
startingCharge: 6200
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageSmallEmpty
|
||||||
|
parent: PowerCageSmall
|
||||||
|
suffix: Empty
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: small
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
visible: false
|
||||||
|
- type: Battery
|
||||||
|
maxCharge: 1400
|
||||||
|
startingCharge: 0
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageMediumEmpty
|
||||||
|
parent: PowerCageMedium
|
||||||
|
suffix: Empty
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: small
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
visible: false
|
||||||
|
- type: Battery
|
||||||
|
startingCharge: 0
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: PowerCageHighEmpty
|
||||||
|
parent: PowerCageHigh
|
||||||
|
suffix: Empty
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Power/power_cages.rsi
|
||||||
|
layers:
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Base" ]
|
||||||
|
state: small
|
||||||
|
- map: [ "enum.PowerCellVisualLayers.Unshaded" ]
|
||||||
|
state: o2
|
||||||
|
shader: unshaded
|
||||||
|
visible: false
|
||||||
|
- type: Battery
|
||||||
|
startingCharge: 0
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
- type: entity
|
||||||
|
id: BaseMagazineGrenade
|
||||||
|
name: grenade cartridge
|
||||||
|
parent: BaseItem
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- MagazineGrenade
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
mayTransfer: true
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- Grenade
|
||||||
|
capacity: 5
|
||||||
|
soundRack:
|
||||||
|
path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.05
|
||||||
|
soundInsert:
|
||||||
|
path: /Audio/Weapons/Guns/MagIn/rifle_load.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.05
|
||||||
|
- type: Item
|
||||||
|
size: Large
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
ballistic-ammo: !type:Container
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.GunVisualLayers.Base"]
|
||||||
|
- state: mag-4
|
||||||
|
map: ["enum.GunVisualLayers.Mag"]
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 5
|
||||||
|
zeroVisible: false
|
||||||
|
- type: Appearance
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeEmpty
|
||||||
|
name: grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeFrag
|
||||||
|
name: frag grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
proto: GrenadeFrag
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeEMP
|
||||||
|
name: EMP grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
proto: GrenadeEMP
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeFlash
|
||||||
|
name: flash grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
proto: GrenadeFlash
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeBlast
|
||||||
|
name: blast grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
proto: GrenadeBlast
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineGrenadeBaton
|
||||||
|
name: baton grenade cartridge
|
||||||
|
parent: BaseMagazineGrenade
|
||||||
|
components:
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
proto: GrenadeBaton
|
||||||
@@ -123,11 +123,43 @@
|
|||||||
state: frag
|
state: frag
|
||||||
suffix: false
|
suffix: false
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: GrenadeEMP
|
||||||
|
name: EMP grenade
|
||||||
|
parent: BaseGrenade
|
||||||
|
components:
|
||||||
|
- type: CartridgeAmmo
|
||||||
|
proto: BulletGrenadeEMP
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi
|
||||||
|
layers:
|
||||||
|
- state: emp
|
||||||
|
map: ["enum.AmmoVisualLayers.Base"]
|
||||||
|
- type: Appearance
|
||||||
|
- type: SpentAmmoVisuals
|
||||||
|
state: frag
|
||||||
|
suffix: false
|
||||||
|
|
||||||
|
# Cannon Balls
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BaseCannonBall
|
||||||
|
name: base cannon ball
|
||||||
|
parent: BaseItem
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- CannonBall
|
||||||
|
- type: Item
|
||||||
|
size: Small
|
||||||
|
- type: Sprite
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: CannonBall
|
id: CannonBall
|
||||||
name: cannonball
|
name: cannonball
|
||||||
suffix: Pirate
|
suffix: Pirate
|
||||||
parent: BaseGrenade
|
parent: BaseCannonBall
|
||||||
components:
|
components:
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletCannonBall
|
proto: BulletCannonBall
|
||||||
@@ -137,10 +169,10 @@
|
|||||||
state: ball
|
state: ball
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: Grapeshot
|
id: CannonBallGrapeshot
|
||||||
name: grapeshot
|
name: grapeshot
|
||||||
suffix: Pirate
|
suffix: Pirate
|
||||||
parent: BaseGrenade
|
parent: BaseCannonBall
|
||||||
components:
|
components:
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: PelletGrapeshot
|
proto: PelletGrapeshot
|
||||||
@@ -152,10 +184,10 @@
|
|||||||
state: grapeshot
|
state: grapeshot
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: Glassshot
|
id: CannonBallGlassshot
|
||||||
name: glassshot
|
name: glassshot
|
||||||
suffix: Pirate
|
suffix: Pirate
|
||||||
parent: BaseGrenade
|
parent: BaseCannonBall
|
||||||
components:
|
components:
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: PelletGlass
|
proto: PelletGlass
|
||||||
|
|||||||
@@ -144,7 +144,7 @@
|
|||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
- Grenade
|
- CannonBall
|
||||||
capacity: 1
|
capacity: 1
|
||||||
proto: CannonBall
|
proto: CannonBall
|
||||||
soundInsert:
|
soundInsert:
|
||||||
|
|||||||
@@ -121,3 +121,20 @@
|
|||||||
impactFlash:
|
impactFlash:
|
||||||
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
||||||
state: impact_blue
|
state: impact_blue
|
||||||
|
|
||||||
|
- type: hitscan
|
||||||
|
id: RedShuttleLaser
|
||||||
|
maxLength: 60
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Heat: 45
|
||||||
|
Structural: 10
|
||||||
|
muzzleFlash:
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
||||||
|
state: muzzle_beam_heavy2
|
||||||
|
travelFlash:
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
||||||
|
state: beam_heavy2
|
||||||
|
impactFlash:
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
||||||
|
state: impact_beam_heavy2
|
||||||
|
|||||||
@@ -420,6 +420,32 @@
|
|||||||
- type: TimedDespawn
|
- type: TimedDespawn
|
||||||
lifetime: 0.4
|
lifetime: 0.4
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BulletKineticShuttle
|
||||||
|
parent: BaseBullet
|
||||||
|
noSpawn: true
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
noRot: false
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
|
||||||
|
layers:
|
||||||
|
- state: chronobolt
|
||||||
|
shader: unshaded
|
||||||
|
- type: Projectile
|
||||||
|
impactEffect: BulletImpactEffectKinetic
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Blunt: 30
|
||||||
|
Structural: 35
|
||||||
|
- type: Ammo
|
||||||
|
muzzleFlash: HitscanEffect
|
||||||
|
- type: TimedDespawn
|
||||||
|
lifetime: 1.5
|
||||||
|
- type: PointLight
|
||||||
|
radius: 2.5
|
||||||
|
color: white
|
||||||
|
energy: 0.5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BulletCharge
|
id: BulletCharge
|
||||||
name: charge bolt
|
name: charge bolt
|
||||||
@@ -692,6 +718,27 @@
|
|||||||
intensitySlope: 1
|
intensitySlope: 1
|
||||||
maxIntensity: 10
|
maxIntensity: 10
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BulletGrenadeEMP
|
||||||
|
name: EMP rocket
|
||||||
|
parent: BaseBulletTrigger
|
||||||
|
noSpawn: true
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
|
||||||
|
layers:
|
||||||
|
- state: frag
|
||||||
|
- type: EmpOnTrigger
|
||||||
|
range: 5
|
||||||
|
energyConsumption: 50000
|
||||||
|
disableDuration: 10
|
||||||
|
- type: Ammo
|
||||||
|
muzzleFlash: null
|
||||||
|
- type: PointLight
|
||||||
|
radius: 3.5
|
||||||
|
color: blue
|
||||||
|
energy: 0.5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BulletCap
|
id: BulletCap
|
||||||
name: cap bullet
|
name: cap bullet
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
drawdepth: Objects
|
drawdepth: Objects
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
damageModifierSet: Metallic
|
damageModifierSet: Electronic
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
|
|||||||
@@ -169,6 +169,7 @@
|
|||||||
- MagazineBoxMagnum
|
- MagazineBoxMagnum
|
||||||
- MagazineBoxRifle
|
- MagazineBoxRifle
|
||||||
- MagazineBoxLightRifle
|
- MagazineBoxLightRifle
|
||||||
|
- GrenadeBlast
|
||||||
emagDynamicRecipes:
|
emagDynamicRecipes:
|
||||||
- CartridgePistolRubber
|
- CartridgePistolRubber
|
||||||
- CartridgeMagnumRubber
|
- CartridgeMagnumRubber
|
||||||
@@ -197,6 +198,12 @@
|
|||||||
- MagazineBoxMagnumUranium
|
- MagazineBoxMagnumUranium
|
||||||
- MagazineBoxLightRifleUranium
|
- MagazineBoxLightRifleUranium
|
||||||
- MagazineBoxRifleUranium
|
- MagazineBoxRifleUranium
|
||||||
|
- PowerCageSmall
|
||||||
|
- PowerCageMedium
|
||||||
|
- PowerCageHigh
|
||||||
|
- MagazineGrenadeEmpty
|
||||||
|
- GrenadeEMP
|
||||||
|
- GrenadeFlash
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: AutolatheHyperConvection
|
id: AutolatheHyperConvection
|
||||||
@@ -422,10 +429,12 @@
|
|||||||
- WallmountGeneratorElectronics
|
- WallmountGeneratorElectronics
|
||||||
- WallmountGeneratorAPUElectronics
|
- WallmountGeneratorAPUElectronics
|
||||||
- WallmountSubstationElectronics
|
- WallmountSubstationElectronics
|
||||||
|
- PowerCageRechargerCircuitboard
|
||||||
- EmitterCircuitboard
|
- EmitterCircuitboard
|
||||||
- ThrusterMachineCircuitboard
|
- ThrusterMachineCircuitboard
|
||||||
- GyroscopeMachineCircuitboard
|
- GyroscopeMachineCircuitboard
|
||||||
- MiniGravityGeneratorCircuitboard
|
- MiniGravityGeneratorCircuitboard
|
||||||
|
- ShuttleGunKineticCircuitboard
|
||||||
- GasRecyclerMachineCircuitboard
|
- GasRecyclerMachineCircuitboard
|
||||||
- SeedExtractorMachineCircuitboard
|
- SeedExtractorMachineCircuitboard
|
||||||
- AnalysisComputerCircuitboard
|
- AnalysisComputerCircuitboard
|
||||||
@@ -691,6 +700,9 @@
|
|||||||
- MagazineBoxMagnumRubber
|
- MagazineBoxMagnumRubber
|
||||||
- MagazineBoxPistolRubber
|
- MagazineBoxPistolRubber
|
||||||
- MagazineBoxRifleRubber
|
- MagazineBoxRifleRubber
|
||||||
|
- MagazineGrenadeEmpty
|
||||||
|
- GrenadeEMP
|
||||||
|
- GrenadeFlash
|
||||||
- ShellShotgunBeanbag
|
- ShellShotgunBeanbag
|
||||||
- ShellShotgunIncendiary
|
- ShellShotgunIncendiary
|
||||||
- ShellShotgunUranium
|
- ShellShotgunUranium
|
||||||
@@ -706,6 +718,13 @@
|
|||||||
- WeaponLaserCannon
|
- WeaponLaserCannon
|
||||||
- WeaponLaserCarbine
|
- WeaponLaserCarbine
|
||||||
- WeaponXrayCannon
|
- WeaponXrayCannon
|
||||||
|
- PowerCageSmall
|
||||||
|
- PowerCageMedium
|
||||||
|
- PowerCageHigh
|
||||||
|
- ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
- ShuttleGunPerforatorCircuitboard
|
||||||
|
- ShuttleGunFriendshipCircuitboard
|
||||||
|
- ShuttleGunDusterCircuitboard
|
||||||
- type: MaterialStorage
|
- type: MaterialStorage
|
||||||
whitelist:
|
whitelist:
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -108,6 +108,46 @@
|
|||||||
tags:
|
tags:
|
||||||
- PotatoBattery
|
- PotatoBattery
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: [ BaseItemRecharger, ConstructibleMachine ]
|
||||||
|
id: PowerCageRecharger
|
||||||
|
name: cage recharger
|
||||||
|
components:
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures:
|
||||||
|
fix1:
|
||||||
|
shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.25,-0.35,0.25,0.35"
|
||||||
|
density: 190
|
||||||
|
mask:
|
||||||
|
- MachineMask
|
||||||
|
layer:
|
||||||
|
- MachineLayer
|
||||||
|
- type: LitOnPowered
|
||||||
|
- type: PointLight
|
||||||
|
radius: 1.5
|
||||||
|
color: "#03fc4e"
|
||||||
|
energy: 0.7
|
||||||
|
- type: Charger
|
||||||
|
chargeRate: 50
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Structures/Power/cage_recharger.rsi
|
||||||
|
- type: PowerCellSlot
|
||||||
|
cellSlotId: charger_slot
|
||||||
|
- type: ItemSlots
|
||||||
|
slots:
|
||||||
|
charger_slot:
|
||||||
|
ejectOnInteract: true
|
||||||
|
name: Power cage
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- PowerCage
|
||||||
|
- type: Machine
|
||||||
|
board: PowerCageRechargerCircuitboard
|
||||||
|
- type: StaticPrice
|
||||||
|
price: 500
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseItemRecharger
|
parent: BaseItemRecharger
|
||||||
id: WeaponCapacitorRecharger
|
id: WeaponCapacitorRecharger
|
||||||
|
|||||||
375
Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml
Normal file
@@ -0,0 +1,375 @@
|
|||||||
|
- type: entity
|
||||||
|
id: ShuttleGunBase
|
||||||
|
name: shittle gun
|
||||||
|
abstract: true
|
||||||
|
placement:
|
||||||
|
mode: SnapgridCenter
|
||||||
|
components:
|
||||||
|
- type: Appearance
|
||||||
|
- type: Clickable
|
||||||
|
- type: InteractionOutline
|
||||||
|
- type: Anchorable
|
||||||
|
- type: Pullable
|
||||||
|
- type: Rotatable
|
||||||
|
- type: Physics
|
||||||
|
bodyType: Static
|
||||||
|
- type: ContainerContainer
|
||||||
|
- type: Gun
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures:
|
||||||
|
fix1:
|
||||||
|
shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.45,-0.45,0.45,0.45"
|
||||||
|
density: 450
|
||||||
|
mask:
|
||||||
|
- MachineMask
|
||||||
|
layer:
|
||||||
|
- MachineLayer
|
||||||
|
- type: Damageable
|
||||||
|
damageContainer: Inorganic
|
||||||
|
damageModifierSet: Electronic
|
||||||
|
- type: Transform
|
||||||
|
anchored: true
|
||||||
|
- type: DeviceNetwork
|
||||||
|
deviceNetId: Wireless
|
||||||
|
receiveFrequencyId: BasicDevice
|
||||||
|
- type: WirelessNetworkConnection
|
||||||
|
range: 200
|
||||||
|
- type: DeviceLinkSink
|
||||||
|
ports:
|
||||||
|
- Trigger
|
||||||
|
- Toggle
|
||||||
|
- On
|
||||||
|
- Off
|
||||||
|
- type: AutoShootGun
|
||||||
|
- type: GunSignalControl
|
||||||
|
- type: StaticPrice
|
||||||
|
price: 1500
|
||||||
|
|
||||||
|
# ---- Laser weapon branch ----
|
||||||
|
# naming: LSE (Laser) + conventional power + suffix (c for PowerCage, e for wired energy) + Name
|
||||||
|
# example: LSE-100e "Clown destroyer" (powered by the wiring, very weak)
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunSvalinnMachineGun
|
||||||
|
parent: [ ShuttleGunBase, ConstructibleMachine]
|
||||||
|
name: LSE-400c "Svalinn machine gun"
|
||||||
|
description: Basic stationary laser unit. Effective against live targets and electronics. Uses regular power cells to fire, and has an extremely high rate of fire
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
|
||||||
|
layers:
|
||||||
|
- state: lse-400c
|
||||||
|
- state: mag-unshaded-9
|
||||||
|
map: ["enum.GunVisualLayers.MagUnshaded"]
|
||||||
|
shader: unshaded
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
machine_board: !type:Container
|
||||||
|
machine_parts: !type:Container
|
||||||
|
gun_magazine: !type:ContainerSlot
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 150
|
||||||
|
behaviors:
|
||||||
|
- !type:ChangeConstructionNodeBehavior
|
||||||
|
node: machineFrame
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Gun
|
||||||
|
fireRate: 5
|
||||||
|
useKey: false
|
||||||
|
selectedMode: SemiAuto
|
||||||
|
availableModes:
|
||||||
|
- SemiAuto
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.05
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 10
|
||||||
|
zeroVisible: true
|
||||||
|
- type: Machine
|
||||||
|
board: ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
- type: ItemSlots
|
||||||
|
slots:
|
||||||
|
gun_magazine:
|
||||||
|
name: Magazine
|
||||||
|
insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||||
|
ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- PowerCell
|
||||||
|
- PowerCellSmall
|
||||||
|
- type: MagazineAmmoProvider
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunPerforator
|
||||||
|
parent: [ ShuttleGunBase, ConstructibleMachine]
|
||||||
|
name: LSE-1200c "Perforator"
|
||||||
|
description: Advanced stationary laser unit. Annihilates electronics and is extremely dangerous to health! Uses the power cage to fire.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
|
||||||
|
layers:
|
||||||
|
- state: lse-1200c
|
||||||
|
- state: mag-unshaded-9
|
||||||
|
map: ["enum.GunVisualLayers.MagUnshaded"]
|
||||||
|
shader: unshaded
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
machine_board: !type:Container
|
||||||
|
machine_parts: !type:Container
|
||||||
|
gun_magazine: !type:ContainerSlot
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 300
|
||||||
|
behaviors:
|
||||||
|
- !type:ChangeConstructionNodeBehavior
|
||||||
|
node: machineFrame
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Gun
|
||||||
|
fireRate: 1
|
||||||
|
useKey: false
|
||||||
|
selectedMode: SemiAuto
|
||||||
|
availableModes:
|
||||||
|
- SemiAuto
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.05
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 10
|
||||||
|
zeroVisible: true
|
||||||
|
- type: Machine
|
||||||
|
board: ShuttleGunPerforatorCircuitboard
|
||||||
|
- type: ItemSlots
|
||||||
|
slots:
|
||||||
|
gun_magazine:
|
||||||
|
name: Magazine
|
||||||
|
insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||||
|
ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- PowerCage
|
||||||
|
- type: MagazineAmmoProvider
|
||||||
|
|
||||||
|
# ---- Launchers ----
|
||||||
|
# naming: EXP (Explosion) + conventional power + suffix (g for Grenade, c for RPG Cartridge) + Name
|
||||||
|
# example: EXP-100c "Poppy"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunFriendship
|
||||||
|
parent: [ShuttleGunBase, ConstructibleMachine]
|
||||||
|
name: EXP-320g "Friendship"
|
||||||
|
description: A small stationary grenade launcher that holds 2 grenades.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
|
||||||
|
layers:
|
||||||
|
- state: exp-320g
|
||||||
|
- state: mag-7
|
||||||
|
map: ["enum.GunVisualLayers.Mag"]
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
machine_board: !type:Container
|
||||||
|
machine_parts: !type:Container
|
||||||
|
ballistic-ammo: !type:Container
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 200
|
||||||
|
behaviors:
|
||||||
|
- !type:ChangeConstructionNodeBehavior
|
||||||
|
node: machineFrame
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Gun
|
||||||
|
projectileSpeed: 80
|
||||||
|
fireRate: 4
|
||||||
|
angleDecay: 45
|
||||||
|
minAngle: 0
|
||||||
|
maxAngle: 15
|
||||||
|
selectedMode: FullAuto
|
||||||
|
availableModes:
|
||||||
|
- FullAuto
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Items/Mining/fultext_launch.ogg
|
||||||
|
params:
|
||||||
|
pitch: 0.8
|
||||||
|
soundEmpty:
|
||||||
|
path: /Audio/Weapons/Guns/Empty/empty.ogg
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- Grenade
|
||||||
|
capacity: 2
|
||||||
|
soundInsert:
|
||||||
|
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||||
|
- type: Machine
|
||||||
|
board: ShuttleGunFriendshipCircuitboard
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 8
|
||||||
|
zeroVisible: false
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunDuster
|
||||||
|
parent: [ShuttleGunBase, ConstructibleMachine]
|
||||||
|
name: EXP-2100g "Duster"
|
||||||
|
description: A powerful stationary grenade launcher. A cartridge is required for use.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
|
||||||
|
layers:
|
||||||
|
- state: exp-2100g
|
||||||
|
- state: mag-7
|
||||||
|
map: ["enum.GunVisualLayers.Mag"]
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
machine_board: !type:Container
|
||||||
|
machine_parts: !type:Container
|
||||||
|
gun_magazine: !type:ContainerSlot
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 350
|
||||||
|
behaviors:
|
||||||
|
- !type:ChangeConstructionNodeBehavior
|
||||||
|
node: machineFrame
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Gun
|
||||||
|
projectileSpeed: 40
|
||||||
|
fireRate: 0.3
|
||||||
|
selectedMode: FullAuto
|
||||||
|
availableModes:
|
||||||
|
- FullAuto
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Items/Mining/fultext_launch.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.05
|
||||||
|
pitch: 0.8
|
||||||
|
soundEmpty:
|
||||||
|
path: /Audio/Weapons/Guns/Empty/empty.ogg
|
||||||
|
- type: Machine
|
||||||
|
board: ShuttleGunDusterCircuitboard
|
||||||
|
- type: MagazineAmmoProvider
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 8
|
||||||
|
zeroVisible: false
|
||||||
|
- type: ItemSlots
|
||||||
|
slots:
|
||||||
|
gun_magazine:
|
||||||
|
name: Magazine
|
||||||
|
priority: 2
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- MagazineGrenade
|
||||||
|
insertSound:
|
||||||
|
path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg
|
||||||
|
params:
|
||||||
|
pitch: 2
|
||||||
|
ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
|
||||||
|
|
||||||
|
# ---- Other weapon ----
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunPirateCannon
|
||||||
|
parent: ShuttleGunBase
|
||||||
|
name: pirate ship cannon
|
||||||
|
description: Kaboom!
|
||||||
|
components:
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
ballistic-ammo: !type:Container
|
||||||
|
- type: Damageable
|
||||||
|
damageContainer: Inorganic
|
||||||
|
damageModifierSet: Metallic
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 300
|
||||||
|
behaviors:
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
- type: Gun
|
||||||
|
fireRate: 1
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/mateba.ogg
|
||||||
|
- type: BallisticAmmoProvider
|
||||||
|
whitelist:
|
||||||
|
tags:
|
||||||
|
- CannonBall
|
||||||
|
capacity: 1
|
||||||
|
proto: CannonBall
|
||||||
|
soundInsert:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ShuttleGunKinetic
|
||||||
|
parent: [ ShuttleGunBase, ConstructibleMachine]
|
||||||
|
name: PTK-800 "Matter Dematerializer"
|
||||||
|
description: Salvage stationary mining turret. Gradually accumulates charges on its own, extremely effective for asteroid excavation.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Shuttles/kinetic.rsi
|
||||||
|
layers:
|
||||||
|
- state: ptk-800
|
||||||
|
- state: mag-7
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
machine_board: !type:Container
|
||||||
|
machine_parts: !type:Container
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 100
|
||||||
|
behaviors:
|
||||||
|
- !type:ChangeConstructionNodeBehavior
|
||||||
|
node: machineFrame
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- type: Gun
|
||||||
|
projectileSpeed: 20
|
||||||
|
fireRate: 2
|
||||||
|
selectedMode: SemiAuto
|
||||||
|
angleDecay: 45
|
||||||
|
minAngle: 5
|
||||||
|
maxAngle: 15
|
||||||
|
availableModes:
|
||||||
|
- SemiAuto
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg
|
||||||
|
params:
|
||||||
|
variation: 0.12
|
||||||
|
- type: RechargeBasicEntityAmmo
|
||||||
|
rechargeCooldown: 2
|
||||||
|
rechargeSound:
|
||||||
|
path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg
|
||||||
|
params:
|
||||||
|
pitch: 1.2
|
||||||
|
variation: 0.08
|
||||||
|
- type: BasicEntityAmmoProvider
|
||||||
|
proto: BulletKineticShuttle
|
||||||
|
capacity: 5
|
||||||
|
count: 5
|
||||||
|
- type: Machine
|
||||||
|
board: ShuttleGunKineticCircuitboard
|
||||||
@@ -5,6 +5,17 @@
|
|||||||
description: A thruster that allows a shuttle to move.
|
description: A thruster that allows a shuttle to move.
|
||||||
abstract: true
|
abstract: true
|
||||||
components:
|
components:
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures:
|
||||||
|
fix1:
|
||||||
|
shape:
|
||||||
|
!type:PhysShapeAabb
|
||||||
|
bounds: "-0.45,-0.45,0.45,0.45"
|
||||||
|
density: 60
|
||||||
|
mask:
|
||||||
|
- MachineMask
|
||||||
|
layer:
|
||||||
|
- MachineLayer
|
||||||
- type: AmbientSound
|
- type: AmbientSound
|
||||||
enabled: false
|
enabled: false
|
||||||
range: 4
|
range: 4
|
||||||
@@ -30,12 +41,12 @@
|
|||||||
- type: ExtensionCableReceiver
|
- type: ExtensionCableReceiver
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
damageModifierSet: Metallic
|
damageModifierSet: Electronic
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
thresholds:
|
thresholds:
|
||||||
- trigger:
|
- trigger:
|
||||||
!type:DamageTrigger
|
!type:DamageTrigger
|
||||||
damage: 300 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
|
damage: 100 # Considering we need a lot of thrusters didn't want to make an individual one too tanky
|
||||||
behaviors:
|
behaviors:
|
||||||
- !type:DoActsBehavior
|
- !type:DoActsBehavior
|
||||||
acts: ["Destruction"]
|
acts: ["Destruction"]
|
||||||
@@ -185,6 +196,9 @@
|
|||||||
- type: UpgradePowerDraw
|
- type: UpgradePowerDraw
|
||||||
powerDrawMultiplier: 0.75
|
powerDrawMultiplier: 0.75
|
||||||
scaling: Exponential
|
scaling: Exponential
|
||||||
|
- type: Damageable
|
||||||
|
damageContainer: Inorganic
|
||||||
|
damageModifierSet: Electronic
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 2000
|
price: 2000
|
||||||
|
|
||||||
|
|||||||
@@ -895,3 +895,54 @@
|
|||||||
Steel: 100
|
Steel: 100
|
||||||
Glass: 900
|
Glass: 900
|
||||||
Gold: 100
|
Gold: 100
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: PowerCageRechargerCircuitboard
|
||||||
|
result: PowerCageRechargerCircuitboard
|
||||||
|
completetime: 6
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
result: ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
completetime: 6
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: ShuttleGunPerforatorCircuitboard
|
||||||
|
result: ShuttleGunPerforatorCircuitboard
|
||||||
|
completetime: 10
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
Gold: 100
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: ShuttleGunKineticCircuitboard
|
||||||
|
result: ShuttleGunKineticCircuitboard
|
||||||
|
completetime: 6
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: ShuttleGunFriendshipCircuitboard
|
||||||
|
result: ShuttleGunFriendshipCircuitboard
|
||||||
|
completetime: 8
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
Gold: 50
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: ShuttleGunDusterCircuitboard
|
||||||
|
result: ShuttleGunDusterCircuitboard
|
||||||
|
completetime: 12
|
||||||
|
materials:
|
||||||
|
Steel: 100
|
||||||
|
Glass: 900
|
||||||
|
Gold: 100
|
||||||
|
|||||||
@@ -39,3 +39,31 @@
|
|||||||
Glass: 400
|
Glass: 400
|
||||||
Uranium: 200
|
Uranium: 200
|
||||||
Gold: 100
|
Gold: 100
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: PowerCageSmall
|
||||||
|
result: PowerCageSmall
|
||||||
|
completetime: 3
|
||||||
|
materials:
|
||||||
|
Steel: 200
|
||||||
|
Plastic: 100
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: PowerCageMedium
|
||||||
|
result: PowerCageMedium
|
||||||
|
completetime: 6
|
||||||
|
materials:
|
||||||
|
Steel: 500
|
||||||
|
Glass: 500
|
||||||
|
Plastic: 250
|
||||||
|
Gold: 40
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: PowerCageHigh
|
||||||
|
result: PowerCageHigh
|
||||||
|
completetime: 10
|
||||||
|
materials:
|
||||||
|
Steel: 600
|
||||||
|
Glass: 800
|
||||||
|
Plastic: 400
|
||||||
|
Gold: 100
|
||||||
@@ -605,3 +605,39 @@
|
|||||||
Steel: 1000
|
Steel: 1000
|
||||||
Glass: 500
|
Glass: 500
|
||||||
Plastic: 500
|
Plastic: 500
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: MagazineGrenadeEmpty
|
||||||
|
result: MagazineGrenadeEmpty
|
||||||
|
completetime: 3
|
||||||
|
materials:
|
||||||
|
Steel: 150
|
||||||
|
Plastic: 50
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: GrenadeEMP
|
||||||
|
result: GrenadeEMP
|
||||||
|
completetime: 3
|
||||||
|
materials:
|
||||||
|
Steel: 150
|
||||||
|
Plastic: 100
|
||||||
|
Glass: 20
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: GrenadeBlast
|
||||||
|
result: GrenadeBlast
|
||||||
|
completetime: 3
|
||||||
|
materials:
|
||||||
|
Steel: 150
|
||||||
|
Plastic: 100
|
||||||
|
Gold: 50
|
||||||
|
|
||||||
|
- type: latheRecipe
|
||||||
|
id: GrenadeFlash
|
||||||
|
result: GrenadeFlash
|
||||||
|
completetime: 3
|
||||||
|
materials:
|
||||||
|
Steel: 150
|
||||||
|
Plastic: 100
|
||||||
|
Glass: 20
|
||||||
|
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
cost: 5000
|
cost: 5000
|
||||||
recipeUnlocks:
|
recipeUnlocks:
|
||||||
- WeaponProtoKineticAccelerator
|
- WeaponProtoKineticAccelerator
|
||||||
|
- ShuttleGunKineticCircuitboard
|
||||||
# These are roundstart but not replenishable for salvage
|
# These are roundstart but not replenishable for salvage
|
||||||
|
|
||||||
- type: technology
|
- type: technology
|
||||||
@@ -145,6 +146,27 @@
|
|||||||
- HoloprojectorSecurity
|
- HoloprojectorSecurity
|
||||||
- WeaponDisablerSMG
|
- WeaponDisablerSMG
|
||||||
|
|
||||||
|
- type: technology
|
||||||
|
id: BasicShuttleArmament
|
||||||
|
name: research-technology-basic-shuttle-armament
|
||||||
|
icon:
|
||||||
|
sprite: Structures/Power/cage_recharger.rsi
|
||||||
|
state: full
|
||||||
|
discipline: Arsenal
|
||||||
|
tier: 2
|
||||||
|
cost: 10500
|
||||||
|
recipeUnlocks:
|
||||||
|
- PowerCageRechargerCircuitboard
|
||||||
|
- PowerCageSmall
|
||||||
|
- PowerCageMedium
|
||||||
|
- MagazineGrenadeEmpty
|
||||||
|
- GrenadeFlash
|
||||||
|
- ShuttleGunSvalinnMachineGunCircuitboard
|
||||||
|
- ShuttleGunPerforatorCircuitboard
|
||||||
|
- ShuttleGunFriendshipCircuitboard
|
||||||
|
technologyPrerequisites:
|
||||||
|
- SalvageWeapons
|
||||||
|
|
||||||
# Tier 3
|
# Tier 3
|
||||||
|
|
||||||
- type: technology
|
- type: technology
|
||||||
@@ -170,3 +192,19 @@
|
|||||||
cost: 15000
|
cost: 15000
|
||||||
recipeUnlocks:
|
recipeUnlocks:
|
||||||
- WeaponLaserSvalinn
|
- WeaponLaserSvalinn
|
||||||
|
|
||||||
|
- type: technology
|
||||||
|
id: AdvancedShuttleWeapon
|
||||||
|
name: research-technology-advanced-shuttle-weapon
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi
|
||||||
|
state: icon
|
||||||
|
discipline: Arsenal
|
||||||
|
tier: 3
|
||||||
|
cost: 15000
|
||||||
|
recipeUnlocks:
|
||||||
|
- GrenadeEMP
|
||||||
|
- PowerCageHigh
|
||||||
|
- ShuttleGunDusterCircuitboard
|
||||||
|
technologyPrerequisites:
|
||||||
|
- BasicShuttleArmament
|
||||||
@@ -250,6 +250,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: CanPilot
|
id: CanPilot
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: CannonBall
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: CannonRestrict
|
id: CannonRestrict
|
||||||
|
|
||||||
@@ -784,6 +787,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: MagazinePistolSubMachineGun
|
id: MagazinePistolSubMachineGun
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: MagazineGrenade
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: MailingUnitElectronics
|
id: MailingUnitElectronics
|
||||||
|
|
||||||
@@ -940,6 +946,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: PowerCellSmall
|
id: PowerCellSmall
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: PowerCage
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Powerdrill
|
id: Powerdrill
|
||||||
|
|
||||||
|
|||||||
BIN
Resources/Textures/Objects/Power/power_cages.rsi/high.png
Normal file
|
After Width: | Height: | Size: 376 B |
BIN
Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png
Normal file
|
After Width: | Height: | Size: 748 B |
|
After Width: | Height: | Size: 748 B |
BIN
Resources/Textures/Objects/Power/power_cages.rsi/medium.png
Normal file
|
After Width: | Height: | Size: 433 B |
34
Resources/Textures/Objects/Power/power_cages.rsi/meta.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "small"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "medium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "high"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "o1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "o2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Objects/Power/power_cages.rsi/o1.png
Normal file
|
After Width: | Height: | Size: 186 B |
BIN
Resources/Textures/Objects/Power/power_cages.rsi/o2.png
Normal file
|
After Width: | Height: | Size: 198 B |
BIN
Resources/Textures/Objects/Power/power_cages.rsi/small.png
Normal file
|
After Width: | Height: | Size: 399 B |
|
After Width: | Height: | Size: 393 B |
@@ -5,7 +5,7 @@
|
|||||||
"y": 32
|
"y": 32
|
||||||
},
|
},
|
||||||
"license": "CC-BY-SA-3.0",
|
"license": "CC-BY-SA-3.0",
|
||||||
"copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss14",
|
"copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss1, emp made by TheShuEd (github)",
|
||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "baton"
|
"name": "baton"
|
||||||
@@ -25,6 +25,9 @@
|
|||||||
{
|
{
|
||||||
"name": "ball"
|
"name": "ball"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "emp"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "grapeshot"
|
"name": "grapeshot"
|
||||||
},
|
},
|
||||||
|
|||||||
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 409 B |
|
After Width: | Height: | Size: 415 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 317 B |
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "created by TheShuEd (github) for Space Station 14",
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "base"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "icon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -73,6 +73,36 @@
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "muzzle_beam_heavy2",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "beam_heavy2",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "beam_heavy",
|
"name": "beam_heavy",
|
||||||
"delays": [
|
"delays": [
|
||||||
@@ -103,6 +133,21 @@
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "impact_beam_heavy2",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002,
|
||||||
|
0.060000002
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "muzzle_omni",
|
"name": "muzzle_omni",
|
||||||
"delays": [
|
"delays": [
|
||||||
|
|||||||
|
After Width: | Height: | Size: 962 B |
|
After Width: | Height: | Size: 154 B |
|
After Width: | Height: | Size: 187 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 212 B |
|
After Width: | Height: | Size: 214 B |
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"size": {
|
||||||
|
"x": 64,
|
||||||
|
"y": 64
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "ptk-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 843 B |
|
After Width: | Height: | Size: 143 B |
|
After Width: | Height: | Size: 197 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 244 B |
|
After Width: | Height: | Size: 249 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 256 B |
|
After Width: | Height: | Size: 259 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 263 B |
@@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"size": {
|
||||||
|
"x": 64,
|
||||||
|
"y": 64
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "lse-400c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lse-1200c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-0",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.6,
|
||||||
|
0.6
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-1",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-2",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-3",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-4",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-5",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-6",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-7",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-8",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-unshaded-9",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 977 B |
|
After Width: | Height: | Size: 144 B |
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 178 B |
|
After Width: | Height: | Size: 176 B |
|
After Width: | Height: | Size: 177 B |
|
After Width: | Height: | Size: 177 B |
|
After Width: | Height: | Size: 191 B |
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"size": {
|
||||||
|
"x": 64,
|
||||||
|
"y": 64
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "exp-320g"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "exp-2100g"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mag-7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"size": {
|
||||||
|
"x": 64,
|
||||||
|
"y": 64
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "base"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png
Normal file
|
After Width: | Height: | Size: 775 B |
BIN
Resources/Textures/Structures/Power/cage_recharger.rsi/full.png
Normal file
|
After Width: | Height: | Size: 919 B |
|
After Width: | Height: | Size: 803 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 271 B |
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Created by TheShuEd (github) for Space Station 14",
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "light-off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "empty"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "full"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "open"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "light-charging",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.3,
|
||||||
|
0.3,
|
||||||
|
0.3,
|
||||||
|
0.3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "light-charged",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.6,
|
||||||
|
0.6
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "light-empty",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.8,
|
||||||
|
0.8
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Structures/Power/cage_recharger.rsi/open.png
Normal file
|
After Width: | Height: | Size: 775 B |