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."