Files
Bubberstation/code/datums/components/creamed.dm
SkyratBot 3916ea03de [MIRROR] Kapulimbs [MDB IGNORE] (#12497)
* Kapulimbs

* conflicts

* part one of fixes

* more fex

* ugh

* more fix

* eee

* e

* more fix

* Well it compiles, but we need to get digi legs working

* more fixes

* https://github.com/tgstation/tgstation/pull/65887

* https://github.com/tgstation/tgstation/pull/65904

* https://github.com/tgstation/tgstation/pull/65923

* more fix

* now uses dna specific icon overrides.

* species code no longer dictates what icon the limbs use

* digitigrade legs implemenation

* more fixes, species indexing, species bodyparts

* remaining mutant bois

* 0

* okay this work!

* IPC stuffs

* inv file uses

* optimisation and limb string rendering digitigrade stuff

* wew

* partial vox support

* bodymarkings are now stored on the bodypart

* limb key caching

* Update carbon_update_icons.dm

* Update carbon_update_icons.dm

* Moves our mutant variance to the new system and makes shoes squash.

* all legs do it

* https://github.com/tgstation/tgstation/pull/65918

* https://github.com/tgstation/tgstation/pull/65899

* https://github.com/tgstation/tgstation/pull/65990

* teshari bodytype

* them teshari's aren't humans

* bandaid for future proper teshari implementation

* Update vox_bodyparts.dm

* fixes chests and teshari implementation

* fixes

* fex

* Update mutant_zombie_bodyparts.dm

* oops

* Update synthetic_lizard_bodyparts.dm

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/species.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update scissors.dm

* wound stuff

* Update carbon_examine.dm

* more stuff

* Delete human_update_icons.dm

* begone thot

* https://github.com/tgstation/tgstation/pull/66065

* Update _external_organs.dm

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-04-11 02:40:05 +01:00

71 lines
2.0 KiB
Plaintext

GLOBAL_LIST_INIT(creamable, typecacheof(list(
/mob/living/carbon/human,
/mob/living/simple_animal/pet/dog/corgi,
/mob/living/silicon/ai)))
/**
* Creamed component
*
* For when you have pie on your face
*/
/datum/component/creamed
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
var/mutable_appearance/creamface
/datum/component/creamed/Initialize()
if(!is_type_in_typecache(parent, GLOB.creamable))
return COMPONENT_INCOMPATIBLE
SEND_SIGNAL(parent, COMSIG_MOB_CREAMED)
add_memory_in_range(parent, 7, MEMORY_CREAMPIED, list(DETAIL_PROTAGONIST = parent), story_value = STORY_VALUE_OKAY, memory_flags = MEMORY_CHECK_BLINDNESS, protagonist_memory_flags = NONE)
creamface = mutable_appearance('icons/effects/creampie.dmi')
if(ishuman(parent))
var/mob/living/carbon/human/H = parent
if(H.dna.species.bodytype & BODYTYPE_SNOUTED)
creamface.icon_state = "creampie_lizard"
else if(H.dna.species.bodytype & BODYTYPE_MONKEY)
creamface.icon_state = "creampie_monkey"
else
creamface.icon_state = "creampie_human"
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "creampie", /datum/mood_event/creampie)
else if(iscorgi(parent))
creamface.icon_state = "creampie_corgi"
else if(isAI(parent))
creamface.icon_state = "creampie_ai"
var/atom/A = parent
A.add_overlay(creamface)
/datum/component/creamed/Destroy(force, silent)
var/atom/A = parent
A.cut_overlay(creamface)
qdel(creamface)
if(ishuman(A))
SEND_SIGNAL(A, COMSIG_CLEAR_MOOD_EVENT, "creampie")
return ..()
/datum/component/creamed/RegisterWithParent()
RegisterSignal(parent, list(
COMSIG_COMPONENT_CLEAN_ACT,
COMSIG_COMPONENT_CLEAN_FACE_ACT),
.proc/clean_up)
/datum/component/creamed/UnregisterFromParent()
UnregisterSignal(parent, list(
COMSIG_COMPONENT_CLEAN_ACT,
COMSIG_COMPONENT_CLEAN_FACE_ACT))
///Callback to remove pieface
/datum/component/creamed/proc/clean_up(datum/source, clean_types)
SIGNAL_HANDLER
. = NONE
if(!(clean_types & CLEAN_TYPE_BLOOD))
return
qdel(src)
return COMPONENT_CLEANED