Files
61d28b31b2 Bundle of fixes (#7113)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

A few fixes ran into messing around with the code, every logical unit is
one commit.

## Why It's Good For The Game

People aren't unable to escape some storage, but not other. (Logic wise,
that probably could be handed further to the object, to have people not
escape something like locked secure briefcases or so, but this is just a
quick fix.)
Vore resisting works again, besides slightly less special logic for it.
Augment cooldown actually works, besides splitting the usability check
from the action proc, less duplication
Fancy boxes don't get/spawn invisible.
Runtime fix for the resonate analyzer (available as augment implant),
technically usable.
Plant analyzer doesn't seem to be bigger than the others, so put into
the same size/weightclass

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
fix: Able to escape every storage
fix: vore resist belly interactions
fix: augment cooldowns
fix: Cigar, chocolate, and crayon/marker/chalk boxes don't become
(partly) invisible
fix: resonate analyzer can be used
tweak: plant analyzer is now small
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: MarsMond <no@email>
Co-authored-by: Blubelle <57083662+BlueWildrose@users.noreply.github.com>
2025-05-29 18:27:46 -09:00

89 lines
3.0 KiB
Plaintext

// The base organic-targeting augment.
/obj/item/organ/internal/augment/bioaugment
name = "bioaugmenting implant"
icon_state = "augment_hybrid"
dead_icon = "augment_hybrid_dead"
robotic = ORGAN_ASSISTED
target_parent_classes = list(ORGAN_FLESH)
/* Jensen Shades. Your vision can be augmented.
* This, technically, no longer needs its unique organ verb, however I have chosen to leave it for posterity
* in the event it needs to be referenced, while still remaining perfectly functional with either system.
*/
/obj/item/organ/internal/augment/bioaugment/thermalshades
name = "integrated thermolensing implant"
desc = "A miniscule implant that houses a pair of thermolensed sunglasses. Don't ask how they deploy, you don't want to know."
icon_state = "augment_shades"
dead_icon = "augment_shades_dead"
w_class = WEIGHT_CLASS_TINY
organ_tag = O_AUG_EYES
robotic = ORGAN_ROBOT
parent_organ = BP_HEAD
organ_verbs = list(
/mob/living/carbon/human/proc/augment_menu,
/mob/living/carbon/human/proc/toggle_shades)
integrated_object_type = /obj/item/clothing/glasses/hud/security/jensenshades
/obj/item/organ/internal/augment/bioaugment/thermalshades/augment_action()
if(!owner)
return
owner.toggle_shades()
// Here for posterity and example.
/mob/living/carbon/human/proc/toggle_shades()
set name = "Toggle Integrated Thermoshades"
set desc = "Toggle your flash-proof, thermal-integrated sunglasses."
set category = "Augments"
var/obj/item/organ/internal/augment/aug = organs_by_name[O_AUG_EYES]
if(glasses)
if(aug && aug.integrated_object == glasses)
aug.integrated_object.forceMove(aug)
if(!glasses)
to_chat(src, "<span class='alien'>Your [aug.integrated_object] retract into your skull.</span>")
else if(!istype(glasses, /obj/item/clothing/glasses/hud/security/jensenshades))
to_chat(src, "<span class='notice'>\The [glasses] block your shades from deploying.</span>")
else if(istype(glasses, /obj/item/clothing/glasses/hud/security/jensenshades))
var/obj/item/G = glasses
if(!HAS_TRAIT_FROM(G, TRAIT_ITEM_NODROP, AUGMENT_TRAIT))
to_chat(src, "<span class='notice'>\The [G] are not your integrated shades.</span>")
else
to_chat(src, "<span class='notice'>\The [G] retract into your skull.</span>")
qdel(G)
else
if(aug)
to_chat(src, "<span class='alien'>Your [aug.integrated_object] deploy.</span>")
force_equip_to_slot(aug.integrated_object, SLOT_ID_GLASSES)
if(!glasses || glasses != aug.integrated_object)
aug.integrated_object.forceMove(aug)
/obj/item/organ/internal/augment/bioaugment/sprint_enhance
name = "locomotive optimization implant"
desc = "A chunk of meat and metal that can manage an individual's leg musculature."
organ_tag = O_AUG_PELVIC
parent_organ = BP_GROIN
target_parent_classes = list(ORGAN_FLESH, ORGAN_ASSISTED)
aug_cooldown = 2 MINUTES
/obj/item/organ/internal/augment/bioaugment/sprint_enhance/augment_action()
if(istype(owner, /mob/living/carbon/human))
var/mob/living/carbon/human/H = owner
H.add_modifier(/datum/modifier/sprinting, 1 MINUTES)