Adds more magic items and spells to the wizard spellbook (#15036)

* touches more or less everthing that is magic

* Other changes I forgot to put in

* removes extra s

* nevermind lets not do drake form

* Apply suggestions from code review

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

* Better variable name

* Heart curse removed

* Re adds new stuff

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2021-03-14 06:15:05 -04:00
committed by GitHub
parent 114f31703c
commit 9ee679cded
3 changed files with 78 additions and 1 deletions
+56 -1
View File
@@ -172,6 +172,18 @@
log_name = "IG"
category = "Offensive"
/datum/spellbook_entry/sacred_flame
name = "Sacred Flame"
spell_type = /obj/effect/proc_holder/spell/targeted/sacred_flame
cost = 1
log_name = "SF"
refundable = 0 //You get fire immunity out of it, no.
/datum/spellbook_entry/sacred_flame/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell)
..()
user.dna.SetSEState(GLOB.coldblock, 1)
genemutcheck(user, GLOB.coldblock, null, MUTCHK_FORCED)
//Defensive
/datum/spellbook_entry/disabletech
name = "Disable Tech"
@@ -357,10 +369,14 @@
name = "Buy Item"
refundable = 0
buy_word = "Summon"
var/spawn_on_floor = FALSE
var/item_path = null
/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
user.put_in_hands(new item_path)
if(spawn_on_floor == FALSE)
user.put_in_hands(new item_path)
else
new item_path(user.loc)
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name)
return 1
@@ -406,6 +422,30 @@
log_name = "WA"
category = "Artefacts"
/datum/spellbook_entry/item/cursed_heart
name = "Cursed Heart"
desc = "A heart that has been empowered with magic to heal the user. The user must ensure the heart is manually beaten or their blood circulation will suffer, but every beat heals their injuries. It must beat every 6 seconds. Not reccomended for first time wizards."
item_path = /obj/item/organ/internal/heart/cursed/wizard
log_name = "CH"
cost = 1
category = "Artefacts"
/datum/spellbook_entry/item/voice_of_god
name = "Voice of god"
desc = "A magical vocal cord that can be used to yell out with the voice of a god, be it to harm, help, or confuse the target."
item_path = /obj/item/organ/internal/vocal_cords/colossus/wizard
log_name = "VG"
category = "Artefacts"
/datum/spellbook_entry/item/warp_cubes
name = "Warp Cubes"
desc = "Two magic cubes, that when they are twisted in hand, teleports the user to the location of the other cube instantly. Great for silently teleporting to a fixed location, or teleporting you to an appretnance, or vice versa. Do not leave on the wizard den, it will not work."
item_path = /obj/item/warp_cube/red
log_name = "WC"
cost = 1
spawn_on_floor = TRUE // breaks if spawned in hand
category = "Artefacts"
//Weapons and Armors
/datum/spellbook_entry/item/battlemage
name = "Battlemage Armour"
@@ -437,6 +477,21 @@
log_name = "SI"
category = "Weapons and Armors"
/datum/spellbook_entry/item/spell_blade //Yes spellblade is technicaly a staff, but you can melee with it and it is not called a staff so I am putting it here
name = "Spellblade"
desc = "A magical sword that is quite good at slashing people, but is even better at shooting magical projectiles that can potentialy delimb at range."
item_path = /obj/item/gun/magic/staff/spellblade
log_name = "SB"
category = "Weapons and Armors"
/datum/spellbook_entry/item/meat_hook
name = "Meat hook"
desc = "An enchanted hook, that can be used to hook people, hurt them, and bring them right to you. Quite bulky, works well as a belt though."
item_path = /obj/item/gun/magic/hook
cost = 1
log_name = "MH"
category = "Weapons and Armors"
//Staves
/datum/spellbook_entry/item/staffdoor
name = "Staff of Door Creation"
@@ -300,6 +300,7 @@
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "blue_cube"
var/obj/item/warp_cube/linked
var/cooldown = FALSE
/obj/item/warp_cube/Destroy()
if(linked)
@@ -315,6 +316,9 @@
if(is_in_teleport_proof_area(user) || is_in_teleport_proof_area(linked))
to_chat(user, "<span class='warning'>[src] sparks and fizzles.</span>")
return
if(cooldown)
to_chat(user, "<span class='warning'>[src] sparks and fizzles.</span>")
return
var/datum/effect_system/smoke_spread/smoke = new
smoke.set_up(1, 0, user.loc)
@@ -326,6 +330,13 @@
var/datum/effect_system/smoke_spread/smoke2 = new
smoke2.set_up(1, 0, user.loc)
smoke2.start()
cooldown = TRUE
linked.cooldown = TRUE
addtimer(CALLBACK(src, .proc/reset), 20 SECONDS)
/obj/item/warp_cube/proc/reset()
cooldown = FALSE
linked.cooldown = FALSE
/obj/item/warp_cube/red
name = "red cube"
@@ -182,6 +182,10 @@ GLOBAL_DATUM_INIT(multispin_words, /regex, regex("like a record baby"))
if(iscultist(owner))
power_multiplier *= 2
//It's magic, they are a wizard.
if(iswizard(owner))
power_multiplier *= 2.5
//Try to check if the speaker specified a name or a job to focus on
var/list/specific_listeners = list()
var/found_string = null
@@ -477,3 +481,10 @@ GLOBAL_DATUM_INIT(multispin_words, /regex, regex("like a record baby"))
message_admins("[key_name_admin(owner)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
log_game("[key_name(owner)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
/obj/item/organ/internal/vocal_cords/colossus/wizard
desc = "They carry the voice of an ancient god. This one is enchanted to implant it into yourself when used in hand"
/obj/item/organ/internal/vocal_cords/colossus/wizard/attack_self(mob/living/user)
user.drop_item()
insert(user)