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.
This commit is contained in:
LordFowl
2017-01-12 16:13:28 -05:00
committed by skull132
parent 9d3556283e
commit e2442c27f4
4 changed files with 107 additions and 69 deletions

View File

@@ -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: <a href='?src=\ref[src];skin_tone=1'>[-pref.s_tone + 35]/220</a><br>"
. += "Needs Glasses: <a href='?src=\ref[src];disabilities=[NEARSIGHTED]'><b>[pref.disabilities & NEARSIGHTED ? "Yes" : "No"]</b></a><br>"
if(has_flag(mob_species, HAS_FBP))
. += "Shell Type: <a href='?src=\ref[src];shell=1'>Shellect</a><br>"
else
if(!(has_flag(mob_species, HAS_FBP)))
. += "Limbs: <a href='?src=\ref[src];limbs=1'>Adjust</a><br>"
. += "Internal Organs: <a href='?src=\ref[src];organs=1'>Adjust</a><br>"
. += "Prosthesis/Amputations: <a href='?src=\ref[src];reset_organs=1'>Reset</a><br>"
@@ -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

View File

@@ -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)

View File

@@ -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")
species_can_use = list("Human")

View File

@@ -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")
..()