From cb32a65c8703bd8d8ff6ad6b7f6650e18f7b7b7e Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Sun, 22 Jan 2023 11:34:03 +1000 Subject: [PATCH] few small fixes and improvements for proteans --- .../client/preference_setup/vore/07_traits.dm | 4 ++-- .../mob/living/carbon/human/human_defines_vr.dm | 1 - code/modules/organs/robolimbs_custom.dm | 1 + .../human/species/station/protean/protean_powers.dm | 10 +++++++--- .../human/species/station/protean/protean_species.dm | 12 +++++++++--- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 99a4020f4c..9627295062 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -244,8 +244,8 @@ var/list/choices var/datum/species/spec = GLOB.all_species[pref.species] if (spec.selects_bodytype == SELECTS_BODYTYPE_SHAPESHIFTER && istype(spec, /datum/species/shapeshifter)) - var/datum/species/shapeshifter/spec_shifter = spec - choices = spec_shifter.valid_transform_species + var/datum/species/spec_shifter = spec + choices = spec_shifter.get_valid_shapeshifter_forms() else choices = GLOB.custom_species_bases if(pref.species != SPECIES_CUSTOM) diff --git a/code/modules/mob/living/carbon/human/human_defines_vr.dm b/code/modules/mob/living/carbon/human/human_defines_vr.dm index 39c4f11cbc..1bd8e2f392 100644 --- a/code/modules/mob/living/carbon/human/human_defines_vr.dm +++ b/code/modules/mob/living/carbon/human/human_defines_vr.dm @@ -4,7 +4,6 @@ b_skin = 179 var/vantag_pref = VANTAG_NONE //What's my status? - var/impersonate_bodytype //For impersonating a bodytype var/ability_flags = 0 //Shadekin abilities/potentially other species-based? var/sensorpref = 5 //Suit sensor loadout pref var/wings_hidden = FALSE diff --git a/code/modules/organs/robolimbs_custom.dm b/code/modules/organs/robolimbs_custom.dm index 96d80669c1..cfa9848b74 100644 --- a/code/modules/organs/robolimbs_custom.dm +++ b/code/modules/organs/robolimbs_custom.dm @@ -171,6 +171,7 @@ VS Edit - anyone can select these. */ species_cannot_use = GLOB.all_species.Copy() species_cannot_use -= SPECIES_TESHARI //VOREStation add - let 'em be selected. species_cannot_use -= SPECIES_CUSTOM //VOREStation add - let 'em be selected. + species_cannot_use -= SPECIES_PROTEAN //VOREStation add - let 'em be selected. ..() /obj/item/weapon/disk/limb/dsi_teshari diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm index bdeab06abc..4149b0231b 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm @@ -25,7 +25,12 @@ if(!istype(refactory)) to_chat(caller,"You don't have a working refactory module!") return +<<<<<<< HEAD:modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm var/choice = tgui_input_list(caller,"Pick the bodypart to change:", "Refactor - One Bodypart", species.has_limbs) +======= + + var/choice = tgui_input_list(src,"Pick the bodypart to change:", "Refactor - One Bodypart", species.has_limbs) +>>>>>>> 465a66032f... Merge pull request #14355 from Seris02/proteanhelp:code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm if(!choice) return @@ -66,7 +71,7 @@ var/datum/robolimb/M = chargen_robolimbs[company] if(!(choice in M.parts)) continue - if(impersonate_bodytype in M.species_cannot_use) + if(species?.base_species in M.species_cannot_use) continue if(M.whitelisted_to && !(ckey in M.whitelisted_to)) continue @@ -127,7 +132,7 @@ var/datum/robolimb/M = chargen_robolimbs[company] if(!(BP_TORSO in M.parts)) continue - if(impersonate_bodytype in M.species_cannot_use) + if(species?.base_species in M.species_cannot_use) continue if(M.whitelisted_to && !(ckey in M.whitelisted_to)) continue @@ -283,7 +288,6 @@ var/new_species = tgui_input_list(usr, "Please select a species to emulate.", "Shapeshifter Body", GLOB.playable_species) if(new_species) - impersonate_bodytype = new_species species?.base_species = new_species // Really though you better have a species regenerate_icons() //Expensive, but we need to recrunch all the icons we're wearing diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm index f15bf48bd3..4e15a41bda 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm @@ -10,6 +10,9 @@ knockout_message = "collapses inwards, forming a disordered puddle of gray goo." remains_type = /obj/effect/decal/cleanable/ash + selects_bodytype = SELECTS_BODYTYPE_SHAPESHIFTER + base_species = SPECIES_HUMAN + blood_color = "#505050" //This is the same as the 80,80,80 below, but in hex flesh_color = "#505050" base_color = "#FFFFFF" //Color mult, start out with this @@ -126,9 +129,12 @@ saved_nif.quick_implant(H) /datum/species/protean/get_bodytype(var/mob/living/carbon/human/H) - if(H) - return H.impersonate_bodytype || ..() - return ..() + if(!H || base_species == name) return ..() + var/datum/species/S = GLOB.all_species[base_species] + return S.get_bodytype(H) + +/datum/species/protean/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) + return GLOB.playable_species /datum/species/protean/handle_post_spawn(var/mob/living/carbon/human/H) ..()