diff --git a/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs new file mode 100644 index 0000000000..a9067951ed --- /dev/null +++ b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs @@ -0,0 +1,24 @@ +using Content.Server.DeviceLinking.Systems; +using Content.Shared.DeviceLinking; +using Robust.Shared.Prototypes; + +namespace Content.Server.DeviceLinking.Components; + +/// +/// A system that allows you to fire GunComponent + AmmoProvider by receiving signals from DeviceLinking +/// +[RegisterComponent, Access(typeof(GunSignalControlSystem))] +public sealed partial class GunSignalControlComponent : Component +{ + [DataField] + public ProtoId TriggerPort = "Trigger"; + + [DataField] + public ProtoId TogglePort = "Toggle"; + + [DataField] + public ProtoId OnPort = "On"; + + [DataField] + public ProtoId OffPort = "Off"; +} diff --git a/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs new file mode 100644 index 0000000000..538a191ab9 --- /dev/null +++ b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs @@ -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(OnInit); + SubscribeLocalEvent(OnSignalReceived); + } + + private void OnInit(Entity gunControl, ref MapInitEvent args) + { + _signalSystem.EnsureSinkPorts(gunControl, gunControl.Comp.TriggerPort, gunControl.Comp.TogglePort, gunControl.Comp.OnPort, gunControl.Comp.OffPort); + } + + private void OnSignalReceived(Entity gunControl, ref SignalReceivedEvent args) + { + if (!TryComp(gunControl, out var gun)) + return; + + if (args.Port == gunControl.Comp.TriggerPort) + _gun.AttemptShoot(gunControl, gun); + + if (!TryComp(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); + } +} diff --git a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs index f16a327e6b..9db9aa296d 100644 --- a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs +++ b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs @@ -78,8 +78,8 @@ public sealed class PneumaticCannonSystem : SharedPneumaticCannonSystem if (gas == null && component.GasUsage > 0f) return; - if(TryComp(args.User, out var status) - && component.Power == PneumaticCannonPower.High) + if (TryComp(args.User, out var status) + && component.Power == PneumaticCannonPower.High) { _stun.TryParalyze(args.User, TimeSpan.FromSeconds(component.HighPowerStunTime), true, status); Popup.PopupEntity(Loc.GetString("pneumatic-cannon-component-power-stun", diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs new file mode 100644 index 0000000000..39cd2486ed --- /dev/null +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs @@ -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(); + + 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); + } + } +} diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 96108c2e12..4f236c0fa7 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -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) { diff --git a/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs new file mode 100644 index 0000000000..16b3110b85 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Weapons.Ranged.Components; + +/// +/// Allows GunSystem to automatically fire while this component is enabled +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunSystem)), AutoGenerateComponentState] +public sealed partial class AutoShootGunComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public bool Enabled; +} diff --git a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs index 350dd85d69..95853bbd2e 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs @@ -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; diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs new file mode 100644 index 0000000000..4c19547a39 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs @@ -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; + } +} diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 4e5d8b9762..c7456ed019 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -37,7 +37,7 @@ namespace Content.Shared.Weapons.Ranged.Systems; 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 IMapManager MapManager = default!; [Dependency] private readonly INetManager _netManager = default!; @@ -214,6 +214,17 @@ public abstract partial class SharedGunSystem : EntitySystem gun.ShotCounter = 0; } + /// + /// Shoots by assuming the gun is the user at default coordinates. + /// + 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(uid); - Projectiles.SetShooter(uid, projectile, user.Value); - projectile.Weapon = gunUid; - } + var projectile = EnsureComp(uid); + Projectiles.SetShooter(uid, projectile, user ?? gunUid); + projectile.Weapon = gunUid; TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle()); } diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 973ef360a9..411ce429ab 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -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 diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 8b63604b22..bf88837e8d 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 672d6488e3..6581fecbac 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -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 + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml index 841288c479..758d5f7b42 100644 --- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml +++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml new file mode 100644 index 0000000000..0b23ebc966 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml index 9d04ee8261..152de7e92f 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml @@ -122,12 +122,44 @@ - type: SpentAmmoVisuals 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 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 635de1c64b..ecabe2a4ab 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -144,7 +144,7 @@ - type: BallisticAmmoProvider whitelist: tags: - - Grenade + - CannonBall capacity: 1 proto: CannonBall soundInsert: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index cb4e813943..99c4a7bdf2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index a442804b3d..5bfd511dbc 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml index 884f68fc22..08e3173334 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml @@ -26,7 +26,7 @@ drawdepth: Objects - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: Electronic - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 7d5d571a09..c3f51df2de 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -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: diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index a8e20df192..44f748307c 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -107,6 +107,46 @@ blacklist: 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 diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml new file mode 100644 index 0000000000..d3408f54e5 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index 787101c5b5..eb299e3f3a 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -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 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 2e93b9518e..3af8eb4e52 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -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 diff --git a/Resources/Prototypes/Recipes/Lathes/powercells.yml b/Resources/Prototypes/Recipes/Lathes/powercells.yml index 0b63995a63..21928a53d2 100644 --- a/Resources/Prototypes/Recipes/Lathes/powercells.yml +++ b/Resources/Prototypes/Recipes/Lathes/powercells.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index eb9da60d78..dceeb30263 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -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 + \ No newline at end of file diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index bf60a9e797..71e85c691a 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 61e2c56c4a..40736c3fc5 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -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 diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/high.png b/Resources/Textures/Objects/Power/power_cages.rsi/high.png new file mode 100644 index 0000000000..703cdcac08 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/high.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png new file mode 100644 index 0000000000..43701b4e03 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png new file mode 100644 index 0000000000..43701b4e03 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/medium.png b/Resources/Textures/Objects/Power/power_cages.rsi/medium.png new file mode 100644 index 0000000000..1e2a8b74f5 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/medium.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/meta.json b/Resources/Textures/Objects/Power/power_cages.rsi/meta.json new file mode 100644 index 0000000000..705a82df96 --- /dev/null +++ b/Resources/Textures/Objects/Power/power_cages.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/o1.png b/Resources/Textures/Objects/Power/power_cages.rsi/o1.png new file mode 100644 index 0000000000..bfc4817fe5 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/o1.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/o2.png b/Resources/Textures/Objects/Power/power_cages.rsi/o2.png new file mode 100644 index 0000000000..9e2ae02d59 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/o2.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/small.png b/Resources/Textures/Objects/Power/power_cages.rsi/small.png new file mode 100644 index 0000000000..fb7df07643 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/small.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png new file mode 100644 index 0000000000..ea8f23516e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json index 3faf26ebe5..15ed620c3e 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json @@ -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" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png new file mode 100644 index 0000000000..27c6f16dc7 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png new file mode 100644 index 0000000000..93359d8409 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png new file mode 100644 index 0000000000..14265b1c7d Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png new file mode 100644 index 0000000000..826d0bb3f7 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png new file mode 100644 index 0000000000..6b233bee38 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png new file mode 100644 index 0000000000..6b233bee38 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png new file mode 100644 index 0000000000..f8e3f08c8f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png new file mode 100644 index 0000000000..b3ea88e15f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json new file mode 100644 index 0000000000..32d2f5b7f0 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png new file mode 100644 index 0000000000..b171a562cb Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png new file mode 100644 index 0000000000..b5d43d2bf0 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json index 804ab0bc91..0a835a14d7 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json @@ -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": [ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png new file mode 100644 index 0000000000..fe3365b680 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png new file mode 100644 index 0000000000..99f8264d14 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png new file mode 100644 index 0000000000..9ccfc11bb3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png new file mode 100644 index 0000000000..6facc2d8f6 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png new file mode 100644 index 0000000000..72473343c8 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png new file mode 100644 index 0000000000..cea633b3bc Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png new file mode 100644 index 0000000000..4a892b1ef2 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png new file mode 100644 index 0000000000..f2540aac06 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json new file mode 100644 index 0000000000..537e6f8538 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png new file mode 100644 index 0000000000..7a11cb93a5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png new file mode 100644 index 0000000000..600ff52d25 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png new file mode 100644 index 0000000000..7bbc575847 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png new file mode 100644 index 0000000000..135ff86ab5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png new file mode 100644 index 0000000000..e617be2bf9 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png new file mode 100644 index 0000000000..eb16f29278 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png new file mode 100644 index 0000000000..a7c4b3df06 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png new file mode 100644 index 0000000000..3541031ce5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png new file mode 100644 index 0000000000..1d76b9e0d4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png new file mode 100644 index 0000000000..591fda56aa Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png new file mode 100644 index 0000000000..bbab730d89 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png new file mode 100644 index 0000000000..7cdab8829a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png new file mode 100644 index 0000000000..8bba7f1a0f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json new file mode 100644 index 0000000000..3760eca2c2 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json @@ -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 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png new file mode 100644 index 0000000000..c6e151ad6f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png new file mode 100644 index 0000000000..bc76168636 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png new file mode 100644 index 0000000000..20c6f2797e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png new file mode 100644 index 0000000000..eef8e7aca5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png new file mode 100644 index 0000000000..0dd49f1065 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png new file mode 100644 index 0000000000..5615c7b5c3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png new file mode 100644 index 0000000000..e32c827b21 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png new file mode 100644 index 0000000000..efdb0bdac0 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png new file mode 100644 index 0000000000..1e1dfaef55 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json new file mode 100644 index 0000000000..75a018b665 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png new file mode 100644 index 0000000000..eb000ac7b5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json new file mode 100644 index 0000000000..7219f4626a --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json @@ -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" + } + ] +} diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png new file mode 100644 index 0000000000..28d040cd32 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png new file mode 100644 index 0000000000..ed52d0851f Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png new file mode 100644 index 0000000000..bf313a1e5c Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png new file mode 100644 index 0000000000..869aee685a Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png new file mode 100644 index 0000000000..b241479b68 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png new file mode 100644 index 0000000000..1bdf052387 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json new file mode 100644 index 0000000000..8a1714eac0 --- /dev/null +++ b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json @@ -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 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png new file mode 100644 index 0000000000..28d040cd32 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png differ