mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-30 11:01:35 +00:00
* 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>
71 lines
2.0 KiB
Plaintext
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
|