diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 83c23311297..f168ca5f35a 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -413,6 +413,8 @@ log_name = "SG" /datum/spellbook_entry/summon/guns/IsAvailible() + if(!ticker.mode) // In case spellbook is placed on map + return 0 if(ticker.mode.name == "ragin' mages") return 0 else @@ -434,6 +436,8 @@ log_name = "SU" /datum/spellbook_entry/summon/magic/IsAvailible() + if(!ticker.mode) // In case spellbook is placed on map + return 0 if(ticker.mode.name == "ragin' mages") return 0 else @@ -463,8 +467,7 @@ var/list/datum/spellbook_entry/entries = list() var/list/categories = list() -/obj/item/weapon/spellbook/New() - ..() +/obj/item/weapon/spellbook/proc/Initialize() var/entry_types = subtypesof(/datum/spellbook_entry) - /datum/spellbook_entry/item - /datum/spellbook_entry/summon for(var/T in entry_types) var/datum/spellbook_entry/E = new T @@ -475,6 +478,10 @@ qdel(E) tab = categories[1] +/obj/item/weapon/spellbook/New() + ..() + Initialize() + /obj/item/weapon/spellbook/attackby(obj/item/O as obj, mob/user as mob, params) if(istype(O, /obj/item/weapon/contract)) var/obj/item/weapon/contract/contract = O @@ -640,6 +647,9 @@ ..() name += spellname +/obj/item/weapon/spellbook/oneuse/Initialize() //No need to init + return + /obj/item/weapon/spellbook/oneuse/attack_self(mob/user as mob) var/obj/effect/proc_holder/spell/S = new spell for(var/obj/effect/proc_holder/spell/knownspell in user.spell_list)