diff --git a/code/modules/spells/contracts.dm b/code/modules/spells/contracts.dm
index d5daf7b0430..a3e72305fcf 100644
--- a/code/modules/spells/contracts.dm
+++ b/code/modules/spells/contracts.dm
@@ -54,7 +54,11 @@
user << "With the signing of this paper you agree to become \the [contract_master]'s apprentice in the art of wizardry."
user.faction = "Space Wizard"
wizards.add_antagonist_mind(user.mind,1)
- new /obj/item/weapon/spellbook/student(get_turf(user))
+ var/obj/item/I = new /obj/item/weapon/spellbook/student(get_turf(user))
+ user.put_in_hands(I)
+ new /obj/item/clothing/shoes/sandal(get_turf(user))
+ new /obj/item/clothing/suit/wizrobe(get_turf(user))
+ new /obj/item/clothing/head/wizard(get_turf(user))
return 1
return 0
diff --git a/code/modules/spells/targeted/necromancer_spells.dm b/code/modules/spells/targeted/necromancer_spells.dm
index 97227959f97..be217717a49 100644
--- a/code/modules/spells/targeted/necromancer_spells.dm
+++ b/code/modules/spells/targeted/necromancer_spells.dm
@@ -140,18 +140,19 @@
max_targets = 1
level_max = list(Sp_TOTAL = 0, Sp_SPEED = 0, Sp_POWER = 0)
+ cast_sound = 'sound/magic/pope_entry.ogg'
+
hud_state = "wiz_lich"
/spell/targeted/lichdom/cast(mob/target,var/mob/living/carbon/human/user as mob)
-
+ ..()
if(isundead(user))
user << "You have no soul or life to offer."
return 0
user.visible_message("\The [user]'s skin sloughs off bone, their blood boils and guts turn to dust!")
gibs(user.loc)
- playsound(src, 'sound/magic/pope_entry.ogg', 100, 1)
- user.verbs += /mob/living/carbon/proc/dark_resurrection
+ user.add_spell(new /spell/targeted/dark_resurrection)
user.set_species("Skeleton")
user.unEquip(user.wear_suit)
user.unEquip(user.head)
@@ -161,46 +162,57 @@
var/obj/item/phylactery/G = new(get_turf(user))
G.lich = user
G.icon_state = "cursedheart-on"
-
+ user.remove_spell(src)
return 1
-/mob/living/carbon/proc/dark_resurrection()
- set category = "Abilities"
- set name = "Dark Resurrection"
- set desc = "Return to your phylactery and rebuild your body."
+/spell/targeted/dark_resurrection
+ name = "Dark Resurrection"
+ desc = "This spell brings the user back to life, as long their soul is stored in a phylactery."
+ feedback = "DAR"
+ range = 0
+ school = "necromancy"
+ spell_flags = GHOSTCAST | INCLUDEUSER
+ charge_max = 600 //1 minute
+ max_targets = 1
- var/mob/living/carbon/C = usr
- if(C.stat != DEAD)
- C << "You're not dead yet!"
- return
+ invocation = ""
+ invocation_type = SpI_NONE
+
+ hud_state = "wiz_lich"
+
+/spell/targeted/dark_resurrection/cast(mob/target,var/mob/living/carbon/human/user as mob)
+ ..()
+ if(user.stat != DEAD)
+ to_chat(user, "You're not dead yet!")
+ return 0
var/obj/item/phylactery/P
for(var/thing in world_phylactery)
var/obj/item/phylactery/N = thing
- if (!QDELETED(N) && N.lich == C)
+ if (!QDELETED(N) && N.lich == user)
P = N
if(P)
- C.forceMove(get_turf(P))
- C << "Your dead body returns to your phylactery, slowly rebuilding itself."
+ user.forceMove(get_turf(P))
+ to_chat(user, "Your dead body returns to your phylactery, slowly rebuilding itself.")
if(prob(25))
var/area/A = get_area(P)
command_announcement.Announce("High levels of bluespace activity detected at \the [A]. Investigate it soon as possible.", "Bluespace Anomaly Report")
- C.verbs -= /mob/living/carbon/proc/dark_resurrection
- addtimer(CALLBACK(src, .proc/post_dark_resurrection), rand(400, 800))
+
+ addtimer(CALLBACK(src, .proc/post_dark_resurrection, user), rand(200, 400))
+ return 1
else
- C << "Your phylactery was destroyed, your existence will face oblivion now."
- C.visible_message("As [C]'s body turns to dust, a twisted wail can be heard!")
- playsound(C.loc, 'sound/hallucinations/wail.ogg', 50, 1)
- C.dust()
- return
+ to_chat(user, "Your phylactery was destroyed, your existence will face oblivion now.")
+ user.visible_message("As [user]'s body turns to dust, a twisted wail can be heard!")
+ playsound(get_turf(user), 'sound/hallucinations/wail.ogg', 50, 1)
+ user.dust()
+ return 0
-/mob/living/carbon/proc/post_dark_resurrection()
- src.revive()
- src << "You have returned to life!"
- src.visible_message("[src] rises up from the dead!")
- playsound(src, 'sound/magic/pope_entry.ogg', 100, 1)
- src.update_canmove()
- src.verbs += /mob/living/carbon/proc/dark_resurrection
+/spell/targeted/dark_resurrection/proc/post_dark_resurrection(var/mob/living/carbon/human/user as mob)
+ user.revive()
+ to_chat(user, "You have returned to life!")
+ user.visible_message("[user] rises up from the dead!")
+ playsound(get_turf(user), 'sound/magic/pope_entry.ogg', 100, 1)
+ user.update_canmove()
return 1
diff --git a/html/changelogs/alberyk-wizard.yml b/html/changelogs/alberyk-wizard.yml
new file mode 100644
index 00000000000..7ec1e4825c0
--- /dev/null
+++ b/html/changelogs/alberyk-wizard.yml
@@ -0,0 +1,6 @@
+author: Alberyk
+
+delete-after: True
+
+changes:
+ - tweak: "Accepting a wizard apprentice contract will now create a set of wizard clothing."