more work

This commit is contained in:
Metis
2024-09-13 01:50:58 -04:00
parent 8fd779ef02
commit 7b0780804f
320 changed files with 12185 additions and 161 deletions
@@ -0,0 +1,163 @@
/*
COSMETIC PARTS
this system allows you to change the _base_ appearance of a limb independent
of species or markings. this, for example, allows us to create "hybrids" like a
mammal with avian legs.
keep in mind that this does not change the species of a leg! in the above example,
the mammal's bird-legs are still mammal legs. this matters in some places, like
body part transplants; mis-matched species will cause extra damage if the surgery
fails and the part is rejected. so you can't attach mammal-bird legs to avians
safely.
*/
/datum/cosmetic_part
/** A unique string that is used to identify this part for save files. Allows name changes without breaking saves */
var/id
/** The name of the cosmetic part. This shows up in the preferences dropdown. */
var/name
var/icon = 'hyperstation/icons/mob/char_parts.dmi'
var/icon_state
/** How colors are determined for this part. MUTCOLORS for base color, MATRIXED to allow multiple channels. */
var/color_src = MUTCOLORS
/** Whether or not this cosmetic part has an alternate form for digitigrade legs. */
var/support_digitigrade = TRUE
/**
WE
HATE
GENDER!!!!!!!!!!
*/
var/support_gender = null
/** Species IDs that support this cosmetic part. Bypassed with "show mismatched markings" option. */
var/list/supported_species
/datum/cosmetic_part/head
/datum/cosmetic_part/chest
/datum/cosmetic_part/arms
/datum/cosmetic_part/legs
// HEADS
// =========================================
/datum/cosmetic_part/head/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/head/ipc_round
id = "ipc_round"
name = "round ipc head"
icon_state = "ipc_round"
supported_species = list("ipc")
support_gender = FALSE
// CHESTS
// =========================================
/datum/cosmetic_part/chest/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/chest/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc chest"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
support_gender = FALSE
/datum/cosmetic_part/chest/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc chest"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
support_gender = FALSE
// ARMS
// =========================================
/datum/cosmetic_part/arms/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/arms/avian_alt
id = "avian_alt"
name = "avian claws"
icon_state = "avian_alt"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
/datum/cosmetic_part/arms/insect
id = "insect"
name = "insect arms"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "insect"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
/datum/cosmetic_part/arms/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc arms"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
/datum/cosmetic_part/arms/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc arms"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
// LEGS
// =========================================
/datum/cosmetic_part/legs/default
id = "default"
name = "default"
icon = null
/datum/cosmetic_part/legs/avian
id = "avian"
name = "avian legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "avian"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = FALSE
/datum/cosmetic_part/legs/mammal
id = "mammal"
name = "mammal legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "mammal"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = TRUE
/datum/cosmetic_part/legs/insect
id = "insect"
name = "insect legs"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "insect"
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
support_digitigrade = TRUE
/datum/cosmetic_part/legs/ipc_sleek
id = "ipc_sleek"
name = "sleek ipc legs"
icon_state = "ipc_sleek"
supported_species = list("ipc")
color_src = MATRIXED
support_digitigrade = FALSE
/datum/cosmetic_part/legs/ipc_jointed
id = "ipc_jointed"
name = "jointed ipc legs"
icon_state = "ipc_jointed"
supported_species = list("ipc")
color_src = MATRIXED
support_digitigrade = FALSE
@@ -0,0 +1,575 @@
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory
var/extra = FALSE
var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay.
var/extra2 = FALSE
var/extra_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
var/extra2_icon = 'modular_citadel/icons/mob/mam_tails.dmi'
var/extra2_color_src = MUTCOLORS3
var/list/ckeys_allowed
we use the "citadel" versions of mutant/species parts, which usually (but not always)
begins with "mam_" somewhere. stuff that's built for only humans/lizards in other parts
of the code are from TG, don't use those.
keep everything in alphabetical order, please!
*/
// TODO: code it so that we don't have to type in "icon = 'hyperstation/icons/mob/etc'"
// manually for hyperstation parts
/*
SNOUTS
==========================================================
*/
/datum/sprite_accessory/mam_snouts/bigmandible // sarcoph @ hyperstation, march 2022
name = "Big Mandibles (Hyper)"
icon_state = "bigmandible"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/proboscis // sarcoph @ hyperstation, march 2022
name = "Proboscis (Hyper)"
icon_state = "proboscis"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/rhinobeetle // sarcoph @ hyperstation, march 2022
name = "Rhino Beetle (Hyper)"
icon_state = "rhinobeetle"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/scarab // sarcoph @ hyperstation, march 2022
name = "Scarab Beetle (Hyper)"
icon_state = "scarab"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/smallmandible // sarcoph @ hyperstation, march 2022
name = "Small Mandibles (Hyper)"
icon_state = "smallmandible"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/spider // sarcoph @ hyperstation, march 2022
name = "Spider (Hyper)"
icon_state = "spider"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/tarantula // sarcoph @ hyperstation, march 2022
name = "Tarantula (Hyper)"
icon_state = "tarantula"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_snouts/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easterndw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/feasterndragon
name = "Eastern Dragon (Top) (Hyper)"
icon_state = "feasterndw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/easterndragonnowhiskers
name = "Eastern Dragon - No Whiskers (Hyper)"
icon_state = "easterndnw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/feasterndragonnowhiskers
name = "Eastern Dragon - No Whiskers (Top) (Hyper)"
icon_state = "feasterndnw"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/fchemlight
name = "RadDog (Top) (Hyper)"
icon_state = "fchemlight"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/pinata
name = "pinata (Hyper)"
icon_state = "pinata"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/datum/sprite_accessory/mam_snouts/pinatasmile
name = "pinata Smile (Hyper)"
icon_state = "pinatasmile"
icon = 'hyperstation/icons/mob/char_snouts.dmi'
/*
EARS
==========================================================
*/
/datum/sprite_accessory/mam_ears/faceant // sarcoph @ hyperstation, march 2022
name = "Face Antennae (Hyper)"
icon_state = "faceant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/faceant2 // sarcoph @ hyperstation, march 2022
name = "Face Antennae 2 (Hyper)"
icon_state = "faceant2"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/moth
name = "Moth Antennae (Hyper)"
icon_state = "moth"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/plumeant // sarcoph @ hyperstation, march 2022
name = "Plume Antennae (Hyper)"
icon_state = "plumeant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/roundant // sarcoph @ hyperstation, march 2022
name = "Round Antennae (Hyper)"
icon_state = "roundant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/thinant // sarcoph @ hyperstation, march 2022
name = "Thin Antennae (Hyper)"
icon_state = "thinant"
icon = 'hyperstation/icons/mob/char_ears.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_ears/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/datum/sprite_accessory/mam_ears/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/datum/sprite_accessory/mam_ears/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_ears.dmi'
/*
WINGS
==========================================================
*/
/datum/sprite_accessory/deco_wings/beetle // sarcoph @ hyperstation, march 2022
name = "Beetle (Hyper)"
icon_state = "beetle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/moth_wings/beetle
name = "Beetle (Hyper)"
icon_state = "beetle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/beetle2 // sarcoph @ hyperstation, march 2022
name = "Beetle - 2-toned (Hyper)"
icon_state = "beetle2"
icon = 'hyperstation/icons/mob/char_wings.dmi'
color_src = MATRIXED
/datum/sprite_accessory/moth_wings/beetle2
name = "Beetle - 2-toned (Hyper)"
icon_state = "beetle2"
icon = 'hyperstation/icons/mob/char_wings.dmi'
color_src = MATRIXED
/datum/sprite_accessory/deco_wings/insect // sarcoph @ hyperstation, march 2022
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/moth_wings/insect
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_wings.dmi'
//recommended_species = list("synthliz") need to give synths a deco wing slot
color_src = MATRIXED
/datum/sprite_accessory/deco_wings/minibat // sarcoph @ hyperstation, march 2022
name = "Mini Bat (Hyper)"
icon_state = "minibat"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/minifeather // sarcoph @ hyperstation, march 2022
name = "Mini Feather (Hyper)"
icon_state = "minifeather"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/tinybat // sarcoph @ hyperstation, march 2022
name = "Tiny Bat (Hyper)"
icon_state = "tinybat"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/tinyfeather // sarcoph @ hyperstation, march 2022
name = "Tiny Feather (Hyper)"
icon_state = "tinyfeather"
icon = 'hyperstation/icons/mob/char_wings.dmi'
/datum/sprite_accessory/deco_wings/sylveon // Aphast @ hyperstation, november 2022
name = "Sylveon Ribbons"
icon_state = "sylveon_bow"
icon = 'hyperstation/icons/mob/char_wings.dmi'
color_src = MATRIXED
/datum/sprite_accessory/horns/sylveon // Aphast @ hyperstation, november 2022, best place to put this due to being a pair and no horn slots here
name = "Sylveon Bow"
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
icon_state = "sylveon_bow"
color_src = MATRIXED
/*
TAILS + ANIMATED TAILS
==========================================================
*/
/datum/sprite_accessory/mam_tails/bee // sarcoph @ hyperstation, march 2022
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bee
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails/bee2 // sarcoph @ hyperstation, march 2022
name = "Bee w/ Stinger (Hyper)"
icon_state = "bee2"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bee2
name = "Bee w/ Stinger (Hyper)"
icon_state = "bee2"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
// "fan" bird tail, short
/datum/sprite_accessory/mam_tails/shorthawk // sarcoph @ hyperstation, jan 2022
name = "Hawk - Short (Hyper)"
icon_state = "shorthawk"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/shorthawk
name = "Hawk - Short (Hyper)"
icon_state = "shorthawk"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/insect // sarcoph @ hyperstation, march 2022
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/insect
name = "Insect (Hyper)"
icon_state = "insect"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails/bug2tone // sarcoph @ hyperstation, march 2022
name = "Insect - 2-tone (Hyper)"
icon_state = "bug2tone"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_tails_animated/bug2tone
name = "Insect - 2-tone (Hyper)"
icon_state = "bug2tone"
icon = 'hyperstation/icons/mob/char_tails.dmi'
recommended_species = list("insect")
// "narrow" bird tail, long
/datum/sprite_accessory/mam_tails/longpigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon - Long (Hyper)"
icon_state = "longpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/longpigeon
name = "Pigeon - Long (Hyper)"
icon_state = "longpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// "narrow" bird tail, short
/datum/sprite_accessory/mam_tails/shortpigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon - Short (Hyper)"
icon_state = "shortpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/shortpigeon
name = "Pigeon - Short (Hyper)"
icon_state = "shortpigeon"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// "forked" bird tail, long
/datum/sprite_accessory/mam_tails/swallow // sarcoph @ hyperstation, jan 2022
name = "Swallow (Hyper)"
icon_state = "swallow"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/swallow
name = "Swallow (Hyper)"
icon_state = "swallow"
icon = 'hyperstation/icons/mob/char_tails.dmi'
// forked bird tail, long; special stripe markings
/datum/sprite_accessory/mam_tails/swallowstriped // sarcoph @ hyperstation, jan 2022
name = "Swallow - Striped (Hyper)"
icon_state = "swallowstriped"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/swallowstriped
name = "Swallow - Striped (Hyper)"
icon_state = "swallowstriped"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/easterndragon //Pulled base from Virgo, seriously love the server and love you guys, stay lovely.
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/knshuttle
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/datum/sprite_accessory/mam_tails_animated/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_tails.dmi'
/*
BODY MARKINGS
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/mam_body_markings
extra = FALSE
extra2 = FALSE
color_src = MATRIXED
gender_specific = 0
icon = 'modular_citadel/icons/mob/mam_markings.dmi'
recommended_species = list("mammal", "xeno", "slimeperson", "podweak", "avian", "aquatic")
*/
/datum/sprite_accessory/mam_body_markings/bee // sarcoph @ hyperstation, march 2022
name = "Bee (Hyper)"
icon_state = "bee"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/bee_fluff // sarcoph @ hyperstation, march 2022
name = "Bee - Fluffy (Hyper)"
icon_state = "bee_fluff"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/bug3tone // sarcoph @ hyperstation, march 2022
name = "Beetle - 3-tone (Hyper)"
icon_state = "bug3tone"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/moth // sarcoph @ hyperstation, jan 2022
name = "Moth (Hyper)"
icon_state = "moth"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("insect")
/datum/sprite_accessory/mam_body_markings/empty
name = "None (Hyper)"
icon_state = "empty"
recommended_species = list("podweak", /*"mammal",*/ "avian", "aquatic", "insect", "xeno", "synthliz", "slimeperson")
// mammals are cursed to no empty markings until they get their heads fixed.
/datum/sprite_accessory/mam_body_markings/pigeon // sarcoph @ hyperstation, jan 2022
name = "Pigeon (Hyper)"
icon_state = "pigeon"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("avian")
/datum/sprite_accessory/mam_body_markings/shrike // sarcoph @ hyperstation, jan 2022
name = "Shrike (Hyper)"
icon_state = "shrike"
icon = 'hyperstation/icons/mob/char_markings.dmi'
recommended_species = list("avian")
/datum/sprite_accessory/mam_body_markings/easterndragon
name = "Eastern Dragon (Hyper)"
icon_state = "easternd"
icon = 'hyperstation/icons/mob/char_markings.dmi'
/datum/sprite_accessory/mam_body_markings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
name = "Kinaris - Shuttle (Hyper)"
icon_state = "knshuttle"
icon = 'hyperstation/icons/mob/char_markings.dmi'
//doged was here
/datum/sprite_accessory/mam_body_markings/chemlight
name = "RadDog (Hyper)"
icon_state = "chemlight"
icon = 'hyperstation/icons/mob/char_markings.dmi'
//racc do a code maybe it won't explode
/datum/sprite_accessory/mam_body_markings/raccalt
name = "RaccAlt (Hyper)"
icon_state = "raccalt"
icon = 'hyperstation/icons/mob/char_markings.dmi'
/datum/sprite_accessory/mam_body_markings/pinata
name = "pinata (Hyper)"
icon_state = "pinata"
icon = 'hyperstation/icons/mob/char_markings.dmi'
/*
TAUR BODIES
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/taur
icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra = TRUE
extra2_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra2 = TRUE
center = TRUE
dimension_x = 64
var/taur_mode = NOT_TAURIC
color_src = MATRIXED
recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak", "avian", "aquatic")
*/
/datum/sprite_accessory/taur/chemnaga //Chemlight experimental sprites for future spriting
name = "RadDog Naga (Hyper)"
icon_state = "chemnaga"
taur_mode = SNEK_TAURIC
ckeys_allowed = list("chemlight")
/datum/sprite_accessory/taur/chemlight
name = "RadDog Taur (Hyper)"
icon_state = "chemlight"
taur_mode = PAW_TAURIC
ckeys_allowed = list("chemlight")
/*
IPCS
==========================================================
*/
/*
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
/datum/sprite_accessory/antenna
icon = 'modular_citadel/icons/mob/ipc_antennas.dmi'
color_src = MUTCOLORS3
recommended_species = list("ipc")
/datum/sprite_accessory/screen
icon = 'modular_citadel/icons/mob/ipc_screens.dmi'
color_src = null
*/
/datum/sprite_accessory/antenna/idog_down
name = "Dog, down (Hyper)"
icon_state = "idog_down"
color_src = MATRIXED
/datum/sprite_accessory/antenna/idog_up
name = "Dog, up (Hyper)"
icon_state = "idog_up"
color_src = MATRIXED
/datum/sprite_accessory/antenna/headset
name = "Headphones (Hyper)"
icon_state = "headset"
color_src = MATRIXED
/datum/sprite_accessory/antenna/aquatic
name = "Fins (Hyper)"
icon_state = "aquatic"
color_src = MATRIXED
/datum/sprite_accessory/screen/ghost
name = "Ghost (Hyper)"
icon_state = "ghost"
/datum/sprite_accessory/screen/heartbeat
name = "Heartbeat (Hyper)"
icon_state = "heartbeat"
/datum/sprite_accessory/screen/ocean
name = "Ocean (Hyper)"
icon_state = "ocean"
/datum/sprite_accessory/antenna/catears
name = "Pointy Ears (Hyper)"
icon_state = "catears"
color_src = MATRIXED
/datum/sprite_accessory/screen/valley
name = "Valley (Hyper)"
icon_state = "valley"
/*
BEARDS
==========================================================
*/
/*
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face.dmi'
gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P)
*/
/datum/sprite_accessory/facial_hair/mane
name = "Neckfluff (Hyper)"
icon_state = "facial_neckfluff"
@@ -0,0 +1,3 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/mob/living/silicon/robot
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
@@ -0,0 +1,18 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
//This proc gets called whenever a new robot module is being applied --Cyanosis
/obj/item/robot_module/proc/handle_sprite_action(mob/living/silicon/robot/R, is_huge = FALSE)
ASSERT(istype(R))
if(R.small_sprite_action)
QDEL_NULL(R.small_sprite_action)
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
return
for(var/P in typesof(/datum/action/cyborg_small_sprite))
var/datum/action/cyborg_small_sprite/action = P
if(initial(action.designated_module) == name)
R.small_sprite_action = new action()
R.small_sprite_action.Grant(R)
break
if(!R.small_sprite_action)
R.small_sprite_action = new()
R.small_sprite_action.Grant(R)
@@ -0,0 +1,51 @@
//Ported from virgo, with some touch ups to make it work with our code.
/mob/living
var/list/status_indicators = null // Will become a list as needed.
/mob/living/proc/add_status_indicator(mutable_appearance/thing)
if(get_status_indicator(thing))
return
if(!istype(thing, /mutable_appearance))
thing = mutable_appearance('hyperstation/icons/mob/status_indicators.dmi', icon_state = thing)
LAZYADD(status_indicators, thing)
handle_status_indicators()
/mob/living/proc/remove_status_indicator(mutable_appearance/thing)
thing = get_status_indicator(thing)
cut_overlay(thing)
LAZYREMOVE(status_indicators, thing)
handle_status_indicators()
/mob/living/proc/get_status_indicator(mutable_appearance/thing)
if(!istype(thing, /mutable_appearance))
for(var/mutable_appearance/I in status_indicators)
if(I.icon_state == thing)
return I
return LAZYACCESS(status_indicators, LAZYFIND(status_indicators, thing))
/mob/living/proc/handle_status_indicators()
// First, get rid of all the overlays.
for(var/thing in status_indicators)
cut_overlay(thing)
if(!LAZYLEN(status_indicators))
return
if(stat == DEAD)
return
// Now the indicator row can actually be built.
for(var/thing in status_indicators)
var/mutable_appearance/I = thing
I.appearance_flags = PIXEL_SCALE|KEEP_APART
I.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
I.plane = HUD_PLANE
I.layer = ABOVE_FLY_LAYER
I.pixel_y = 18
I.pixel_x = 18
add_overlay(I)
@@ -0,0 +1,29 @@
mob/proc/checkloadappearance()
var/mob/living/carbon/human/H = src
//This will be where the person gets to select their appearance instead of the random character
if (world.time <= (H.time_initialized + 900) && H.mirrorcanloadappearance == TRUE)
SEND_SOUND(H, 'sound/misc/server-ready.ogg')
to_chat(H, "<span class='boldannounce'>This ghost role allows you to select your loaded character's appearance. Make sure you have your ID in your ID slot, if you have one.</span>")
if(alert(H, "Would you like to load your currently loaded character's appearance?", "This can only be done up until 90s after you spawn.", "Yes", "No") == "Yes" && world.time <= (H.time_initialized + 900))
if(alert(H, "You should only load a character that has not currently died in the round. Do you accept this?", "Warning", "Yes", "No") == "Yes" && world.time <= (H.time_initialized + 900))
H.client?.prefs?.copy_to(H)
if (H.custom_body_size) //Do they have a custom size set?
H.resize(H.custom_body_size * 0.01)
H.real_name = H.client?.prefs?.real_name
H.mind.name = H.real_name //Makes sure to change their mind name to their real name.
SSquirks.AssignQuirks(H, H.client, TRUE, FALSE, H.job, FALSE)//This Assigns the selected character's quirks
H.dna.update_dna_identity() //This makes sure their DNA is updated.
var/obj/item/card/id/idCard = H.get_idcard() //Time to change their ID card as well if they have one.
if (idCard != null)
idCard.update_label(H.real_name, idCard.assignment)
idCard.registered_name = H.real_name
H.mirrorcanloadappearance = FALSE //Prevents them from using the mirror again.
ADD_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) //Makes sure they are exempt from health events.
SEND_SOUND(H, 'sound/magic/charge.ogg') //Fluff
to_chat(H, "<span class='boldannounce'>Your head aches for a second. You feel like this is how things should have been.</span>")
log_game("[key_name(H)] has loaded their default appearance for a ghost role.")
message_admins("[ADMIN_LOOKUPFLW(H)] has loaded their default appearance for a ghost role.")
return
else
to_chat(H, "<span class='boldannounce'>You either took too long or chose not to change. Alrighty. Remember, you have 90 seconds from spawn to get to a mirror and still do it if you wish.</span>")
return