diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index e403ce4c91..129f4e29b6 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -31,6 +31,9 @@ say("It doesn't seem like that's magical enough!") /obj/item/barthpot/attack_hand(mob/user) + if(!active) + say("Meow!") + return say("Hello there, I'm Bartholomew, Jacqueline's Familiar.") sleep(20) say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalise into a magic candy!") diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 689c3dc2b8..b2f69df2e4 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -34,8 +34,8 @@ real_name = "Jacqueline" icon = 'icons/obj/halloween_items.dmi' icon_state = "jacqueline" - maxHealth = INFINITY - health = INFINITY + maxHealth = 25 + health = 25 density = FALSE speech_span = "spooky" friendly = "pets" @@ -69,6 +69,7 @@ /mob/living/simple_animal/jacq/attack_hand(mob/living/carbon/human/M) if(!active) + say("Hello there [gender_check(M)]!") return ..() if(!ckey) canmove = FALSE @@ -78,6 +79,7 @@ /mob/living/simple_animal/jacq/attack_paw(mob/living/carbon/monkey/M) if(!active) + say("Hello there [gender_check(M)]!") return ..() if(!ckey) canmove = FALSE @@ -105,10 +107,19 @@ return FALSE +/mob/living/simple_animal/jacq/proc/gender_check(mob/living/carbon/C) + var/gender = "lamb" + if(C) + if(C.gender == MALE) + gender = "laddie" + if(C.gender == FEMALE) + gender = "lassie" + return gender + //Ye wee bugger, gerrout of it. Ye've nae tae enjoy reading the code fer mae secrets like. /mob/living/simple_animal/jacq/proc/chit_chat(mob/living/carbon/C) //Very important - var/gender = "lamb" + var/gender = gender_check(C) if(C) if(C.gender == MALE) gender = "laddie" @@ -285,7 +296,7 @@ objective += " [L2.name]." brainwash(C, objective) if(2) - visible_message("[src] waves their arms around, \"Off comes your head, atleast you're not dead.\"") + visible_message("[src] waves their arms around, \"Off comes your head, a pumpkin taking it's stead!\"") C.reagents.add_reagent("pumpkinmutationtoxin", 5) if(3) visible_message("[src] waves their arms around, \"If only you had a better upbringing, your ears are now full of my singing!\"") @@ -372,8 +383,8 @@ /datum/reagent/mutationtoxin/pumpkinhead name = "Pumpkin head mutation toxin" id = "pumpkinmutationtoxin" - race = /datum/species/dullahan - mutationtext = "The pain subsides. You feel your head roll off your shoulders." + race = /datum/species/dullahan/pumpkin + mutationtext = "The pain subsides. You feel your head roll off your shoulders... and you smell pumpkin." //I couldn't get the replace head sprite with a pumpkin to work so, it is what it is. /mob/living/simple_animal/jacq/proc/check_candies(mob/living/carbon/C) diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 936d6d9002..eba4ff6d2f 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -13,9 +13,12 @@ blacklisted = TRUE limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human + var/pumpkin = FALSE var/obj/item/dullahan_relay/myhead +/datum/species/dullahan/pumpkin + pumpkin = TRUE /datum/species/dullahan/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) @@ -27,6 +30,11 @@ H.flags_1 &= ~HEAR_1 var/obj/item/bodypart/head/head = H.get_bodypart(BODY_ZONE_HEAD) if(head) + if(pumpkin)//Pumpkinhead! + head.animal_origin = 100 + head.icon = 'icons/obj/clothing/hats.dmi' + head.icon_state = "hardhat1_pumpkin_j" + head.custom_head = TRUE head.drop_limb() head.flags_1 = HEAR_1 head.throwforce = 25 @@ -67,7 +75,7 @@ /obj/item/organ/brain/dullahan decoy_override = TRUE - organ_flags = 0 + organ_flags = ORGAN_NO_SPOIL//Do not decay /obj/item/organ/tongue/dullahan zone = "abstract" diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 46ee10a3fd..23d49e98bb 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -32,6 +32,8 @@ var/lip_style = null var/lip_color = "white" + //If the head is a special sprite + var/custom_head /obj/item/bodypart/head/can_dismember(obj/item/I) if(!((owner.stat == DEAD) || owner.InFullCritical())) @@ -128,6 +130,8 @@ add_overlay(standing) /obj/item/bodypart/head/get_limb_icon(dropped) + if(custom_head) + return cut_overlays() . = ..() if(dropped) //certain overlays only appear when the limb is being detached from its owner.