diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index 1d296c26d41..301dd5086b2 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -30,4 +30,28 @@ SC.locked = 0 C.open() + return + +/obj/effect/proc_holder/spell/aoe_turf/knock/greater + name = "Greater Knock" + desc = "On first cast, will remove access restrictions on all airlocks on the Cyberiad, and announce this spell's use to the station. On any further cast, will open all doors in sight. Cannot be refunded once bought!" + + charge_max = 200 + invocation = "MAIOR OXIN FIERA" + invocation_type = "shout" + range = 7 + level_max = 0 //Cannot be improved, quality of life since can't be refunded + cooldown_min = 200 + var/used = FALSE + +/obj/effect/proc_holder/spell/aoe_turf/knock/greater/cast(list/targets, mob/user = usr) + if(!used) + used = TRUE + for(var/obj/machinery/door/airlock/A in airlocks) + if(is_station_level(A.z)) + A.req_access = list() + A.req_one_access = list() + command_announcement.Announce("We have removed all access requirements on your station's airlocks. You can thank us later!", "Greetings!", 'sound/misc/notice2.ogg', , , "Space Wizard Federation Message") + else + ..() return \ No newline at end of file diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 0c380010e6a..39c7868671d 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -202,6 +202,14 @@ category = "Mobility" cost = 1 +/datum/spellbook_entry/greaterknock + name = "Greater Knock" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock/greater + log_name = "GK" + category = "Mobility" + cost = 2 + refundable = 0 //global effect on cast + /datum/spellbook_entry/fleshtostone name = "Flesh to Stone" spell_type = /obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone