diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm index ebb03a1d12..6dc8616210 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm @@ -58,7 +58,7 @@ /mob/living/carbon/human/proc/shapeshifter_select_secondary_ears() set name = "Select Secondary Ears" - set category = "Abilities" + set category = "Abilities.Shapeshift" if(stat || world.time < last_special) return diff --git a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm index cd2c14af8d..387693c0e4 100644 --- a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm @@ -15,7 +15,6 @@ harm_intent_damage = 3 melee_damage_lower = 5 melee_damage_upper = 5 - see_in_dark = 10 player_msg = "You're a little squisher! Your cuteness level has increased tenfold." heat_damage_per_tick = 20 // Hot and cold are bad, but cold is AS bad for prommies as it is for slimes. cold_damage_per_tick = 20 diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index a9cc5f1638..961fc177bc 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -24,7 +24,6 @@ melee_damage_lower = 5 melee_damage_upper = 5 attacktext = list("slashed") - see_in_dark = 10 min_oxy = 0 max_oxy = 0 @@ -74,6 +73,7 @@ humanform = H updatehealth() refactory = locate() in humanform.internal_organs + add_verb(src,/mob/living/proc/ventcrawl) add_verb(src,/mob/living/proc/usehardsuit) add_verb(src,/mob/living/simple_mob/protean_blob/proc/nano_partswap) add_verb(src,/mob/living/simple_mob/protean_blob/proc/nano_regenerate) diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm index 204c8b6d5d..1a8996461b 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm @@ -385,7 +385,7 @@ "Highlight" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "highlight"), "puddle1" = image(icon = 'icons/mob/species/protean/protean_powers.dmi', icon_state = "blob"), "puddle0" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "puddle"), - "catslug" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "catslug"), + /*"catslug" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "catslug"), "cat" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "cat"), "mouse" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "mouse"), "rabbit" = image(icon = 'icons/mob/species/protean/protean.dmi', icon_state = "rabbit"), @@ -400,7 +400,7 @@ "teppi" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "teppi", pixel_x = -16), "panther" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "panther", pixel_x = -16), "robodrgn" = image(icon = 'icons/mob/species/protean/protean128x64.dmi', icon_state = "robodrgn", pixel_x = -48), - "Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small") + "Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small")*/ ) var/blobstyle = show_radial_menu(caller, caller, icon_choices, require_near = TRUE, tooltips = FALSE) if(!blobstyle || QDELETED(caller) || caller.incapacitated()) diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm index a74ba29469..79eaa0a922 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm @@ -28,6 +28,7 @@ //ai_interface_path = "RIGSuit_protean" var/sealed = 0 var/assimilated_rig + var/can_assimilate_rig = FALSE /obj/item/rig/protean/relaymove(mob/user, var/direction) if(user.stat || user.stunned) @@ -491,6 +492,9 @@ //Effectively a round about way of letting a Protean wear other rigs. /obj/item/rig/protean/proc/AssimilateRig(mob/user, var/obj/item/rig/R) + if(!can_assimilate_rig) + to_chat(user, span_warning("You can not place a rig into \the [src]")) + return if(!R || assimilated_rig) return if(istype(R, /obj/item/rig/protean)) diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm index 588c57fbd6..484ccdbc8b 100755 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm @@ -40,7 +40,6 @@ max_age = 200 oxy_mod = 0 //radiation_mod = 0 //Can't be assed with fandangling rad protections while blob formed/suited - darksight = 10 siemens_coefficient = 2 brute_mod = 0.8 burn_mod = 1.5 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a81282f364..cbedd7d392 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -613,6 +613,11 @@ L += D.wrapped if(istype(D.wrapped, /obj/item/storage)) //this should never happen L += get_contents(D.wrapped) + + for(var/obj/item/rig/R in src.contents) //Check rigsuit storage for items + if(R.rig_storage) + L += get_contents(R.rig_storage) + return L /mob/living/proc/check_contents_for(A) diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index 5cd5fb9a02..f16deca1da 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -12,7 +12,8 @@ var/list/ventcrawl_machinery = list( /obj/machinery/camera, /obj/belly, /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 @@ -106,6 +107,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)