Merge pull request #17185 from phil235/FixBundle48

Fix Bundle: holosign creator, status procs, teleporter hub, timestop effect
This commit is contained in:
Cheridan
2016-04-28 22:11:29 -05:00
25 changed files with 542 additions and 432 deletions
+11 -5
View File
@@ -237,7 +237,7 @@
/obj/machinery/teleport
name = "teleport"
icon = 'icons/obj/stationobjs.dmi'
icon = 'icons/obj/machines/teleporter.dmi'
density = 1
anchored = 1
@@ -297,6 +297,9 @@
/obj/machinery/teleport/hub/attackby(obj/item/W, mob/user, params)
if(default_deconstruction_screwdriver(user, "tele-o", "tele0", W))
if(power_station && power_station.engaged)
power_station.engaged = 0 //hub with panel open is off, so the station must be informed.
update_icon()
return
if(exchange_parts(user, W))
return
@@ -450,9 +453,12 @@
if(stat & (BROKEN|NOPOWER) || !teleporter_hub || !teleporter_console )
return
if (teleporter_console.target)
src.engaged = !src.engaged
use_power(5000)
visible_message("<span class='notice'>Teleporter [engaged ? "" : "dis"]engaged!</span>")
if(teleporter_hub.panel_open || teleporter_hub.stat & (BROKEN|NOPOWER))
visible_message("<span class='alert'>The teleporter hub isn't responding.</span>")
else
src.engaged = !src.engaged
use_power(5000)
visible_message("<span class='notice'>Teleporter [engaged ? "" : "dis"]engaged!</span>")
else
visible_message("<span class='alert'>No target detected.</span>")
src.engaged = 0
@@ -469,7 +475,7 @@
/obj/machinery/teleport/station/update_icon()
if(panel_open)
icon_state = "controller-o"
else if(stat & NOPOWER)
else if(stat & (BROKEN|NOPOWER))
icon_state = "controller-p"
else
icon_state = "controller"
@@ -25,7 +25,6 @@
var/obj/effect/overlay/holograph/H = locate(holosign_type) in T
if(H)
user << "<span class='notice'>You use [src] to deactivate [H].</span>"
signs.Remove(H)
qdel(H)
else
if(!is_blocked_turf(T)) //can't put holograms on a tile that has dense stuff
@@ -44,8 +43,7 @@
return
if(is_blocked_turf(T)) //don't try to sneak dense stuff on our tile during the wait.
return
H = new holosign_type(get_turf(target))
signs += H
H = new holosign_type(get_turf(target), src)
user << "<span class='notice'>You create \a [H] with [src].</span>"
else
user << "<span class='notice'>[src] is projecting at max capacity!</span>"
@@ -55,10 +53,8 @@
/obj/item/weapon/holosign_creator/attack_self(mob/user)
if(signs.len)
var/list/L = signs.Copy()
for(var/sign in L)
qdel(sign)
signs -= sign
for(var/H in signs)
qdel(H)
user << "<span class='notice'>You clear all active holograms.</span>"
@@ -83,6 +79,19 @@
icon = 'icons/effects/effects.dmi'
anchored = 1
var/holo_integrity = 1
var/obj/item/weapon/holosign_creator/projector
/obj/effect/overlay/holograph/New(loc, source_projector)
if(source_projector)
projector = source_projector
projector.signs += src
..()
/obj/effect/overlay/holograph/Destroy()
if(projector)
projector.signs -= src
projector = null
return ..()
/obj/effect/overlay/holograph/attacked_by(obj/item/I, mob/user)
..()