[MIRROR] Tailed species now gain a negative moodlet for having their tail lost (#3456)

* Tailed species now gain a negative moodlet for having their tail lost

* a

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
This commit is contained in:
SkyratBot
2021-02-17 17:14:18 +00:00
committed by GitHub
co-authored by MrMelbert Gandalf2k15
parent 18456cdb73
commit f2b1e99a73
5 changed files with 106 additions and 14 deletions
+13 -2
View File
@@ -40,7 +40,13 @@
foodtypes = RAW | MEAT | GROSS,\
volume = reagent_vol,\
after_eat = CALLBACK(src, .proc/OnEatFrom))
/*
* Insert the organ into the select mob.
*
* M - the mob who will get our organ
* special - "quick swapping" an organ out - when TRUE, the mob will be unaffected by not having that organ for the moment
* drop_if_replaced - if there's an organ in the slot already, whether we drop it afterwards
*/
/obj/item/organ/proc/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE)
if(!iscarbon(M) || owner == M)
return
@@ -64,7 +70,12 @@
A.Grant(M)
STOP_PROCESSING(SSobj, src)
//Special is for instant replacement like autosurgeons
/*
* Remove the organ from the select mob.
*
* M - the mob who owns our organ, that we're removing the organ from.
* special - "quick swapping" an organ out - when TRUE, the mob will be unaffected by not having that organ for the moment
*/
/obj/item/organ/proc/Remove(mob/living/carbon/M, special = FALSE)
owner = null
if(M)
+13 -10
View File
@@ -8,10 +8,13 @@
slot = ORGAN_SLOT_TAIL
var/tail_type = "None"
/obj/item/organ/tail/Remove(mob/living/carbon/human/H, special = 0)
..()
if(H && H.dna && H.dna.species)
H.dna.species.stop_wagging_tail(H)
/obj/item/organ/tail/Insert(mob/living/carbon/human/tail_owner, special = FALSE, drop_if_replaced = TRUE)
. = ..()
tail_owner?.dna?.species?.on_tail_regain(tail_owner, src, special)
/obj/item/organ/tail/Remove(mob/living/carbon/human/tail_owner, special = FALSE)
. = ..()
tail_owner?.dna?.species?.on_tail_lost(tail_owner, src, special)
/obj/item/organ/tail/cat
name = "cat tail"
@@ -20,7 +23,7 @@
//SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION
/*
/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = FALSE, drop_if_replaced = TRUE)
..()
if(istype(H))
var/default_part = H.dna.species.mutant_bodyparts["tail_human"]
@@ -28,7 +31,7 @@
H.dna.features["tail_human"] = H.dna.species.mutant_bodyparts["tail_human"] = tail_type
H.update_body()
/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0)
/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = FALSE)
..()
if(istype(H))
H.dna.features["tail_human"] = "None"
@@ -51,7 +54,7 @@
..()
color = "#"+ random_color()
/obj/item/organ/tail/lizard/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
/obj/item/organ/tail/lizard/Insert(mob/living/carbon/human/H, special = FALSE, drop_if_replaced = TRUE)
..()
if(istype(H))
// Checks here are necessary so it wouldn't overwrite the tail of a lizard it spawned in
@@ -64,7 +67,7 @@
H.dna.features["spines"] = H.dna.species.mutant_bodyparts["spines"] = spines
H.update_body()
/obj/item/organ/tail/lizard/Remove(mob/living/carbon/human/H, special = 0)
/obj/item/organ/tail/lizard/Remove(mob/living/carbon/human/H, special = FALSE)
..()
if(istype(H))
H.dna.species.mutant_bodyparts -= "tail_lizard"
@@ -94,7 +97,7 @@
//SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION
/*
/obj/item/organ/tail/monkey/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
/obj/item/organ/tail/monkey/Insert(mob/living/carbon/human/H, special = FALSE, drop_if_replaced = TRUE)
..()
if(istype(H))
if(!("tail_monkey" in H.dna.species.mutant_bodyparts))
@@ -102,7 +105,7 @@
H.dna.features["tail_monkey"] = tail_type
H.update_body()
/obj/item/organ/tail/monkey/Remove(mob/living/carbon/human/H, special = 0)
/obj/item/organ/tail/monkey/Remove(mob/living/carbon/human/H, special = FALSE)
..()
if(istype(H))
H.dna.features["tail_monkey"] = "None"