//SPELL BOOK PROCS /obj/item/weapon/spellbook/attack_self(mob/user as mob) user.machine = src var/dat if (src.temp) dat = "[src.temp]

Clear" else dat = "The Book of Spells:
" dat += "Spells left to memorize: [src.uses]
" dat += "
" dat += "Memorize which spell:
" dat += "The number after the spell name is the cooldown time.
" dat += "Magic Missile (10)
" dat += "Fireball (20)
" dat += "Disintegrate (60)
" dat += "Disable Technology (60)
" dat += "Smoke (10)
" dat += "Blind (30)
" dat += "Mind Transfer (60)
" dat += "Forcewall (10)
" dat += "Blink (2)
" dat += "Teleport (60)
" dat += "Mutate (60)
" dat += "Ethereal Jaunt (60)
" dat += "Knock (10)
" dat += "
" dat += "Artefacts:
" dat += "Powerful items imbued with eldritch magics. Summoning one will count towards your maximum number of spells.
" dat += "
" dat += "Staff of Change
" dat += "
" dat += "Re-memorize Spells
" user << browse(dat, "window=radio") onclose(user, "radio") return /obj/item/weapon/spellbook/Topic(href, href_list) ..() if (usr.stat || usr.restrained()) return var/mob/living/carbon/human/H = usr if (!( istype(H, /mob/living/carbon/human))) return 1 if ((usr.contents.Find(src) || (in_range(src,usr) && istype(src.loc, /turf)))) usr.machine = src if(href_list["spell_choice"]) if(src.uses >= 1 && href_list["spell_choice"] != 14) src.uses-- if(spell_type == "verb") switch(href_list["spell_choice"]) if ("1") usr.verbs += /client/proc/magicmissile usr.mind.special_verbs += /client/proc/magicmissile src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage." if ("2") usr.verbs += /client/proc/fireball usr.mind.special_verbs += /client/proc/fireball src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." if ("3") usr.verbs += /mob/proc/kill usr.mind.special_verbs += /mob/proc/kill src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." if ("4") usr.verbs += /mob/proc/tech usr.mind.special_verbs += /mob/proc/tech src.temp = "This spell disables all weapons, cameras and most other technology in range." if ("5") usr.verbs += /client/proc/smokecloud usr.mind.special_verbs += /client/proc/smokecloud src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." if ("6") usr.verbs += /client/proc/blind usr.mind.special_verbs += /client/proc/blind src.temp = "This spell temporarly blinds a single person and does not require wizard garb." if ("7") usr.verbs += /mob/proc/swap src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process." if ("8") usr.verbs += /client/proc/forcewall usr.mind.special_verbs += /client/proc/forcewall src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb." if ("9") usr.verbs += /client/proc/blink usr.mind.special_verbs += /client/proc/blink src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience." if ("10") usr.verbs += /mob/proc/teleport usr.mind.special_verbs += /mob/proc/teleport src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable." if ("11") usr.verbs += /client/proc/mutate usr.mind.special_verbs += /client/proc/mutate src.temp = "This spell causes you to turn into a hulk and gain laser vision for a short while." if ("12") usr.verbs += /client/proc/jaunt usr.mind.special_verbs += /client/proc/jaunt src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." if ("13") usr.verbs += /client/proc/knock usr.mind.special_verbs += /client/proc/knock src.temp = "This spell opens nearby doors and does not require wizard garb." if ("14") new /obj/item/weapon/gun/energy/staff(get_turf(usr)) src.temp = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself" src.max_uses-- else if(spell_type == "object") var/list/available_spells = list("Magic Missile","Fireball","Disintegrate","Disable Tech","Smoke","Blind","Mind Transfer","Forcewall","Blink","Teleport","Mutate","Ethereal Jaunt","Knock") var/already_knows = 0 for(var/obj/effect/proc_holder/spell/aspell in usr.spell_list) if(available_spells[text2num(href_list["spell_choice"])] == aspell.name) already_knows = 1 src.temp = "You already know that spell." src.uses++ break if(!already_knows) switch(href_list["spell_choice"]) if ("1") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(usr) src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage." if ("2") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/fireball(usr) src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." if ("3") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr) src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." if ("4") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(usr) src.temp = "This spell disables all weapons, cameras and most other technology in range." if ("5") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/smoke(usr) src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." if ("6") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/trigger/blind(usr) src.temp = "This spell temporarly blinds a single person and does not require wizard garb." if ("7") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/mind_transfer(usr) src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process." if ("8") usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(usr) src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb." if ("9") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(usr) src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience." if ("10") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(usr) src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable." if ("11") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/genetic/mutate(usr) src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while." if ("12") usr.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(usr) src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." if ("13") usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/knock(usr) src.temp = "This spell opens nearby doors and does not require wizard garb." if ("14") new /obj/item/weapon/gun/energy/staff(get_turf(usr)) src.temp = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself" src.max_uses-- if (href_list["spell_choice"] == "15") var/area/wizard_station/A = locate() if(usr in A.contents) src.uses = src.max_uses usr.spellremove(usr,spell_type) src.temp = "All spells have been removed. You may now memorize a new set of spells." else src.temp = "You may only re-memorize spells whilst located inside the wizard sanctuary." else if (href_list["temp"]) src.temp = null if (istype(src.loc, /mob)) attack_self(src.loc) else for(var/mob/M in viewers(1, src)) if (M.client) src.attack_self(M) return //SWF UPLINK PROCS /obj/item/weapon/SWF_uplink/attack_self(mob/user as mob) user.machine = src var/dat if (src.selfdestruct) dat = "Self Destructing..." else if (src.temp) dat = "[src.temp]

Clear" else dat = "Syndicate Uplink Console:
" dat += "Tele-Crystals left: [src.uses]
" dat += "
" dat += "Request item:
" dat += "Each item costs 1 telecrystal. The number afterwards is the cooldown time.
" dat += "Magic Missile (10)
" dat += "Fireball (10)
" dat += "Disintegrate (60)
" dat += "Disable Technology (60)
" dat += "Smoke (10)
" dat += "Blind (30)
" dat += "Mind Transfer (60)
" dat += "Forcewall (10)
" dat += "Blink (2)
" dat += "Teleport (60)
" dat += "Mutate (60)
" dat += "Ethereal Jaunt (60)
" dat += "Knock (10)
" dat += "
" if (src.origradio) dat += "Lock
" dat += "
" dat += "Self-Destruct" user << browse(dat, "window=radio") onclose(user, "radio") return /obj/item/weapon/SWF_uplink/Topic(href, href_list) ..() if (usr.stat || usr.restrained()) return var/mob/living/carbon/human/H = usr if (!( istype(H, /mob/living/carbon/human))) return 1 if ((usr.contents.Find(src) || (in_range(src,usr) && istype(src.loc, /turf)))) usr.machine = src if (href_list["spell_magicmissile"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/magicmissile usr.mind.special_verbs += /client/proc/magicmissile src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage." else if (href_list["spell_fireball"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/fireball usr.mind.special_verbs += /client/proc/fireball src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you." else if (href_list["spell_disintegrate"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /mob/proc/kill usr.mind.special_verbs += /mob/proc/kill src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown." else if (href_list["spell_emp"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /mob/proc/tech usr.mind.special_verbs += /mob/proc/tech src.temp = "This spell disables all weapons, cameras and most other technology in range." else if (href_list["spell_smoke"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/smokecloud usr.mind.special_verbs += /client/proc/smokecloud src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." else if (href_list["spell_blind"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/blind usr.mind.special_verbs += /client/proc/blind src.temp = "This spell temporarly blinds a single person and does not require wizard garb." else if (href_list["spell_swap"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /mob/proc/swap src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process." else if (href_list["spell_forcewall"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/forcewall usr.mind.special_verbs += /client/proc/forcewall src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb." else if (href_list["spell_blink"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/blink usr.mind.special_verbs += /client/proc/blink src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience." else if (href_list["spell_teleport"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /mob/proc/teleport usr.mind.special_verbs += /mob/proc/teleport src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable." else if (href_list["spell_mutate"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/mutate usr.mind.special_verbs += /client/proc/mutate src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while." else if (href_list["spell_jaunt"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/jaunt usr.mind.special_verbs += /client/proc/jaunt src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls." else if (href_list["spell_knock"]) if (src.uses >= 1) src.uses -= 1 usr.verbs += /client/proc/knock usr.mind.special_verbs += /client/proc/knock src.temp = "This spell opens nearby doors and does not require wizard garb." else if (href_list["lock"] && src.origradio) // presto chango, a regular radio again! (reset the freq too...) usr.machine = null usr << browse(null, "window=radio") var/obj/item/device/radio/T = src.origradio var/obj/item/weapon/SWF_uplink/R = src R.loc = T T.loc = usr // R.layer = initial(R.layer) R.layer = 0 if (usr.client) usr.client.screen -= R if (usr.r_hand == R) usr.u_equip(R) usr.r_hand = T else usr.u_equip(R) usr.l_hand = T R.loc = T T.layer = 20 T.set_frequency(initial(T.frequency)) T.attack_self(usr) return else if (href_list["selfdestruct"]) src.temp = "Self-Destruct" else if (href_list["selfdestruct2"]) src.selfdestruct = 1 spawn (100) explode() return else if (href_list["temp"]) src.temp = null if (istype(src.loc, /mob)) attack_self(src.loc) else for(var/mob/M in viewers(1, src)) if (M.client) src.attack_self(M) return /obj/item/weapon/SWF_uplink/proc/explode() var/turf/location = get_turf(src.loc) location.hotspot_expose(700, 125) explosion(location, 0, 0, 2, 4) del(src.master) del(src) return