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