Vgstation13: Transforming into a Monkey with Lesser Form While Inside a Mech Does Not Work Properly

Created on 29 Dec 2016  路  9Comments  路  Source: vgstation-coders/vgstation13

(WEB REPORT BY: icantthinkofanameritenow REMOTE: 172.93.109.202:7777)

Revision (Should be above if you're viewing this from ingame!)
907fa8b2e0bb6d6511119c0e6d9eae8b3d0fdf7e
General description of the issue
Self-explanatory. Makes Lesser form functionally worthless.

What you expected to happen
Change back after being a monkey.

What actually happened
HAHAHA STUCK AS A MONKEY

Steps to reproduce if possible
Be a changeling, use lesser form.

Bug / Fix Probably Fixed by Role Datums

Most helpful comment

When we get rid of changeling verbs and use spells instead.

All 9 comments

I'm willing to bet that the reason for this is that you transformed while your loc was not a turf, for example inside a locker, which causes your verbs to not update until you relog.

If so, then it's just a BYOND bug.

When are we going to change those two verbs into one and just add a world time cooldown to it?

When we get rid of changeling verbs and use spells instead.

Comic volunteers!

Probably should get round to actually fixing systems.

Seems good to go. Retained powers after lesser transform inside various containers and transforming back in the open, in a closet, in disposal, in a mech, and in a morgue tray. Seems good enough.

General transform
lesser transform in the open

Disposal
lesser transform in a disposal

Closet
lesser transform - closet

Mech
lesser transform mechs duplicates old body auto-exit on move

While it did retain the lesser transform ability when shifting in the mech, it left a human body in the occupants list preventing going back in after leaving. When attempting to move the mech as a monkey, the monkey auto-exited on movement. When you transform back into a human and try to move the mech, you auto-exit as a human. You also do not regain mech spells/control verbs/be able to fire. It appears to stick to your old dummy human transition body.
Presumably because of said auto-exiting on move, at some point my cursor remained the mech target reticule instead of an arrow.

While in lesser form in a mech with a selected scattershot, could not fire it.

Worn items that are dropped as part of the transformation were added to the mech's contents. Adding a clamp doesn't help and they're not in the "cargo hold" so it's solely destroying the mech or electropacking the dropped items out. And speaking of that, if you electropack the generic human placeholder that's left behind out of the mech it disappears, letting someone get in it again and not making spooky duplicates.
lesser transform no duping
electropack contents dump

Sleepers too so machinery containers seem good to go.
untitled

God damnit. There's no if you're in a pipe check so you can transform back into a human while in the pipe as a monkey. You can move and crawl out fine. Can't go back in as a human after so at least you lose the crawl ability properly.

untitled

Didn't check runtime log either.

/obj/mecha/proc/internals_access_allowed(mob/living/carbon/human/H)
for(var/atom/ID in list(H.get_active_hand(), H.wear_id, H.belt))
if(src.check_access(ID,src.internals_req_access))
return 1
return 0

untitled

It's a reproducible error by turning into a monkey then hitting a deathripley, marauder, seraph, mauler, honk with an id. cap spare, like 4 of the various syndicate id's. It's triggering off the mech's required access and having id panel, permit maintenance, or both unlocked (so it checks for id on the belt of a race without a belt slot)

untitled

[09:15:34] Runtime in mecha.dm,1500: undefined variable /mob/living/carbon/monkey/var/belt
proc name: internals access allowed (/obj/mecha/proc/internals_access_allowed)
usr: The monkey (161) (sarahjohnson) (/mob/living/carbon/monkey)
usr.loc: The floor (292, 237, 1) (/turf/simulated/floor)
src: DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley)
src.loc: the floor (291,237,1) (/turf/simulated/floor)
call stack:
DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley): internals access allowed(the monkey (161) (/mob/living/carbon/monkey))
DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley): attackby(the captain\'s spare ID (/obj/item/weapon/card/id/captains_spare), the monkey (161) (/mob/living/carbon/monkey), "icon-x=14;icon-y=23;left=1;scr...")
the monkey (161) (/mob/living/carbon/monkey): ClickOn(DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley), "icon-x=14;icon-y=23;left=1;scr...")
DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley): Click(the floor (291,237,1) (/turf/simulated/floor), "mapwindow.map", "icon-x=14;icon-y=23;left=1;scr...")
Sarah Johnson (/client): Click(DEATH-RIPLEY (/obj/mecha/working/ripley/deathripley), the floor (291,237,1) (/turf/simulated/floor), "mapwindow.map", "icon-x=14;icon-y=23;left=1;scr...")

The issue with mechs could probably be fixed by just disallowing monkeys from entering mechs at all, since they can't pilot them anyway.

It seems I misread the report, and the actual problem is when a human changeling enters a mech and becomes a monkey inside of it, dropping all his items and leaving a dummy human inside the mech.
Relevant portion of the testing isolated here:

While it did retain the lesser transform ability when shifting in the mech, it left a human body in the occupants list preventing going back in after leaving. When attempting to move the mech as a monkey, the monkey auto-exited on movement. When you transform back into a human and try to move the mech, you auto-exit as a human. You also do not regain mech spells/control verbs/be able to fire. It appears to stick to your old dummy human transition body.
Presumably because of said auto-exiting on move, at some point my cursor remained the mech target reticule instead of an arrow.

While in lesser form in a mech with a selected scattershot, could not fire it.

Worn items that are dropped as part of the transformation were added to the mech's contents. Adding a clamp doesn't help and they're not in the "cargo hold" so it's solely destroying the mech or electropacking the dropped items out. And speaking of that, if you electropack the generic human placeholder that's left behind out of the mech it disappears, letting someone get in it again and not making spooky duplicates.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

D3athrow-Issues picture D3athrow-Issues  路  3Comments

D3athrow-Issues picture D3athrow-Issues  路  3Comments

N3X15 picture N3X15  路  3Comments

gbasood picture gbasood  路  3Comments

Probe1 picture Probe1  路  3Comments