mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user