mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 13:07:46 +01:00
Datumizes spells (#24242)
* datumized spells * finished * last changes * conflict * Update code/datums/spells/alien_spells/transfer_plasma.dm * conflicts * shitty runtime fix until i get to this tomorrow * Update code/datums/spell.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spell_handler/alien_spell_handler.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/alien_spells/regurgitate.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/alien_spells/regurgitate.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/bloodcrawl.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/bloodcrawl.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/antagonists/vampire/vampire_powers/hemomancer_powers.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/awaymissions/mission_code/ruins/wizardcrash.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/research/xenobiology/xenobiology.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/modules/mob/living/carbon/superheroes.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/conjure.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/ethereal_jaunt.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/emplosion.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/turf_teleport.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/wizard_spells.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/wizard_spells.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/game/dna/mutations/mutation_powers.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/wizard_spells.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/datums/spells/wizard_spells.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/game/dna/mutations/mutation_powers.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/game/gamemodes/miniantags/revenant/revenant_abilities.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * guess who just rework the entire malf ai actionsf ai * gc better --------- Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
desc = "High Five?"
|
||||
var/catchphrase = "High Five!"
|
||||
var/on_use_sound = null
|
||||
var/obj/effect/proc_holder/spell/touch/attached_spell
|
||||
var/datum/spell/touch/attached_spell
|
||||
icon = 'icons/obj/weapons/magical_weapons.dmi'
|
||||
icon_state = "disintegrate"
|
||||
item_state = null
|
||||
|
||||
@@ -400,9 +400,9 @@
|
||||
if(SS.purified)
|
||||
make_holy()
|
||||
// Replace regular soulstone summoning with purified soulstones
|
||||
if(is_type_in_list(/obj/effect/proc_holder/spell/aoe/conjure/build/soulstone, mob_spell_list))
|
||||
RemoveSpell(/obj/effect/proc_holder/spell/aoe/conjure/build/soulstone)
|
||||
AddSpell(new /obj/effect/proc_holder/spell/aoe/conjure/build/soulstone/holy)
|
||||
if(is_type_in_list(/datum/spell/aoe/conjure/build/soulstone, mob_spell_list))
|
||||
RemoveSpell(/datum/spell/aoe/conjure/build/soulstone)
|
||||
AddSpell(new /datum/spell/aoe/conjure/build/soulstone/holy)
|
||||
|
||||
else if(mind.has_antag_datum(/datum/antagonist/cultist)) // Re-grant cult actions, lost in the transfer
|
||||
var/datum/action/innate/cult/comm/CC = new
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
var/category = "Offensive"
|
||||
var/cost = 2
|
||||
var/refundable = TRUE
|
||||
var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell
|
||||
var/datum/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell
|
||||
var/buy_word = "Learn"
|
||||
var/limit //used to prevent a spellbook_entry from being bought more than X times with one wizard spellbook
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
|
||||
return LearnSpell(user, book, S)
|
||||
|
||||
/datum/spellbook_entry/proc/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell)
|
||||
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
|
||||
/datum/spellbook_entry/proc/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, datum/spell/newspell)
|
||||
for(var/datum/spell/aspell in user.mind.spell_list)
|
||||
if(initial(newspell.name) == initial(aspell.name)) // Not using directly in case it was learned from one spellbook then upgraded in another
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
to_chat(user, "<span class='warning'>This spell cannot be improved further.</span>")
|
||||
@@ -59,7 +59,7 @@
|
||||
return FALSE
|
||||
if(!S)
|
||||
S = new spell_type()
|
||||
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
|
||||
for(var/datum/spell/aspell in user.mind.spell_list)
|
||||
if(initial(S.name) == initial(aspell.name))
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -72,7 +72,7 @@
|
||||
if(!S) //This happens when the spell's source is from another spellbook, from loadouts, or adminery, this create a new template temporary spell
|
||||
S = new spell_type()
|
||||
var/spell_levels = 0
|
||||
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
|
||||
for(var/datum/spell/aspell in user.mind.spell_list)
|
||||
if(initial(S.name) == initial(aspell.name))
|
||||
spell_levels = aspell.spell_level
|
||||
user.mind.spell_list.Remove(aspell)
|
||||
@@ -97,126 +97,126 @@
|
||||
//Offensive
|
||||
/datum/spellbook_entry/blind
|
||||
name = "Blind"
|
||||
spell_type = /obj/effect/proc_holder/spell/trigger/blind
|
||||
spell_type = /datum/spell/genetic/blind
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/lightningbolt
|
||||
name = "Lightning Bolt"
|
||||
spell_type = /obj/effect/proc_holder/spell/charge_up/bounce/lightning
|
||||
spell_type = /datum/spell/charge_up/bounce/lightning
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/cluwne
|
||||
name = "Curse of the Cluwne"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/cluwne
|
||||
spell_type = /datum/spell/touch/cluwne
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/banana_touch
|
||||
name = "Banana Touch"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/banana
|
||||
spell_type = /datum/spell/touch/banana
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/mime_malaise
|
||||
name = "Mime Malaise"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/mime_malaise
|
||||
spell_type = /datum/spell/touch/mime_malaise
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/horseman
|
||||
name = "Curse of the Horseman"
|
||||
spell_type = /obj/effect/proc_holder/spell/horsemask
|
||||
spell_type = /datum/spell/horsemask
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/disintegrate
|
||||
name = "Disintegrate"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/disintegrate
|
||||
spell_type = /datum/spell/touch/disintegrate
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/fireball
|
||||
name = "Fireball"
|
||||
spell_type = /obj/effect/proc_holder/spell/fireball
|
||||
spell_type = /datum/spell/fireball
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/summon_toolbox
|
||||
name = "Homing Toolbox"
|
||||
spell_type = /obj/effect/proc_holder/spell/fireball/toolbox
|
||||
spell_type = /datum/spell/fireball/toolbox
|
||||
category = "Offensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/fleshtostone
|
||||
name = "Flesh to Stone"
|
||||
spell_type = /obj/effect/proc_holder/spell/touch/flesh_to_stone
|
||||
spell_type = /datum/spell/touch/flesh_to_stone
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/mutate
|
||||
name = "Mutate"
|
||||
spell_type = /obj/effect/proc_holder/spell/genetic/mutate
|
||||
spell_type = /datum/spell/genetic/mutate
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/rod_form
|
||||
name = "Rod Form"
|
||||
spell_type = /obj/effect/proc_holder/spell/rod_form
|
||||
spell_type = /datum/spell/rod_form
|
||||
category = "Offensive"
|
||||
|
||||
/datum/spellbook_entry/infinite_guns
|
||||
name = "Lesser Summon Guns"
|
||||
spell_type = /obj/effect/proc_holder/spell/infinite_guns
|
||||
spell_type = /datum/spell/infinite_guns
|
||||
category = "Offensive"
|
||||
|
||||
//Defensive
|
||||
/datum/spellbook_entry/disabletech
|
||||
name = "Disable Tech"
|
||||
spell_type = /obj/effect/proc_holder/spell/emplosion/disable_tech
|
||||
spell_type = /datum/spell/emplosion/disable_tech
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/forcewall
|
||||
name = "Force Wall"
|
||||
spell_type = /obj/effect/proc_holder/spell/forcewall
|
||||
spell_type = /datum/spell/forcewall
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/rathens
|
||||
name = "Rathen's Secret"
|
||||
spell_type = /obj/effect/proc_holder/spell/rathens
|
||||
spell_type = /datum/spell/rathens
|
||||
category = "Defensive"
|
||||
cost = 2
|
||||
|
||||
/datum/spellbook_entry/repulse
|
||||
name = "Repulse"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/repulse
|
||||
spell_type = /datum/spell/aoe/repulse
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/smoke
|
||||
name = "Smoke"
|
||||
spell_type = /obj/effect/proc_holder/spell/smoke
|
||||
spell_type = /datum/spell/smoke
|
||||
category = "Defensive"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/lichdom
|
||||
name = "Bind Soul"
|
||||
spell_type = /obj/effect/proc_holder/spell/lichdom
|
||||
spell_type = /datum/spell/lichdom
|
||||
category = "Defensive"
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/magicm
|
||||
name = "Magic Missile"
|
||||
spell_type = /obj/effect/proc_holder/spell/projectile/magic_missile
|
||||
spell_type = /datum/spell/projectile/magic_missile
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/timestop
|
||||
name = "Time Stop"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/conjure/timestop
|
||||
spell_type = /datum/spell/aoe/conjure/timestop
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/sacred_flame
|
||||
name = "Sacred Flame and Fire Immunity"
|
||||
spell_type = /obj/effect/proc_holder/spell/sacred_flame
|
||||
spell_type = /datum/spell/sacred_flame
|
||||
cost = 1
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/sacred_flame/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell)
|
||||
/datum/spellbook_entry/sacred_flame/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, datum/spell/newspell)
|
||||
to_chat(user, "<span class='notice'>You feel fireproof.</span>")
|
||||
ADD_TRAIT(user, TRAIT_RESISTHEAT, MAGIC_TRAIT)
|
||||
ADD_TRAIT(user, TRAIT_RESISTHIGHPRESSURE, MAGIC_TRAIT)
|
||||
@@ -230,11 +230,11 @@
|
||||
|
||||
/datum/spellbook_entry/summon_supermatter
|
||||
name = "Summon Supermatter Crystal"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/conjure/summon_supermatter
|
||||
spell_type = /datum/spell/aoe/conjure/summon_supermatter
|
||||
cost = 3
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/summon_supermatter/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell)
|
||||
/datum/spellbook_entry/summon_supermatter/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, datum/spell/newspell)
|
||||
to_chat(user, "<span class='notice'>You feel a little bit of supermatter enter your body.</span>")
|
||||
ADD_TRAIT(user, TRAIT_RADIMMUNE, MAGIC_TRAIT)
|
||||
ADD_TRAIT(user, SM_HALLUCINATION_IMMUNE, MAGIC_TRAIT)
|
||||
@@ -249,64 +249,64 @@
|
||||
//Mobility
|
||||
/datum/spellbook_entry/knock
|
||||
name = "Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/knock
|
||||
spell_type = /datum/spell/aoe/knock
|
||||
category = "Mobility"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/blink
|
||||
name = "Blink"
|
||||
spell_type = /obj/effect/proc_holder/spell/turf_teleport/blink
|
||||
spell_type = /datum/spell/turf_teleport/blink
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/jaunt
|
||||
name = "Ethereal Jaunt"
|
||||
spell_type = /obj/effect/proc_holder/spell/ethereal_jaunt
|
||||
spell_type = /datum/spell/ethereal_jaunt
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/spacetime_dist
|
||||
name = "Spacetime Distortion"
|
||||
spell_type = /obj/effect/proc_holder/spell/spacetime_dist
|
||||
spell_type = /datum/spell/spacetime_dist
|
||||
cost = 1 //Better defence than greater forcewall (maybe) but good luck hitting anyone, so 1 point.
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/greaterknock
|
||||
name = "Greater Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe/knock/greater
|
||||
spell_type = /datum/spell/aoe/knock/greater
|
||||
category = "Mobility"
|
||||
refundable = 0 //global effect on cast
|
||||
|
||||
/datum/spellbook_entry/mindswap
|
||||
name = "Mindswap"
|
||||
spell_type = /obj/effect/proc_holder/spell/mind_transfer
|
||||
spell_type = /datum/spell/mind_transfer
|
||||
category = "Mobility"
|
||||
|
||||
/datum/spellbook_entry/teleport
|
||||
name = "Teleport"
|
||||
spell_type = /obj/effect/proc_holder/spell/area_teleport/teleport
|
||||
spell_type = /datum/spell/area_teleport/teleport
|
||||
category = "Mobility"
|
||||
|
||||
//Assistance
|
||||
/datum/spellbook_entry/charge
|
||||
name = "Charge"
|
||||
spell_type = /obj/effect/proc_holder/spell/charge
|
||||
spell_type = /datum/spell/charge
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/summonitem
|
||||
name = "Summon Item"
|
||||
spell_type = /obj/effect/proc_holder/spell/summonitem
|
||||
spell_type = /datum/spell/summonitem
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/disguiseself
|
||||
name = "Disguise Self"
|
||||
spell_type = /obj/effect/proc_holder/spell/disguise_self
|
||||
spell_type = /datum/spell/disguise_self
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/noclothes
|
||||
name = "Remove Clothes Requirement"
|
||||
spell_type = /obj/effect/proc_holder/spell/noclothes
|
||||
spell_type = /datum/spell/noclothes
|
||||
category = "Assistance"
|
||||
cost = 1
|
||||
|
||||
@@ -433,7 +433,7 @@
|
||||
/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
. = ..()
|
||||
if(.)
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe/conjure/construct(null))
|
||||
user.mind.AddSpell(new /datum/spell/aoe/conjure/construct(null))
|
||||
return .
|
||||
|
||||
/datum/spellbook_entry/item/wands
|
||||
@@ -676,7 +676,7 @@
|
||||
new path(B)
|
||||
user.put_in_hands(B)
|
||||
for(var/path in spells_path)
|
||||
var/obj/effect/proc_holder/spell/S = new path()
|
||||
var/datum/spell/S = new path()
|
||||
LearnSpell(user, book, S)
|
||||
OnBuy(user, book)
|
||||
return TRUE
|
||||
@@ -946,7 +946,7 @@
|
||||
|
||||
//Single Use Spellbooks
|
||||
/obj/item/spellbook/oneuse
|
||||
var/spell = /obj/effect/proc_holder/spell/projectile/magic_missile //just a placeholder to avoid runtimes if someone spawned the generic
|
||||
var/spell = /datum/spell/projectile/magic_missile //just a placeholder to avoid runtimes if someone spawned the generic
|
||||
var/spellname = "sandbox"
|
||||
var/used = FALSE
|
||||
name = "spellbook of "
|
||||
@@ -961,8 +961,8 @@
|
||||
return
|
||||
|
||||
/obj/item/spellbook/oneuse/attack_self(mob/user)
|
||||
var/obj/effect/proc_holder/spell/S = new spell
|
||||
for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list)
|
||||
var/datum/spell/S = new spell
|
||||
for(var/datum/spell/knownspell in user.mind.spell_list)
|
||||
if(knownspell.type == S.type)
|
||||
if(user.mind)
|
||||
if(user.mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE || user.mind.special_role == SPECIAL_ROLE_WIZARD)
|
||||
@@ -990,7 +990,7 @@
|
||||
return
|
||||
|
||||
/obj/item/spellbook/oneuse/fireball
|
||||
spell = /obj/effect/proc_holder/spell/fireball
|
||||
spell = /datum/spell/fireball
|
||||
spellname = "fireball"
|
||||
icon_state = "bookfireball"
|
||||
desc = "This book feels warm to the touch."
|
||||
@@ -1001,7 +1001,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/item/spellbook/oneuse/smoke
|
||||
spell = /obj/effect/proc_holder/spell/smoke
|
||||
spell = /datum/spell/smoke
|
||||
spellname = "smoke"
|
||||
icon_state = "booksmoke"
|
||||
desc = "This book is overflowing with the dank arts."
|
||||
@@ -1012,7 +1012,7 @@
|
||||
user.adjust_nutrition(-200)
|
||||
|
||||
/obj/item/spellbook/oneuse/blind
|
||||
spell = /obj/effect/proc_holder/spell/trigger/blind
|
||||
spell = /datum/spell/genetic/blind
|
||||
spellname = "blind"
|
||||
icon_state = "bookblind"
|
||||
desc = "This book looks blurry, no matter how you look at it."
|
||||
@@ -1025,7 +1025,7 @@
|
||||
L.EyeBlind(20 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/mindswap
|
||||
spell = /obj/effect/proc_holder/spell/mind_transfer
|
||||
spell = /datum/spell/mind_transfer
|
||||
spellname = "mindswap"
|
||||
icon_state = "bookmindswap"
|
||||
desc = "This book's cover is pristine, though its pages look ragged and torn."
|
||||
@@ -1049,7 +1049,7 @@
|
||||
to_chat(user, "<span class='notice'>You stare at the book some more, but there doesn't seem to be anything else to learn...</span>")
|
||||
return
|
||||
|
||||
var/obj/effect/proc_holder/spell/mind_transfer/swapper = new
|
||||
var/datum/spell/mind_transfer/swapper = new
|
||||
swapper.cast(user, stored_swap)
|
||||
|
||||
to_chat(stored_swap, "<span class='warning'>You're suddenly somewhere else... and someone else?!</span>")
|
||||
@@ -1057,7 +1057,7 @@
|
||||
stored_swap = null
|
||||
|
||||
/obj/item/spellbook/oneuse/forcewall
|
||||
spell = /obj/effect/proc_holder/spell/forcewall
|
||||
spell = /datum/spell/forcewall
|
||||
spellname = "forcewall"
|
||||
icon_state = "bookforcewall"
|
||||
desc = "This book has a dedication to mimes everywhere inside the front cover."
|
||||
@@ -1070,7 +1070,7 @@
|
||||
user.drop_item()
|
||||
|
||||
/obj/item/spellbook/oneuse/knock
|
||||
spell = /obj/effect/proc_holder/spell/aoe/knock
|
||||
spell = /datum/spell/aoe/knock
|
||||
spellname = "knock"
|
||||
icon_state = "bookknock"
|
||||
desc = "This book is hard to hold closed properly."
|
||||
@@ -1081,7 +1081,7 @@
|
||||
user.Weaken(40 SECONDS)
|
||||
|
||||
/obj/item/spellbook/oneuse/horsemask
|
||||
spell = /obj/effect/proc_holder/spell/horsemask
|
||||
spell = /datum/spell/horsemask
|
||||
spellname = "horses"
|
||||
icon_state = "bookhorses"
|
||||
desc = "This book is more horse than your mind has room for."
|
||||
@@ -1101,7 +1101,7 @@
|
||||
to_chat(user, "<span class='notice'>I say thee neigh</span>")
|
||||
|
||||
/obj/item/spellbook/oneuse/charge
|
||||
spell = /obj/effect/proc_holder/spell/charge
|
||||
spell = /datum/spell/charge
|
||||
spellname = "charging"
|
||||
icon_state = "bookcharge"
|
||||
desc = "This book is made of 100% post-consumer wizard."
|
||||
@@ -1112,7 +1112,7 @@
|
||||
empulse(src, 1, 1)
|
||||
|
||||
/obj/item/spellbook/oneuse/summonitem
|
||||
spell = /obj/effect/proc_holder/spell/summonitem
|
||||
spell = /datum/spell/summonitem
|
||||
spellname = "instant summons"
|
||||
icon_state = "booksummons"
|
||||
desc = "This book is bright and garish, very hard to miss."
|
||||
@@ -1123,13 +1123,13 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/item/spellbook/oneuse/fake_gib
|
||||
spell = /obj/effect/proc_holder/spell/touch/fake_disintegrate
|
||||
spell = /datum/spell/touch/fake_disintegrate
|
||||
spellname = "disintegrate"
|
||||
icon_state = "bookfireball"
|
||||
desc = "This book feels like it will rip stuff apart."
|
||||
|
||||
/obj/item/spellbook/oneuse/sacredflame
|
||||
spell = /obj/effect/proc_holder/spell/sacred_flame
|
||||
spell = /datum/spell/sacred_flame
|
||||
spellname = "sacred flame"
|
||||
icon_state = "booksacredflame"
|
||||
desc = "Become one with the flames that burn within... and invite others to do so as well."
|
||||
|
||||
@@ -122,13 +122,13 @@
|
||||
/mob/proc/spellremove()
|
||||
if(!mind)
|
||||
return
|
||||
for(var/obj/effect/proc_holder/spell/spell_to_remove in mind.spell_list)
|
||||
for(var/datum/spell/spell_to_remove in mind.spell_list)
|
||||
qdel(spell_to_remove)
|
||||
mind.spell_list -= spell_to_remove
|
||||
|
||||
//To batch-remove mob spells.
|
||||
/mob/proc/mobspellremove()
|
||||
for(var/obj/effect/proc_holder/spell/spell_to_remove in mob_spell_list)
|
||||
for(var/datum/spell/spell_to_remove in mob_spell_list)
|
||||
qdel(spell_to_remove)
|
||||
mob_spell_list -= spell_to_remove
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
Ethereal Jaunt and Blink provide escape and mobility, while Magic Missile and Disintegrate can be used together for dangerous or key targets. <br> \
|
||||
As this set lacks any form of healing or resurrection, healing items should be acquired from the station, and you should be careful to avoid being hurt in the first place. <br><br> \
|
||||
</i>Provides Mutate, Ethereal Jaunt, Blink, Magic Missile, and Disintegrate.<i>"
|
||||
spells_path = list(/obj/effect/proc_holder/spell/genetic/mutate, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/projectile/magic_missile, /obj/effect/proc_holder/spell/touch/disintegrate)
|
||||
spells_path = list(/datum/spell/genetic/mutate, /datum/spell/ethereal_jaunt, /datum/spell/turf_teleport/blink, \
|
||||
/datum/spell/projectile/magic_missile, /datum/spell/touch/disintegrate)
|
||||
|
||||
/datum/spellbook_entry/loadout/lich
|
||||
name = "Defense Focus - Lich"
|
||||
@@ -16,8 +16,8 @@
|
||||
Ethereal Jaunt provides escape, Fireball and Rod Form are your offensive spells, and Disable Tech and Forcewall provides utility in disabling sec equipment or blocking their path. <br> \
|
||||
Care should be taken in hiding the item you choose as your phylactery after using Bind Soul, as you cannot revive if it destroyed or too far from your body! <br><br> \
|
||||
</i>Provides Bind Soul, Ethereal Jaunt, Fireball, Rod Form, Disable Tech, and Greater Forcewall.<i>"
|
||||
spells_path = list(/obj/effect/proc_holder/spell/lichdom, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/fireball, \
|
||||
/obj/effect/proc_holder/spell/rod_form, /obj/effect/proc_holder/spell/emplosion/disable_tech, /obj/effect/proc_holder/spell/forcewall)
|
||||
spells_path = list(/datum/spell/lichdom, /datum/spell/ethereal_jaunt, /datum/spell/fireball, \
|
||||
/datum/spell/rod_form, /datum/spell/emplosion/disable_tech, /datum/spell/forcewall)
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/datum/spellbook_entry/loadout/wands
|
||||
@@ -27,8 +27,8 @@
|
||||
Do not lose any of your wands to the station's crew, as they are extremely deadly even in their hands. Remember that the Revive wand can be used on yourself for a full heal! <br><br> \
|
||||
</i>Provides a Belt of Wands, Charge, Ethereal Jaunt, Blink, Repulse, and Disintegrate.<i>"
|
||||
items_path = list(/obj/item/storage/belt/wands/full)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/charge, /obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/aoe/repulse, /obj/effect/proc_holder/spell/touch/disintegrate)
|
||||
spells_path = list(/datum/spell/charge, /datum/spell/ethereal_jaunt, /datum/spell/turf_teleport/blink, \
|
||||
/datum/spell/aoe/repulse, /datum/spell/touch/disintegrate)
|
||||
|
||||
//Unique loadouts, which are more gimmicky. Should contain some unique spell or item that separates it from just buying standard wiz spells, and be balanced around a 10 spell point cost.
|
||||
/datum/spellbook_entry/loadout/mimewiz
|
||||
@@ -37,14 +37,14 @@
|
||||
</i>Provides Finger Gun and Invisible Greater Wall manuals, Mime Robes, a Cane and Duct Tape, Ethereal Jaunt, Blink, Teleport, Mime Malaise, Knock, and Stop Time.<i>"
|
||||
items_path = list(/obj/item/spellbook/oneuse/mime/fingergun, /obj/item/spellbook/oneuse/mime/greaterwall, /obj/item/clothing/suit/wizrobe/mime, /obj/item/clothing/head/wizard/mime, \
|
||||
/obj/item/clothing/mask/gas/mime/wizard, /obj/item/clothing/shoes/sandal/marisa, /obj/item/cane, /obj/item/stack/tape_roll)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, /obj/effect/proc_holder/spell/area_teleport/teleport, \
|
||||
/obj/effect/proc_holder/spell/touch/mime_malaise, /obj/effect/proc_holder/spell/aoe/knock, /obj/effect/proc_holder/spell/aoe/conjure/timestop)
|
||||
spells_path = list(/datum/spell/ethereal_jaunt, /datum/spell/turf_teleport/blink, /datum/spell/area_teleport/teleport, \
|
||||
/datum/spell/touch/mime_malaise, /datum/spell/aoe/knock, /datum/spell/aoe/conjure/timestop)
|
||||
category = "Unique"
|
||||
destroy_spellbook = TRUE
|
||||
|
||||
/datum/spellbook_entry/loadout/mimewiz/OnBuy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
if(user.mind)
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/mime/speak(null))
|
||||
user.mind.AddSpell(new /datum/spell/mime/speak(null))
|
||||
user.mind.miming = TRUE
|
||||
|
||||
/datum/spellbook_entry/loadout/gunreaper
|
||||
@@ -54,13 +54,13 @@
|
||||
You will likely need to scavenge additional ammo or weapons aboard the station. <br><br>\
|
||||
</i>Provides a .357 Revolver, 4 speedloaders of ammo, Ethereal Jaunt, Blink, Summon Item, No Clothes, and Bind Soul, with a unique outfit.<i>"
|
||||
items_path = list(/obj/item/gun/projectile/revolver, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/clothing/under/syndicate)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/turf_teleport/blink, \
|
||||
/obj/effect/proc_holder/spell/summonitem, /obj/effect/proc_holder/spell/noclothes, /obj/effect/proc_holder/spell/lichdom/gunslinger)
|
||||
spells_path = list(/datum/spell/ethereal_jaunt, /datum/spell/turf_teleport/blink, \
|
||||
/datum/spell/summonitem, /datum/spell/noclothes, /datum/spell/lichdom/gunslinger)
|
||||
category = "Unique"
|
||||
destroy_spellbook = TRUE
|
||||
is_ragin_restricted = TRUE
|
||||
|
||||
/obj/effect/proc_holder/spell/lichdom/gunslinger/equip_lich(mob/living/carbon/human/H)
|
||||
/datum/spell/lichdom/gunslinger/equip_lich(mob/living/carbon/human/H)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit(H), SLOT_HUD_OUTER_SUIT)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_HUD_SHOES)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(H), SLOT_HUD_GLOVES)
|
||||
@@ -74,8 +74,8 @@
|
||||
</i>Provides His Grace, an Ancient Jumpsuit, an Assistant ID, a Gas Mask and Shoes, Insulated Gloves, a full Toolbelt, Ethereal Jaunt, Force Wall, Homing Toolbox, Knock and No Clothes.<i>"
|
||||
items_path = list(/obj/item/his_grace, /obj/item/clothing/under/color/grey/glorf, /obj/item/clothing/mask/gas, /obj/item/clothing/shoes/black, \
|
||||
/obj/item/clothing/gloves/color/yellow, /obj/item/storage/belt/utility/full/multitool)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/ethereal_jaunt, /obj/effect/proc_holder/spell/forcewall, \
|
||||
/obj/effect/proc_holder/spell/aoe/knock, /obj/effect/proc_holder/spell/noclothes, /obj/effect/proc_holder/spell/fireball/toolbox)
|
||||
spells_path = list(/datum/spell/ethereal_jaunt, /datum/spell/forcewall, \
|
||||
/datum/spell/aoe/knock, /datum/spell/noclothes, /datum/spell/fireball/toolbox)
|
||||
category = "Unique"
|
||||
destroy_spellbook = TRUE
|
||||
|
||||
@@ -111,8 +111,8 @@
|
||||
items_path = list(/obj/item/supermatter_halberd, /obj/item/clothing/gloves/color/white/supermatter_immune, \
|
||||
/obj/item/clothing/suit/hooded/oblivion, /obj/item/clothing/mask/gas/voice_modulator/oblivion, /obj/item/tank/internals/emergency_oxygen/double, \
|
||||
/obj/item/clothing/under/color/white/enforcer, /obj/item/clothing/shoes/white/enforcer)
|
||||
spells_path = list(/obj/effect/proc_holder/spell/summonitem, /obj/effect/proc_holder/spell/charge_up/bounce/lightning, \
|
||||
/obj/effect/proc_holder/spell/aoe/conjure/summon_supermatter)
|
||||
spells_path = list(/datum/spell/summonitem, /datum/spell/charge_up/bounce/lightning, \
|
||||
/datum/spell/aoe/conjure/summon_supermatter)
|
||||
category = "Unique"
|
||||
destroy_spellbook = TRUE
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
name = "Fireball. Fireball. Fireball."
|
||||
desc = "Who cares about the rest of the spells. Become an expert in fire magic. Devote yourself to the craft. The only spell you need anyways is <b>Fireball.</b><br>\
|
||||
</i>Provides fire immunity, homing fireballs, rapid-fire fireballs, and some fireball wands. Provides no mobility spells. Replaces your robes with infernal versions.<i>"
|
||||
spells_path = list(/obj/effect/proc_holder/spell/sacred_flame, /obj/effect/proc_holder/spell/fireball/homing, /obj/effect/proc_holder/spell/infinite_guns/fireball)
|
||||
spells_path = list(/datum/spell/sacred_flame, /datum/spell/fireball/homing, /datum/spell/infinite_guns/fireball)
|
||||
category = "Unique"
|
||||
destroy_spellbook = TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user