Skip to content

Commit db96bfa

Browse files
authored
New wiz spell: Curse of Norwood (#37505)
* New wiz spell: Curse of Norwood * reduce cooldown * Barry fix
1 parent 20f2a4b commit db96bfa

File tree

6 files changed

+73
-4
lines changed

6 files changed

+73
-4
lines changed

code/game/gamemodes/wizard/spellbook_oneuse.dm

+8
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,14 @@
566566
disabled_from_bundle = 1
567567

568568

569+
///// Norwood curse ////
570+
571+
/obj/item/weapon/spellbook/oneuse/norwood
572+
spell = /spell/targeted/norwood_curse
573+
spellname = "norwood"
574+
icon_state ="bookmindswap" // To fix!
575+
desc = "This book suddenly stops about 29 pages in. After, it is written 'it's over' in every language that has ever existed, will ever exist, and even in some which shouldn't theoretically exist."
576+
569577
///// ANCIENT SPELLBOOK /////
570578

571579
/obj/item/weapon/spellbook/oneuse/ancient //the ancient spellbook contains weird and dangerous spells that aren't otherwise available to purchase, only available via the spellbook bundle

code/game/objects/items/weapons/cosmetics.dm

+10-1
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,8 @@
629629
flags = FPRINT
630630
w_class = W_CLASS_TINY
631631

632-
var/shattered = 0
632+
var/shattered = FALSE
633+
var/norwood_cursed = FALSE
633634

634635
/obj/item/weapon/pocket_mirror/attack_self(mob/user)
635636
if(shattered)
@@ -666,6 +667,14 @@
666667
H = user
667668
if(!H)
668669
return
670+
if (norwood_cursed)
671+
if (isjusthuman(H))
672+
to_chat(H, "<span class = 'userwarning'>Oh no! It's the curse of Norwood!</span>")
673+
H.visible_message("<span class='warning'>[H]'s hair vanishes in a flash!</span>")
674+
H.my_appearance.h_style = "Bald"
675+
H.update_hair()
676+
H.my_appearance.permanently_bald = TRUE
677+
return
669678
if(arcanetampered)
670679
to_chat(user, "<span class='sinister'>You feel different.</span>")
671680
H.Humanize(pick("Unathi","Tajaran","Insectoid","Grey",/*and worst of all*/"Vox"))

code/game/objects/structures/mirror.dm

+12-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
desc = "Mirror mirror on the wall, who's the most robust of them all? Touching the mirror will bring out Nanotrasen's state of the art hair modification system."
55
icon = 'icons/obj/watercloset.dmi'
66
icon_state = "mirror"
7-
density = 0
8-
anchored = 1
9-
var/shattered = 0
7+
density = FALSE
8+
anchored = TRUE
9+
var/shattered = FALSE
10+
/// Whether or not using this mirror makes you permanently bald or not.
11+
var/norwood_cursed = FALSE
1012

1113
/obj/structure/mirror/proc/can_use(mob/living/user, mob/living/carbon/human/target)
1214
if(shattered)
@@ -104,6 +106,13 @@
104106
var/new_style = input(user, "Select a hair style", "Grooming", target.my_appearance.h_style) as null|anything in species_hair
105107
if(!new_style || !attempt(user, target, which))
106108
return
109+
if (norwood_cursed)
110+
to_chat(target, "<span class = 'userwarning'>Oh no! It's the curse of Norwood!</span>")
111+
target.visible_message("<span class='warning'>[target]'s hair vanishes in a flash!</span>")
112+
target.my_appearance.h_style = "Bald"
113+
target.update_hair()
114+
target.my_appearance.permanently_bald = TRUE
115+
return
107116
target.my_appearance.h_style = new_style
108117
target.update_hair()
109118

code/modules/mob/living/carbon/human/appearance.dm

+5
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,17 @@
2424
var/g_eyes = 0
2525
var/b_eyes = 0
2626

27+
var/permanently_bald = FALSE
28+
2729
/mob/living/carbon/human/
2830
var/datum/human_appearance/my_appearance
2931

3032
/mob/living/carbon/human/proc/switch_appearance(var/datum/human_appearance/new_looks)
3133
if (!istype(new_looks))
3234
return
35+
if (my_appearance.permanently_bald && new_looks.h_style != "Bald")
36+
to_chat(src, "<span class='warning'>It is no use! The Curse O' Norwood is too strong!</span>")
37+
new_looks.h_style = "Bald"
3338
my_appearance = new_looks
3439
regenerate_icons()
3540

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/spell/targeted/norwood_curse
2+
name = "Curse of Norwood"
3+
desc = "Target a person to make them permanently bald and sad. Target mirrors to infuse them with the curse of norwood."
4+
abbreviation = "CoN"
5+
user_type = USER_TYPE_WIZARD
6+
specialization = SSOFFENSIVE
7+
8+
charge_type = Sp_RECHARGE
9+
10+
school = "transmutation"
11+
charge_max = 10 SECONDS
12+
spell_flags = WAIT_FOR_CLICK | IS_HARMFUL
13+
cooldown_min = 4 SECONDS
14+
range = 1
15+
max_targets = 1
16+
invocation = "C'R'S O' N'WOOD!"
17+
18+
invocation_type = SpI_SHOUT
19+
20+
hud_state = "pumpkin"
21+
22+
/spell/targeted/norwood_curse/cast(var/list/targets, mob/user)
23+
..()
24+
for(var/mob/living/carbon/human/target in targets)
25+
if(isjusthuman(target))
26+
to_chat(target, "<span class = 'userwarning'>Oh no! It's the curse of Norwood!</span>")
27+
target.my_appearance.h_style = "Bald"
28+
target.update_hair()
29+
target.my_appearance.permanently_bald = TRUE
30+
31+
for(var/obj/structure/mirror/M in targets)
32+
to_chat(user, "<span class='notice'>Mwahaha! This [M] is now cursed! Any soul attempting to use it shall lose their hair!</span>")
33+
M.norwood_cursed = TRUE
34+
35+
for(var/obj/item/weapon/pocket_mirror/M in targets)
36+
to_chat(user, "<span class='notice'>Mwahaha! This [M] is now cursed! Any soul attempting to use it shall lose their hair!</span>")
37+
M.norwood_cursed = TRUE

vgstation13.dme

+1
Original file line numberDiff line numberDiff line change
@@ -2842,6 +2842,7 @@
28422842
#include "code\modules\spells\targeted\ice_barrage.dm"
28432843
#include "code\modules\spells\targeted\invoke_emotion.dm"
28442844
#include "code\modules\spells\targeted\mind_transfer.dm"
2845+
#include "code\modules\spells\targeted\norwood.dm"
28452846
#include "code\modules\spells\targeted\pacify.dm"
28462847
#include "code\modules\spells\targeted\parrotmorph.dm"
28472848
#include "code\modules\spells\targeted\prestidigitation.dm"

0 commit comments

Comments
 (0)