Skip to content
This repository has been archived by the owner on Aug 21, 2023. It is now read-only.

Adds a host of new makeshift items #848

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions beestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3714,6 +3714,7 @@
#include "monkestation\code\datums\components\hot_ice.dm"
#include "monkestation\code\datums\components\pricetag.dm"
#include "monkestation\code\datums\components\strong_pull.dm"
#include "monkestation\code\datums\components\crafting\makeshift.dm"
#include "monkestation\code\datums\components\crafting\recipes.dm"
#include "monkestation\code\datums\components\storage\storage.dm"
#include "monkestation\code\datums\diseases\advance\symptoms\fermentation.dm"
Expand All @@ -3723,6 +3724,7 @@
#include "monkestation\code\datums\greyscale\greyscale_configs.dm"
#include "monkestation\code\datums\keybinding\human.dm"
#include "monkestation\code\datums\keybinding\living.dm"
#include "monkestation\code\datums\martial\knifeboxing.dm"
#include "monkestation\code\datums\materials\basemats.dm"
#include "monkestation\code\datums\station_traits\neutral_traits.dm"
#include "monkestation\code\datums\status_effects\food_and_drinks\buffs.dm"
Expand Down Expand Up @@ -3752,26 +3754,37 @@
#include "monkestation\code\game\objects\effects\spawners\engine_spawner.dm"
#include "monkestation\code\game\objects\effects\spawners\lootdrop.dm"
#include "monkestation\code\game\objects\items\anime.dm"
#include "monkestation\code\game\objects\items\cards_ids.dm"
#include "monkestation\code\game\objects\items\fluff_papers.dm"
#include "monkestation\code\game\objects\items\gasifier.dm"
#include "monkestation\code\game\objects\items\granters.dm"
#include "monkestation\code\game\objects\items\ipc_construction.dm"
#include "monkestation\code\game\objects\items\kitchen.dm"
#include "monkestation\code\game\objects\items\mail.dm"
#include "monkestation\code\game\objects\items\plushes.dm"
#include "monkestation\code\game\objects\items\prosthetic.dm"
#include "monkestation\code\game\objects\items\stickables.dm"
#include "monkestation\code\game\objects\items\circuitboards\computer_circuitboards.dm"
#include "monkestation\code\game\objects\items\circuitboards\machine_circuitboards.dm"
#include "monkestation\code\game\objects\items\devices\multitool.dm"
#include "monkestation\code\game\objects\items\devices\traitordevices.dm"
#include "monkestation\code\game\objects\items\devices\radio\radio.dm"
#include "monkestation\code\game\objects\items\grenades\ghettobomb.dm"
#include "monkestation\code\game\objects\items\grenades\monkey_barrel.dm"
#include "monkestation\code\game\objects\items\implants\implant_hard_spear.dm"
#include "monkestation\code\game\objects\items\melee\misc.dm"
#include "monkestation\code\game\objects\items\stacks\ammonia_crystals.dm"
#include "monkestation\code\game\objects\items\stacks\hot_ice.dm"
#include "monkestation\code\game\objects\items\stacks\tape.dm"
#include "monkestation\code\game\objects\items\stacks\sheets\mineral.dm"
#include "monkestation\code\game\objects\items\storage\ce_toolbox.dm"
#include "monkestation\code\game\objects\items\storage\garment.dm"
#include "monkestation\code\game\objects\items\storage\uplink_kits.dm"
#include "monkestation\code\game\objects\items\tools\crowbar.dm"
#include "monkestation\code\game\objects\items\tools\screwdriver.dm"
#include "monkestation\code\game\objects\items\tools\weldingtool.dm"
#include "monkestation\code\game\objects\items\tools\wirecutters.dm"
#include "monkestation\code\game\objects\items\tools\wrench.dm"
#include "monkestation\code\game\objects\structures\toilet_bong.dm"
#include "monkestation\code\game\objects\structures\watercloset.dm"
#include "monkestation\code\game\objects\structures\crates_lockers\closets\secure\clown.dm"
Expand Down Expand Up @@ -3803,6 +3816,7 @@
#include "monkestation\code\modules\cargo\exports\civilian_bounty.dm"
#include "monkestation\code\modules\clothing\glasses\hud.dm"
#include "monkestation\code\modules\clothing\gloves\color.dm"
#include "monkestation\code\modules\clothing\gloves\knifeboxing.dm"
#include "monkestation\code\modules\clothing\gloves\special.dm"
#include "monkestation\code\modules\clothing\head\helmet.dm"
#include "monkestation\code\modules\clothing\head\misc.dm"
Expand Down Expand Up @@ -3859,6 +3873,7 @@
#include "monkestation\code\modules\mapping\random_bars.dm"
#include "monkestation\code\modules\mapping\random_engines.dm"
#include "monkestation\code\modules\mentor\mentorfriend.dm"
#include "monkestation\code\modules\mining\equipment\mining_tools.dm"
#include "monkestation\code\modules\mob\inventory.dm"
#include "monkestation\code\modules\mob\mob_defines.dm"
#include "monkestation\code\modules\mob\dead\new_player\sprite_accessories.dm"
Expand Down Expand Up @@ -3903,6 +3918,10 @@
#include "monkestation\code\modules\power\singularity\spatial_rift.dm"
#include "monkestation\code\modules\procedural_mapping\mapGeneratorModules\jungle.dm"
#include "monkestation\code\modules\procedural_mapping\mapGenerators\jungle.dm"
#include "monkestation\code\modules\projectiles\boxes_magazines\external\pistol.dm"
#include "monkestation\code\modules\projectiles\boxes_magazines\internal\rifle.dm"
#include "monkestation\code\modules\projectiles\guns\ballistic\pistol.dm"
#include "monkestation\code\modules\projectiles\guns\energy\laser.dm"
#include "monkestation\code\modules\projectiles\guns\launchers\srn_rocketlauncher.dm"
#include "monkestation\code\modules\ranching\chicken_book.dm"
#include "monkestation\code\modules\ranching\circuits.dm"
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/construction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
#define CAT_WEAPONRY "Weaponry"
#define CAT_WEAPON "Weapons"
#define CAT_AMMO "Ammunition"
#define CAT_TOOLS "Tools"
#define CAT_ROBOT "Robots"
#define CAT_MISC "Misc"
#define CAT_PRIMAL "Tribal"
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/maintenance_loot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/airlock_painter/decal = 1,
/obj/item/stack/cable_coil/random = 4,
/obj/item/stack/cable_coil/random/five = 6,
/obj/item/stack/tape = 1,
/obj/item/stack/medical/bruise_pack = 1,
/obj/item/stack/rods/ten = 9,
/obj/item/stack/rods/twentyfive = 1,
Expand Down
1 change: 1 addition & 0 deletions code/datums/components/crafting/crafting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
CAT_WEAPON,
CAT_AMMO,
),
CAT_TOOLS = CAT_NONE,
CAT_ROBOT = CAT_NONE,
CAT_MISC = CAT_NONE,
CAT_PRIMAL = CAT_NONE,
Expand Down
6 changes: 3 additions & 3 deletions code/datums/components/crafting/guncrafting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
/obj/item/weaponcrafting/receiver
name = "modular receiver"
desc = "A prototype modular receiver and trigger assembly for a firearm."
icon = 'icons/obj/improvised.dmi'
icon = 'monkestation/icons/obj/improvised.dmi'
icon_state = "receiver"

/obj/item/weaponcrafting/stock
name = "rifle stock"
desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood."
icon = 'icons/obj/improvised.dmi'
icon = 'monkestation/icons/obj/improvised.dmi'
icon_state = "riflestock"

/obj/item/weaponcrafting/silkstring
name = "silkstring"
desc = "A long piece of Silk that looks like a cable coil."
icon = 'icons/obj/improvised.dmi'
icon = 'monkestation/icons/obj/improvised.dmi'
icon_state = "silkstring"
1 change: 1 addition & 0 deletions code/game/objects/items/kitchen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
* Combat Knife
* Rolling Pins
* Poison Knife
* Makeshift knives
*/

/obj/item/kitchen
Expand Down
2 changes: 0 additions & 2 deletions code/game/objects/items/stacks/tape.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


/obj/item/stack/sticky_tape
name = "sticky tape"
singular_name = "sticky tape"
Expand Down
1 change: 0 additions & 1 deletion code/modules/projectiles/boxes_magazines/internal/rifle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,3 @@

/obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage
ammo_type = /obj/item/ammo_casing/magic/arcane_barrage

8 changes: 7 additions & 1 deletion code/modules/projectiles/gun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
var/vary_fire_sound = TRUE
var/fire_sound_volume = 50
var/dry_fire_sound = 'sound/weapons/gun_dry_fire.ogg'
var/suppressed = null //whether or not a message is displayed when fired
var/obj/item/suppressor/suppressed //whether or not a message is displayed when fired
var/can_suppress = FALSE
var/suppressed_sound = 'sound/weapons/gunshot_silenced.ogg'
var/suppressed_volume = 10
Expand Down Expand Up @@ -195,6 +195,12 @@

if(suppressed)
playsound(user, suppressed_sound, suppressed_volume, vary_fire_sound)
if(suppressed.break_chance && prob(suppressed.break_chance))
to_chat(user, span_warning("\the [suppressed] falls apart!"))
w_class -= suppressed.w_class
qdel(suppressed)
suppressed = null
update_icon()
else
playsound(user, fire_sound, fire_sound_volume, vary_fire_sound)
if(message)
Expand Down
15 changes: 11 additions & 4 deletions code/modules/projectiles/guns/ballistic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
if (bolt_type == BOLT_TYPE_OPEN && bolt_locked)
add_overlay("[icon_state]_bolt")
if (suppressed)
add_overlay("[icon_state]_suppressor")
add_overlay("[icon_state]_[suppressed.icon_state]")
if(!chambered && empty_indicator)
add_overlay("[icon_state]_empty")
if (magazine)
Expand Down Expand Up @@ -268,12 +268,11 @@
return
if(loc == user)
if(suppressed && can_unsuppress)
var/obj/item/suppressor/S = suppressed
if(!user.is_holding(src))
return
to_chat(user, "<span class='notice'>You unscrew \the [suppressed] from \the [src].</span>")
user.put_in_hands(suppressed)
w_class -= S.w_class
w_class -= suppressed.w_class
suppressed = null
update_icon()
return
Expand Down Expand Up @@ -346,7 +345,7 @@
if (bolt_locked)
. += "The [bolt_wording] is locked back and needs to be released before firing."
if (suppressed)
. += "It has a suppressor attached that can be removed with <b>alt+click</b>."
. += "It has a [suppressed] attached that can be removed with <b>alt+click</b>."

/obj/item/gun/ballistic/proc/get_ammo(countchambered = TRUE)
var/boolets = 0 //mature var names for mature people
Expand Down Expand Up @@ -437,6 +436,14 @@
icon = 'icons/obj/guns/projectile.dmi'
icon_state = "suppressor"
w_class = WEIGHT_CLASS_TINY
var/break_chance = 0 // Chance per shot for the suppressor to fall apart

/obj/item/suppressor/makeshift
name = "makeshift suppressor"
desc = "A poorly made small-arms suppressor for above average espionage on a budget."
icon_state = "suppressor_makeshift"
w_class = WEIGHT_CLASS_SMALL
break_chance = 10


/obj/item/suppressor/specialoffer
Expand Down
1 change: 0 additions & 1 deletion code/modules/projectiles/guns/ballistic/pistol.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,3 @@
else
to_chat(user, "<span class='notice'>..and falls into view. Whew, that was a close one.</span>")
user.dropItemToGround(src)

Binary file modified icons/mob/clothing/hands.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/equipment/mining_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/equipment/mining_righthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/guns_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/guns_righthand.dmi
Binary file not shown.
Binary file modified icons/mob/mask.dmi
Binary file not shown.
Binary file modified icons/obj/card.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/gloves.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/masks.dmi
Binary file not shown.
Binary file modified icons/obj/grenade.dmi
Binary file not shown.
Binary file modified icons/obj/guns/energy.dmi
Binary file not shown.
Binary file modified icons/obj/guns/projectile.dmi
Binary file not shown.
Binary file removed icons/obj/improvised.dmi
Binary file not shown.
141 changes: 141 additions & 0 deletions monkestation/code/datums/components/crafting/makeshift.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
//////////
// GUNS //
//////////

/datum/crafting_recipe/makeshift_lasrifle
name = "Makeshift Laser Rifle"
result = /obj/item/gun/energy/laser/makeshift_lasrifle
reqs = list(/obj/item/stack/cable_coil = 15,
/obj/item/weaponcrafting/stock = 1,
/obj/item/pipe = 1,
/obj/item/light/bulb = 1,
/obj/item/stock_parts/cell = 1)
tools = list(TOOL_SCREWDRIVER, TOOL_WELDER, TOOL_WIRECUTTER)
time = 12 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_WEAPON

/datum/crafting_recipe/makeshift_pistol
name = "Makeshift Pistol"
result = /obj/item/gun/ballistic/automatic/pistol/makeshift
reqs = list(/obj/item/weaponcrafting/receiver = 1,
/obj/item/stack/sheet/iron = 4,
/obj/item/stack/rods = 2,
/obj/item/stack/tape = 3)
tools = list(TOOL_SCREWDRIVER, TOOL_WELDER)
time = 12 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_WEAPON

/datum/crafting_recipe/makeshiftmagazine
name = "Makeshift Pistol Magazine (10mm)"
result = /obj/item/ammo_box/magazine/m10mm/makeshift
reqs = list(/obj/item/stack/sheet/iron = 2,
/obj/item/stack/tape = 2)
time = 12 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_AMMO

/datum/crafting_recipe/makeshift_suppressor
name = "Makeshift Suppressor"
result = /obj/item/suppressor/makeshift
reqs = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1,
/obj/item/stack/rods = 1,
/obj/item/stack/sheet/cotton/cloth = 2,
/obj/item/stack/tape = 1)
time = 12 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_WEAPON


///////////
// TOOLS //
///////////

/datum/crafting_recipe/makeshift_crowbar
name = "Makeshift Crowbar"
reqs = list(/obj/item/stack/rods = 3) //just bang them together
result = /obj/item/crowbar/makeshift
time = 12 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_wrench
name = "Makeshift Wrench"
reqs = list(/obj/item/stack/sheet/iron = 2)
result = /obj/item/wrench/makeshift
time = 12 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_wirecutters
name = "Makeshift Wirecutters"
reqs = list(/obj/item/stack/sheet/iron = 2,
/obj/item/stack/rods = 2)
result = /obj/item/wirecutters/makeshift
time = 15 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_weldingtool
name = "Makeshift Welding Tool"
reqs = list(/obj/item/tank/internals/emergency_oxygen = 1,
/obj/item/assembly/igniter = 1)
tools = list(TOOL_SCREWDRIVER)
result = /obj/item/weldingtool/makeshift
time = 16 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_multitool
name = "Makeshift Multitool"
reqs = list(/obj/item/assembly/igniter = 1,
/obj/item/assembly/signaler = 1,
/obj/item/stack/sheet/iron = 2,
/obj/item/stack/cable_coil = 10)
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
result = /obj/item/multitool/makeshift
time = 16 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_screwdriver
name = "Makeshift Screwdriver"
reqs = list(/obj/item/stack/rods = 3)
result = /obj/item/screwdriver/makeshift
time = 12 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_knife
name = "Makeshift Knife"
reqs = list(/obj/item/stack/rods = 3,
/obj/item/stack/sheet/iron = 1,
/obj/item/stack/tape = 2)
result = /obj/item/kitchen/knife/makeshift
time = 12 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_pickaxe
name = "Makeshift Pickaxe"
reqs = list(
/obj/item/crowbar = 1,
/obj/item/kitchen/knife = 1,
/obj/item/stack/tape = 1)
result = /obj/item/pickaxe/makeshift
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_radio
name = "Makeshift Radio"
reqs = list(/obj/item/assembly/signaler = 1,
/obj/item/radio/headset = 1,
/obj/item/stack/cable_coil = 5)
tools = list(TOOL_SCREWDRIVER)
result = /obj/item/radio/off/makeshift
time = 12 SECONDS
category = CAT_TOOLS

/datum/crafting_recipe/makeshift_emag
name = "Improvised Emag"
reqs = list(/obj/item/stock_parts/subspace/amplifier = 1,
/obj/item/card/id = 1,
/obj/item/electronics/firelock = 1,
/obj/item/stack/cable_coil = 10)
tools = list(TOOL_MULTITOOL, TOOL_WIRECUTTER)
result = /obj/item/card/emag/improvised
time = 12 SECONDS
category = CAT_TOOLS
32 changes: 32 additions & 0 deletions monkestation/code/datums/components/crafting/recipes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,35 @@
tools = list(/obj/item/screwdriver)
time = 5 SECONDS
category = CAT_ROBOT

/datum/crafting_recipe/titanium_baseball_bat
name = "Titanium Baseball Bat"
result = /obj/item/melee/baseball_bat/ablative
reqs = list(/obj/item/stack/sheet/mineral/titanium = 10
)
tools = list(TOOL_WELDER) //to weld the bat together
category = CAT_WEAPONRY
subcategory = CAT_WEAPON

/datum/crafting_recipe/knife_boxing
name = "Knife-boxing Gloves"
result = /obj/item/clothing/gloves/knifeboxing
reqs = list(/obj/item/clothing/gloves/boxing = 1,
/obj/item/kitchen/knife = 2,
/obj/item/stack/tape = 2)
time = 10 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_WEAPON

/datum/crafting_recipe/pipebomb
name = "Pipe Bomb"
result = /obj/item/grenade/pipebomb
reqs = list(/datum/reagent/fuel = 50,
/obj/item/stack/cable_coil = 1,
/obj/item/assembly/igniter = 1,
/obj/item/pipe = 1,
/obj/item/assembly/mousetrap = 1)
tools = list(TOOL_WELDER, TOOL_WRENCH, TOOL_WIRECUTTER)
time = 1.5 SECONDS
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
Loading