diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index eb17ecc40a..a15e952bcf 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -59,6 +59,14 @@ Doesn't work on other aliens/AI.*/ return 0 return 1 +/obj/effect/proc_holder/alien/proc/check_vent_block(mob/living/user) + var/obj/machinery/atmospherics/components/unary/atmos_thing = locate() in user.loc + if(atmos_thing) + var/rusure = alert(user, "Laying eggs and shaping resin here would block access to [atmos_thing]. Do you want to continue?", "Blocking Atmospheric Component", "Yes", "No") + if(rusure != "No") + return FALSE + return TRUE + /obj/effect/proc_holder/alien/plant name = "Plant Weeds" desc = "Plants some alien weeds." @@ -243,7 +251,7 @@ Doesn't work on other aliens/AI.*/ name = "Secrete Resin" desc = "Secrete tough malleable resin." plasma_cost = 55 - check_turf = 1 + check_turf = TRUE var/list/structures = list( "resin wall" = /obj/structure/alien/resin/wall, "resin membrane" = /obj/structure/alien/resin/membrane, @@ -254,18 +262,22 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/resin/fire(mob/living/carbon/user) if(locate(/obj/structure/alien/resin) in user.loc) to_chat(user, "There is already a resin structure there.") - return 0 + return FALSE + + if(!check_vent_block(user)) + return FALSE + var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in structures if(!choice) - return 0 + return FALSE if (!cost_check(check_turf,user)) - return 0 + return FALSE to_chat(user, "You shape a [choice].") user.visible_message("[user] vomits up a thick purple substance and begins to shape it.") choice = structures[choice] new choice(user.loc) - return 1 + return TRUE /obj/effect/proc_holder/alien/regurgitate name = "Regurgitate" diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 4f79ed7d25..5a48e1c6d1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -79,16 +79,20 @@ name = "Lay Egg" desc = "Lay an egg to produce huggers to impregnate prey with." plasma_cost = 75 - check_turf = 1 + check_turf = TRUE action_icon_state = "alien_egg" /obj/effect/proc_holder/alien/lay_egg/fire(mob/living/carbon/user) if(locate(/obj/structure/alien/egg) in get_turf(user)) - to_chat(user, "There's already an egg here.") - return 0 + to_chat(user, "There's already an egg here.") + return FALSE + + if(!check_vent_block(user)) + return FALSE + user.visible_message("[user] has laid an egg!") new /obj/structure/alien/egg(user.loc) - return 1 + return TRUE //Button to let queen choose her praetorian. /obj/effect/proc_holder/alien/royal/queen/promote