more work
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user