From c7924a805b8225ff09dde959fa8e2a4da26815b1 Mon Sep 17 00:00:00 2001 From: CDB <87905328+cdb-is-not-good@users.noreply.github.com> Date: Fri, 6 Oct 2023 11:51:28 -0700 Subject: [PATCH] Buffs marshals for Pneumo. Nerfs marshals for Meeeeeee also some bugfixes i guess (#4768) * Buffs marshals for Pneumo. Nerfs marshals for Meeeeeee Adds the wind(ostwind + Nordwind) frame to the Marshal disk. Raises the price of the wind frame to include osmium owing to the high quality of the weapons it produces- ditto for the omni frame. In the future I may want to find an alternative resource for these higher quality weapon frames * hatever fixes #4767 probably. Adds a check to prevent bleeding once blood has reached a certain volume. fixes #4763 , im not sure how this ever worked but should be fine now. Probably fixes #4740, there was a pathing issue. First two were all trilby :) * changes osmium cost to diamond, fixes potential duping issue by adding diamond to guns themselves. * actually fixes the costs lol --- code/datums/autolathe/gun_frames.dm | 5 +++++ .../items/weapons/autolathe_disk/gun_parts_disks.dm | 1 + code/modules/mob/living/say.dm | 4 +++- .../projectiles/guns/energy/projectile/railgun.dm | 2 +- .../guns/projectile/automatic/battlerifle.dm | 12 ++++++------ .../guns/projectile/automatic/nordwind.dm | 3 ++- .../projectiles/guns/projectile/automatic/ostwind.dm | 2 +- code/modules/reagents/metabolism.dm | 9 +++++++-- 8 files changed, 26 insertions(+), 12 deletions(-) diff --git a/code/datums/autolathe/gun_frames.dm b/code/datums/autolathe/gun_frames.dm index 29c2f282931..b82f706c8b7 100644 --- a/code/datums/autolathe/gun_frames.dm +++ b/code/datums/autolathe/gun_frames.dm @@ -49,6 +49,11 @@ This is mostly used for Marshal gun crafting to make it so they can make guns bu name = "6.5mm takeshi - frame" build_path = /obj/item/part/gun/frame/tk +/datum/design/autolathe/gun_frame/wind + name = "6.5mm/7.62mm Wind frame" + build_path = /obj/item/part/gun/frame/nord + + //Blackshield guns. /datum/design/autolathe/gun_frame/omni diff --git a/code/game/objects/items/weapons/autolathe_disk/gun_parts_disks.dm b/code/game/objects/items/weapons/autolathe_disk/gun_parts_disks.dm index 76a3a11b172..7f4cc485088 100644 --- a/code/game/objects/items/weapons/autolathe_disk/gun_parts_disks.dm +++ b/code/game/objects/items/weapons/autolathe_disk/gun_parts_disks.dm @@ -134,6 +134,7 @@ Avoid any disks here being found or used commonly beyond an intended purpose, ot /datum/design/autolathe/gun_frame/specop, /datum/design/autolathe/gun_frame/dp, /datum/design/autolathe/gun_frame/opshot, + /datum/design/autolathe/gun_frame/wind, /datum/design/autolathe/gun_frame/takeshi, /datum/design/autolathe/gun_frame/omni ) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 6417df8de93..0ce340833e2 100755 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -63,7 +63,9 @@ var/list/channel_to_radio_key = new return default_language /mob/living/proc/is_muzzled() - return 0 + if(istype(src.wear_mask, /obj/item/clothing/mask/muzzle) || istype(src.wear_mask, /obj/item/grenade)) + return TRUE + return FALSE /mob/living/proc/handle_speech_problems(var/message, var/verb) var/list/returns[3] diff --git a/code/modules/projectiles/guns/energy/projectile/railgun.dm b/code/modules/projectiles/guns/energy/projectile/railgun.dm index 5bfa4c3a5ea..fab51648051 100644 --- a/code/modules/projectiles/guns/energy/projectile/railgun.dm +++ b/code/modules/projectiles/guns/energy/projectile/railgun.dm @@ -179,7 +179,7 @@ else return new projectile_type(src) -/obj/item/gun/energy/laser/railgun/railrifle/attackby(obj/item/I, mob/user) +/obj/item/gun/energy/laser/railgun/attackby(obj/item/I, mob/user) ..() if(I.has_quality(QUALITY_BOLT_TURNING)) if(I.use_tool(user, src, WORKTIME_SLOW, QUALITY_BOLT_TURNING, FAILCHANCE_VERY_HARD, required_stat = STAT_MEC)) diff --git a/code/modules/projectiles/guns/projectile/automatic/battlerifle.dm b/code/modules/projectiles/guns/projectile/automatic/battlerifle.dm index 4c104a7e7f3..ad10de495e1 100644 --- a/code/modules/projectiles/guns/projectile/automatic/battlerifle.dm +++ b/code/modules/projectiles/guns/projectile/automatic/battlerifle.dm @@ -15,7 +15,7 @@ slot_flags = SLOT_BACK load_method = SINGLE_CASING|MAGAZINE mag_well = MAG_WELL_HRIFLE|MAG_WELL_DRUM - matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_PLASTIC = 10, MATERIAL_GLASS = 5) + matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_PLASTIC = 10, MATERIAL_GLASS = 5, MATERIAL_DIAMOND = 3) price_tag = 1500 penetration_multiplier = 1.0 damage_multiplier = 1.0 @@ -71,7 +71,7 @@ icon = 'icons/obj/guns/projectile/DMR.dmi' icon_state = "DMR" item_state = "DMR" - matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_PLASTIC = 15, MATERIAL_GLASS = 10) + matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_PLASTIC = 15, MATERIAL_GLASS = 10, MATERIAL_DIAMOND = 3) mag_well = MAG_WELL_HRIFLE gun_parts = null price_tag = 2000 @@ -99,7 +99,7 @@ icon = 'icons/obj/guns/projectile/Osprey.dmi' icon_state = "osprey" item_state = "osprey" - matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_WOOD = 15, MATERIAL_GLASS = 10) + matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_WOOD = 15, MATERIAL_GLASS = 10, MATERIAL_DIAMOND = 3) mag_well = MAG_WELL_HRIFLE price_tag = 2000 init_recoil = RIFLE_RECOIL(0.7) @@ -120,7 +120,7 @@ icon = 'icons/obj/guns/projectile/Warthog.dmi' icon_state = "warthog" item_state = "warthog" - matter = list(MATERIAL_PLASTEEL = 15, MATERIAL_PLASTIC = 10, MATERIAL_GLASS = 5) + matter = list(MATERIAL_PLASTEEL = 15, MATERIAL_PLASTIC = 10, MATERIAL_GLASS = 5, MATERIAL_DIAMOND = 3) mag_well = MAG_WELL_HRIFLE|MAG_WELL_DRUM price_tag = 1750 penetration_multiplier = 1.2 @@ -138,9 +138,9 @@ /obj/item/part/gun/frame/omni name = "Omnirifle frame" - desc = "An Omnirifle frame. The ex-war criminal's delight." + desc = "An Omnirifle frame. The ex-war criminal's delight. Includes advanced mechanisms not often seen in more 'common' arms." icon_state = "frame_omni" - matter = list(MATERIAL_PLASTEEL = 8) + matter = list(MATERIAL_PLASTEEL = 8, MATERIAL_DIAMOND = 3) result = /obj/item/gun/projectile/automatic/omnirifle gripvars = list(/obj/item/part/gun/grip/black, /obj/item/part/gun/grip/rubber) resultvars = list(/obj/item/gun/projectile/automatic/omnirifle, /obj/item/gun/projectile/automatic/omnirifle/rds) diff --git a/code/modules/projectiles/guns/projectile/automatic/nordwind.dm b/code/modules/projectiles/guns/projectile/automatic/nordwind.dm index 5428d7b8b83..06619c882bc 100644 --- a/code/modules/projectiles/guns/projectile/automatic/nordwind.dm +++ b/code/modules/projectiles/guns/projectile/automatic/nordwind.dm @@ -36,8 +36,9 @@ /obj/item/part/gun/frame/nord name = "Wind-series frame" - desc = "A generic -Wind series rifle frame. Simply use a drill-bit or a buffer to your desired caliber!" + desc = "A generic -Wind series rifle frame. Simply use a drill-bit or a buffer to your desired caliber! Includes several advanced mechanisms not often seen in lower-end weapons" icon_state = "frame_wind" + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_DIAMOND = 2) result = /obj/item/gun/projectile/automatic/nordwind gripvars = list(/obj/item/part/gun/grip/rubber, /obj/item/part/gun/grip/black) mechanismvar = /obj/item/part/gun/mechanism/autorifle diff --git a/code/modules/projectiles/guns/projectile/automatic/ostwind.dm b/code/modules/projectiles/guns/projectile/automatic/ostwind.dm index b0cbd6fb07d..0010dc4c7d9 100644 --- a/code/modules/projectiles/guns/projectile/automatic/ostwind.dm +++ b/code/modules/projectiles/guns/projectile/automatic/ostwind.dm @@ -12,7 +12,7 @@ load_method = SINGLE_CASING|MAGAZINE mag_well = MAG_WELL_RIFLE auto_eject = 1 - matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_STEEL = 20, MATERIAL_PLASTIC = 10) + matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_STEEL = 20, MATERIAL_PLASTIC = 10, MATERIAL_DIAMOND = 2) price_tag = 1750 fire_sound = 'sound/weapons/guns/fire/carbine.ogg' auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' diff --git a/code/modules/reagents/metabolism.dm b/code/modules/reagents/metabolism.dm index d3cab6da6a2..73436ae6580 100644 --- a/code/modules/reagents/metabolism.dm +++ b/code/modules/reagents/metabolism.dm @@ -143,8 +143,13 @@ parent.eye_blurry = max(parent.eye_blurry, 3) if(nsa_amount < nsa_threshold*1.6) - return - parent.drip_blood(10) //This is quite a bit but your also suffering a lot + if(ishuman(src)) + var/mob/living/carbon/human/H = src + var/blood_volume = H.vessel.get_reagent_amount("blood") + var/blood_percent = round((blood_volume / H.species.blood_volume)*100) + if(blood_percent > H.total_blood_req + BLOOD_VOLUME_BAD_MODIFIER) + return + parent.drip_blood(10) //This is quite a bit but your also suffering a lot //At this point were starting to have a heart attack if(nsa_amount < nsa_threshold*1.7)