From ba7f0dab62ec86897250ff4619899a650c95914b Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Sun, 5 Jan 2020 19:16:37 +0800 Subject: [PATCH 1/2] doppler logs! --- code/game/machinery/doppler_array.dm | 50 ++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 1c25c7b242..4b938ea120 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -7,26 +7,51 @@ GLOBAL_LIST_EMPTY(doppler_arrays) icon_state = "tdoppler" density = TRUE var/integrated = FALSE + var/cooldown = 10 + var/next_announce = 0 var/max_dist = 150 verb_say = "states coldly" + var/list/message_log = list() /obj/machinery/doppler_array/Initialize() . = ..() GLOB.doppler_arrays += src /obj/machinery/doppler_array/ComponentInitialize() + . = ..() AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,null,null,CALLBACK(src,.proc/rot_message)) /obj/machinery/doppler_array/Destroy() GLOB.doppler_arrays -= src return ..() -/obj/machinery/doppler_array/examine(mob/user) +/obj/machinery/doppler_array/ui_interact(mob/user) . = ..() - . += "Its dish is facing to the [dir2text(dir)]." + if(stat) + return FALSE -/obj/machinery/doppler_array/process() - return PROCESS_KILL + var/list/dat = list() + for(var/i in 1 to LAZYLEN(message_log)) + dat += "Log recording #[i]: [message_log[i]]

" + dat += "Delete logs
" + dat += "
" + dat += "(Refresh)
" + dat += "" + var/datum/browser/popup = new(user, "computer", name, 400, 500) + popup.set_content(dat.Join(" ")) + popup.open() + return + +/obj/machinery/doppler_array/Topic(href, href_list) + if(..()) + return + if(href_list["delete_log"]) + LAZYCLEARLIST(message_log) + if(href_list["refresh"]) + updateUsrDialog() + + updateUsrDialog() + return /obj/machinery/doppler_array/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/wrench)) @@ -46,15 +71,18 @@ GLOBAL_LIST_EMPTY(doppler_arrays) to_chat(user, "You adjust [src]'s dish to face to the [dir2text(dir)].") playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) -/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter,devastation_range,heavy_impact_range,light_impact_range, - took,orig_dev_range,orig_heavy_range,orig_light_range) +/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, + took, orig_dev_range, orig_heavy_range, orig_light_range) if(stat & NOPOWER) return FALSE var/turf/zone = get_turf(src) - if(zone.z != epicenter.z) return FALSE + if(next_announce > world.time) + return FALSE + next_announce = world.time + cooldown + var/distance = get_dist(epicenter, zone) var/direct = get_dir(zone, epicenter) @@ -80,8 +108,16 @@ GLOBAL_LIST_EMPTY(doppler_arrays) else for(var/message in messages) say(message) + LAZYADD(message_log, messages.Join(" ")) return TRUE +/obj/machinery/doppler_array/examine(mob/user) + . = ..() + . += "Its dish is facing to the [dir2text(dir)]." + +/obj/machinery/doppler_array/process() + return PROCESS_KILL + /obj/machinery/doppler_array/power_change() if(stat & BROKEN) icon_state = "[initial(icon_state)]-broken" From de140739564d9353b07d36a20d74b76ba9365143 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Mon, 6 Jan 2020 08:34:48 +0800 Subject: [PATCH 2/2] limit --- code/game/machinery/doppler_array.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 4b938ea120..65f7602215 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -7,6 +7,7 @@ GLOBAL_LIST_EMPTY(doppler_arrays) icon_state = "tdoppler" density = TRUE var/integrated = FALSE + var/list_limit = 100 var/cooldown = 10 var/next_announce = 0 var/max_dist = 150 @@ -40,7 +41,6 @@ GLOBAL_LIST_EMPTY(doppler_arrays) var/datum/browser/popup = new(user, "computer", name, 400, 500) popup.set_content(dat.Join(" ")) popup.open() - return /obj/machinery/doppler_array/Topic(href, href_list) if(..()) @@ -108,6 +108,9 @@ GLOBAL_LIST_EMPTY(doppler_arrays) else for(var/message in messages) say(message) + if(LAZYLEN(message_log) > list_limit) + say("Storage buffer is full! Clearing buffers...") + LAZYCLEARLIST(message_log) LAZYADD(message_log, messages.Join(" ")) return TRUE