From fa6566a42ced8156b499c314de43d9b0b4e3c24b Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:41:55 +0000 Subject: [PATCH 1/3] Changes to protean PR (#1) * Removes darkvision Removes dark vision changes * Prevents rig assimilation and allows vent crawl for small items only Removed the ability to assimilate rigs. Added the ability to vent crawl back, but it now checks their inventory (including inside the rig storage) for any items over pocket-size. * Removed unnecessary exception * 1 -> TRUE and 2 -> ITEMSIZE_SMALL --- .../human/species/station/prommie_blob.dm | 1 - .../station/protean_vr/protean_blob.dm | 2 +- .../species/station/protean_vr/protean_rig.dm | 4 +++ .../station/protean_vr/protean_species.dm | 1 - code/modules/mob/living/living.dm | 5 ++++ code/modules/ventcrawl/ventcrawl.dm | 26 ++++++++++++++++++- 6 files changed, 35 insertions(+), 4 deletions(-) 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_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) From e50a4daed0118ff76a887ef5692cbf71ea71685a Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Fri, 15 Nov 2024 22:31:39 +0000 Subject: [PATCH 2/3] Removes mob forms for now (#2) We'd prefer not to have blob form take the form of mobs for now, though that may change in the future, so they are just commented out here. --- .../carbon/human/species/station/protean_vr/protean_powers.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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()) From ec6c112d03b8a2f938ff0a8e906b33afbf3d19de Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 16 Nov 2024 13:19:59 +0100 Subject: [PATCH 3/3] sort the new verb --- .../mob/living/carbon/human/species/species_shapeshift_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5a0d5ce3a6..fa4dee9ae7 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