Port Frontier Guns And The Den PRs For Them (#1490)

# Description
this ports the following PRs:
https://github.com/TheDenSS14/TheDen/pull/128
https://github.com/TheDenSS14/TheDen/pull/133
https://github.com/TheDenSS14/TheDen/pull/135
https://github.com/TheDenSS14/TheDen/pull/143

Essentially, this PR adds several new "Civilian Grade" firearms to the
game that come from Frontier, most of which use the new LightRifle
cartridge, a fairly underpowered round. Security can take the new
Argenti revolver in their loadouts, while Salvage can spend their Mining
Points on the civilian rifles. Notably, the ones purchased in the Mining
Vendor do not come with ammo. Salvage needs to go request ammo from
Security, or a traitor salvage can emag the cargo autolathe to get ammo
for them.

I'm going to laugh my ass off the first time a Warden has to deal with
Salvage specialists coming to ask "Hey can you print me ammo for my
MOSIN?"

<details><summary><h1>Media</h1></summary>
<p>

New 0 point revolver for sec. It does shit-tier damage since it fires
.20 rifle, but with an 8 round capacity, it's the highest capacity
revolver in the game.

![image](https://github.com/user-attachments/assets/403acae6-deb9-4ef6-b5f4-dab5201d8009)

![image](https://github.com/user-attachments/assets/7ea66718-837c-489e-8da3-5ef60c25e33a)

New salvage vendor "Civilian Grade" equipment

![image](https://github.com/user-attachments/assets/6723f2f7-cf7b-438e-b9b7-2df108d20336)

Tested and verified that the salvage vendor guns actually do spawn
empty:

![image](https://github.com/user-attachments/assets/ea0eb959-2815-4a5b-87ce-d0654b74133f)

</p>
</details>

# Changelog

🆑
- add: Added the Argenti, Gestio, Novalite C1, and SVT firearms. Added
an "Empty" Mosin variant for Salvage.
- add: Salvage technicians can now spend their mining points on new
"Civilian Grade" firearms from the Mining Vendor. These don't come with
ammo, so you'll have to request ammo be printed by Security.
- add: Added the Argenti Revolver to Security Loadouts.
- tweak: Salvage Specialist lockers are now guaranteed to come with one
pickaxe and one ore bag.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: Rosycup <benjho049@gmail.com>

(cherry picked from commit e2d4a3243e43f73c566d5372297f77083c42cf99)
This commit is contained in:
VMSolidus
2025-01-11 21:24:39 +03:00
committed by Spatison
parent 5a730d639f
commit ef33768a68
200 changed files with 1747 additions and 5 deletions

View File

@@ -4,17 +4,27 @@ using Content.Shared.Lathe.Prototypes;
using Content.Shared.Materials;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array;
using Robust.Shared.Utility;
namespace Content.Shared.Research.Prototypes
{
[NetSerializable, Serializable, Prototype]
public sealed partial class LatheRecipePrototype : IPrototype
public sealed partial class LatheRecipePrototype : IPrototype, IInheritingPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; private set; } = default!;
/// <inheritdoc/>
[ParentDataField(typeof(AbstractPrototypeIdArraySerializer<LatheRecipePrototype>))]
public string[]? Parents { get; }
/// <inheritdoc />
[NeverPushInheritance]
[AbstractDataField]
public bool Abstract { get; }
/// <summary>
/// Name displayed in the lathe GUI.
/// </summary>
@@ -68,4 +78,4 @@ namespace Content.Shared.Research.Prototypes
[DataField]
public uint MiningPoints;
}
}
}

View File

@@ -0,0 +1,4 @@
- files: ["rifle.ogg"]
license: "CC-BY-3.0"
copyright: "Created by Michel Baradari apollo-music.de"
source: "https://opengameart.org/content/chaingun-pistol-rifle-shotgun-shots"

Binary file not shown.

View File

@@ -8,16 +8,18 @@
- id: ClothingOuterHardsuitSpatio
- id: ClothingShoesBootsMag
- id: ClothingMaskGasExplorer
- id: ClothingEyesGlassesGarMeson
- id: ClothingBeltUtilityFilled
- id: SurvivalKnife
- id: HandheldGPSBasic
- id: RadioHandheld
- id: FlashlightSeclite
- id: Pickaxe
- id: SeismicCharge
amount: 2
- id: ClothingShoesBootsWinterMiner #Delta V: Add departmental winter boots
- id: JetpackMiniFilled # DeltaV - Salv lost their shuttle
- id: OreBag
prob: 0.5
- id: Flare
prob: 0.3
- id: Flare
@@ -48,7 +50,6 @@
- id: ClothingShoesBootsWinterMiner #Delta V: Add departmental winter boots
- id: JetpackMiniFilled # DeltaV - Salv lost their shuttle
- id: OreBag
prob: 0.5
- id: Flare
prob: 0.3
- id: Flare
@@ -58,4 +59,4 @@
- id: ClothingNeckSalvager # DeltaV - salvage cloak
prob: 0.2
- id: LunchboxLogisticsFilledRandom # DeltaV - Lunchboxes!
prob: 0.3
prob: 0.3

View File

@@ -58,6 +58,14 @@
id: LoadoutMagazineMagnumSpare
- type: loadout
id: LoadoutMagazineMagnumRubberSpare
- type: loadout
id: LoadoutSpeedLoaderRifleHeavy
- type: loadout
id: LoadoutSpeedLoaderRifleHeavySpare
- type: loadout
id: LoadoutSpeedLoaderRifleHeavyRubber
- type: loadout
id: LoadoutSpeedLoaderRifleHeavyRubberSpare
- type: characterItemGroup
maxItems: 1
@@ -115,6 +123,10 @@
id: LoadoutSecurityRevolverPython
- type: loadout
id: LoadoutSecurityRevolverPythonNonlethal
- type: loadout
id: LoadoutSecurityArgenti
- type: loadout
id: LoadoutSecurityArgentiNonLethal
- type: characterItemGroup
id: LoadoutSecurityEyes

View File

@@ -19,6 +19,8 @@
- id: FultonBeacon
cost: 400
# TODO: bluespace shelter capsule for 400
- id: SalvageHarpoon
cost: 450
- id: ClothingEyesGlassesGarMeson
cost: 500
- id: ClothingBeltSalvageWebbing
@@ -37,8 +39,18 @@
- id: Fulton
cost: 1000
# TODO: lazarus injector for 1k
- id: WeaponSniperMosinEmpty
cost: 750 # Literally the worst gun in the game.
- id: WeaponRevolverArgentiEmpty
cost: 1100
- id: WeaponRifleNovaliteC1Empty
cost: 1300
- id: ClothingBackpackDuffelSalvageConscription
cost: 1500
- id: WeaponRifleGestioEmpty
cost: 1600
- id: WeaponRifleSVTEmpty
cost: 1600
- id: SpaceCash1000
cost: 2000
# TODO: super resonator for 2500

View File

@@ -261,3 +261,27 @@
capacity: 5
chambers: [ True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null ]
- type: entity
parent: WeaponRevolverArgenti
id: WeaponRevolverArgentiSecurity
description: The military grade Argenti Type 20 revolver. Manufactured by Silver Industries. While the design with expanded cylinder is quite ancient, the right gunslinger will know how to utilise it well. Uses .20 rifle ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: GuideHelp
guides: [ SecurityWeapons ]
- type: entity
parent: WeaponRevolverArgenti
id: WeaponRevolverArgentiNonLethalSecurity
suffix: Non-lethal
description: The military grade Argenti Type 20 revolver. Manufactured by Silver Industries. While the design with expanded cylinder is quite ancient, the right gunslinger will know how to utilise it well. Comes with .20 rubber rifle ammo.
The serial number on the handguard marks this gun as belonging to an NT Security Officer.
components:
- type: RevolverAmmoProvider
capacity: 8
proto: CartridgeRifleRubber
chambers: [ True, True, True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null, null, null ]
- type: GuideHelp
guides: [ SecurityWeapons ]

View File

@@ -111,6 +111,16 @@
- type: BallisticAmmoProvider
proto: CartridgeLightRifleRubber
- type: entity
name: Kardashev-Mosin
parent: WeaponSniperMosin
id: WeaponSniperMosinEmpty
description: A weapon for hunting, or endless trench warfare. Uses .30 rifle ammo.
suffix: Empty
components:
- type: BallisticAmmoProvider
proto: null
- type: entity
name: Hristov
parent: [BaseWeaponSniper, BaseGunWieldable]

View File

@@ -191,3 +191,98 @@
sprite: Objects/Weapons/Melee/bone_spear.rsi
- type: Construction
graph: SpearBone
- type: entity
name: salvage harpoon
parent: BaseItem
id: SalvageHarpoon
description: A spear made of refined steel produced for salvage and hunting purposes. Hunters fancy it when it comes to hunting various carp species.
components:
- type: EmbeddableProjectile
offset: 0.15,0.15
- type: EmbedPassiveDamage
- type: ThrowingAngle
angle: 225
- type: LandAtCursor
- type: Tag
tags:
- Spear
- type: Fixtures
fixtures:
fix1:
shape: !type:PolygonShape
vertices:
- -0.40,-0.30
- -0.30,-0.40
- 0.40,0.30
- 0.30,0.40
density: 20
mask:
- ItemMask
restitution: 0.3
friction: 0.2
- type: Sharp
- type: Sprite
sprite: _DEN/Objects/Weapons/Melee/harpoon.rsi
layers:
- state: spear
- state: spear1
map: ["enum.SolutionContainerLayers.Fill"]
visible: false
- type: MeleeWeapon
wideAnimationRotation: -135
range: 1.75
damage:
types:
Piercing: 10
Slash: 2
heavyRateModifier: 1.3
heavyRangeModifier: 1.25
heavyDamageBaseModifier: 1.0
heavyStaminaCost: 5
maxTargets: 3
angle: 20
animation: WeaponArcThrust
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: DamageOtherOnHit
damage:
types:
Piercing: 16
- type: Item
size: Ginormous
- type: Clothing
quickEquip: false
slots:
- back
- suitStorage
- type: SolutionContainerManager
solutions:
melee:
maxVol: 1
- type: MeleeChemicalInjector
solution: melee
- type: RefillableSolution
solution: melee
- type: InjectableSolution
solution: melee
- type: SolutionInjectOnEmbed
transferAmount: 1
solution: melee
- type: SolutionTransfer
maxTransferAmount: 1
- type: Wieldable
- type: IncreaseDamageOnWield
damage:
types:
Piercing: 3
Slash: 3
- type: DamageOnLand
damage:
types:
Blunt: 5
- type: UseDelay
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 1
fillBaseName: spear

View File

@@ -801,6 +801,7 @@
- MagazineBoxPistolPractice
- MagazineBoxRifle
- MagazineBoxRiflePractice
- MagazineBoxLightRifle
- MagazineLightRifle
- MagazineLightRifleEmpty
- MagazinePistol
@@ -835,6 +836,16 @@
- MagazineBoxSpecialPractice
- SpeedLoaderSpecial
- MagazinePistolSpecial
- HandheldGPSBasic
- HandheldStationMap
- MagazineNovaliteC1Empty
- MagazineNovaliteC1
- MagazineLightRifleLowCapacityEmpty
- MagazineLightRifleLowCapacity
- SpeedLoaderRifleHeavy
- SpeedLoaderRifleHeavyEmpty
- WeaponRifleNovaliteC1
- WeaponRifleGestio
dynamicRecipes:
- BolaEnergy
- BoxBeanbag
@@ -979,12 +990,16 @@
- MagazinePistolEmpty
- MagazineRifle
- MagazineRifleEmpty
- MagazineNovaliteC1
- MagazineNovaliteC1Empty
- MagazineShotgun
- MagazineShotgunEmpty
- MagazineShotgunSlug
- ShellTranquilizer
- SpeedLoaderMagnum
- SpeedLoaderMagnumEmpty
- SpeedLoaderRifleHeavy
- SpeedLoaderRifleHeavyEmpty
- CartridgeSpecial
- MagazineBoxSpecial
- type: MaterialStorage

View File

@@ -305,6 +305,68 @@
items:
- MagazineMagnumRubber
- type: loadout
id: LoadoutSpeedLoaderRifleHeavy
category: JobsSecurityAUncategorized
cost: 2
exclusive: true
requirements:
- !type:CharacterDepartmentTimeRequirement
department: Security
min: 3600 # 1 hours
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityEquipment
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- SpeedLoaderRifleHeavy
- type: loadout
id: LoadoutSpeedLoaderRifleHeavySpare
category: JobsSecurityAUncategorized
cost: 4
exclusive: true
requirements:
- !type:CharacterDepartmentTimeRequirement
department: Security
min: 3600 # 1 hours
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityEquipment
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- SpeedLoaderRifleHeavy
- type: loadout
id: LoadoutSpeedLoaderRifleHeavyRubber
category: JobsSecurityAUncategorized
cost: 2
exclusive: true
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityEquipment
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- SpeedLoaderRifleHeavyRubber
- type: loadout
id: LoadoutSpeedLoaderRifleHeavyRubberSpare
category: JobsSecurityAUncategorized
cost: 4
exclusive: true
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityEquipment
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- SpeedLoaderRifleHeavyRubber
# Service Weapon, limit 1 selection.
# Security no longer spawns with a weapon automatically, instead they have a free choice of security appropriate Duty Pistol in their loadouts.
# This category is universal to the entire security department by special request, so that players can choose their preferred Duty Pistol even if they aren't playing a security role.
@@ -747,6 +809,40 @@
items:
- WeaponRevolverPythonNonlethalSecurity
- type: loadout
id: LoadoutSecurityArgenti
category: JobsSecurityAUncategorized
cost: 0
canBeHeirloom: true
guideEntry: SecurityWeapons
requirements:
- !type:CharacterDepartmentTimeRequirement
department: Security
min: 3600 # 1 hours
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityWeapons
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- WeaponRevolverArgentiSecurity
- type: loadout
id: LoadoutSecurityArgentiNonLethal
category: JobsSecurityAUncategorized
cost: 0
canBeHeirloom: true
guideEntry: SecurityWeapons
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutSecurityWeapons
- !type:CharacterDepartmentRequirement
departments:
- Security
items:
- WeaponRevolverArgentiNonLethalSecurity
# Eyes
- type: loadout
id: LoadoutSecurityEyesHudSecurity

View File

@@ -31,6 +31,7 @@
- MagazineMagnumIncendiary
- MagazineLightRifleIncendiary
- SpeedLoaderMagnumIncendiary
- SpeedLoaderRifleHeavyIncendiary # Frontier
- MagazineShotgunIncendiary
- MagazineBoxPistolIncendiary
- MagazineBoxMagnumIncendiary
@@ -83,6 +84,10 @@
- CartridgeSpecialRubber
- MagazineBoxSpecialRubber
- WeaponDisabler
- MagazineBoxLightRifleRubber # Frontier
- MagazineBoxMagnumRubber # Frontier
- MagazineBoxPistolRubber # Frontier
- MagazineBoxRifleRubber # Frontier
- type: technology
id: UraniumMunitions
@@ -100,6 +105,7 @@
- MagazineMagnumUranium
- MagazineLightRifleUranium
- SpeedLoaderMagnumUranium
- SpeedLoaderRifleHeavyUranium # Frontier
- MagazineBoxPistolUranium
- MagazineBoxMagnumUranium
- MagazineBoxLightRifleUranium

View File

@@ -0,0 +1,87 @@
- type: entity
id: MagazineLightRifleLowCapacityEmpty
name: "low cap magazine (.30 rifle any)"
suffix: empty
parent: MagazineLightRifle
components:
- type: BallisticAmmoProvider
proto: null
capacity: 15
- type: Item
size: Tiny
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_cap_mag.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: entity
id: MagazineLightRifleLowCapacity
name: "low cap magazine (.30 rifle)"
parent: BaseMagazineLightRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeLightRifle
capacity: 15
- type: Item
size: Tiny
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_cap_mag.rsi
layers:
- state: red
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: entity
id: MagazineLightRifleLowCapacityPractice
name: "low cap magazine (.30 rifle practice)"
parent: MagazineLightRifleLowCapacity
components:
- type: BallisticAmmoProvider
proto: CartridgeLightRiflePractice
capacity: 15
- type: Item
size: Tiny
- type: Sprite
layers:
- state: practice
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: entity
id: MagazineLightRifleLowCapacityRubber
name: "low cap magazine (.30 rifle rubber)"
parent: MagazineLightRifleLowCapacity
components:
- type: BallisticAmmoProvider
proto: CartridgeLightRifleRubber
capacity: 15
- type: Item
size: Tiny
- type: Sprite
layers:
- state: rubber
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: entity
id: MagazineLightRifleLowCapacityUranium
name: "low cap magazine (.30 rifle uranium)"
parent: MagazineLightRifleLowCapacity
components:
- type: BallisticAmmoProvider
proto: CartridgeLightRifleUranium
capacity: 15
- type: Item
size: Tiny
- type: Sprite
layers:
- state: uranium
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]

View File

@@ -0,0 +1,63 @@
# Empty mags
- type: entity
parent: BaseMagazineRifle
id: MagazineNovaliteC1Empty
name: "clip (.20 rifle any)"
suffix: empty
components:
- type: Tag
tags:
- MagazineNovaliteC1
- type: Item
size: Small
- type: BallisticAmmoProvider
mayTransfer: true
whitelist:
tags:
- CartridgeRifle
capacity: 15
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/novalite_clip.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: MagazineVisuals
magState: mag
steps: 16
zeroVisible: false
- type: Appearance
- type: entity
parent: MagazineNovaliteC1Empty
id: MagazineNovaliteC1
name: "clip (.20 rifle)"
suffix: full
components:
- type: BallisticAmmoProvider
proto: CartridgeRifle
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: entity
parent: MagazineNovaliteC1Empty
id: MagazineNovaliteC1Rubber
name: "clip (.20 rifle rubber)"
suffix: full
components:
- type: BallisticAmmoProvider
proto: CartridgeRifleRubber
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]

View File

@@ -0,0 +1,150 @@
- type: entity
id: BaseSpeedLoaderHeavyRifle
name: "speed loader (.20 rifle)"
parent: BaseItem
abstract: true
components:
- type: Tag
tags:
- SpeedLoaderRifleHeavy
- type: SpeedLoader
- type: BallisticAmmoProvider
whitelist:
tags:
- CartridgeRifle
capacity: 8
- type: Sprite
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
ents: []
- type: entity
id: SpeedLoaderRifleHeavy
name: "speed loader (.20 rifle)"
parent: BaseSpeedLoaderHeavyRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeRifle
- type: Icon
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
state: icon
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: base-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: MagazineVisuals
magState: base
steps: 9
zeroVisible: false
- type: Appearance
- type: entity
id: SpeedLoaderRifleHeavyEmpty
name: "speed loader (.20 rifle any)"
parent: SpeedLoaderRifleHeavy
components:
- type: BallisticAmmoProvider
proto: null
- type: Icon
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
state: base
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: base-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: entity
id: SpeedLoaderRifleHeavyIncendiary
name: "speed loader (.20 rifle incendiary)"
parent: BaseSpeedLoaderHeavyRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeRifleIncendiary
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: base-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: MagazineVisuals
magState: base
steps: 9
zeroVisible: false
- type: Appearance
- type: entity
id: SpeedLoaderRifleHeavyPractice
name: "speed loader (.20 rifle practice)"
parent: BaseSpeedLoaderHeavyRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeRiflePractice
- type: Icon
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
state: practice-icon
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: practice-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: MagazineVisuals
magState: practice
steps: 9
zeroVisible: false
- type: Appearance
- type: entity
id: SpeedLoaderRifleHeavyUranium
name: "speed loader (.20 rifle uranium)"
parent: BaseSpeedLoaderHeavyRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeRifleUranium
- type: Icon
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
state: uranium-icon
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: uranium-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: MagazineVisuals
magState: uranium
steps: 9
zeroVisible: false
- type: Appearance
- type: entity
id: SpeedLoaderRifleHeavyRubber
name: "speed loader (.20 rifle rubber)"
parent: BaseSpeedLoaderHeavyRifle
components:
- type: BallisticAmmoProvider
proto: CartridgeRifleRubber
- type: Icon
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
state: rubber-icon
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: rubber-8
map: [ "enum.GunVisualLayers.Mag" ]
- type: MagazineVisuals
magState: rubber
steps: 9
zeroVisible: false
- type: Appearance

View File

@@ -0,0 +1,45 @@
- type: entity
name: Argenti
parent: BaseWeaponRevolver
id: WeaponRevolverArgenti
description: The civilian grade Argenti Type 20 revolver. Manufactured by Silver Industries. While the design with expanded cylinder is quite ancient, the right gunslinger will know how to utilise it well. Uses .20 rifle ammo.
components:
- type: Sprite
scale: 0.75 , 0.75
sprite: _NF/Objects/Weapons/Guns/Revolvers/argenti.rsi
- type: Clothing
sprite: _NF/Objects/Weapons/Guns/Revolvers/argenti.rsi
- type: Gun
fireRate: 2.5
resetOnHandSelected: false
- type: RevolverAmmoProvider
whitelist:
tags:
- CartridgeRifle
- SpeedLoaderRifleHeavy
capacity: 8
proto: CartridgeRifle
chambers: [ True, True, True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null, null, null ]
- type: StaticPrice
price: 200
- type: entity
parent: WeaponRevolverArgenti
id: WeaponRevolverArgentiNonlethal
suffix: Non-lethal
components:
- type: RevolverAmmoProvider
capacity: 8
proto: CartridgeRifleRubber
chambers: [ True, True, True, True, True, True, True, True ]
ammoSlots: [ null, null, null, null, null, null, null, null ]
- type: entity
parent: WeaponRevolverArgenti
id: WeaponRevolverArgentiEmpty
components:
- type: RevolverAmmoProvider
capacity: 8
chambers: [ False, False, False, False, False, False, False, False ]
ammoSlots: [ null, null, null, null, null, null, null, null ]

View File

@@ -0,0 +1,281 @@
# Frontier
- type: entity
name: Gestio
parent: BaseWeaponRifle
id: WeaponRifleGestio
description: An old prototype burst-fire NanoTrasen marksman rifle. Manufactured by Silver Industries. It never left the trials. Given its antiquity it is considered a civilian grade weapon. Uses .30 rifle ammo.
components:
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Rifles/gestio.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _NF/Objects/Weapons/Guns/Rifles/gestio.rsi
- type: Gun
fireRate: 3.75
projectileSpeed: 30
angleDecay: 4 #in testing 3 was more balanced
angleIncrease: 6
minAngle: 21 #generally meant to be 1 when used properly
maxAngle: 30 #generally meant to be 5 when used properly
selectedMode: Burst
availableModes:
- Burst
soundGunshot:
path: /Audio/_NF/Weapons/Guns/Gunshots/rifle.ogg
params:
volume: -5
- type: Wieldable
- type: GunWieldBonus
minAngle: -20
maxAngle: -25
angleDecay: 4 #in testing 3 was more balanced
angleIncrease: -3
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: MagazineLightRifleLowCapacity
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineLightRifle
gun_chamber:
name: Chamber
startingItem: CartridgeLightRifle
priority: 1
whitelist:
tags:
- CartridgeLightRifle
- type: ContainerContainer
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
- type: MagazineVisuals
magState: mag
steps: 1
zeroVisible: true
- type: entity
parent: WeaponRifleGestio
id: WeaponRifleGestioRubber
suffix: Non-lethal
components:
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: MagazineLightRifleLowCapacityRubber
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineLightRifle
gun_chamber:
name: Chamber
startingItem: CartridgeLightRifleRubber
priority: 1
whitelist:
tags:
- CartridgeLightRifle
- type: entity
parent: WeaponRifleGestio
id: WeaponRifleGestioEmpty
components:
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineLightRifle
gun_chamber:
name: Chamber
priority: 1
whitelist:
tags:
- CartridgeLightRifle
- type: entity
parent: BaseWeaponRifle
id: WeaponRifleNovaliteC1
name: Novalite C1
description: A modification to the Lecter from SW LLC, a civilian grade semi-automatic rifle with an internal magazine. Nanotrasen Representatives can not stress how compliant this rifle is. Uses .20 rifle ammo.
components:
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Rifles/novalitec1.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _NF/Objects/Weapons/Guns/Rifles/novalitec1.rsi
- type: Gun
fireRate: 4
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/ltrifle.ogg
params:
variation: 0.125
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: MagazineNovaliteC1
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineNovaliteC1
gun_chamber:
name: Chamber
startingItem: CartridgeRifle
priority: 1
whitelist:
tags:
- CartridgeRifle
- type: ContainerContainer
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
- type: MagazineVisuals
magState: mag
steps: 1
zeroVisible: true
- type: entity
parent: WeaponRifleNovaliteC1
id: WeaponRifleNovaliteC1Rubber
suffix: Non-lethal
components:
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: MagazineNovaliteC1Rubber
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineNovaliteC1
gun_chamber:
name: Chamber
startingItem: CartridgeRifleRubber
priority: 1
whitelist:
tags:
- CartridgeRifle
- type: entity
parent: WeaponRifleNovaliteC1
id: WeaponRifleNovaliteC1Empty
components:
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineNovaliteC1
gun_chamber:
name: Chamber
priority: 1
whitelist:
tags:
- CartridgeRifle
- type: entity
id: WeaponRifleSVT
name: SVT-40
parent: BaseWeaponRifle
description: |-
Once a weapon used in war, now a civilian hunting rifle brought to you by S.E.S.W.C., "Retreating is Considered Treason" is etched on one side.
components:
- type: Sprite
sprite: _NF/Objects/Weapons/Guns/Rifles/svt40.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _NF/Objects/Weapons/Guns/Rifles/svt40.rsi
quickEquip: false
slots:
- Back
- suitStorage
- type: Gun
fireRate: 4
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/rifle2.ogg
- type: ChamberMagazineAmmoProvider
soundRack:
path: /Audio/Weapons/Guns/Cock/ltrifle_cock.ogg
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: MagazineLightRifleLowCapacity
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineLightRifle
gun_chamber:
name: Chamber
startingItem: CartridgeLightRifle
priority: 1
whitelist:
tags:
- CartridgeLightRifle
- type: ContainerContainer
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
- type: MagazineVisuals
magState: mag
steps: 1
zeroVisible: true
- type: entity
parent: WeaponRifleSVT
id: WeaponRifleSVTEmpty
components:
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
priority: 2
whitelist:
tags:
- MagazineLightRifle
gun_chamber:
name: Chamber
priority: 1
whitelist:
tags:
- CartridgeLightRifle

View File

@@ -0,0 +1,110 @@
- type: latheRecipe
abstract: true
id: BaseWeaponRecipe
category: Weapons
completetime: 2
materials:
Steel: 300
Plastic: 300
- type: latheRecipe
abstract: true
parent: BaseWeaponRecipe
id: BaseWeaponRecipeLong
completetime: 5
- type: latheRecipe
abstract: true
id: BaseAmmoRecipe
category: Ammo
completetime: 5
- type: latheRecipe
abstract: true
parent: BaseAmmoRecipe
id: BaseEmptyAmmoRecipe
completetime: 1
- type: latheRecipe # novalite mag empty
id: MagazineNovaliteC1Empty
parent: BaseEmptyAmmoRecipe
result: MagazineNovaliteC1Empty
materials:
Steel: 20
- type: latheRecipe # novalite mag
id: MagazineNovaliteC1
parent: BaseAmmoRecipe
result: MagazineNovaliteC1
materials:
Steel: 245 # 20 [Steel per empty mag] + 15 [bullets] * 15 [Steel per bullet]
- type: latheRecipe # gestio mag empty
id: MagazineLightRifleLowCapacityEmpty
parent: BaseEmptyAmmoRecipe
result: MagazineLightRifleLowCapacityEmpty
materials:
Steel: 20
- type: latheRecipe # gestio mag
id: MagazineLightRifleLowCapacity
parent: BaseAmmoRecipe
result: MagazineLightRifleLowCapacity
materials:
Steel: 245 # 20 [Steel per empty mag] + 15 [bullets] * 15 [Steel per bullet]
- type: latheRecipe
id: SpeedLoaderRifleHeavyEmpty
parent: BaseEmptyAmmoRecipe
result: SpeedLoaderRifleHeavyEmpty
materials:
Steel: 25
- type: latheRecipe
id: SpeedLoaderRifleHeavy
parent: BaseAmmoRecipe
result: SpeedLoaderRifleHeavy
materials:
Steel: 140 # 25 [Steel per empty mag] + 8 [bullets] * 15 [Steel per bullet]
- type: latheRecipe
id: SpeedLoaderRifleHeavyPractice
parent: BaseAmmoRecipe
result: SpeedLoaderRifleHeavyPractice
materials:
Steel: 65 # 25 [Steel per empty mag] + 8 [bullets] * 5 [Steel per practice bullet]
- type: latheRecipe
id: SpeedLoaderRifleHeavyUranium
parent: BaseAmmoRecipe
result: SpeedLoaderRifleHeavyUranium
materials:
Steel: 25 # 25 [Steel per empty mag]
Plastic: 80 # 8 [bullets] * 10 [Plastic per bullet]
Uranium: 80 # 8 [bullets] * 10 [Uranium per bullet]
- type: latheRecipe
id: SpeedLoaderRifleHeavyIncendiary
parent: BaseAmmoRecipe
result: SpeedLoaderRifleHeavyIncendiary
materials:
Steel: 25 # 25 [Steel per empty mag]
Plastic: 120 # 8 [bullets] * 15 [Plastic per bullet]
- type: latheRecipe
id: WeaponRifleNovaliteC1
parent: BaseWeaponRecipeLong
result: WeaponRifleNovaliteC1
materials:
Steel: 2500
Plasteel: 1200
Plastic: 1500
- type: latheRecipe
id: WeaponRifleGestio
parent: BaseWeaponRecipeLong
result: WeaponRifleGestio
materials:
Steel: 2500
Plasteel: 1200
Plastic: 1500

View File

@@ -0,0 +1,8 @@
- type: Tag
id: SpeedLoaderRifleHeavy
- type: Tag
id: WeaponRifleNovaliteC1
- type: Tag
id: MagazineNovaliteC1

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

View File

@@ -0,0 +1,41 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "rosycup, DiscordID: 258362008557060117",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "spear"
},
{
"name": "spear1"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "wielded-inhand-left",
"directions": 4
},
{
"name": "wielded-inhand-right",
"directions": 4
},
{
"name": "equipped-BACKPACK",
"directions": 4
},
{
"name": "equipped-SUITSTORAGE",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,17 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/983ad377d25729357b7ff8025f8014bd2f6ae9f7/icons/obj/ammo.dmi, and from base and mag-1 in anti_material.rsi by Alekshhh",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "bigdisplay"
},
{
"name": "display"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

View File

@@ -0,0 +1,29 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "10x24display"
},
{
"name": "bigdisplay"
},
{
"name": "bigrubberdisplay"
},
{
"name": "display"
},
{
"name": "practicedisplay"
},
{
"name": "rubberdisplay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

View File

@@ -0,0 +1,29 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "bigdisplay"
},
{
"name": "display"
},
{
"name": "incendiarydisplay"
},
{
"name": "practicedisplay"
},
{
"name": "rubberdisplay"
},
{
"name": "uraniumdisplay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

View File

@@ -0,0 +1,32 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi. capbase and cap in magnum.rsi modified from base and rubber by potato1234x (github) for ss14, tweaked by Aleshhh",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "capdisplay"
},
{
"name": "display"
},
{
"name": "incendiarydisplay"
},
{
"name": "piercingdisplay"
},
{
"name": "practicedisplay"
},
{
"name": "rubberdisplay"
},
{
"name": "uraniumdisplay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

View File

@@ -0,0 +1,29 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "display"
},
{
"name": "empdisplay"
},
{
"name": "incendiarydisplay"
},
{
"name": "practicedisplay"
},
{
"name": "rubberdisplay"
},
{
"name": "uraniumdisplay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

View File

@@ -0,0 +1,32 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "bigdisplay"
},
{
"name": "bigpracticedisplay"
},
{
"name": "display"
},
{
"name": "incendiarydisplay"
},
{
"name": "practicedisplay"
},
{
"name": "rubberdisplay"
},
{
"name": "uraniumdisplay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

View File

@@ -0,0 +1,29 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Data_Redacted",
"states": [
{
"name": "base"
},
{
"name": "practice"
},
{
"name": "red"
},
{
"name": "rubber"
},
{
"name": "uranium"
},
{
"name": "mag-1"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1,59 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/shiptest-ss13/Shiptest/pull/1602/commits/3e6cfea9d468508a7f64ad5543c3b22479cb465f, https://github.com/shiptest-ss13/Shiptest/blob/master/icons/obj/ammo.dmi",
"states": [
{
"name": "base"
},
{
"name": "mag-1"
},
{
"name": "mag-2"
},
{
"name": "mag-3"
},
{
"name": "mag-4"
},
{
"name": "mag-5"
},
{
"name": "mag-6"
},
{
"name": "mag-7"
},
{
"name": "mag-8"
},
{
"name": "mag-9"
},
{
"name": "mag-10"
},
{
"name": "mag-11"
},
{
"name": "mag-12"
},
{
"name": "mag-13"
},
{
"name": "mag-14"
},
{
"name": "mag-15"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Some files were not shown because too many files have changed in this diff Show More