mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
Ports Wormhole Projector
This commit is contained in:
@@ -9,24 +9,18 @@
|
||||
var/obj/item/target = null
|
||||
var/creator = null
|
||||
anchored = 1.0
|
||||
var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent
|
||||
|
||||
/obj/effect/portal/Bumped(mob/M as mob|obj)
|
||||
spawn(0)
|
||||
src.teleport(M)
|
||||
return
|
||||
return
|
||||
src.teleport(M)
|
||||
|
||||
/obj/effect/portal/Crossed(AM as mob|obj)
|
||||
spawn(0)
|
||||
src.teleport(AM)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/effect/portal/New()
|
||||
/obj/effect/portal/New(loc, turf/target, creator)
|
||||
portals += src
|
||||
src.loc = loc
|
||||
src.target = target
|
||||
src.creator = creator
|
||||
spawn(300)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/effect/portal/Destroy()
|
||||
@@ -34,14 +28,16 @@
|
||||
if(istype(creator, /obj/item/weapon/hand_tele))
|
||||
var/obj/item/weapon/hand_tele/O = creator
|
||||
O.active_portals--
|
||||
else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector))
|
||||
var/obj/item/weapon/gun/energy/wormhole_projector/P = creator
|
||||
P.portal_destroyed(src)
|
||||
creator = null
|
||||
return ..()
|
||||
|
||||
/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj)
|
||||
if(istype(M, /obj/effect)) //sparks don't teleport
|
||||
return
|
||||
if (M.anchored&&istype(M, /obj/mecha))
|
||||
return
|
||||
if (icon_state == "portal1")
|
||||
if(M.anchored&&istype(M, /obj/mecha))
|
||||
return
|
||||
if (!( target ))
|
||||
qdel(src)
|
||||
@@ -51,5 +47,4 @@
|
||||
src.icon_state = "portal1"
|
||||
do_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy -5), 3), 0)
|
||||
else
|
||||
do_teleport(M, target, 1) ///You will appear adjacent to the beacon
|
||||
|
||||
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
|
||||
@@ -46,12 +46,12 @@ Frequency:
|
||||
/obj/item/weapon/locator/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
|
||||
var/turf/current_location = get_turf(usr)//What turf is the user on?
|
||||
if(!current_location ||( current_location.z in config.admin_levels))//If turf was not found or they're on z level 2.
|
||||
usr << "<span class='warning'>\The [src] is malfunctioning.</span>"
|
||||
return 1
|
||||
|
||||
|
||||
if (href_list["refresh"])
|
||||
temp = "<B>Persistent Signal Locator</B><HR>"
|
||||
var/turf/sr = get_turf(src)
|
||||
@@ -135,9 +135,7 @@ Frequency:
|
||||
return
|
||||
var/T = L[t1]
|
||||
user.show_message("<span class='notice'>Locked In.</span>", 2)
|
||||
var/obj/effect/portal/P = new /obj/effect/portal( get_turf(src) )
|
||||
P.target = T
|
||||
P.creator = src
|
||||
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src)
|
||||
try_move_adjacent(P)
|
||||
active_portals++
|
||||
add_fingerprint(user)
|
||||
|
||||
Reference in New Issue
Block a user