diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index f9e9c2678a5..1ada7c0f5ac 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -288,6 +288,10 @@ if((O in user) && is_type_in_list(O,own_blacklist)) continue if(is_type_in_list(O,types_allowed)) + if(isanimal(O)) + var/mob/living/simple_animal/SA = O + if(!SA.gold_core_spawnable) + continue possible_targets += O targets += input("Choose the target of your hunger.", "Targeting") as null|anything in possible_targets diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 60e650691e5..65668b9104c 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -454,8 +454,10 @@ set name = "Eject Sleeper" set category = "Object" set src in oview(1) - if(usr.stat != 0) + + if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other return + src.icon_state = "[base_icon]-open" src.go_out() add_fingerprint(usr) @@ -465,8 +467,10 @@ set name = "Remove Beaker" set category = "Object" set src in oview(1) - if(usr.stat != 0) + + if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other return + if(beaker) filtering = 0 beaker.forceMove(usr.loc) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 94bc3f5b90b..c4a1968a18f 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -457,16 +457,15 @@ set name = "Eject occupant" set category = "Object" set src in oview(1) + if(usr == occupant)//If the user is inside the tube... - if(usr.stat == 2)//and he's not dead.... - return - to_chat(usr, "\blue Release sequence activated. This will take two minutes.") + to_chat(usr, "Release sequence activated. This will take two minutes.") sleep(600) if(!src || !usr || !occupant || (occupant != usr)) //Check if someone's released/replaced/bombed him already return go_out()//and release him from the eternal prison. else - if(usr.stat != 0) + if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other return go_out() add_fingerprint(usr) @@ -476,14 +475,18 @@ set name = "Move Inside" set category = "Object" set src in oview(1) + for(var/mob/living/carbon/slime/M in range(1,usr)) if(M.Victim == usr) to_chat(usr, "You're too busy getting your life sucked out of you.") return - if(usr.stat != 0 || stat & (NOPOWER|BROKEN)) + + if(stat & (NOPOWER|BROKEN)) return + if(usr.restrained() || usr.stat || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other return + put_mob(usr) return diff --git a/code/game/machinery/programmable_unloader.dm b/code/game/machinery/programmable_unloader.dm index 4cd09d6f8a4..3bed121322b 100644 --- a/code/game/machinery/programmable_unloader.dm +++ b/code/game/machinery/programmable_unloader.dm @@ -254,6 +254,7 @@ src.overrides = null P.emag_overrides = src.emag_overrides src.emag_overrides = null + default_deconstruction_crowbar(I, 1) return else ..(I,user) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 23271355206..29158e083e5 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -488,7 +488,7 @@ return 1 /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/add_known_reagent(r_id,r_name) - if(!(r_id in known_reagents)) + if(!(r_id in known_reagents) && (r_id in standard_medicines)) known_reagents += r_id known_reagents[r_id] = r_name return 1