Skip to content

Commit

Permalink
Port Frontier Guns And The Den PRs For Them (#1490)
Browse files Browse the repository at this point in the history
# Description
this ports the following PRs:
TheDenSS14/TheDen#128
TheDenSS14/TheDen#133
TheDenSS14/TheDen#135
TheDenSS14/TheDen#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

:cl:
- 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 <[email protected]>
Co-authored-by: Rosycup <[email protected]>
  • Loading branch information
3 people authored Jan 11, 2025
1 parent 07401aa commit e2d4a32
Show file tree
Hide file tree
Showing 200 changed files with 1,794 additions and 52 deletions.
14 changes: 12 additions & 2 deletions Content.Shared/Research/Prototypes/LatheRecipePrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,27 @@
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>
Expand Down Expand Up @@ -68,4 +78,4 @@ public sealed partial class LatheRecipePrototype : IPrototype
[DataField]
public uint MiningPoints;
}
}
}
4 changes: 4 additions & 0 deletions Resources/Audio/_NF/Weapons/Guns/Gunshots/attributions.yml
Original file line number Diff line number Diff line change
@@ -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.
7 changes: 4 additions & 3 deletions Resources/Prototypes/Catalog/Fills/Lockers/cargo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -58,4 +59,4 @@
- id: ClothingNeckSalvager # DeltaV - salvage cloak
prob: 0.2
- id: LunchboxLogisticsFilledRandom # DeltaV - Lunchboxes!
prob: 0.3
prob: 0.3
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -115,6 +123,10 @@
id: LoadoutSecurityRevolverPython
- type: loadout
id: LoadoutSecurityRevolverPythonNonlethal
- type: loadout
id: LoadoutSecurityArgenti
- type: loadout
id: LoadoutSecurityArgentiNonLethal

- type: characterItemGroup
id: LoadoutSecurityEyes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
- id: FultonBeacon
cost: 400
# TODO: bluespace shelter capsule for 400
- id: SalvageHarpoon
cost: 450
- id: ClothingEyesGlassesGarMeson
cost: 500
- id: ClothingBeltSalvageWebbing
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 ]
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,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]
Expand Down
95 changes: 95 additions & 0 deletions Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml
Original file line number Diff line number Diff line change
Expand Up @@ -193,3 +193,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
Loading

0 comments on commit e2d4a32

Please sign in to comment.