The Honkening
@@ -0,0 +1,86 @@
|
||||
/obj/effect/proc_holder/spell/targeted/touch/cluwne
|
||||
name = "Curse of the Cluwne"
|
||||
desc = "Turns the target into a fat and cursed monstrosity of a clown."
|
||||
hand_path = /obj/item/weapon/melee/touch_attack/cluwne
|
||||
|
||||
school = "transmutation"
|
||||
|
||||
charge_max = 600
|
||||
clothes_req = 1
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
|
||||
action_icon_state = "clown"
|
||||
|
||||
/mob/living/carbon/human/proc/makeCluwne()
|
||||
to_chat(src, "<span class='danger'>You feel funny.</span>")
|
||||
adjustBrainLoss(80)
|
||||
nutrition = 9000
|
||||
confused = 120
|
||||
if(mind)
|
||||
mind.assigned_role = "Cluwne"
|
||||
|
||||
var/obj/item/organ/internal/honktumor/cursed/tumor = new
|
||||
tumor.insert(src)
|
||||
mutations.Add(NERVOUS)
|
||||
dna.SetSEState(NERVOUSBLOCK, 1, 1)
|
||||
genemutcheck(src, NERVOUSBLOCK, null, MUTCHK_FORCED)
|
||||
|
||||
animate_clownspell(src)
|
||||
|
||||
unEquip(w_uniform, 1)
|
||||
unEquip(shoes, 1)
|
||||
unEquip(gloves, 1)
|
||||
if(!istype(wear_mask, /obj/item/clothing/mask/cursedclown)) //Infinite loops otherwise
|
||||
unEquip(wear_mask, 1)
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/under/cursedclown, slot_w_uniform, 1, 1, 1)
|
||||
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, "<span class='danger'>You don't feel very funny.</span>")
|
||||
adjustBrainLoss(-120)
|
||||
nutrition = NUTRITION_LEVEL_STARVING
|
||||
confused = 0
|
||||
jitteriness = 0
|
||||
if(mind)
|
||||
mind.assigned_role = "Lawyer"
|
||||
|
||||
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)
|
||||
else
|
||||
mutations.Remove(CLUMSY)
|
||||
mutations.Remove(COMICBLOCK)
|
||||
dna.SetSEState(CLUMSYBLOCK,0)
|
||||
dna.SetSEState(COMICBLOCK,0)
|
||||
genemutcheck(src, CLUMSYBLOCK, null, MUTCHK_FORCED)
|
||||
genemutcheck(src, COMICBLOCK, null, MUTCHK_FORCED)
|
||||
mutations.Remove(NERVOUS)
|
||||
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)
|
||||
qdel(U)
|
||||
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
unEquip(shoes, 1)
|
||||
if(S)
|
||||
qdel(S)
|
||||
|
||||
if(istype(wear_mask, /obj/item/clothing/mask/cursedclown))
|
||||
unEquip(wear_mask, 1)
|
||||
|
||||
if(istype(gloves, /obj/item/clothing/gloves/cursedclown))
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
unEquip(gloves, 1)
|
||||
qdel(G)
|
||||
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/under/lawyer/black, slot_w_uniform, 1, 1, 1)
|
||||
equip_to_slot_if_possible(new /obj/item/clothing/shoes/black, slot_shoes, 1, 1, 1)
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/effect/proc_holder/spell/targeted/touch/
|
||||
var/hand_path = "/obj/item/weapon/melee/touch_attack"
|
||||
/obj/effect/proc_holder/spell/targeted/touch
|
||||
var/hand_path = /obj/item/weapon/melee/touch_attack
|
||||
var/obj/item/weapon/melee/touch_attack/attached_hand = null
|
||||
invocation_type = "none" //you scream on connecting, not summoning
|
||||
include_user = 1
|
||||
@@ -47,7 +47,7 @@
|
||||
/obj/effect/proc_holder/spell/targeted/touch/disintegrate
|
||||
name = "Disintegrate"
|
||||
desc = "This spell charges your hand with vile energy that can be used to violently explode victims."
|
||||
hand_path = "/obj/item/weapon/melee/touch_attack/disintegrate"
|
||||
hand_path = /obj/item/weapon/melee/touch_attack/disintegrate
|
||||
|
||||
school = "evocation"
|
||||
charge_max = 600
|
||||
@@ -59,11 +59,11 @@
|
||||
/obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone
|
||||
name = "Flesh to Stone"
|
||||
desc = "This spell charges your hand with the power to turn victims into inert statues for a long period of time."
|
||||
hand_path = "/obj/item/weapon/melee/touch_attack/fleshtostone"
|
||||
hand_path = /obj/item/weapon/melee/touch_attack/fleshtostone
|
||||
|
||||
school = "transmutation"
|
||||
charge_max = 600
|
||||
clothes_req = 1
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
|
||||
action_icon_state = "statue"
|
||||
action_icon_state = "statue"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/disintegrate
|
||||
name = "\improper disintegrating touch"
|
||||
name = "disintegrating touch"
|
||||
desc = "This hand of mine glows with an awesome power!"
|
||||
catchphrase = "EI NATH!!"
|
||||
on_use_sound = "sound/magic/Disintegrate.ogg"
|
||||
@@ -51,7 +51,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/fleshtostone
|
||||
name = "\improper petrifying touch"
|
||||
name = "petrifying touch"
|
||||
desc = "That's the bottom line, because flesh to stone said so!"
|
||||
catchphrase = "STAUN EI!!"
|
||||
on_use_sound = "sound/magic/FleshToStone.ogg"
|
||||
@@ -78,10 +78,38 @@
|
||||
item_state = "disintegrate"
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/fake_disintegrate/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //not exploding after touching yourself would be bad
|
||||
return
|
||||
var/datum/effect/system/spark_spread/sparks = new
|
||||
sparks.set_up(4, 0, target.loc) //no idea what the 0 is
|
||||
sparks.start()
|
||||
playsound(target.loc, 'sound/goonstation/effects/gib.ogg', 50, 1)
|
||||
..()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/cluwne
|
||||
name = "cluwne touch"
|
||||
desc = "It's time to start clowning around."
|
||||
catchphrase = "NWOLC EGNEVER"
|
||||
on_use_sound = "sound/misc/sadtrombone.ogg"
|
||||
icon_state = "cluwnecurse"
|
||||
item_state = "cluwnecurse"
|
||||
|
||||
/obj/item/weapon/melee/touch_attack/cluwne/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || user.lying || user.handcuffed) //clowning around after touching yourself would unsurprisingly, be bad
|
||||
return
|
||||
|
||||
if(iswizard(target))
|
||||
to_chat(user, "<span class='warning'>The spell has no effect on [target].</span>")
|
||||
return
|
||||
|
||||
var/datum/effect/system/harmless_smoke_spread/s = new /datum/effect/system/harmless_smoke_spread
|
||||
s.set_up(5, 0, target)
|
||||
s.start()
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.mind)
|
||||
if(H.mind.assigned_role != "Cluwne")
|
||||
H.makeCluwne()
|
||||
else
|
||||
H.makeAntiCluwne()
|
||||
..()
|
||||
|
||||
@@ -233,6 +233,11 @@
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/cluwne
|
||||
name = "Curse of the Cluwne"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/touch/cluwne
|
||||
log_name = "CC"
|
||||
|
||||
/datum/spellbook_entry/item
|
||||
name = "Buy Item"
|
||||
refundable = 0
|
||||
@@ -857,4 +862,4 @@
|
||||
spell = /obj/effect/proc_holder/spell/targeted/touch/fake_disintegrate
|
||||
spellname = "disintegrate"
|
||||
icon_state ="bookfireball"
|
||||
desc = "This book feels like it will rip stuff apart."
|
||||
desc = "This book feels like it will rip stuff apart."
|
||||
|
||||
@@ -47,4 +47,11 @@
|
||||
name = "batgloves"
|
||||
icon_state = "bmgloves"
|
||||
item_state = "bmgloves"
|
||||
item_color="bmgloves"
|
||||
item_color="bmgloves"
|
||||
|
||||
/obj/item/clothing/gloves/cursedclown
|
||||
name = "cursed white gloves"
|
||||
desc = "These things smell terrible, and they're all lumpy. Gross."
|
||||
icon_state = "latex"
|
||||
item_state = "lgloves"
|
||||
flags = NODROP
|
||||
|
||||
@@ -275,3 +275,28 @@ obj/item/clothing/mask/bandana/purple
|
||||
icon_state = "bandblack"
|
||||
item_color = "black"
|
||||
desc = "It's a black bandana."
|
||||
|
||||
/obj/item/clothing/mask/cursedclown
|
||||
name = "cursed clown mask"
|
||||
desc = "This is a very, very odd looking mask."
|
||||
icon = 'icons/goonstation/objects/clothing/mask.dmi'
|
||||
icon_state = "cursedclown"
|
||||
item_state = "cclown_hat"
|
||||
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'
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/mask/cursedclown/equipped(mob/user, slot)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H) && slot == slot_wear_mask)
|
||||
to_chat(H, "<span class='danger'>[src] grips your face!</span>")
|
||||
if(H.mind && H.mind.assigned_role != "Cluwne")
|
||||
H.makeCluwne()
|
||||
|
||||
/obj/item/clothing/mask/cursedclown/suicide_act(mob/user)
|
||||
user.visible_message("<span class='danger'>[user] gazes into the eyes of [src]. [src] gazes back!</span>")
|
||||
spawn(10)
|
||||
user.gib()
|
||||
return BRUTELOSS
|
||||
|
||||
@@ -207,3 +207,13 @@
|
||||
item_color = "fancysandal"
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/shoes/cursedclown
|
||||
name = "cursed clown shoes"
|
||||
desc = "Moldering clown flip flops. They're neon green for some reason."
|
||||
icon = 'icons/goonstation/objects/clothing/feet.dmi'
|
||||
icon_state = "cursedclown"
|
||||
item_state = "cclown_shoes"
|
||||
icon_override = 'icons/goonstation/mob/clothing/feet.dmi'
|
||||
lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi'
|
||||
righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi'
|
||||
flags = NODROP
|
||||
|
||||
@@ -657,4 +657,4 @@
|
||||
if(user.reagents.get_reagent_amount("syndicate_nanites") < 15)
|
||||
user.reagents.add_reagent("syndicate_nanites", 15)
|
||||
else
|
||||
processing_objects.Remove(src)
|
||||
processing_objects.Remove(src)
|
||||
|
||||
@@ -709,3 +709,15 @@
|
||||
to_chat(user,"<span class='warning'>You can't fit inside while wearing that \the [user.get_item_by_slot(slot_id)].</span>")
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/under/cursedclown
|
||||
name = "cursed clown suit"
|
||||
desc = "It wasn't already?"
|
||||
icon = 'icons/goonstation/objects/clothing/uniform.dmi'
|
||||
icon_state = "cursedclown"
|
||||
item_state = "cclown_uniform"
|
||||
item_color = "cursedclown"
|
||||
icon_override = 'icons/goonstation/mob/clothing/uniform.dmi'
|
||||
lefthand_file = 'icons/goonstation/mob/inhands/clothing_lefthand.dmi'
|
||||
righthand_file = 'icons/goonstation/mob/inhands/clothing_righthand.dmi'
|
||||
flags = NODROP
|
||||
|
||||
@@ -476,13 +476,21 @@
|
||||
var/mob/living/carbon/human/H = owner
|
||||
if(isobj(H.shoes))
|
||||
var/thingy = H.shoes
|
||||
H.unEquip(H.shoes)
|
||||
walk_away(thingy,H,15,2)
|
||||
spawn(20)
|
||||
if(thingy)
|
||||
walk(thingy,0)
|
||||
if(H.unEquip(H.shoes))
|
||||
walk_away(thingy,H,15,2)
|
||||
spawn(20)
|
||||
if(thingy)
|
||||
walk(thingy,0)
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/honktumor/cursed
|
||||
|
||||
/obj/item/organ/internal/honktumor/cursed/remove(mob/living/carbon/M, special = 0, clean_remove = 0)
|
||||
..()
|
||||
if(!clean_remove)
|
||||
insert(M) //You're not getting away that easily!
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/internal/beard
|
||||
name = "beard organ"
|
||||
@@ -493,7 +501,6 @@
|
||||
parent_organ = "head"
|
||||
slot = "hair_organ"
|
||||
|
||||
|
||||
/obj/item/organ/internal/beard/on_life()
|
||||
|
||||
if(!owner)
|
||||
@@ -516,4 +523,4 @@
|
||||
head_organ.r_facial = 216
|
||||
head_organ.g_facial = 192
|
||||
head_organ.b_facial = 120
|
||||
H.update_fhair()
|
||||
H.update_fhair()
|
||||
|
||||
|
After Width: | Height: | Size: 357 B |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 718 B |
|
After Width: | Height: | Size: 656 B |
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 292 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 346 B |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 56 KiB |
@@ -274,6 +274,7 @@
|
||||
#include "code\datums\spells\area_teleport.dm"
|
||||
#include "code\datums\spells\bloodcrawl.dm"
|
||||
#include "code\datums\spells\charge.dm"
|
||||
#include "code\datums\spells\cluwne.dm"
|
||||
#include "code\datums\spells\conjure.dm"
|
||||
#include "code\datums\spells\construct_spells.dm"
|
||||
#include "code\datums\spells\dumbfire.dm"
|
||||
|
||||