[MIRROR] Fixes some bitrunning bugs [NO GBP] [MDB IGNORE] (#24682)

* Fixes some bitrunning bugs [NO GBP] (#79332)

## About The Pull Request
Atomized bug fix PR from the content patch. They seemed to be priority
## Why It's Good For The Game
Fixes #79329
Fixes #79164
Fixes #79289

## Changelog
🆑
fix: Paraplegics can now enter netpods.
fix: Fixes an exploit caused by teleporting out of a netpod.
fix: Outfit selection at netpods shouldn't give armor bonuses any
longer.
/🆑

* Fixes some bitrunning bugs [NO GBP]

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-10-31 16:18:58 +01:00
committed by GitHub
parent 4dae17f5f9
commit dc63586c02
2 changed files with 27 additions and 12 deletions
+19 -10
View File
@@ -81,10 +81,10 @@
/obj/machinery/netpod/MouseDrop_T(mob/target, mob/user)
var/mob/living/carbon/player = user
if(!iscarbon(player))
if(!iscarbon(player) || !Adjacent(player) || !ISADVANCEDTOOLUSER(player) || !is_operational || !state_open)
return
if((HAS_TRAIT(player, TRAIT_UI_BLOCKED) && !player.resting) || !Adjacent(player) || !ISADVANCEDTOOLUSER(player) || !is_operational)
if(player.buckled || HAS_TRAIT(player, TRAIT_HANDS_BLOCKED))
return
close_machine(target)
@@ -312,15 +312,9 @@
neo.set_static_vision(3 SECONDS)
add_healing(occupant)
if(!do_after(neo, 2 SECONDS, src))
return
// Very invalid
if(QDELETED(neo) || QDELETED(current_avatar) || QDELETED(src))
return
// Invalid
if(occupant != neo || isnull(neo.mind) || neo.stat == DEAD || current_avatar.stat == DEAD)
if(!validate_entry(neo, current_avatar))
open_machine()
return
current_avatar.AddComponent( \
@@ -467,4 +461,19 @@
update_appearance()
/// Checks for cases to eject/fail connecting an avatar
/obj/machinery/netpod/proc/validate_entry(mob/living/neo, mob/living/avatar)
if(!do_after(neo, 2 SECONDS, src))
return FALSE
// Very invalid
if(QDELETED(neo) || QDELETED(avatar) || QDELETED(src) || !is_operational)
return FALSE
// Invalid
if(occupant != neo || isnull(neo.mind) || neo.stat > SOFT_CRIT || avatar.stat == DEAD)
return FALSE
return TRUE
#undef BASE_DISCONNECT_DAMAGE