Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds Polysmorph digitigrade leg option (and some other tweaks to the race) #9842

Merged
merged 8 commits into from Oct 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions code/__DEFINES/DNA.dm
Expand Up @@ -116,6 +116,8 @@
/// Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless.
#define MUTCOLORS_PARTSONLY 8
#define NOZOMBIE 9
/// If we want a race to have a standard color (for now this is only polysmorphs)
#define NOCOLORCHANGE 20
/// Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi)
#define DIGITIGRADE 10
#define NO_UNDERWEAR 11
Expand All @@ -126,7 +128,10 @@
#define NOFLASH 16
/// Use this if you want to change the race's color without the player being able to pick their own color. AKA special color shifting
#define DYNCOLORS 17
/// Forced genders
#define AGENDER 18
#define FGENDER 21
#define MGENDER 22
/// Do not draw eyes or eyeless overlay
#define NOEYESPRITES 19

Expand Down
11 changes: 9 additions & 2 deletions code/modules/client/preferences.dm
Expand Up @@ -208,7 +208,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<b>Name:</b> "
dat += "<a href='?_src_=prefs;preference=name;task=input'>[real_name]</a><BR>"

if(!(AGENDER in pref_species.species_traits))
if(FGENDER in pref_species.species_traits) //check for forced genders first like a smart person
gender = FEMALE
else if(AGENDER in pref_species.species_traits)
gender = PLURAL
else if(MGENDER in pref_species.species_traits)
gender = MALE
else
var/dispGender
if(gender == MALE)
dispGender = "Male"
Expand All @@ -217,6 +223,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
dispGender = "Other"
dat += "<b>Gender:</b> <a href='?_src_=prefs;preference=gender'>[dispGender]</a><BR>"

dat += "<b>Age:</b> <a href='?_src_=prefs;preference=age;task=input'>[age]</a><BR>"

dat += "<b>Special Names:</b><BR>"
Expand Down Expand Up @@ -266,7 +273,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<a href='?_src_=prefs;preference=s_tone;task=input'>[skin_tone]</a><BR>"

var/mutant_colors
if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits))
if((MUTCOLORS in pref_species.species_traits && ((NOCOLORCHANGE in pref_species.species_traits) == FALSE)) || (MUTCOLORS_PARTSONLY in pref_species.species_traits))

if(!use_skintones)
dat += APPEARANCE_CATEGORY_COLUMN
Expand Down
4 changes: 0 additions & 4 deletions code/modules/mob/dead/new_player/sprite_accessories.dm
Expand Up @@ -1932,10 +1932,6 @@
name = "Medium"
icon_state = "medium"

/datum/sprite_accessory/plasma_vessels/large
name = "Large"
icon_state = "large"

/datum/sprite_accessory/teeth
icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = null
Expand Down
4 changes: 4 additions & 0 deletions code/modules/mob/living/carbon/human/species.dm
Expand Up @@ -269,6 +269,10 @@ GLOBAL_LIST_EMPTY(roundstart_races)
// Drop the items the new species can't wear
if((AGENDER in species_traits))
C.gender = PLURAL
if((FGENDER in species_traits))
C.gender = FEMALE
if((MGENDER in species_traits))
C.gender = MALE
for(var/slot_id in no_equip)
var/obj/item/thing = C.get_item_by_slot(slot_id)
if(thing && (!thing.species_exception || !is_type_in_list(src,thing.species_exception)))
Expand Down
Expand Up @@ -2,7 +2,6 @@
//Human xenopmorph hybrid
name = "Polysmorph"
id = "polysmorph"
sexes = 0
exotic_blood = /datum/reagent/polysmorphblood
meat = /obj/item/reagent_containers/food/snacks/meat/slab/xeno
liked_food = GROSS | MEAT
Expand All @@ -16,14 +15,15 @@
damage_overlay_type = "polysmorph"
deathsound = 'sound/voice/hiss6.ogg'
screamsound = 'sound/voice/hiss5.ogg'
species_traits = list(NOEYESPRITES, AGENDER)
species_traits = list(NOEYESPRITES, FGENDER, MUTCOLORS, NOCOLORCHANGE)
inherent_traits = list(TRAIT_THERMAL_VISION)
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
mutant_bodyparts = list("tail_polysmorph", "plasma_vessels", "dome", "dorsal_tubes", "teeth")
default_features = list("tail_polysmorph" = "Polys", "plasma_vessels" = "None", "dome" = "None", "dorsal_tubes" = "No", "teeth" = "None")
fixed_mut_color = "444466" //don't mess with this if you don't feel like manually adjusting the mutant bodypart sprites
mutant_bodyparts = list("tail_polysmorph", "plasma_vessels", "dome", "dorsal_tubes", "teeth", "legs")
default_features = list("tail_polysmorph" = "Polys", "plasma_vessels" = "None", "dome" = "None", "dorsal_tubes" = "No", "teeth" = "None", "legs" = "Normal Legs")
mutanttongue = /obj/item/organ/tongue/polysmorph
mutanttail = /obj/item/organ/tail/polysmorph
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
Expand Down
5 changes: 4 additions & 1 deletion code/modules/mob/living/carbon/human/update_icons.dm
Expand Up @@ -591,7 +591,10 @@ generate/load female uniform sprites matching all previously decided variables
else
. += "-robotic"
if(BP.use_digitigrade)
. += "-digitigrade[BP.use_digitigrade]"
if("[dna.species]" == "polysmorph")
. += "-pdigitigrade[BP.use_digitigrade]"
else
. += "-digitigrade[BP.use_digitigrade]"
if(BP.dmg_overlay_type)
. += "-[BP.dmg_overlay_type]"

Expand Down
5 changes: 4 additions & 1 deletion code/modules/surgery/bodyparts/bodyparts.dm
Expand Up @@ -402,7 +402,10 @@
if(should_draw_gender)
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
else if(use_digitigrade)
limb.icon_state = "digitigrade_[use_digitigrade]_[body_zone]"
if("[species_id]" == "polysmorph")
limb.icon_state = "pdigitigrade_[use_digitigrade]_[body_zone]"
else
limb.icon_state = "digitigrade_[use_digitigrade]_[body_zone]"
else
limb.icon_state = "[species_id]_[body_zone]"
else
Expand Down
Binary file modified icons/mob/human_parts.dmi
Binary file not shown.
Binary file modified icons/mob/human_parts_greyscale.dmi
Binary file not shown.
Binary file modified icons/mob/mutant_bodyparts.dmi
Binary file not shown.