Skip to content

Commit

Permalink
imageadd: Tajaran body resprite. && add: New tajaran haircuts. (#5676)…
Browse files Browse the repository at this point in the history
… [testmerge][384dc36]

commit 384dc36
Merge: d3286a7 f26faef
Author: Aziz Chynaliev <[email protected]>
Date:   Tue Sep 17 22:11:54 2024 +0600

    Merge branch 'master220' into hot-tajaran-sex-under-the-shower

commit d3286a7
Author: Daeberdir <[email protected]>
Date:   Thu Sep 12 03:46:32 2024 +0300

    Final corrections. I hope.

commit d2de70f
Author: Daeberdir <[email protected]>
Date:   Wed Sep 11 20:11:17 2024 +0300

    Update body_accessory.dmi

commit 1f281e6
Merge: dd92838 c9ee220
Author: Daeberdir <[email protected]>
Date:   Wed Sep 11 20:11:08 2024 +0300

    Merge remote-tracking branch 'upstream/master220' into hot-tajaran-sex-under-the-shower

commit dd92838
Author: Daeberdir <[email protected]>
Date:   Wed Sep 11 19:55:29 2024 +0300

    And new tail done.

commit 5cdd09c
Author: Daeberdir <[email protected]>
Date:   Fri Aug 9 21:49:59 2024 +0300

    Tail and stripes fixes.

commit 4c35287
Merge: 707722a d28caea
Author: Daeberdir <[email protected]>
Date:   Fri Aug 9 21:45:57 2024 +0300

    Merge remote-tracking branch 'upstream/master220' into hot-tajaran-sex-under-the-shower

commit 707722a
Merge: fa0a4d0 fbcc934
Author: Daeberdir <[email protected]>
Date:   Thu Aug 8 02:02:48 2024 +0300

    Merge remote-tracking branch 'upstream/master220' into hot-tajaran-sex-under-the-shower

commit fa0a4d0
Author: Daeberdir <[email protected]>
Date:   Thu Aug 8 02:02:26 2024 +0300

    2/2

commit 6d08674
Author: Daeberdir <[email protected]>
Date:   Wed Jul 31 07:30:47 2024 +0300

    1/2
  • Loading branch information
Bizzonium committed Sep 29, 2024
1 parent a3fe014 commit 368679c
Show file tree
Hide file tree
Showing 29 changed files with 373 additions and 199 deletions.
16 changes: 9 additions & 7 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

return pick(valid_picks)

/proc/random_hair_style(var/gender, species = SPECIES_HUMAN, var/datum/robolimb/robohead, var/mob/living/carbon/human/H)
/proc/random_hair_style(gender, species = SPECIES_HUMAN, datum/robolimb/robohead, mob/living/carbon/human/H)
var/h_style = "Bald"
var/list/valid_hairstyles = list()

Expand All @@ -64,7 +64,7 @@
if(hairstyle == "Bald") //Just in case.
valid_hairstyles += hairstyle
continue
if((gender == MALE && S.gender == FEMALE) || (gender == FEMALE && S.gender == MALE))
if(gender == S.unsuitable_gender)
continue
if(species == SPECIES_MACNINEPERSON) //If the user is a species who can have a robotic head...
if(!robohead)
Expand All @@ -84,7 +84,7 @@

return h_style

/proc/random_facial_hair_style(var/gender, species = SPECIES_HUMAN, var/datum/robolimb/robohead)
/proc/random_facial_hair_style(gender, species = SPECIES_HUMAN, datum/robolimb/robohead)
var/f_style = "Shaved"
var/list/valid_facial_hairstyles = list()
for(var/facialhairstyle in GLOB.facial_hair_styles_list)
Expand All @@ -93,7 +93,7 @@
if(facialhairstyle == "Shaved") //Just in case.
valid_facial_hairstyles += facialhairstyle
continue
if((gender == MALE && S.gender == FEMALE) || (gender == FEMALE && S.gender == MALE))
if(gender == S.unsuitable_gender)
continue
if(species == SPECIES_MACNINEPERSON) //If the user is a species who can have a robotic head...
if(!robohead)
Expand Down Expand Up @@ -128,17 +128,19 @@

return ha_style

/proc/random_marking_style(var/location = "body", species = SPECIES_HUMAN, var/datum/robolimb/robohead, var/body_accessory, var/alt_head)
/proc/random_marking_style(location = "body", species = SPECIES_HUMAN, datum/robolimb/robohead, body_accessory, alt_head, gender = NEUTER)
var/m_style = "None"
var/list/valid_markings = list()
for(var/marking in GLOB.marking_styles_list)
var/datum/sprite_accessory/body_markings/S = GLOB.marking_styles_list[marking]
if(S.name == "None")
valid_markings += marking
continue
if(S.marking_location != location) //If the marking isn't for the location we desire, skip.
if(S.marking_location != location) // If the marking isn't for the location we desire, skip.
continue
if(!(species in S.species_allowed)) //If the user's head is not of a species the marking style allows, skip it. Otherwise, add it to the list.
if(gender == S.unsuitable_gender) // If the marking isn't allowed for the user's gender, skip.
continue
if(!(species in S.species_allowed)) // If the user's head is not of a species the marking style allows, skip it. Otherwise, add it to the list.
continue
if(location == "tail")
if(!body_accessory)
Expand Down
32 changes: 18 additions & 14 deletions code/modules/client/preference/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1573,7 +1573,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
m_colours["head"] = rand_hex_color()
if("m_style_body")
if(S.bodyflags & HAS_BODY_MARKINGS) //Species with body markings.
m_styles["body"] = random_marking_style("body", species)
m_styles["body"] = random_marking_style("body", species, gender = src.gender)
if("m_body_colour")
if(S.bodyflags & HAS_BODY_MARKINGS) //Species with body markings.
m_colours["body"] = rand_hex_color()
Expand Down Expand Up @@ -1663,7 +1663,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
m_colours["head"] = "#000000"

if(NS.bodyflags & HAS_BODY_MARKINGS) //Species with body markings/tattoos.
m_styles["body"] = random_marking_style("body", species)
m_styles["body"] = random_marking_style("body", species, gender = src.gender)
else
m_styles["body"] = "None"
m_colours["body"] = "#000000"
Expand Down Expand Up @@ -1920,6 +1920,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
valid_markings["None"] = GLOB.marking_styles_list["None"]
for(var/markingstyle in GLOB.marking_styles_list)
var/datum/sprite_accessory/M = GLOB.marking_styles_list[markingstyle]
if(gender == M.unsuitable_gender)
continue
if(!(species in M.species_allowed))
continue
if(M.marking_location != "body")
Expand Down Expand Up @@ -2010,9 +2012,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
if(facialhairstyle == "Shaved") //Just in case.
valid_facial_hairstyles += facialhairstyle
continue
if(gender == MALE && SA.gender == FEMALE)
continue
if(gender == FEMALE && SA.gender == MALE)
if(gender == SA.unsuitable_gender)
continue
if(S.bodyflags & ALL_RPARTS) //Species that can use prosthetic heads.
var/head_model
Expand All @@ -2039,9 +2039,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
var/list/valid_underwear = list()
for(var/underwear in GLOB.underwear_list)
var/datum/sprite_accessory/SA = GLOB.underwear_list[underwear]
if(gender == MALE && SA.gender == FEMALE)
continue
if(gender == FEMALE && SA.gender == MALE)
if(gender == SA.unsuitable_gender)
continue
if(!(species in SA.species_allowed))
continue
Expand All @@ -2061,9 +2059,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
var/list/valid_undershirts = list()
for(var/undershirt in GLOB.undershirt_list)
var/datum/sprite_accessory/SA = GLOB.undershirt_list[undershirt]
if(gender == MALE && SA.gender == FEMALE)
continue
if(gender == FEMALE && SA.gender == MALE)
if(gender == MALE && SA.unsuitable_gender)
continue
if(!(species in SA.species_allowed))
continue
Expand All @@ -2083,9 +2079,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
var/list/valid_sockstyles = list()
for(var/sockstyle in GLOB.socks_list)
var/datum/sprite_accessory/SA = GLOB.socks_list[sockstyle]
if(gender == MALE && SA.gender == FEMALE)
continue
if(gender == FEMALE && SA.gender == MALE)
if(gender == SA.unsuitable_gender)
continue
if(!(species in SA.species_allowed))
continue
Expand Down Expand Up @@ -2394,6 +2388,16 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts
gender = FEMALE
else
gender = MALE

var/datum/robolimb/robohead
if(S.bodyflags & ALL_RPARTS)
var/head_model = "[!rlimb_data["head"] ? "Morpheus Cyberkinetics" : rlimb_data["head"]]"
robohead = GLOB.all_robolimbs[head_model]

h_style = random_hair_style(gender, species, robohead)
f_style = random_facial_hair_style(gender, species, robohead)

m_styles["body"] = random_marking_style("body", species, gender = src.gender)
underwear = random_underwear(gender)

if("hear_adminhelps")
Expand Down
23 changes: 15 additions & 8 deletions code/modules/mob/living/carbon/human/appearance.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,18 @@
gender = new_gender

var/datum/sprite_accessory/hair/current_hair = GLOB.hair_styles_full_list[H.h_style]
if(current_hair.gender != NEUTER && current_hair.gender != gender)
if(current_hair.unsuitable_gender == gender)
reset_head_hair()

var/datum/sprite_accessory/hair/current_fhair = GLOB.facial_hair_styles_list[H.f_style]
if(current_fhair.gender != NEUTER && current_fhair.gender != gender)
if(current_fhair.unsuitable_gender == gender)
reset_facial_hair()

var/body_marking = m_styles["body"]
var/datum/sprite_accessory/current_bmarking = GLOB.marking_styles_list[body_marking]
if(current_bmarking.unsuitable_gender == gender)
reset_markings("body")

if(update_dna)
update_dna()
sync_organ_dna(assimilate = 0)
Expand Down Expand Up @@ -378,7 +383,7 @@
if(hairstyle == "Bald") //Just in case.
valid_hairstyles += hairstyle
continue
if((H.gender == MALE && S.gender == FEMALE) || (H.gender == FEMALE && S.gender == MALE))
if(H.gender == S.unsuitable_gender)
continue
if(H.dna.species.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head...
var/datum/robolimb/robohead = GLOB.all_robolimbs[H.model]
Expand Down Expand Up @@ -406,7 +411,7 @@
if(facialhairstyle == "Shaved") //Just in case.
valid_facial_hairstyles += facialhairstyle
continue
if((H.gender == MALE && S.gender == FEMALE) || (H.gender == FEMALE && S.gender == MALE))
if(H.gender == S.unsuitable_gender)
continue
if(H.dna.species.bodyflags & ALL_RPARTS) //If the user is a species who can have a robotic head...
var/datum/robolimb/robohead = GLOB.all_robolimbs[H.model]
Expand Down Expand Up @@ -438,7 +443,7 @@

return sortTim(valid_head_accessories, cmp = /proc/cmp_text_asc)

/mob/living/carbon/human/proc/generate_valid_markings(var/location = "body")
/mob/living/carbon/human/proc/generate_valid_markings(location = "body")
var/list/valid_markings = new()
var/obj/item/organ/external/head/H = get_organ(BODY_ZONE_HEAD)
var/obj/item/organ/external/tail/bodypart_tail = get_organ(BODY_ZONE_TAIL)
Expand All @@ -452,7 +457,11 @@
if(S.name == "None")
valid_markings += marking
continue
if(S.marking_location != location) //If the marking isn't for the location we desire, skip.
if(S.marking_location != location) //If the marking isn't for the location we desire, skip.
continue
if(gender == S.unsuitable_gender) // If the marking isn't allowed for the user's gender, skip.
continue
if(!(dna.species.name in S.species_allowed)) //If the user is not of a species the marking style allows, skip it. Otherwise, add it to the list.
continue
if(location == "tail")
if(!(bodypart_tail.dna.species.name in S.species_allowed)) //If the user is not of a species the marking style allows, skip it. Otherwise, add it to the list.
Expand All @@ -463,8 +472,6 @@
else
if(!S.tails_allowed || !(bodypart_tail.body_accessory.name in S.tails_allowed))
continue
else if(!(dna.species.name in S.species_allowed)) //If the user is not of a species the marking style allows, skip it. Otherwise, add it to the list.
continue
if(location == "head")
var/datum/sprite_accessory/body_markings/head/M = GLOB.marking_styles_list[S.name]
if(H.dna.species.bodyflags & ALL_RPARTS) //If the user is a species that can have a robotic head...
Expand Down
6 changes: 0 additions & 6 deletions code/modules/mob/living/carbon/human/body_accessories.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,6 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list())
return ..()

//Tajaran
/datum/body_accessory/tail/wingler_tail // Jay wingler fluff tail
name = "Striped Tail"
icon_state = "winglertail"
animated_icon_state = "winglertail_a"
allowed_species = list(SPECIES_TAJARAN)

/datum/body_accessory/tail/leopard_tail
name = "Leopard Tail"
icon_state = "leopard"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/new_player/preferences_setup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
m_styles["head"] = random_marking_style("head", species, robohead, null, alt_head)
m_colours["head"] = randomize_skin_color(1)
if(S.bodyflags & HAS_BODY_MARKINGS)
m_styles["body"] = random_marking_style("body", species)
m_styles["body"] = random_marking_style("body", species, gender = src.gender)
m_colours["body"] = randomize_skin_color(1)
if(S.bodyflags & HAS_TAIL_MARKINGS) //Species with tail markings.
m_styles["tail"] = random_marking_style("tail", species, null, body_accessory)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
icon = 'icons/mob/human_face.dmi' // Special case, use the bald icon in human face
name = "Shaved"
icon_state = "bald"
gender = NEUTER
unsuitable_gender = NONE
species_allowed = list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_VOX, SPECIES_DIONA, SPECIES_KIDAN, SPECIES_GREY, SPECIES_VULPKANIN, SPECIES_SLIMEPERSON)

/datum/sprite_accessory/facial_hair/watson
Expand Down
Loading

0 comments on commit 368679c

Please sign in to comment.