From 0ac56f44788880de74ae9a981de5d9aaca6ac040 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 12:20:52 -0700 Subject: [PATCH 01/10] Makes improvised guns easier to craft --- code/datums/components/crafting/ranged_weapon.dm | 4 +--- .../research/designs/autolathe/medsci_designs.dm | 12 ++++++++++++ code/modules/research/techweb/all_nodes.dm | 1 + code/modules/vending/assist.dm | 10 +++++----- code/modules/vending/engineering.dm | 1 + code/modules/vending/youtool.dm | 1 + 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index ae6bdda72e4b..9ee266ad7a4b 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -236,7 +236,6 @@ /obj/item/storage/toolbox = 1, ) tool_behaviors = list(TOOL_SCREWDRIVER) - tool_paths = list(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/mask/gas, /obj/item/melee/baton/security/cattleprod) time = 30 SECONDS //contemplate for a bit category = CAT_WEAPON_RANGED @@ -350,8 +349,7 @@ reqs = list( /obj/item/gun/energy/disabler/smoothbore = 1, /obj/item/stack/sheet/mineral/gold = 5, - /obj/item/stock_parts/cell/hyper = 1, - /datum/reagent/reaction_agent/speed_agent = 10, + /obj/item/stock_parts/cell/super = 1, ) tool_behaviors = list(TOOL_SCREWDRIVER) time = 20 SECONDS diff --git a/code/modules/research/designs/autolathe/medsci_designs.dm b/code/modules/research/designs/autolathe/medsci_designs.dm index 599babb107f2..873317c48d0e 100644 --- a/code/modules/research/designs/autolathe/medsci_designs.dm +++ b/code/modules/research/designs/autolathe/medsci_designs.dm @@ -211,3 +211,15 @@ RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL, ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/glasses + name = "Prescription Glasses" + id = "glasses" + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT) + build_path = /obj/item/clothing/glasses/regular + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL, + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 215ac692a68d..b4677536ddc6 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -291,6 +291,7 @@ "retractor", "scalpel", "stethoscope", + "glasses", "surgical_drapes", "surgical_tape", "surgicaldrill", diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 012b2aea51e2..c7ef242139a1 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -9,11 +9,11 @@ /obj/item/assembly/prox_sensor = 5, /obj/item/assembly/signaler = 4, /obj/item/computer_disk/ordnance = 4, - /obj/item/stock_parts/capacitor = 3, - /obj/item/stock_parts/manipulator = 3, - /obj/item/stock_parts/matter_bin = 3, - /obj/item/stock_parts/micro_laser = 3, - /obj/item/stock_parts/scanning_module = 3, + /obj/item/stock_parts/capacitor = 5, + /obj/item/stock_parts/manipulator = 5, + /obj/item/stock_parts/matter_bin = 5, + /obj/item/stock_parts/micro_laser = 5, + /obj/item/stock_parts/scanning_module = 5, /obj/item/wirecutters = 1, ) contraband = list( diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm index bf6ad0a7133c..53052dcef955 100644 --- a/code/modules/vending/engineering.dm +++ b/code/modules/vending/engineering.dm @@ -20,6 +20,7 @@ /obj/item/multitool = 12, /obj/item/wrench = 12, /obj/item/t_scanner = 12, + /obj/item/stack/sticky_tape = 12, /obj/item/stock_parts/cell = 8, /obj/item/weldingtool = 8, /obj/item/clothing/head/utility/welding = 8, diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index f6060e7a1520..f9c3ac298caa 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -17,6 +17,7 @@ /obj/item/analyzer = 5, /obj/item/t_scanner = 5, /obj/item/screwdriver = 5, + /obj/item/stack/sticky_tape = 5, //You would find tape at a hardware store. /obj/item/flashlight/glowstick = 3, /obj/item/flashlight/glowstick/red = 3, /obj/item/flashlight = 5, From c372d97f101c74d86201ad6dd8a4b1f823aa1d0e Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 13:58:05 -0700 Subject: [PATCH 02/10] Adds elite smoothbore disabler to maint loot, move paint to uncommon category --- code/_globalvars/lists/maintenance_loot.dm | 25 +++++++++++----------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 6772ecab7dec..fa540fbac333 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -284,6 +284,18 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/instrument/violin = 5, /obj/item/instrument/violin/golden = 2, ) = 2, + + list(//paint + /obj/item/paint/anycolor = 1, + /obj/item/paint/black = 1, + /obj/item/paint/blue = 1, + /obj/item/paint/green = 1, + /obj/item/paint/paint_remover = 1, + /obj/item/paint/red = 1, + /obj/item/paint/violet = 1, + /obj/item/paint/white = 1, + /obj/item/paint/yellow = 1, + ) = 1, list(//fakeout items, keep this list at low relative weight /obj/item/clothing/shoes/jackboots = 1, @@ -316,18 +328,6 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items /obj/item/storage/belt/security = 1, ) = 1, - list(//paint - /obj/item/paint/anycolor = 1, - /obj/item/paint/black = 1, - /obj/item/paint/blue = 1, - /obj/item/paint/green = 1, - /obj/item/paint/paint_remover = 1, - /obj/item/paint/red = 1, - /obj/item/paint/violet = 1, - /obj/item/paint/white = 1, - /obj/item/paint/yellow = 1, - ) = 1, - list(//medical and chemicals list(//medkits /obj/item/storage/box/hug/medical = 1, @@ -346,6 +346,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items /obj/item/book/granter/crafting_recipe/maint_gun/pipegun_prime = 1, /obj/item/book/granter/crafting_recipe/trash_cannon = 1, /obj/item/book/granter/crafting_recipe/maint_gun/laser_musket_prime = 1, + /obj/item/book/granter/crafting_recipe/maint_gun/smoothbore_disabler_prime = 1, /obj/item/book/granter/sign_language = 1, /obj/item/disk/nuclear/fake = 1, /obj/item/skillchip/brainwashing = 1, From 7f78b2e78fead658fa4abdb17d9d8082f3354534 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 14:21:20 -0700 Subject: [PATCH 03/10] Recipe Granters more available --- .../code/modules/cargo/markets/market_items.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/monkestation/code/modules/cargo/markets/market_items.dm b/monkestation/code/modules/cargo/markets/market_items.dm index d744ef932ae1..0fbf8a52b7a3 100644 --- a/monkestation/code/modules/cargo/markets/market_items.dm +++ b/monkestation/code/modules/cargo/markets/market_items.dm @@ -15,8 +15,8 @@ price_min = CARGO_CRATE_VALUE * 4 price_max = CARGO_CRATE_VALUE * 5 - stock_max = 1 - availability_prob = 40 + stock_max = 3 + availability_prob = 50 /datum/market_item/weapon/musket_recipe name = "Journal of a Space Ranger" @@ -25,15 +25,15 @@ price_min = CARGO_CRATE_VALUE * 4 price_max = CARGO_CRATE_VALUE * 5 - stock_max = 2 - availability_prob = 40 + stock_max = 3 + availability_prob = 50 /datum/market_item/weapon/smoothbore_recipe name = "Old Tome" desc = "Ahoy Maties, I, Captain Whitebeard, have plundered the ol' Nanotrasen station, among the booty retreived was this here tome about smoothbores. Alas, I have no use for its knowlege, so I am droppin it off here." item = /obj/item/book/granter/crafting_recipe/maint_gun/smoothbore_disabler_prime - price_min = CARGO_CRATE_VALUE * 6 - price_max = CARGO_CRATE_VALUE * 8 - stock_max = 1 - availability_prob = 20 + price_min = CARGO_CRATE_VALUE * 3 //Non lethal, should be cheaper than the fancy lethals. + price_max = CARGO_CRATE_VALUE * 4 + stock_max = 3 + availability_prob = 50 From 99a2015a1bce85cb651679b27d6aab743df0a929 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 15:06:37 -0700 Subject: [PATCH 04/10] Wound bonus increased for laser muskets --- monkestation/code/game/objects/items/guns/crank_guns.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monkestation/code/game/objects/items/guns/crank_guns.dm b/monkestation/code/game/objects/items/guns/crank_guns.dm index 5c96a49462cd..b0fbd0ff6d60 100644 --- a/monkestation/code/game/objects/items/guns/crank_guns.dm +++ b/monkestation/code/game/objects/items/guns/crank_guns.dm @@ -24,10 +24,12 @@ /obj/projectile/beam/laser/musket damage = 30 stamina = 45 + wound_bonus = -10 /obj/projectile/beam/laser/musket/prime damage = 35 stamina = 60 + wound_bonus = -10 /obj/projectile/beam/disabler/smoothbore/prime stamina = 65 From 25e06dd5640a6e141147c98da912bef1c17aca12 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 15:42:45 -0700 Subject: [PATCH 05/10] Maintenance Sect can Make Recipe Books. --- code/modules/religion/religion_sects.dm | 2 +- code/modules/religion/rites.dm | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm index 959900054d6c..4a7bc448af14 100644 --- a/code/modules/religion/religion_sects.dm +++ b/code/modules/religion/religion_sects.dm @@ -337,7 +337,7 @@ tgui_icon = "eye" altar_icon_state = "convertaltar-maint" alignment = ALIGNMENT_EVIL //while maint is more neutral in my eyes, the flavor of it kinda pertains to rotting and becoming corrupted by the maints - rites_list = list(/datum/religion_rites/maint_adaptation, /datum/religion_rites/adapted_eyes, /datum/religion_rites/adapted_food, /datum/religion_rites/ritual_totem) + rites_list = list(/datum/religion_rites/maint_adaptation, /datum/religion_rites/adapted_eyes, /datum/religion_rites/adapted_food, /datum/religion_rites/ritual_totem, /datum/religion_rites/weapon_granter) desired_items = list(/obj/item/reagent_containers = "holding organic slurry") /datum/religion_sect/maintenance/sect_bless(mob/living/blessed_living, mob/living/chap) diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm index 05f3314df6fc..67f84c69da6f 100644 --- a/code/modules/religion/rites.dm +++ b/code/modules/religion/rites.dm @@ -434,6 +434,26 @@ user.emote("laugh") new /obj/item/ritual_totem(altar_turf) return TRUE + +/datum/religion_rites/weapon_granter + name = "Maintenance Knowledge" + desc = "Creates a tome teaching you how to make an improved improvised weapon!" + favor_cost = 100 //You still have to make the weapon afterwards, might want to change this though. + invoke_msg = "Grant me the ingenuinity of the Maintenance Khan!" + ritual_length = 5 SECONDS + +/datum/religion_rites/weapon_granter/invoke_effect(mob/living/user, atom/movable/religious_tool) + ..() + var/altar_turf = get_turf(religious_tool) + var/blessing = pick( + /obj/item/book/granter/crafting_recipe/maint_gun/pipegun_prime, + /obj/item/book/granter/crafting_recipe/trash_cannon, + /obj/item/book/granter/crafting_recipe/maint_gun/laser_musket_prime, + /obj/item/book/granter/crafting_recipe/maint_gun/smoothbore_disabler_prime, + ) + + new blessing(altar_turf) + return TRUE ///sparring god rites From d34f20c46d0d3478bbec993facdc395f2b4659ad Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 16:19:41 -0700 Subject: [PATCH 06/10] Update ranged_weapon.dm --- code/datums/components/crafting/ranged_weapon.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index 9ee266ad7a4b..3bb12513b714 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -232,11 +232,13 @@ /obj/item/gun/ballistic/rifle/boltaction/pipegun = 1, /obj/item/food/deadmouse = 1, /datum/reagent/consumable/grey_bull = 20, - /obj/item/spear = 1, /obj/item/storage/toolbox = 1, ) tool_behaviors = list(TOOL_SCREWDRIVER) - time = 30 SECONDS //contemplate for a bit + tool_paths = list( + /obj/item/spear + ) + time = 25 SECONDS //contemplate for a bit category = CAT_WEAPON_RANGED /datum/crafting_recipe/deagle_prime //When you factor in the makarov (7 tc), the toolbox (1 tc), and the emag (3 tc), this comes to a total of 17 TC or thereabouts. Igorning the 20k pricetag, obviously. @@ -324,7 +326,7 @@ /datum/reagent/consumable/nuka_cola = 15, ) tool_behaviors = list(TOOL_SCREWDRIVER) //monke edits. removed the need for the special clothing - time = 30 SECONDS //contemplate for a bit + time = 25 SECONDS //contemplate for a bit category = CAT_WEAPON_RANGED /datum/crafting_recipe/smoothbore_disabler @@ -352,5 +354,5 @@ /obj/item/stock_parts/cell/super = 1, ) tool_behaviors = list(TOOL_SCREWDRIVER) - time = 20 SECONDS + time = 15 SECONDS category = CAT_WEAPON_RANGED From 3bf3c3e41f430d43814e1a9a9fb2f7e35d853439 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 16:40:01 -0700 Subject: [PATCH 07/10] Regal Pipegun can no longer jam --- code/modules/projectiles/guns/ballistic/rifle.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index b160ac8f1c9a..7905a96165eb 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -196,6 +196,7 @@ inhand_icon_state = "musket_prime" worn_icon_state = "musket_prime" mag_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime + can_jam = FALSE projectile_damage_multiplier = 1 /// MAGICAL BOLT ACTIONS + ARCANE BARRAGE? /// From e84ba1adf37f3d1dbb1a3c2355196bbe0da46d4c Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 17:40:40 -0700 Subject: [PATCH 08/10] More stuff can be made bayonets. And typo fix. --- code/game/objects/items/kitchen.dm | 1 + code/game/objects/items/knives.dm | 2 ++ code/modules/religion/rites.dm | 2 +- monkestation/code/game/objects/items/venom_knife.dm | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 0cddbf598a19..9833ffb5f1d7 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -82,6 +82,7 @@ /obj/item/knife/kitchen name = "kitchen knife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." + bayonet = TRUE /obj/item/knife/plastic name = "plastic knife" diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index c8eccd25407b..fa60f31b48a8 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -107,6 +107,7 @@ inhand_icon_state = "huntingknife" icon_state = "huntingknife" wound_bonus = 10 + bayonet = TRUE /obj/item/knife/hunting/set_butchering() AddComponent(/datum/component/butchering, \ @@ -172,6 +173,7 @@ attack_verb_simple = list("shank", "shiv") armor_type = /datum/armor/none custom_materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT * 4) + bayonet = TRUE /obj/item/knife/shiv/Initialize(mapload) flags_1 &= ~CONDUCT_1 diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm index 67f84c69da6f..98db541d2485 100644 --- a/code/modules/religion/rites.dm +++ b/code/modules/religion/rites.dm @@ -437,7 +437,7 @@ /datum/religion_rites/weapon_granter name = "Maintenance Knowledge" - desc = "Creates a tome teaching you how to make an improved improvised weapon!" + desc = "Creates a tome teaching you how to make an improved improvised weapon." favor_cost = 100 //You still have to make the weapon afterwards, might want to change this though. invoke_msg = "Grant me the ingenuinity of the Maintenance Khan!" ritual_length = 5 SECONDS diff --git a/monkestation/code/game/objects/items/venom_knife.dm b/monkestation/code/game/objects/items/venom_knife.dm index fc9ebb66983b..dddcc889da00 100644 --- a/monkestation/code/game/objects/items/venom_knife.dm +++ b/monkestation/code/game/objects/items/venom_knife.dm @@ -10,6 +10,7 @@ throw_speed = 5 throw_range = 7 custom_materials = null + bayonet = TRUE /// The maximum amount of reagents per transfer that will be moved out of this reagent container var/amount_per_transfer_from_this = 10 /// The different possible amounts of reagent to transfer out of the container From f805a0ad24f83fc97a600fd5612f96b71437e873 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 18:28:41 -0700 Subject: [PATCH 09/10] Ports TG stuff Bayonet offset, and fixes a bug where it might balloon "can't jam" and "bolt closed" at the same time. --- .../projectiles/guns/ballistic/rifle.dm | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 7905a96165eb..ecbfe9b6645c 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -101,19 +101,20 @@ return ..() /obj/item/gun/ballistic/rifle/boltaction/attackby(obj/item/item, mob/user, params) - . = ..() - if(!can_jam) - balloon_alert(user, "can't jam!") - return - - if(!bolt_locked) + if(!bolt_locked && !istype(item, /obj/item/knife)) balloon_alert(user, "bolt closed!") return - if(istype(item, /obj/item/gun_maintenance_supplies) && do_after(user, 10 SECONDS, target = src)) - user.visible_message(span_notice("[user] finishes maintenance of [src].")) - jamming_chance = initial(jamming_chance) - qdel(item) + . = ..() + + if(istype(item, /obj/item/gun_maintenance_supplies)) + if(!can_jam) + balloon_alert(user, "can't jam!") + return + if(do_after(user, 10 SECONDS, target = src)) + user.visible_message(span_notice("[user] finishes maintaining [src].")) + jamming_chance = initial(jamming_chance) + qdel(item) /obj/item/gun/ballistic/rifle/boltaction/blow_up(mob/user) . = FALSE @@ -181,6 +182,7 @@ can_modify_ammo = TRUE can_misfire = FALSE can_bayonet = TRUE + knife_x_offset = 25 knife_y_offset = 11 can_be_sawn_off = FALSE projectile_damage_multiplier = 0.75 From 3265c3587b6395ffbcb037eeb1d635eb52ec26f0 Mon Sep 17 00:00:00 2001 From: Uristthedorf <40842973+Uristthedorf@users.noreply.github.com> Date: Sat, 25 May 2024 18:33:39 -0700 Subject: [PATCH 10/10] Removes unneeded variables --- code/game/objects/items/knives.dm | 1 - code/modules/projectiles/guns/ballistic/rifle.dm | 1 - 2 files changed, 2 deletions(-) diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index fa60f31b48a8..1f74267d0c56 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -134,7 +134,6 @@ desc = "A hunting grade survival knife." force = 15 throwforce = 15 - bayonet = TRUE /obj/item/knife/combat/bone name = "bone dagger" diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index ecbfe9b6645c..a7d94303c2de 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -198,7 +198,6 @@ inhand_icon_state = "musket_prime" worn_icon_state = "musket_prime" mag_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime - can_jam = FALSE projectile_damage_multiplier = 1 /// MAGICAL BOLT ACTIONS + ARCANE BARRAGE? ///