mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-20 10:37:45 +01:00
89 lines
2.2 KiB
Plaintext
89 lines
2.2 KiB
Plaintext
/mob/proc/teleport()
|
|
set category = "Spells"
|
|
set name = "Teleport"
|
|
set desc="Teleport"
|
|
if(usr.stat)
|
|
usr << "Not when you're incapicated."
|
|
return
|
|
if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe))
|
|
usr << "I don't feel strong enough without my robe."
|
|
return
|
|
if(!istype(usr:shoes, /obj/item/clothing/shoes/sandal))
|
|
usr << "I don't feel strong enough without my sandals."
|
|
return
|
|
if(!istype(usr:head, /obj/item/clothing/head/wizard))
|
|
usr << "I don't feel strong enough without my hat."
|
|
return
|
|
var/A
|
|
usr.verbs -= /mob/proc/teleport
|
|
spawn(450)
|
|
usr.verbs += /mob/proc/teleport
|
|
|
|
var/list/theareas = new/list()
|
|
for(var/area/AR in world)
|
|
if(theareas.Find(AR.name)) continue
|
|
var/turf/picked = pick(get_area_turfs(AR.type))
|
|
if (picked.z == src.z)
|
|
theareas += AR.name
|
|
theareas[AR.name] = AR
|
|
|
|
A = input("Area to jump to", "BOOYEA", A) in theareas
|
|
var/area/thearea = theareas[A]
|
|
usr.say("SCYAR NILA [uppertext(A)]")
|
|
|
|
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
|
|
smoke.set_up(5, 0, usr.loc)
|
|
smoke.attach(usr)
|
|
smoke.start()
|
|
var/list/L = list()
|
|
for(var/turf/T in get_area_turfs(thearea.type))
|
|
if(T.z != src.z) continue
|
|
if(!T.density)
|
|
var/clear = 1
|
|
for(var/obj/O in T)
|
|
if(O.density)
|
|
clear = 0
|
|
break
|
|
if(clear)
|
|
L+=T
|
|
|
|
usr.loc = pick(L)
|
|
|
|
smoke.start()
|
|
|
|
/mob/proc/teleportscroll()
|
|
if(usr.stat)
|
|
usr << "Not when you're incapicated."
|
|
return
|
|
var/A
|
|
|
|
var/list/theareas = new/list()
|
|
for(var/area/AR in world)
|
|
if(theareas.Find(AR.name)) continue
|
|
var/turf/picked = pick(get_area_turfs(AR.type))
|
|
if (picked.z == src.z)
|
|
theareas += AR.name
|
|
theareas[AR.name] = AR
|
|
|
|
A = input("Area to jump to", "BOOYEA", A) in theareas
|
|
var/area/thearea = theareas[A]
|
|
|
|
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
|
|
smoke.set_up(5, 0, usr.loc)
|
|
smoke.attach(usr)
|
|
smoke.start()
|
|
var/list/L = list()
|
|
for(var/turf/T in get_area_turfs(thearea.type))
|
|
if(T.z != src.z) continue
|
|
if(!T.density)
|
|
var/clear = 1
|
|
for(var/obj/O in T)
|
|
if(O.density)
|
|
clear = 0
|
|
break
|
|
if(clear)
|
|
L+=T
|
|
|
|
usr.loc = pick(L)
|
|
|
|
smoke.start() |