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

48 lines
1.9 KiB
Plaintext

/datum/component/riding_filter/mob/robot
expected_typepath = /mob/living/silicon/robot
handler_typepath = /datum/component/riding_handler/mob/robot
offhands_needed_rider = 1
offhand_requirements_are_rigid = FALSE
/datum/component/riding_filter/mob/robot/check_mount_attempt(mob/M, buckle_flags, mob/user, semantic)
if(!ishuman(M))
return FALSE // nah
return ..()
/datum/component/riding_handler/mob/robot
expected_typepath = /mob/living/silicon/robot
riding_handler_flags = CF_RIDING_HANDLER_EPHEMERAL
rider_check_flags = CF_RIDING_CHECK_INCAPACITATED
rider_offsets = list(
list(0, 6, 1, null),
list(-8, 6, 1, null),
list(0, 6, -1, null),
list(8, 6, 1, null)
)
rider_offset_format = CF_RIDING_OFFSETS_DIRECTIONAL
/datum/component/riding_handler/mob/robot/controllable
riding_handler_flags = CF_RIDING_HANDLER_EPHEMERAL|CF_RIDING_HANDLER_IS_CONTROLLABLE
/mob/living/silicon/robot/verb/toggle_rider_control()
set name = "Give Reins"
set desc = "Give or take the person riding on you control of your movement."
set category = VERB_CATEGORY_IC
var/datum/component/riding_filter/mob/robot/riding_filter = GetComponent(/datum/component/riding_filter/mob/robot)
if(!riding_filter)
to_chat(src, "<span class='warning'>Your form is incompatible with being ridden</warning>")
return
if(riding_filter.handler_typepath == /datum/component/riding_handler/mob/robot)
riding_filter.handler_typepath = /datum/component/riding_handler/mob/robot/controllable
to_chat(src, "<span class='notice'>You can now be controlled")
else
riding_filter.handler_typepath = /datum/component/riding_handler/mob/robot
to_chat(src, "<span class='notice'>You can no longer be controlled")
var/datum/component/riding_handler/mob/robot/riding_handler = GetComponent(/datum/component/riding_handler/mob/robot)
if(!riding_handler)
//No need to update the handler if it doesn't exist.
return
riding_handler.riding_handler_flags ^= CF_RIDING_HANDLER_IS_CONTROLLABLE