From e2442c27f457105087c11bb1af6f6a8075954d1a Mon Sep 17 00:00:00 2001 From: LordFowl Date: Thu, 12 Jan 2017 16:13:28 -0500 Subject: [PATCH] nerfing shells to the ground (#1524) In compliance with Jackboot's freshest tyranny, I've restricted Shells to being human only. This actually simplifies the code tonnes, and may solve several Shell-related bugs reported previously. --- .../preference_setup/general/03_body.dm | 41 +-------- .../species/station/machine_subspecies.dm | 20 ++++- code/modules/organs/robolimbs.dm | 26 +----- code/modules/organs/subtypes/machine.dm | 89 ++++++++++++++++++- 4 files changed, 107 insertions(+), 69 deletions(-) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index c4a76f4f484..f4612d38c49 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -170,9 +170,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(has_flag(mob_species, HAS_SKIN_TONE)) . += "Skin Tone: [-pref.s_tone + 35]/220
" . += "Needs Glasses: [pref.disabilities & NEARSIGHTED ? "Yes" : "No"]
" - if(has_flag(mob_species, HAS_FBP)) - . += "Shell Type: Shellect
" - else + if(!(has_flag(mob_species, HAS_FBP))) . += "Limbs: Adjust
" . += "Internal Organs: Adjust
" . += "Prosthesis/Amputations: Reset
" @@ -554,43 +552,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O return TOPIC_REFRESH - else if(href_list["shell"]) - var/shellection = input(user, "What species shall you mimic?") as null|anything in list("Humanity","Vaurcae","Unathi","Tajara","Skrell") - if(!shellection) return - - var/shell_type - switch(shellection) - if("Humanity") - shell_type = "Human" - mob_species.tail = null - mob_species.tail_animation = null - if("Vaurcae") - shell_type = "Vaurca" - mob_species.tail = null - mob_species.tail_animation = null - if("Unathi") - shell_type = "Unathi" - mob_species.tail = "sogtail" - mob_species.tail_animation = 'icons/mob/species/unathi/tail.dmi' - if("Tajara") - shell_type = "Tajara" - mob_species.tail = "tajtail" - mob_species.tail_animation = 'icons/mob/species/tajaran/tail.dmi' - if("Skrell") - shell_type = "Skrell" - mob_species.tail = null - mob_species.tail_animation = null - - mob_species.bodytype = shell_type - var/shell_prosthetic = "[shell_type] Synthskin" - var/total_organs = list("l_leg","r_leg","l_arm","r_arm","l_foot","r_foot","l_hand","r_hand","groin","chest","head") - for(var/organ in total_organs) - pref.rlimb_data[organ] = shell_prosthetic - for(var/organ in total_organs) - pref.organ_data[organ] = "cyborg" - - return TOPIC_REFRESH - else if(href_list["disabilities"]) var/disability_flag = text2num(href_list["disabilities"]) pref.disabilities ^= disability_flag diff --git a/code/modules/mob/living/carbon/human/species/station/machine_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/machine_subspecies.dm index 87568f7bcd1..57a99de20bd 100644 --- a/code/modules/mob/living/carbon/human/species/station/machine_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/machine_subspecies.dm @@ -2,6 +2,7 @@ name = "Shell Frame" short_name = "jak" name_plural = "Shells" + bodytype = "Human" burn_mod = 1.2 @@ -13,7 +14,7 @@ num_alternate_languages = 3 - icobase = 'icons/mob/human_races/robotic.dmi' + icobase = 'icons/mob/human_races/r_human.dmi' deform = 'icons/mob/human_races/robotic.dmi' eyes = "eyes_s" @@ -31,7 +32,22 @@ "Your synthetic flesh crawls in the heat, swelling into a disgusting morass of plastic." ) - appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_EYE_COLOR | HAS_SKIN_COLOR | HAS_FBP + appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_EYE_COLOR | HAS_FBP + + has_limbs = list( + "chest" = list("path" = /obj/item/organ/external/chest/shell), + "groin" = list("path" = /obj/item/organ/external/groin/shell), + "head" = list("path" = /obj/item/organ/external/head/shell), + "l_arm" = list("path" = /obj/item/organ/external/arm/shell), + "r_arm" = list("path" = /obj/item/organ/external/arm/right/shell), + "l_leg" = list("path" = /obj/item/organ/external/leg/shell), + "r_leg" = list("path" = /obj/item/organ/external/leg/right/shell), + "l_hand" = list("path" = /obj/item/organ/external/hand/shell), + "r_hand" = list("path" = /obj/item/organ/external/hand/right/shell), + "l_foot" = list("path" = /obj/item/organ/external/foot/shell), + "r_foot" = list("path" = /obj/item/organ/external/foot/right/shell) + ) + /datum/species/machine/shell/handle_post_spawn(var/mob/living/carbon/human/H) add_inherent_verbs(H) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 3e2021f600d..21da0ff97b0 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -61,28 +61,4 @@ var/global/datum/robolimb/basic_robolimb company = "Human Synthskin" desc = "This limb is designed to mimic the Human form. It does so with moderate success." icon = 'icons/mob/human_races/r_human.dmi' - species_can_use = list("Human") - -/datum/robolimb/unathi - company = "Unathi Synthskin" - desc = "This limb is designed to mimic the Unathi form. It does so with moderate success." - icon = 'icons/mob/human_races/r_lizard.dmi' - species_can_use = list("Unathi") - -/datum/robolimb/tajara - company = "Tajara Synthskin" - desc = "This limb is designed to mimic the Tajaran form. It does so with moderate success." - icon = 'icons/mob/human_races/r_tajaran.dmi' - species_can_use = list("Tajara","Zhan-Khaza","M'sai") - -/datum/robolimb/skrell - company = "Skrell Synthskin" - desc = "This limb is designed to mimic the Skrellian form. It does so with moderate success." - icon = 'icons/mob/human_races/r_skrell.dmi' - species_can_use = list("Skrell") - -/datum/robolimb/vaurca - company = "Vaurca Synthskin" - desc = "This limb is designed to mimic the Vaurcae form. It does so with moderate success." - icon = 'icons/mob/human_races/r_vaurca.dmi' - species_can_use = list("Vaurca Worker","Vaurca Warrior") \ No newline at end of file + species_can_use = list("Human") \ No newline at end of file diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index 1b4f73c353b..6d887146a1f 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -1,4 +1,6 @@ -// IPC limbs. +////////////// +// IPC limbs// +////////////// /obj/item/organ/external/head/ipc dislocated = -1 can_intake_reagents = 0 @@ -169,7 +171,9 @@ qdel(src) -//terminator organs +////////////// +//Terminator// +////////////// /obj/item/organ/mmi_holder/posibrain/terminator name = "brain" @@ -313,6 +317,10 @@ robotize("Hephaestus Vulcanite Limb") ..() +////////////// +//Industrial// +////////////// + /obj/item/organ/external/head/industrial dislocated = -1 can_intake_reagents = 0 @@ -384,4 +392,81 @@ dislocated = -1 /obj/item/organ/external/hand/right/industrial/New() robotize("Hephaestus Industrial Limb") + ..() + +/////////////// +//Shell limbs// +/////////////// + +/obj/item/organ/external/head/shell + dislocated = -1 + can_intake_reagents = 0 + vital = 0 + max_damage = 50 //made same as arm, since it is not vital + min_broken_damage = 30 + encased = null + +/obj/item/organ/external/head/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/chest/shell + dislocated = -1 + encased = null +/obj/item/organ/external/chest/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/groin/shell + dislocated = -1 +/obj/item/organ/external/groin/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/arm/shell + dislocated = -1 +/obj/item/organ/external/arm/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/arm/right/shell + dislocated = -1 +/obj/item/organ/external/arm/right/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/leg/shell + dislocated = -1 +/obj/item/organ/external/leg/shel/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/leg/right/shell + dislocated = -1 +/obj/item/organ/external/leg/right/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/foot/shell + dislocated = -1 +/obj/item/organ/external/foot/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/foot/right/shell + dislocated = -1 +/obj/item/organ/external/foot/right/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/hand/shell + dislocated = -1 +/obj/item/organ/external/hand/shell/New() + robotize("Human Synthskin") + ..() + +/obj/item/organ/external/hand/right/shell + dislocated = -1 +/obj/item/organ/external/hand/right/shell/New() + robotize("Human Synthskin") ..() \ No newline at end of file