[MIRROR] Prot rig up port (#9585)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2024-12-09 22:51:31 +01:00
committed by GitHub
co-authored by Heroman3003 Kashargul
parent ce12ae569f
commit 9d1fa79b33
101 changed files with 1904 additions and 3547 deletions
+35 -11
View File
@@ -13,7 +13,8 @@ var/list/ventcrawl_machinery = list(
/obj/belly,
/obj/soulgem, // CHOMPAdd
/obj/screen,
/atom/movable/emissive_blocker
/atom/movable/emissive_blocker,
/obj/item/rig/protean
)
//VOREStation Edit : added /obj/belly, to this list, CI is complaining about this in his indentation check. Added mob_headset for those with radios so there's no weirdness.
//mob/living/simple_mob/borer, //VORESTATION AI TEMPORARY REMOVAL REPLACE BACK IN LIST WHEN RESOLVED //VOREStation Edit
@@ -67,11 +68,11 @@ var/list/ventcrawl_machinery = list(
/mob/living/proc/is_allowed_vent_crawl_item(var/obj/carried_item)
//Ability master easy test for allowed (cheaper than istype)
if(carried_item == ability_master)
return 1
return TRUE
if(isanimal(src))
var/mob/living/simple_mob/S = src
if(carried_item == S.myid) //VOREStation Edit
return 1 //VOREStation Edit
if(carried_item == S.myid)
return TRUE
//Try to find it in our allowed list (istype includes subtypes)
var/listed = FALSE
for(var/test_type in can_enter_vent_with)
@@ -81,23 +82,23 @@ var/list/ventcrawl_machinery = list(
//Only allow it if it's "IN" the mob, not equipped on/being held. //Disabled, as it's very annoying that, for example, Pun Pun has no way to ventcrawl with his suit if given the verb, since the list of allowed items is ignored for worn items.
if(listed/* && !get_inventory_slot(carried_item)*/)
return 1
return TRUE
/mob/living/carbon/is_allowed_vent_crawl_item(var/obj/item/carried_item)
if(carried_item in internal_organs)
return 1
return TRUE
return ..()
/mob/living/carbon/human/is_allowed_vent_crawl_item(var/obj/item/carried_item)
if(carried_item in organs)
return 1
return TRUE
if(species.name == SPECIES_REPLICANT_CREW)
if(istype(carried_item, /obj/item/clothing/under))
return 1 //Allow them to not vent crawl naked
return TRUE //Allow them to not vent crawl naked
if(istype(carried_item, /obj/item))
var/obj/item/I = carried_item
if(I.w_class <= 2)
return 1 //Allow them to carry items that fit in pockets
if(I.w_class <= ITEMSIZE_SMALL)
return TRUE //Allow them to carry items that fit in pockets
return ..()
/mob/living/proc/ventcrawl_carry()
@@ -107,6 +108,29 @@ var/list/ventcrawl_machinery = list(
return FALSE
return TRUE
/mob/living/simple_mob/protean_blob/ventcrawl_carry()
for(var/atom/A in contents)
if(!is_allowed_vent_crawl_item(A))
to_chat(src, span_warning("You can't carry \the [A] while ventcrawling!"))
return FALSE
if(humanform)
for(var/atom/B in humanform.get_contents())
if(!is_allowed_vent_crawl_item(B))
to_chat(src, span_warning("You can't carry \the [B] while ventcrawling!"))
return FALSE
return TRUE
/mob/living/simple_mob/protean_blob/is_allowed_vent_crawl_item(var/obj/item/carried_item)
if((carried_item in humanform.organs) || (carried_item in humanform.internal_organs))
return TRUE
if(istype(carried_item, /obj/item/clothing/under))
return TRUE //Allow jumpsuits only
if(istype(carried_item, /obj/item))
var/obj/item/I = carried_item
if(I.w_class <= ITEMSIZE_SMALL)
return TRUE //Allow them to carry items that fit in pockets
return ..()
/mob/living/AltClickOn(var/atom/A)
if(is_type_in_list(A,ventcrawl_machinery))
handle_ventcrawl(A)
@@ -130,7 +154,7 @@ var/list/ventcrawl_machinery = list(
return pipe
/mob/living/carbon/alien/ventcrawl_carry()
return 1
return TRUE
/mob/living/var/ventcrawl_layer = 3