mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
feat: exodrone console UI (#93604)
Upgrades the UI of the exodrone console Exodrones now create a small explosion (0, 0, 1, 1) when self-destruction is triggered
This commit is contained in:
@@ -23,16 +23,18 @@
|
||||
RegisterSignal(controlled_drone,COMSIG_QDELETING, PROC_REF(drone_destroyed))
|
||||
RegisterSignal(controlled_drone,COMSIG_EXODRONE_STATUS_CHANGED, PROC_REF(on_exodrone_status_changed))
|
||||
update_icon()
|
||||
playsound(src, 'sound/machines/terminal/terminal_on.ogg', 20, vary = TRUE)
|
||||
|
||||
/obj/machinery/computer/exodrone_control_console/proc/on_exodrone_status_changed()
|
||||
SIGNAL_HANDLER
|
||||
//Notify we need human action and switch screeb icon to alert.
|
||||
playsound(src,'sound/machines/ping.ogg',30,FALSE)
|
||||
playsound(src, 'sound/machines/terminal/terminal_processing.ogg', 20, vary = TRUE)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/exodrone_control_console/proc/drone_destroyed()
|
||||
SIGNAL_HANDLER
|
||||
signal_lost = TRUE
|
||||
playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 20, vary = TRUE)
|
||||
end_drone_control()
|
||||
|
||||
/obj/machinery/computer/exodrone_control_console/proc/end_drone_control()
|
||||
@@ -41,6 +43,7 @@
|
||||
UnregisterSignal(controlled_drone,list(COMSIG_QDELETING,COMSIG_EXODRONE_STATUS_CHANGED))
|
||||
controlled_drone = null
|
||||
update_icon()
|
||||
playsound(src, 'sound/machines/terminal/terminal_off.ogg', 20, vary = TRUE)
|
||||
|
||||
/obj/machinery/computer/exodrone_control_console/Destroy()
|
||||
. = ..()
|
||||
@@ -114,7 +117,7 @@
|
||||
signal_lost = FALSE
|
||||
return TRUE
|
||||
if("self_destruct")
|
||||
qdel(controlled_drone) //var will be nulled in signal response
|
||||
controlled_drone.handle_deconstruct()
|
||||
return TRUE
|
||||
if("add_tool")
|
||||
if(controlled_drone && controlled_drone.drone_status == EXODRONE_IDLE)
|
||||
|
||||
@@ -76,9 +76,14 @@ GLOBAL_LIST_EMPTY(exodrone_launchers)
|
||||
// Cargo storage
|
||||
create_storage(max_slots = EXODRONE_CARGO_SLOTS, canthold = GLOB.blacklisted_cargo_types)
|
||||
|
||||
/obj/item/exodrone/Destroy()
|
||||
/obj/item/exodrone/handle_deconstruct(disassembled)
|
||||
. = ..()
|
||||
explosion(src, 0, 0, 1, 1)
|
||||
do_sparks(5, FALSE, src)
|
||||
|
||||
/obj/item/exodrone/Destroy()
|
||||
GLOB.exodrones -= src
|
||||
. = ..()
|
||||
|
||||
/// Description for drone listing, describes location and current status
|
||||
/obj/item/exodrone/proc/ui_description()
|
||||
@@ -337,7 +342,7 @@ GLOBAL_LIST_EMPTY(exodrone_launchers)
|
||||
|
||||
/obj/item/exodrone/proc/drone_log(message)
|
||||
if(length(drone_log) > EXODRONE_LOG_SIZE)
|
||||
drone_log = list()
|
||||
drone_log.Remove()
|
||||
drone_log.Insert(1,message)
|
||||
|
||||
/obj/item/exodrone/proc/has_tool(tool_type)
|
||||
|
||||
@@ -175,6 +175,7 @@ GLOBAL_LIST_INIT(scan_conditions,init_scan_conditions())
|
||||
var/datum/exoscan/scan = GLOB.exoscanner_controller.create_scan(scan_type,target)
|
||||
if(scan)
|
||||
RegisterSignal(scan, COMSIG_EXOSCAN_INTERRUPTED, PROC_REF(scan_failed))
|
||||
playsound(src, 'sound/machines/terminal/terminal_processing.ogg', 20, vary = TRUE)
|
||||
|
||||
/obj/machinery/computer/exoscanner_control/proc/scan_failed()
|
||||
SIGNAL_HANDLER
|
||||
|
||||
Reference in New Issue
Block a user