Merge pull request #1917 from Citadel-Station-13/upstream-merge-29061
[MIRROR] Warp cubes are slightly less instant but way cooler
This commit is contained in:
@@ -380,3 +380,31 @@
|
||||
icon_state = "bleed10"
|
||||
duration = 12
|
||||
shrink = FALSE
|
||||
|
||||
/obj/effect/temp_visual/warp_cube
|
||||
duration = 5
|
||||
var/outgoing = TRUE
|
||||
|
||||
/obj/effect/temp_visual/warp_cube/Initialize(mapload, atom/teleporting_atom, warp_color, new_outgoing)
|
||||
. = ..()
|
||||
if(teleporting_atom)
|
||||
outgoing = new_outgoing
|
||||
appearance = teleporting_atom.appearance
|
||||
setDir(teleporting_atom.dir)
|
||||
if(warp_color)
|
||||
color = list(warp_color, warp_color, warp_color, list(0,0,0))
|
||||
set_light(1.4, 1, warp_color)
|
||||
mouse_opacity = 0
|
||||
var/matrix/skew = transform
|
||||
skew = skew.Turn(180)
|
||||
skew = skew.Interpolate(transform, 0.5)
|
||||
if(!outgoing)
|
||||
transform = skew * 2
|
||||
skew = teleporting_atom.transform
|
||||
alpha = 0
|
||||
animate(src, alpha = teleporting_atom.alpha, transform = skew, time = duration)
|
||||
else
|
||||
skew *= 2
|
||||
animate(src, alpha = 0, transform = skew, time = duration)
|
||||
else
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -134,6 +134,8 @@
|
||||
build_path = /obj/item/borg/upgrade/modkit/bounty
|
||||
|
||||
//Spooky special loot
|
||||
|
||||
//Wisp Lantern
|
||||
/obj/item/device/wisp_lantern
|
||||
name = "spooky lantern"
|
||||
desc = "This lantern gives off no light, but is home to a friendly wisp."
|
||||
@@ -179,7 +181,6 @@
|
||||
wisp.visible_message("<span class='notice'>[wisp] has a sad feeling for a moment, then it passes.</span>")
|
||||
..()
|
||||
|
||||
//Wisp Lantern
|
||||
/obj/effect/wisp
|
||||
name = "friendly wisp"
|
||||
desc = "Happy to light your way."
|
||||
@@ -188,29 +189,54 @@
|
||||
luminosity = 7
|
||||
layer = ABOVE_ALL_MOB_LAYER
|
||||
|
||||
//Red/Blue Cubes
|
||||
/obj/item/device/warp_cube
|
||||
name = "blue cube"
|
||||
desc = "A mysterious blue cube."
|
||||
icon = 'icons/obj/lavaland/artefacts.dmi'
|
||||
icon_state = "blue_cube"
|
||||
var/teleport_color = "#3FBAFD"
|
||||
var/obj/item/device/warp_cube/linked
|
||||
|
||||
|
||||
//Red/Blue Cubes
|
||||
var/teleporting = FALSE
|
||||
|
||||
/obj/item/device/warp_cube/attack_self(mob/user)
|
||||
if(!linked)
|
||||
to_chat(user, "[src] fizzles uselessly.")
|
||||
return
|
||||
new /obj/effect/particle_effect/smoke(user.loc)
|
||||
user.forceMove(get_turf(linked))
|
||||
if(teleporting)
|
||||
return
|
||||
teleporting = TRUE
|
||||
linked.teleporting = TRUE
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/effect/temp_visual/warp_cube(T, user, teleport_color, TRUE)
|
||||
SSblackbox.add_details("warp_cube","[src.type]")
|
||||
new /obj/effect/particle_effect/smoke(user.loc)
|
||||
new /obj/effect/temp_visual/warp_cube(get_turf(linked), user, linked.teleport_color, FALSE)
|
||||
var/obj/effect/warp_cube/link_holder = new /obj/effect/warp_cube(T)
|
||||
user.forceMove(link_holder) //mess around with loc so the user can't wander around
|
||||
sleep(2.5)
|
||||
if(QDELETED(user))
|
||||
qdel(link_holder)
|
||||
return
|
||||
if(QDELETED(linked))
|
||||
user.forceMove(get_turf(link_holder))
|
||||
qdel(link_holder)
|
||||
return
|
||||
link_holder.forceMove(get_turf(linked))
|
||||
sleep(2.5)
|
||||
if(QDELETED(user))
|
||||
qdel(link_holder)
|
||||
return
|
||||
teleporting = FALSE
|
||||
if(!QDELETED(linked))
|
||||
linked.teleporting = FALSE
|
||||
user.forceMove(get_turf(link_holder))
|
||||
qdel(link_holder)
|
||||
|
||||
/obj/item/device/warp_cube/red
|
||||
name = "red cube"
|
||||
desc = "A mysterious red cube."
|
||||
icon_state = "red_cube"
|
||||
teleport_color = "#FD3F48"
|
||||
|
||||
/obj/item/device/warp_cube/red/Initialize()
|
||||
..()
|
||||
@@ -219,6 +245,12 @@
|
||||
linked = blue
|
||||
blue.linked = src
|
||||
|
||||
/obj/effect/warp_cube
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/effect/warp_cube/ex_act(severity, target)
|
||||
return
|
||||
|
||||
//Meat Hook
|
||||
/obj/item/weapon/gun/magic/hook
|
||||
name = "meat hook"
|
||||
|
||||
Reference in New Issue
Block a user