From 1a9d5b0408624cdf315cbbcd772e16530e2c27fc Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Wed, 12 Jul 2017 06:16:17 -0400 Subject: [PATCH] Improves the quality of life of Cluwnes --- code/datums/spells/cluwne.dm | 14 +++---- code/modules/clothing/masks/miscellaneous.dm | 1 + code/modules/clothing/under/miscellaneous.dm | 1 + .../mob/living/carbon/brain/brain_item.dm | 8 ++++ .../reagents/chemistry/reagents/medicine.dm | 3 ++ code/modules/surgery/organs/organ_internal.dm | 40 +++++-------------- code/modules/surgery/organs_internal.dm | 2 + 7 files changed, 30 insertions(+), 39 deletions(-) diff --git a/code/datums/spells/cluwne.dm b/code/datums/spells/cluwne.dm index fe0e02bda6d..af1d768d53f 100644 --- a/code/datums/spells/cluwne.dm +++ b/code/datums/spells/cluwne.dm @@ -13,7 +13,10 @@ /mob/living/carbon/human/proc/makeCluwne() to_chat(src, "You feel funny.") - adjustBrainLoss(80) + if(!get_int_organ(/obj/item/organ/internal/brain/cluwne)) + var/obj/item/organ/internal/brain/cluwne/idiot_brain = new + idiot_brain.insert(src, make_cluwne = 0) + setBrainLoss(80) nutrition = 9000 overeatduration = 9000 Confused(30) @@ -25,8 +28,7 @@ mutations.Add(NERVOUS) dna.SetSEState(NERVOUSBLOCK, 1, 1) genemutcheck(src, NERVOUSBLOCK, null, MUTCHK_FORCED) - - animate_clownspell(src) + rename_character(real_name, "cluwne") unEquip(w_uniform, 1) unEquip(shoes, 1) @@ -37,7 +39,6 @@ equip_to_slot_if_possible(new /obj/item/clothing/gloves/cursedclown, slot_gloves, 1, 1, 1) equip_to_slot_if_possible(new /obj/item/clothing/mask/cursedclown, slot_wear_mask, 1, 1, 1) equip_to_slot_if_possible(new /obj/item/clothing/shoes/cursedclown, slot_shoes, 1, 1, 1) - real_name = "cluwne" /mob/living/carbon/human/proc/makeAntiCluwne() to_chat(src, "You don't feel very funny.") @@ -51,8 +52,7 @@ var/obj/item/organ/internal/honktumor/cursed/tumor = get_int_organ(/obj/item/organ/internal/honktumor/cursed) if(tumor) - tumor.remove(src, clean_remove = 1) - qdel(tumor) + tumor.remove(src) else mutations.Remove(CLUMSY) mutations.Remove(COMICBLOCK) @@ -64,8 +64,6 @@ dna.SetSEState(NERVOUSBLOCK, 0) genemutcheck(src, NERVOUSBLOCK, null, MUTCHK_FORCED) - animate_clownspell(src) - var/obj/item/clothing/under/U = w_uniform unEquip(w_uniform, 1) if(U) diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 5ac05685079..2736be9a111 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -341,6 +341,7 @@ icon = 'icons/goonstation/objects/clothing/mask.dmi' icon_state = "cursedclown" item_state = "cclown_hat" + unacidable = 1 // HUNKE icon_override = 'icons/goonstation/mob/clothing/mask.dmi' lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi' diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 6dc1e1f2991..85db8efda46 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -787,6 +787,7 @@ lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi' flags = NODROP + has_sensor = 0 // HUNKE /obj/item/clothing/under/victdress diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index daeebf8442f..2abc612f758 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -125,3 +125,11 @@ /obj/item/organ/internal/brain/Destroy() //copypasted from MMIs. QDEL_NULL(brainmob) return ..() + +/obj/item/organ/internal/brain/cluwne + +/obj/item/organ/internal/brain/cluwne/insert(mob/living/target, special = 0, make_cluwne = 1) + ..(target, special = special) + if(ishuman(target) && make_cluwne) + var/mob/living/carbon/human/H = target + H.makeCluwne() //No matter where you go, no matter what you do, you cannot escape \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 4b35b5fbeca..546ea0c1e5f 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -686,6 +686,9 @@ color = "#5096C8" /datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/human/M) + if(M.mind && M.mind.assigned_role == "Cluwne") // HUNKE + ..() + return M.SetJitter(0) var/needs_update = M.mutations.len > 0 || M.disabilities > 0 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index e07208cc97d..0a7dfc2547c 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -9,6 +9,7 @@ // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! vital = 0 var/non_primary = 0 + var/unremovable = FALSE //Whether it shows up as an option to remove during surgery. /obj/item/organ/internal/New(var/mob/living/carbon/holder) ..() @@ -283,7 +284,6 @@ /obj/item/organ/internal/lungs/on_life() - ..() if(germ_level > INFECTION_LEVEL_ONE) if(prob(5)) owner.emote("cough") //respitory tract infection @@ -305,7 +305,6 @@ slot = "kidneys" /obj/item/organ/internal/kidneys/on_life() - ..() // Coffee is really bad for you with busted kidneys. // This should probably be expanded in some way, but fucked if I know // what else kidneys can process in our reagent list. @@ -418,7 +417,6 @@ var/alcohol_intensity = 1 /obj/item/organ/internal/liver/on_life() - ..() if(germ_level > INFECTION_LEVEL_ONE) if(prob(1)) to_chat(owner, " Your skin itches.") @@ -536,10 +534,6 @@ var/organhonked = 0 var/suffering_delay = 900 -/obj/item/organ/internal/honktumor/New() - ..() - processing_objects.Add(src) - /obj/item/organ/internal/honktumor/insert(mob/living/carbon/M, special = 0) ..() M.mutations.Add(CLUMSY) @@ -559,23 +553,9 @@ M.dna.SetSEState(COMICBLOCK,0) genemutcheck(M,CLUMSYBLOCK,null,MUTCHK_FORCED) genemutcheck(M,COMICBLOCK,null,MUTCHK_FORCED) - -/obj/item/organ/internal/honktumor/Destroy() - processing_objects.Remove(src) - return ..() - -/obj/item/organ/internal/honktumor/process() - if(isturf(loc)) - visible_message("[src] honks in on itself!") - new /obj/item/weapon/grown/bananapeel(get_turf(loc)) - qdel(src) - + qdel(src) /obj/item/organ/internal/honktumor/on_life() - - if(!owner) - return - if(organhonked < world.time) organhonked = world.time + suffering_delay to_chat(owner, "HONK") @@ -590,7 +570,7 @@ else owner.Jitter(500) - if(istype(owner, /mob/living/carbon/human)) + if(ishuman(owner)) var/mob/living/carbon/human/H = owner if(isobj(H.shoes)) var/thingy = H.shoes @@ -599,17 +579,15 @@ spawn(20) if(thingy) walk(thingy,0) - ..() /obj/item/organ/internal/honktumor/cursed + unremovable = TRUE -/obj/item/organ/internal/honktumor/cursed/remove(mob/living/carbon/M, special = 0, clean_remove = 0) - . = ..() - if(!clean_remove) - visible_message("[src] vanishes into dust, and a [M] emits a loud honk!", "You hear a loud honk.") - insert(M) //You're not getting away that easily! - else - qdel(src) +/obj/item/organ/internal/honktumor/cursed/on_life() //No matter what you do, no matter who you are, no matter where you go, you're always going to be a fat, stuttering dimwit. + ..() + owner.setBrainLoss(80) + owner.nutrition = 9000 + owner.overeatduration = 9000 /obj/item/organ/internal/beard name = "beard organ" diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index da41915249c..5932bd945b9 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -169,6 +169,8 @@ return -1 for(var/obj/item/organ/internal/O in organs) + if(O.unremovable) + continue O.on_find(user) organs -= O organs[O.name] = O