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);
|
||||
}
|
||||
}
|
||||
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
|
||||
var fromEffect = fromCoordinates;
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -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.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -214,6 +214,17 @@ public abstract partial class SharedGunSystem : EntitySystem
|
||||
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)
|
||||
{
|
||||
if (gun.FireRate <= 0f ||
|
||||
@@ -385,12 +396,9 @@ public abstract partial class SharedGunSystem : EntitySystem
|
||||
var finalLinear = physics.LinearVelocity + targetMapVelocity - currentMapVelocity;
|
||||
Physics.SetLinearVelocity(uid, finalLinear, body: physics);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
var projectile = EnsureComp<ProjectileComponent>(uid);
|
||||
Projectiles.SetShooter(uid, projectile, user.Value);
|
||||
Projectiles.SetShooter(uid, projectile, user ?? gunUid);
|
||||
projectile.Weapon = gunUid;
|
||||
}
|
||||
|
||||
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-portable-microfusion-weaponry = Portable Microfusion Weaponry
|
||||
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-anomalous-research = Basic Anomalous Research
|
||||
|
||||
@@ -60,6 +60,16 @@
|
||||
Heat: 5
|
||||
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.
|
||||
- type: damageModifierSet
|
||||
id: FlimsyMetallic
|
||||
|
||||
@@ -661,6 +661,29 @@
|
||||
- type: StaticPrice
|
||||
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
|
||||
id: BorgChargerCircuitboard
|
||||
parent: BaseMachineCircuitboard
|
||||
@@ -1229,3 +1252,90 @@
|
||||
Steel: 5
|
||||
CableHV: 5
|
||||
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
|
||||
autoRecharge: true
|
||||
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
|
||||
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
|
||||
id: CannonBall
|
||||
name: cannonball
|
||||
suffix: Pirate
|
||||
parent: BaseGrenade
|
||||
parent: BaseCannonBall
|
||||
components:
|
||||
- type: CartridgeAmmo
|
||||
proto: BulletCannonBall
|
||||
@@ -137,10 +169,10 @@
|
||||
state: ball
|
||||
|
||||
- type: entity
|
||||
id: Grapeshot
|
||||
id: CannonBallGrapeshot
|
||||
name: grapeshot
|
||||
suffix: Pirate
|
||||
parent: BaseGrenade
|
||||
parent: BaseCannonBall
|
||||
components:
|
||||
- type: CartridgeAmmo
|
||||
proto: PelletGrapeshot
|
||||
@@ -152,10 +184,10 @@
|
||||
state: grapeshot
|
||||
|
||||
- type: entity
|
||||
id: Glassshot
|
||||
id: CannonBallGlassshot
|
||||
name: glassshot
|
||||
suffix: Pirate
|
||||
parent: BaseGrenade
|
||||
parent: BaseCannonBall
|
||||
components:
|
||||
- type: CartridgeAmmo
|
||||
proto: PelletGlass
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
- type: BallisticAmmoProvider
|
||||
whitelist:
|
||||
tags:
|
||||
- Grenade
|
||||
- CannonBall
|
||||
capacity: 1
|
||||
proto: CannonBall
|
||||
soundInsert:
|
||||
|
||||
@@ -121,3 +121,20 @@
|
||||
impactFlash:
|
||||
sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi
|
||||
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
|
||||
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
|
||||
id: BulletCharge
|
||||
name: charge bolt
|
||||
@@ -692,6 +718,27 @@
|
||||
intensitySlope: 1
|
||||
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
|
||||
id: BulletCap
|
||||
name: cap bullet
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
drawdepth: Objects
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
damageModifierSet: Electronic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
|
||||
@@ -169,6 +169,7 @@
|
||||
- MagazineBoxMagnum
|
||||
- MagazineBoxRifle
|
||||
- MagazineBoxLightRifle
|
||||
- GrenadeBlast
|
||||
emagDynamicRecipes:
|
||||
- CartridgePistolRubber
|
||||
- CartridgeMagnumRubber
|
||||
@@ -197,6 +198,12 @@
|
||||
- MagazineBoxMagnumUranium
|
||||
- MagazineBoxLightRifleUranium
|
||||
- MagazineBoxRifleUranium
|
||||
- PowerCageSmall
|
||||
- PowerCageMedium
|
||||
- PowerCageHigh
|
||||
- MagazineGrenadeEmpty
|
||||
- GrenadeEMP
|
||||
- GrenadeFlash
|
||||
|
||||
- type: entity
|
||||
id: AutolatheHyperConvection
|
||||
@@ -422,10 +429,12 @@
|
||||
- WallmountGeneratorElectronics
|
||||
- WallmountGeneratorAPUElectronics
|
||||
- WallmountSubstationElectronics
|
||||
- PowerCageRechargerCircuitboard
|
||||
- EmitterCircuitboard
|
||||
- ThrusterMachineCircuitboard
|
||||
- GyroscopeMachineCircuitboard
|
||||
- MiniGravityGeneratorCircuitboard
|
||||
- ShuttleGunKineticCircuitboard
|
||||
- GasRecyclerMachineCircuitboard
|
||||
- SeedExtractorMachineCircuitboard
|
||||
- AnalysisComputerCircuitboard
|
||||
@@ -691,6 +700,9 @@
|
||||
- MagazineBoxMagnumRubber
|
||||
- MagazineBoxPistolRubber
|
||||
- MagazineBoxRifleRubber
|
||||
- MagazineGrenadeEmpty
|
||||
- GrenadeEMP
|
||||
- GrenadeFlash
|
||||
- ShellShotgunBeanbag
|
||||
- ShellShotgunIncendiary
|
||||
- ShellShotgunUranium
|
||||
@@ -706,6 +718,13 @@
|
||||
- WeaponLaserCannon
|
||||
- WeaponLaserCarbine
|
||||
- WeaponXrayCannon
|
||||
- PowerCageSmall
|
||||
- PowerCageMedium
|
||||
- PowerCageHigh
|
||||
- ShuttleGunSvalinnMachineGunCircuitboard
|
||||
- ShuttleGunPerforatorCircuitboard
|
||||
- ShuttleGunFriendshipCircuitboard
|
||||
- ShuttleGunDusterCircuitboard
|
||||
- type: MaterialStorage
|
||||
whitelist:
|
||||
tags:
|
||||
|
||||
@@ -108,6 +108,46 @@
|
||||
tags:
|
||||
- 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
|
||||
parent: BaseItemRecharger
|
||||
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.
|
||||
abstract: true
|
||||
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
|
||||
enabled: false
|
||||
range: 4
|
||||
@@ -30,12 +41,12 @@
|
||||
- type: ExtensionCableReceiver
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
damageModifierSet: Electronic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!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:
|
||||
- !type:DoActsBehavior
|
||||
acts: ["Destruction"]
|
||||
@@ -185,6 +196,9 @@
|
||||
- type: UpgradePowerDraw
|
||||
powerDrawMultiplier: 0.75
|
||||
scaling: Exponential
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Electronic
|
||||
- type: StaticPrice
|
||||
price: 2000
|
||||
|
||||
|
||||
@@ -895,3 +895,54 @@
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
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
|
||||
Uranium: 200
|
||||
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
|
||||
Glass: 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
|
||||
recipeUnlocks:
|
||||
- WeaponProtoKineticAccelerator
|
||||
- ShuttleGunKineticCircuitboard
|
||||
# These are roundstart but not replenishable for salvage
|
||||
|
||||
- type: technology
|
||||
@@ -145,6 +146,27 @@
|
||||
- HoloprojectorSecurity
|
||||
- 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
|
||||
|
||||
- type: technology
|
||||
@@ -170,3 +192,19 @@
|
||||
cost: 15000
|
||||
recipeUnlocks:
|
||||
- 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
|
||||
id: CanPilot
|
||||
|
||||
- type: Tag
|
||||
id: CannonBall
|
||||
|
||||
- type: Tag
|
||||
id: CannonRestrict
|
||||
|
||||
@@ -784,6 +787,9 @@
|
||||
- type: Tag
|
||||
id: MagazinePistolSubMachineGun
|
||||
|
||||
- type: Tag
|
||||
id: MagazineGrenade
|
||||
|
||||
- type: Tag
|
||||
id: MailingUnitElectronics
|
||||
|
||||
@@ -940,6 +946,9 @@
|
||||
- type: Tag
|
||||
id: PowerCellSmall
|
||||
|
||||
- type: Tag
|
||||
id: PowerCage
|
||||
|
||||
- type: Tag
|
||||
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
|
||||
},
|
||||
"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": [
|
||||
{
|
||||
"name": "baton"
|
||||
@@ -25,6 +25,9 @@
|
||||
{
|
||||
"name": "ball"
|
||||
},
|
||||
{
|
||||
"name": "emp"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"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",
|
||||
"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 |