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

add: Cosmetic Wryn Update: Resprite and Character Setup Update #6168

Merged
merged 46 commits into from
Dec 30, 2024
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
77d8ee3
Wryn body, tail and antannae resprite
oi98 Nov 9, 2024
5e85dbf
New tail sprite
oi98 Nov 9, 2024
dc1ccd9
Added test hair
oi98 Nov 9, 2024
97d7b64
Merge branch 'ss220-space:master220' into Wryn_Resprite_and_More
oi98 Nov 10, 2024
63517e9
New hair styles for Wryn
oi98 Nov 10, 2024
5a7c460
Merge branch 'Wryn_Resprite_and_More' of https://github.com/oi98/Vita…
oi98 Nov 10, 2024
0096270
Small fixes for new resprite
oi98 Nov 10, 2024
6a6b461
fixed new wryn hair
oi98 Nov 10, 2024
5382168
minor sprite changes + comments
oi98 Nov 11, 2024
4232347
new customization element for wryn
oi98 Nov 11, 2024
08dab3f
Merge branch 'ss220-space:master220' into Wryn_Resprite_and_More
oi98 Nov 12, 2024
6bb05f1
Small updates and changes
oi98 Nov 12, 2024
31301d3
final touches
oi98 Nov 12, 2024
8c18a2d
Light changes
oi98 Nov 16, 2024
9092d2e
tweak bullshit
oi98 Nov 16, 2024
9009e03
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 18, 2024
47b5f80
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 18, 2024
f9fbe2a
Update wryn.dm
oi98 Nov 18, 2024
2893e5c
fix #1
oi98 Nov 18, 2024
604fdc5
contibutor fix
oi98 Nov 21, 2024
1b08aad
final final touches fixes
oi98 Nov 23, 2024
2513221
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 23, 2024
a211149
доработка
Antoonij Nov 23, 2024
d3047b9
доработка x2
Antoonij Nov 23, 2024
7707b5a
fix
Antoonij Nov 23, 2024
b59203e
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 24, 2024
14796a5
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 25, 2024
7dd35c8
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Nov 28, 2024
11d1bd6
Hair path cleared
oi98 Nov 30, 2024
18f34d1
fix
oi98 Nov 30, 2024
e645140
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 2, 2024
e4079d2
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 6, 2024
c0c05bc
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 7, 2024
ded00d4
доработка x10
Antoonij Dec 10, 2024
3862fbd
error fix
Antoonij Dec 10, 2024
b7bad5e
fix x2
Antoonij Dec 10, 2024
793d524
fix x3
Antoonij Dec 10, 2024
5e5593a
Update code/__HELPERS/mobs.dm
Antoonij Dec 10, 2024
2ca245b
may be better
Antoonij Dec 10, 2024
9e39cbb
Update code/__HELPERS/mobs.dm
Antoonij Dec 10, 2024
5b66b77
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 11, 2024
e95a821
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 13, 2024
dbec891
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 14, 2024
6dc4a1b
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 18, 2024
0617a3e
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 22, 2024
aed9c0f
Merge branch 'master220' into Wryn_Resprite_and_More
oi98 Dec 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1200,3 +1200,6 @@
/// Source: /mob/living/simple_animal/borer, listening in datum/antagonist/borer
#define COMSIG_BORER_ENTERED_HOST "borer_on_enter" // when borer entered host
#define COMSIG_BORER_LEFT_HOST "borer_on_leave" // when borer left host

/// Source: /proc/random_hair_style (mob/living/carbon/human/human, valid_hairstyles, h_style, robohead)
#define COMSIG_RANDOM_HAIR_STYLE "random_hair_style"
49 changes: 23 additions & 26 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,41 +46,38 @@

return pick(valid_picks)

/proc/random_hair_style(gender, species = SPECIES_HUMAN, datum/robolimb/robohead, mob/living/carbon/human/H)
/proc/random_hair_style(
gender,
species = SPECIES_HUMAN,
datum/robolimb/robohead = GLOB.all_robolimbs["Morpheus Cyberkinetics"],
mob/living/carbon/human/human
)
var/h_style = "Bald"
var/list/valid_hairstyles = list()

if(species == SPECIES_WRYN) // wryns antennaes now bound to hivenode, no need to change them
if(H)
var/obj/item/organ/external/head/head_organ = H.get_organ(BODY_ZONE_HEAD)
if(head_organ?.h_style)
return head_organ.h_style
else
return "Antennae"

for(var/hairstyle in GLOB.hair_styles_public_list)
var/datum/sprite_accessory/S = GLOB.hair_styles_public_list[hairstyle]
var/datum/sprite_accessory/style = GLOB.hair_styles_public_list[hairstyle]

if(hairstyle == "Bald") //Just in case.
valid_hairstyles += hairstyle
if(!LAZYIN(style.species_allowed, species))
continue
if(gender == S.unsuitable_gender)

if(gender == style.unsuitable_gender)
continue
if(species == SPECIES_MACNINEPERSON) //If the user is a species who can have a robotic head...
if(!robohead)
robohead = GLOB.all_robolimbs["Morpheus Cyberkinetics"]
if((species in S.species_allowed) && robohead.is_monitor && ((S.models_allowed && (robohead.company in S.models_allowed)) || !S.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list.
valid_hairstyles += hairstyle //Give them their hairstyles if they do.

if(species == SPECIES_MACHINEPERSON)

Check failure on line 67 in code/__HELPERS/mobs.dm

View workflow job for this annotation

GitHub Actions / Run Linters

undefined var: "SPECIES_MACHINEPERSON"
Antoonij marked this conversation as resolved.
Show resolved Hide resolved
if(robohead.is_monitor && ((style.models_allowed && (robohead.company in style.models_allowed)) || !style.models_allowed))
LAZYADD(valid_hairstyles, hairstyle)

else
if(!robohead.is_monitor && (SPECIES_HUMAN in S.species_allowed)) /*If the hairstyle is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it.
But if the user has a robotic humanoid head and the hairstyle can fit humans, let them use it as a wig. */
valid_hairstyles += hairstyle
else //If the user is not a species who can have robotic heads, use the default handling.
if(species in S.species_allowed) //If the user's head is of a species the hairstyle allows, add it to the list.
valid_hairstyles += hairstyle
if(!robohead.is_monitor && (SPECIES_HUMAN in style.species_allowed)) // Let use them as wigs
LAZYADD(valid_hairstyles, hairstyle)

LAZYADD(valid_hairstyles, hairstyle)

h_style = safepick(valid_hairstyles)

if(valid_hairstyles.len)
h_style = pick(valid_hairstyles)
if(human)
SEND_SIGNAL(human, COMSIG_RANDOM_HAIR_STYLE, valid_hairstyles, h_style, robohead)

return h_style

Expand Down
2 changes: 1 addition & 1 deletion code/modules/client/preference/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1994,7 +1994,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts


if("facial")
if(species in list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_MACNINEPERSON, SPECIES_VULPKANIN, SPECIES_VOX)) //Species that have facial hair. (No HAS_HAIR_FACIAL flag)
if(species in list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_MACNINEPERSON, SPECIES_VULPKANIN, SPECIES_VOX, SPECIES_WRYN)) //Species that have facial hair. (No HAS_HAIR_FACIAL flag)
var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", f_colour) as color|null
if(new_facial)
f_colour = new_facial
Expand Down
19 changes: 17 additions & 2 deletions code/modules/mob/living/carbon/human/body_accessories.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,24 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list())
allowed_species = list(SPECIES_VULPKANIN)

//Wryn
/datum/body_accessory/tail/wryn
/datum/body_accessory/tail/bee
name = "Bee Tail"
icon_state = "wryntail"
icon_state = "beetail"
allowed_species = list(SPECIES_WRYN)

/datum/body_accessory/tail/roach
name = "Cockroach Tail"
icon_state = "roachtail"
allowed_species = list(SPECIES_WRYN)

/datum/body_accessory/tail/wasp
name = "Wasp Tail"
icon_state = "wasptail"
allowed_species = list(SPECIES_WRYN)

/datum/body_accessory/tail/wasper
name = "Wasper Tail"
icon_state = "waspertail"
allowed_species = list(SPECIES_WRYN)

//Nian
Expand Down
28 changes: 15 additions & 13 deletions code/modules/mob/living/carbon/human/species/machine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -102,32 +102,34 @@
JOB_MIN_AGE_COMMAND = 15,
)

/datum/species/machine/on_species_gain(mob/living/carbon/human/H)
/datum/species/machine/on_species_gain(mob/living/carbon/human/human)
. = ..()
var/datum/action/innate/change_monitor/monitor = locate() in H.actions
var/datum/action/innate/change_monitor/monitor = locate() in human.actions

if(!monitor)
monitor = new
monitor.Grant(H)
monitor = new()
monitor.Grant(H)
monitor.Grant(human)

var/datum/atom_hud/data/human/medical/advanced/medhud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
medhud.remove_from_hud(H)
add_verb(H, list(
medhud.remove_from_hud(human)

add_verb(human, list(
/mob/living/carbon/human/proc/emote_ping,
/mob/living/carbon/human/proc/emote_beep,
/mob/living/carbon/human/proc/emote_buzz,
/mob/living/carbon/human/proc/emote_buzz2,
/mob/living/carbon/human/proc/emote_yes,
/mob/living/carbon/human/proc/emote_no))


/datum/species/machine/on_species_loss(mob/living/carbon/human/H)
/datum/species/machine/on_species_loss(mob/living/carbon/human/human)
. = ..()
var/datum/action/innate/change_monitor/monitor = locate() in H.actions
monitor?.Remove(H)
var/datum/action/innate/change_monitor/monitor = locate() in human.actions
monitor?.Remove(human)

var/datum/atom_hud/data/human/medical/advanced/medhud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
medhud.add_to_hud(H)
remove_verb(H, list(
medhud.add_to_hud(human)

remove_verb(human, list(
/mob/living/carbon/human/proc/emote_ping,
/mob/living/carbon/human/proc/emote_beep,
/mob/living/carbon/human/proc/emote_buzz,
Expand Down
15 changes: 7 additions & 8 deletions code/modules/mob/living/carbon/human/species/wryn.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
deform = 'icons/mob/human_races/r_wryn.dmi'
blacklisted = TRUE
tail = "wryntail"
eyes = "wryn_eyes_s"
punchdamagelow = 0
punchdamagehigh = 1
speed_mod = 1
Expand Down Expand Up @@ -60,7 +61,7 @@
TRAIT_NO_SCAN,
)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_SKIN_COLOR
bodyflags = HAS_SKIN_COLOR | HAS_BODY_ACCESSORY

dies_at_threshold = TRUE

Expand All @@ -70,8 +71,10 @@
blood_color = "#FFFF99"
blood_species = "Wryn"
//Default styles for created mobs.
default_hair = "Antennae"

default_hair = "Normal antennae"
default_fhair = "Default mane"
default_bodyacc = "Bee Tail"
default_fhair_colour = "#704300"
age_sheet = list(
SPECIES_AGE_MIN = 15,
SPECIES_AGE_MAX = 55,
Expand All @@ -93,14 +96,10 @@

/datum/species/wryn/after_equip_job(datum/job/J, mob/living/carbon/human/H)
var/comb_deafness = H.client.prefs.speciesprefs

if(comb_deafness)
var/obj/item/organ/internal/wryn/hivenode/node = H.get_int_organ(/obj/item/organ/internal/wryn/hivenode)
node.remove(H)
qdel(node)
else
var/obj/item/organ/external/head/head_organ = H.get_organ(BODY_ZONE_HEAD)
head_organ.h_style = "Antennae"
H.update_hair()

/* Wryn Sting Action Begin */

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/datum/sprite_accessory/facial_hair/wryn
icon = 'icons/mob/sprite_accessories/wryn/wryn_facial_hair.dmi'
species_allowed = list(SPECIES_WRYN)
unsuitable_gender = null
over_hair = TRUE

/datum/sprite_accessory/facial_hair/wryn/default
name = "Default mane"
icon_state = "default"

/datum/sprite_accessory/facial_hair/wryn/fluff
name = "Fluff mane"
icon_state = "fluff"

/datum/sprite_accessory/facial_hair/wryn/sharp
name = "Sharp mane"
icon_state = "sharp"

/datum/sprite_accessory/facial_hair/wryn/square
name = "Square mane"
icon_state = "square"

/datum/sprite_accessory/facial_hair/wryn/round
name = "Round mane"
icon_state = "round"
36 changes: 36 additions & 0 deletions code/modules/mob/new_player/sprite_accessories/wryn/wryn_hair.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/datum/sprite_accessory/hair/wryn
icon = 'icons/mob/sprite_accessories/wryn/wryn_head_accessories.dmi'
species_allowed = list(SPECIES_WRYN)
glasses_over = 1

/datum/sprite_accessory/hair/wryn/default
name = "Normal antennae"
icon_state = "antennae"

/datum/sprite_accessory/hair/wryn/curvy
name = "Curvy antennae"
icon_state = "curvy"

/datum/sprite_accessory/hair/wryn/nian
name = "Nian antennae"
icon_state = "moth"

/datum/sprite_accessory/hair/wryn/perky
name = "Perky antennae"
icon_state = "perky"

/datum/sprite_accessory/hair/wryn/sweep
name = "Sweep antennae"
icon_state = "sweep"

/datum/sprite_accessory/hair/wryn/short
name = "Short antennae"
icon_state = "short"

/datum/sprite_accessory/hair/wryn/long
name = "Long antennae"
icon_state = "long"

/datum/sprite_accessory/hair/wryn/long
name = "Low Long antennae"
icon_state = "low_long"
4 changes: 2 additions & 2 deletions code/modules/reagents/chemistry/reagents/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/head/head_organ = H.get_organ(BODY_ZONE_HEAD)
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name, H = H)
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name, human = H)
head_organ.f_style = random_facial_hair_style(H.gender, head_organ.dna.species.name)
H.update_hair()
H.update_fhair()
Expand All @@ -380,7 +380,7 @@
if(head_organ.dna.species.name in tmp_hair_style.species_allowed) //If 'Very Long Hair' is a style the person's species can have, give it to them.
head_organ.h_style = "Very Long Hair"
else //Otherwise, give them a random hair style.
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name, H = H)
head_organ.h_style = random_hair_style(H.gender, head_organ.dna.species.name, human = H)
if(head_organ.dna.species.name in tmp_facial_hair_style.species_allowed) //If 'Very Long Beard' is a style the person's species can have, give it to them.
head_organ.f_style = "Very Long Beard"
else //Otherwise, give them a random facial hair style.
Expand Down
41 changes: 27 additions & 14 deletions code/modules/surgery/organs/subtypes/wryn.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,42 @@
/obj/item/organ/internal/wryn/hivenode
species_type = /datum/species/wryn
name = "antennae"
icon = 'icons/mob/human_races/r_wryn.dmi'
icon = 'icons/obj/species_organs/wryn.dmi'
icon_state = "antennae"
parent_organ_zone = BODY_ZONE_HEAD
slot = INTERNAL_ORGAN_HIVENODE
/// Stored hair style, defines only on creation and changes original h_style when inserted
var/hair_style = "Normal antennae"

/obj/item/organ/internal/wryn/hivenode/insert(mob/living/carbon/human/M, special = ORGAN_MANIPULATION_DEFAULT)
..()
M.add_language(LANGUAGE_WRYN)
var/obj/item/organ/external/head/head_organ = M.get_organ(BODY_ZONE_HEAD)
head_organ.h_style = "Antennae"
M.update_hair()

/obj/item/organ/internal/wryn/hivenode/remove(mob/living/carbon/human/M, special = ORGAN_MANIPULATION_DEFAULT)
M.remove_language(LANGUAGE_WRYN)
var/obj/item/organ/external/head/head_organ = M.get_organ(BODY_ZONE_HEAD)
head_organ.h_style = "Bald"
M.update_hair()
/obj/item/organ/internal/wryn/hivenode/New(mob/living/carbon/carbon)
if(istype(carbon))
var/obj/item/organ/external/head/head_organ = carbon.get_organ(BODY_ZONE_HEAD)
hair_style = head_organ.h_style

return ..(carbon)

/obj/item/organ/internal/wryn/hivenode/insert(mob/living/carbon/human/human, special = ORGAN_MANIPULATION_DEFAULT)
. = ..()
human.add_language(LANGUAGE_WRYN)
var/obj/item/organ/external/head/head_organ = human.get_organ(BODY_ZONE_HEAD)

head_organ.h_style = hair_style
human.update_hair()

/obj/item/organ/internal/wryn/hivenode/remove(mob/living/carbon/human/human, special = ORGAN_MANIPULATION_DEFAULT)
human.remove_language(LANGUAGE_WRYN)
var/obj/item/organ/external/head/head_organ = human.get_organ(BODY_ZONE_HEAD)

head_organ.h_style = "Bald"
human.update_hair()

return ..()

/obj/item/organ/internal/wryn/glands
species_type = /datum/species/wryn
name = "wryn wax glands"
icon_state = "eggsac"
icon = 'icons/obj/species_organs/wryn.dmi'
icon_state = "waxsac"
parent_organ_zone = BODY_ZONE_PRECISE_MOUTH
slot = INTERNAL_ORGAN_WAX_GLANDS
var/datum/action/innate/honeycomb/honeycomb = new
Expand Down
Binary file modified icons/mob/clothing/body_accessory.dmi
Binary file not shown.
Binary file modified icons/mob/human_face.dmi
Binary file not shown.
Binary file modified icons/mob/human_races/r_wryn.dmi
Binary file not shown.
Binary file removed icons/mob/sprite_accessories/wryn/wryn_face.dmi
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added icons/obj/species_organs/wryn.dmi
Binary file not shown.
3 changes: 2 additions & 1 deletion paradise.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2738,7 +2738,8 @@
#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm"
#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm"
#include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm"
#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm"
#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_hair.dm"
#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_facial_hair.dm"
#include "code\modules\movespeed\_movespeed_modifier.dm"
#include "code\modules\movespeed\modifiers\components.dm"
#include "code\modules\movespeed\modifiers\innate.dm"
Expand Down
Loading