Buff wizard apprentice, limits to one per wizard (The Sequel) (#23258)

* Buff wizard apprentice, limits to one per wizard

* Update restoration apprentice

* fix name of staff of healing

* rebuild tgui

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Apply snake case

* Update tgui.bundle.js

* Update code/game/gamemodes/wizard/artefact.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

* remove forcewall from stealth

* tgui update and useless comment removal

* Update code/datums/spells/wizard_spells.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* update tgui

---------

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
datlo
2023-12-14 21:35:21 +01:00
committed by GitHub
parent 5a163d7f7a
commit ff53bdd87f
7 changed files with 149 additions and 51 deletions
+65 -30
View File
@@ -40,34 +40,8 @@
new /obj/effect/particle_effect/smoke(H.loc)
var/mob/living/carbon/human/M = new/mob/living/carbon/human(H.loc)
M.key = C.key
to_chat(M, "<B>You are the [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing their goals.")
switch(action)
if("destruction")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/projectile/magic_missile(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null))
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball.")
if("bluespace")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/area_teleport/teleport(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null))
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.")
if("healing")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/charge(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/forcewall(null))
M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), SLOT_HUD_RIGHT_HAND)
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall.")
if("robeless")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/mind_transfer(null))
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.")
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), SLOT_HUD_LEFT_EAR)
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), SLOT_HUD_JUMPSUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), SLOT_HUD_OUTER_SUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), SLOT_HUD_HEAD)
M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), SLOT_HUD_BACK)
M.equip_to_slot_or_del(new /obj/item/storage/box(M), SLOT_HUD_IN_BACKPACK)
M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), SLOT_HUD_RIGHT_STORE)
to_chat(M, "<b>You are [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing [H.p_their()] goals.</b>")
equip_apprentice(action, M, H)
var/wizard_name_first = pick(GLOB.wizard_first)
var/wizard_name_second = pick(GLOB.wizard_second)
var/randomname = "[wizard_name_first] [wizard_name_second]"
@@ -80,9 +54,8 @@
M.name = newname
var/datum/objective/protect/new_objective = new /datum/objective/protect
new_objective.owner = M.mind
new_objective.target = H.mind
new_objective.explanation_text = "Protect [H.real_name], the wizard."
new_objective.explanation_text = "Protect and obey [H.real_name], your teacher."
M.mind.add_mind_objective(new_objective)
SSticker.mode.apprentices += M.mind
@@ -105,6 +78,68 @@
ui_interact(user)
/obj/item/contract/proc/equip_apprentice(action, mob/living/carbon/human/M, mob/living/carbon/human/H)
M.equip_to_slot_or_del(new /obj/item/radio/headset(M), SLOT_HUD_LEFT_EAR)
if(action == "stealth")
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), SLOT_HUD_JUMPSUIT)
else
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), SLOT_HUD_JUMPSUIT)
M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), SLOT_HUD_BACK)
M.equip_to_slot_or_del(new /obj/item/storage/box(M), SLOT_HUD_IN_BACKPACK)
M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), SLOT_HUD_RIGHT_STORE)
switch(action)
if("fire")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball/apprentice(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/sacred_flame(null))
ADD_TRAIT(M, TRAIT_RESISTHEAT, MAGIC_TRAIT)
ADD_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, MAGIC_TRAIT)
M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null))
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), SLOT_HUD_OUTER_SUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), SLOT_HUD_HEAD)
to_chat(M, "<b>Your service has not gone unrewarded. Under the tutelage of [H.real_name], you've acquired proficiency in the fundamentals of Firebending, enabling you to cast spells like Fireball, Sacred Flame, and Ethereal Jaunt.</b>")
to_chat(M, "<b>You are immune to fire, but you are NOT immune to the explosions caused by your fireballs. Neither is your teacher, for that matter. Be careful!</b>")
if("translocation")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/area_teleport/teleport(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/turf_teleport/blink(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null))
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), SLOT_HUD_OUTER_SUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), SLOT_HUD_HEAD)
to_chat(M, "<b>Your service has not gone unrewarded. While studying under [H.real_name], you mastered reality-bending mobility spells, allowing you to cast Teleport, Blink, and Ethereal Jaunt.</b>")
if("restoration")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/charge(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null))
var/obj/effect/proc_holder/spell/return_to_teacher/S = new /obj/effect/proc_holder/spell/return_to_teacher(null)
S.teacher = H.mind
M.mind.AddSpell(S)
M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), SLOT_HUD_RIGHT_HAND)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/marisa(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/marisa(M), SLOT_HUD_OUTER_SUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/marisa(M), SLOT_HUD_HEAD)
to_chat(M, "<b>Your service has not gone unrewarded. Under the guidance of [H.real_name], you've acquired life-saving survival spells. You can now cast Charge and Knock, and possess the ability to teleport back to your mentor.</b>")
to_chat(M, "<b>Your Charge spell can be used to recharge your Staff of Healing or reduce the cooldowns of your teacher, if you are grabbing them with empty hands.</b>")
if("stealth")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/mind_transfer(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/knock(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball/toolbox(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/summonitem(null))
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), SLOT_HUD_WEAR_MASK)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), SLOT_HUD_GLOVES)
M.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(M), SLOT_HUD_BELT)
to_chat(M, "<b>Your service has not gone unrewarded. Under the mentorship of [H.real_name], you've mastered stealthy, robeless spells. You can now cast Mindswap, Knock, Homing Toolbox, Forcewall, and Instant Summons without the need for wizard robes.</b>")
if("honk")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/touch/banana/apprentice(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/summonitem(null))
M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/slipping(M), SLOT_HUD_RIGHT_HAND)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes/magical/nodrop(M), SLOT_HUD_SHOES)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/clown(M), SLOT_HUD_OUTER_SUIT)
M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/clown(M), SLOT_HUD_HEAD)
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clownwiz(M), SLOT_HUD_WEAR_MASK)
to_chat(M, "<b>Your dedication pays off! Under [H.real_name]'s guidance, you've mastered magical honkings, seamlessly casting spells like Banana Touch, Ethereal Jaunt, and Instant Summons, while skillfully wielding a Staff of Slipping. Honk!</b>")
///////////////////////////Veil Render//////////////////////
/obj/item/veilrender
+2
View File
@@ -615,6 +615,8 @@
desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side."
item_path = /obj/item/contract
category = "Summons"
limit = 1
is_ragin_restricted = TRUE //We have enough wizards already! Sheesh!
/datum/spellbook_entry/item/tarotdeck
name = "Guardian Deck"