diff --git a/Resources/Locale/en-US/tools/tool-qualities.ftl b/Resources/Locale/en-US/tools/tool-qualities.ftl index 3036de0219..d12eb1104e 100644 --- a/Resources/Locale/en-US/tools/tool-qualities.ftl +++ b/Resources/Locale/en-US/tools/tool-qualities.ftl @@ -24,3 +24,6 @@ tool-quality-sawing-tool-name = Saw tool-quality-honking-name = Honking tool-quality-honking-tool-name = Bike Horn + +tool-quality-woodcutting-name = Woodcutting +tool-quality-woodcutting-tool-name = Hatchet \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml index 59fedf3654..1da5a38912 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml @@ -127,6 +127,8 @@ prob: 0.25 - id: StrangePill prob: 0.20 + - id: ModularReceiver + prob: 0.1 - id: DrinkSpaceGlue prob: 0.20 - id: DrinkSpaceLube @@ -208,6 +210,12 @@ prob: 0.1 - id: ClothingHandsGlovesColorYellowBudget prob: 0.25 + - id: StrangePill + prob: 0.20 + - id: DrinkSpaceGlue + prob: 0.20 + - id: ModularReceiver + prob: 0.1 # Syndicate loot - id: null prob: 0.95 diff --git a/Resources/Prototypes/Entities/Objects/Materials/crafting_parts.yml b/Resources/Prototypes/Entities/Objects/Materials/crafting_parts.yml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Resources/Prototypes/Entities/Objects/Misc/improvised_gun_parts.yml b/Resources/Prototypes/Entities/Objects/Misc/improvised_gun_parts.yml new file mode 100644 index 0000000000..05bf36d83f --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Misc/improvised_gun_parts.yml @@ -0,0 +1,38 @@ +#The entire game mysteriously shits itself and dies if you uncomment the item size. I have no idea why. +#TODO: Assimilate these into the same RSI. +- type: entity + parent: BaseItem + id: ModularReceiver + name: modular receiver + description: A vital part used in the creation of firearms. #Could use a better description, but I'm not a gun nut so I can't really do that. + components: +# - type: Item +# size: 15 + - type: Sprite + sprite: Objects/Misc/modular_receiver.rsi + - type: Item + sprite: Objects/Misc/modular_receiver.rsi + - type: Tag + tags: + - ModularReceiver + - Metal + +- type: entity + parent: BaseItem + id: RifleStock + name: rifle stock + description: A robust wooden stock, used in the creation of firearms. #Same as above + components: +# - type: Item +# size: 25 + - type: Sprite + sprite: Objects/Misc/rifle_stock.rsi + - type: Item + sprite: Objects/Misc/rifle_stock.rsi + - type: Construction + graph: RifleStockGraph + node: riflestock + - type: Tag + tags: + - RifleStock + - Wooden diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml index 297d9e9df7..21780fefb6 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml @@ -130,3 +130,22 @@ maxTransferAmount: 7 - type: SpentAmmoVisuals state: "practice" + +#Not yet craftable due to balance concerns. Should take a good bit of setup to create like the /tg/station recipe. +#Either the improvised shotgun or its recipe (as of July 2023) will also probably have to be nerfed if you decide to make this craftable. +- type: entity + id: ShellShotgunImprovised + name: improvised shotgun shell + description: A homemade shotgun shell that shoots painful metal shrapnel. The spread is so wide that it couldn't hit the broad side of a barn. + parent: BaseShellShotgun + components: + - type: Sprite + layers: + - state: improvised + map: [ "enum.AmmoVisualLayers.Base" ] + - type: CartridgeAmmo + count: 10 + spread: 45 #deadly if you can get up close... otherwise, good luck doing any kind of real damage + proto: PelletShotgunImprovised + - type: SpentAmmoVisuals + state: "improvised" \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml index 6254136f3e..ec23d3063a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml @@ -70,6 +70,21 @@ types: Blunt: 1 +- type: entity + id: PelletShotgunImprovised + name: improvised pellet + noSpawn: true + parent: BaseBullet + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi + state: buckshot + - type: Projectile + damage: + types: + Piercing: 3 + Slash: 3 #remember, it's metal shrapnel! + - type: entity id: PelletShotgunTranquilizer name: pellet (.50 tranquilizer) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml index 128898675c..ab122ef0de 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml @@ -220,3 +220,35 @@ fireRate: 2 - type: BallisticAmmoProvider capacity: 1 + +- type: entity + name: improvised shotgun + parent: BaseWeaponShotgun + id: WeaponShotgunImprovised + description: A shitty, hand-made shotgun that uses .50 shotgun shells. It can only hold one round in the chamber. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi + - type: Clothing + sprite: Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi + - type: Item + size: 75 + - type: Gun + fireRate: 4 #No reason to stifle the firerate since you have to manually reload every time anyways. + - type: BallisticAmmoProvider + capacity: 1 + proto: null + - type: Construction + graph: ImprovisedShotgunGraph + node: shotgun + - type: StaticPrice + price: 400 + +- type: entity + name: improvised shotgun + parent: WeaponShotgunImprovised + suffix: Loaded + id: WeaponShotgunImprovisedLoaded + components: + - type: BallisticAmmoProvider + proto: ShellShotgunImprovised \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 602d593e7b..da5781057c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -98,6 +98,7 @@ - GasAnalyzer - UtilityBelt - Pickaxe + - ModularReceiver - AppraisalTool - SheetRGlass - Beaker diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/improvised_shotgun.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/improvised_shotgun.yml new file mode 100644 index 0000000000..f8e7b64b90 --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/improvised_shotgun.yml @@ -0,0 +1,28 @@ +- type: constructionGraph + id: ImprovisedShotgunGraph + start: start + graph: + - node: start + edges: + - to: shotgun + steps: + - tag: Pipe + icon: + sprite: Structures/Piping/Atmospherics/pipe.rsi + state: pipeStraight + name: pipe + - tag: ModularReceiver + icon: + sprite: Objects/Misc/modular_receiver.rsi + state: icon + name: modular receiver + - tag: RifleStock + icon: + sprite: Objects/Misc/rifle_stock.rsi + state: icon + name: rifle stock + - material: Cloth + amount: 3 + doAfter: 10 + - node: shotgun + entity: WeaponShotgunImprovised diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/rifle_stock.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/rifle_stock.yml new file mode 100644 index 0000000000..acb743b442 --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/improvised/rifle_stock.yml @@ -0,0 +1,14 @@ +#In its own file and not improvised-shotgun.yml in case anyone ever wants to add more guns that use it. +- type: constructionGraph + id: RifleStockGraph + start: start + graph: + - node: start + edges: + - to: riflestock + steps: + - material: WoodPlank + amount: 5 + doAfter: 4 + - node: riflestock + entity: RifleStock \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Crafting/improvised.yml b/Resources/Prototypes/Recipes/Crafting/improvised.yml index 33a963d3a9..3043c0f7a1 100644 --- a/Resources/Prototypes/Recipes/Crafting/improvised.yml +++ b/Resources/Prototypes/Recipes/Crafting/improvised.yml @@ -112,3 +112,29 @@ icon: sprite: Objects/Specific/Janitorial/rag.rsi state: rag + +- type: construction + name: improvised shotgun + id: improvisedshotgun + graph: ImprovisedShotgunGraph + startNode: start + targetNode: shotgun + category: construction-category-weapons + objectType: Item + description: A shitty, single-shot shotgun made from salvaged and hand-crafted gun parts. Ammo not included. + icon: + sprite: Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi + state: icon + +- type: construction + name: rifle stock + id: riflestock + graph: RifleStockGraph + startNode: start + targetNode: riflestock + category: construction-category-weapons + objectType: Item + description: A stock carved out of wood, vital for improvised firearms. + icon: + sprite: Objects/Misc/rifle_stock.rsi + state: icon diff --git a/Resources/Prototypes/Recipes/Lathes/misc.yml b/Resources/Prototypes/Recipes/Lathes/misc.yml index 5e53366660..5aff63ed92 100644 --- a/Resources/Prototypes/Recipes/Lathes/misc.yml +++ b/Resources/Prototypes/Recipes/Lathes/misc.yml @@ -84,3 +84,11 @@ materials: Steel: 1000 Plastic: 500 + +- type: latheRecipe + id: ModularReceiver + result: ModularReceiver + completetime: 12 + materials: + Steel: 750 + Plastic: 100 diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 4103b904cb..5a5d407dde 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -875,3 +875,9 @@ - type: Tag id: Write + +- type: Tag + id: RifleStock + +- type: Tag + id: ModularReceiver diff --git a/Resources/Prototypes/tool_qualities.yml b/Resources/Prototypes/tool_qualities.yml index 08e00f17ce..6525454287 100644 --- a/Resources/Prototypes/tool_qualities.yml +++ b/Resources/Prototypes/tool_qualities.yml @@ -59,4 +59,4 @@ name: tool-quality-honking-name toolName: tool-quality-honking-tool-name spawn: BikeHorn - icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon } + icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon } \ No newline at end of file diff --git a/Resources/Textures/Objects/Misc/modular_receiver.rsi/icon.png b/Resources/Textures/Objects/Misc/modular_receiver.rsi/icon.png new file mode 100644 index 0000000000..37408defad Binary files /dev/null and b/Resources/Textures/Objects/Misc/modular_receiver.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-left.png new file mode 100644 index 0000000000..9484d6158e Binary files /dev/null and b/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-right.png new file mode 100644 index 0000000000..5c94cbf222 Binary files /dev/null and b/Resources/Textures/Objects/Misc/modular_receiver.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/modular_receiver.rsi/meta.json b/Resources/Textures/Objects/Misc/modular_receiver.rsi/meta.json new file mode 100644 index 0000000000..a8748c9eba --- /dev/null +++ b/Resources/Textures/Objects/Misc/modular_receiver.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at commit 6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae. Inhands sprited by Flareguy for Space Station 14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Misc/rifle_stock.rsi/icon.png b/Resources/Textures/Objects/Misc/rifle_stock.rsi/icon.png new file mode 100644 index 0000000000..305627ce6a Binary files /dev/null and b/Resources/Textures/Objects/Misc/rifle_stock.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-left.png b/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-left.png new file mode 100644 index 0000000000..f994142d1b Binary files /dev/null and b/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-right.png b/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-right.png new file mode 100644 index 0000000000..06ea93ce05 Binary files /dev/null and b/Resources/Textures/Objects/Misc/rifle_stock.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Misc/rifle_stock.rsi/meta.json b/Resources/Textures/Objects/Misc/rifle_stock.rsi/meta.json new file mode 100644 index 0000000000..a8748c9eba --- /dev/null +++ b/Resources/Textures/Objects/Misc/rifle_stock.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at commit 6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae. Inhands sprited by Flareguy for Space Station 14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised-spent.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised-spent.png new file mode 100644 index 0000000000..cca772d66f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised-spent.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised.png new file mode 100644 index 0000000000..6d600ab9ce Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/improvised.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/meta.json index a482d5c45a..805f5c2cf9 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.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", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, improvised ammo from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34", "states": [ { "name": "base" @@ -31,6 +31,12 @@ { "name": "flare-spent" }, + { + "name": "improvised" + }, + { + "name": "improvised-spent" + }, { "name": "incendiary" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/equipped-BACKPACK.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..0d1800fa5c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/icon.png new file mode 100644 index 0000000000..b95efc9a7b Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-left.png new file mode 100644 index 0000000000..9e52a5bbdd Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-right.png new file mode 100644 index 0000000000..34f7a40918 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep1.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep1.png new file mode 100644 index 0000000000..0603dfcb51 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep2.png b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep2.png new file mode 100644 index 0000000000..2908400dd3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/ishotgunstep2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/meta.json new file mode 100644 index 0000000000..3a12cd6330 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shotguns/improvised_shotgun.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken/modified from https://github.com/tgstation/tgstation/ at commit fb2d71495bfe81446159ef528534193d09dd8d34, inhand and back sprites modified by Flareguy", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "ishotgunstep1" + }, + { + "name": "ishotgunstep2" + } + ] +} \ No newline at end of file