From e66785af2888e3b70518d99a4d67ca5788b9e0db Mon Sep 17 00:00:00 2001 From: Dip Date: Tue, 25 Aug 2020 22:06:38 -0300 Subject: [PATCH] Round Time fix (Finally!) And more status tab optimizations --- code/controllers/subsystem/shuttle.dm | 4 +++ code/modules/mob/living/carbon/human/human.dm | 30 ++++++++++++----- code/modules/mob/mob.dm | 33 ++++++++----------- 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 2464dbe5..49f9f120 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -30,6 +30,7 @@ SUBSYSTEM_DEF(shuttle) var/list/hostileEnvironments = list() //Things blocking escape shuttle from leaving var/list/tradeBlockade = list() //Things blocking cargo from leaving. var/supplyBlocked = FALSE + var/emergency_shuttle_stat_text //supply shuttle stuff var/obj/docking_port/mobile/supply/supply @@ -111,6 +112,9 @@ SUBSYSTEM_DEF(shuttle) qdel(T, force=TRUE) CheckAutoEvac() + var/esETA = emergency?.getModeStr() + emergency_shuttle_stat_text = "[esETA? "[esETA] [emergency.getTimerStr()]" : ""]" + if(!SSmapping.clearing_reserved_turfs) while(transit_requesters.len) var/requester = popleft(transit_requesters) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d7652796..89d4950e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -59,26 +59,38 @@ //...and display them. add_to_all_human_data_huds() +/var/tickrefreshThr2 = 20 +/var/tickrefresh2 = 0 +/var/list/sList2 + /mob/living/carbon/human/Stat() ..() - if(statpanel("Status")) - stat(null, "Intent: [a_intent]") - stat(null, "Move Mode: [m_intent]") + if(statpanel("Status") && tickrefresh2 == 0) + sList2 = list() + sList2 += "Intent: [a_intent]" + sList2 += "Move Mode: [m_intent]" if (internal) if (!internal.air_contents) qdel(internal) else - stat("Internal Atmosphere Info", internal.name) - stat("Tank Pressure", internal.air_contents.return_pressure()) - stat("Distribution Pressure", internal.distribute_pressure) - + sList2 += "Internal Atmosphere Info: "+ "[internal.name]" + sList2 += "Tank Pressure: "+ "[internal.air_contents.return_pressure()]" + sList2 += "Distribution Pressure: "+ "[internal.distribute_pressure]" if(mind) var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) - stat("Chemical Storage", "[changeling.chem_charges]/[changeling.chem_storage]") - stat("Absorbed DNA", changeling.absorbedcount) + sList2 += "Chemical Storage: " + "[changeling.chem_charges]/[changeling.chem_storage]" + sList2 += "Absorbed DNA: "+ "[changeling.absorbedcount]" + tickrefresh2++ + stat(null, "[sList2.Join("\n\n")]") + else if(statpanel("Status") && tickrefresh2 != 0) + if(tickrefresh2 >= tickrefreshThr2) + tickrefresh2 = 0 + else + tickrefresh2++ + stat(null, "[sList2.Join("\n\n")]") //NINJACODE if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a15ff989..dc20034c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,4 +1,4 @@ -/var/tickrefresh = 0 + /mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game. GLOB.mob_list -= src @@ -530,7 +530,9 @@ /mob/proc/is_muzzled() return 0 - + +/var/tickrefreshThr = 20 +/var/tickrefresh = 0 /var/list/sList /mob/Stat() ..() @@ -538,29 +540,22 @@ if(statpanel("Status") && tickrefresh == 0) sList = list() if (client) - sList+= "Ping: [round(client.lastping, 1)]ms (Average: [round(client.avgping, 1)]ms)" - sList+= "Map: [SSmapping.config?.map_name || "Loading..."]" - var/datum/map_config/cached = SSmapping.next_map_config - if(cached) - sList+= "Next Map: [cached.map_name]" - sList+= "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]" - sList+= "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]" - sList+= "Round Time: [WORLDTIME2TEXT("hh:mm:ss")]" - sList+= "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]" - //sList+= "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)" - if(SSshuttle.emergency) - var/ETA = SSshuttle.emergency.getModeStr() - if(ETA) - sList+= "[ETA] [SSshuttle.emergency.getTimerStr()]" + sList += "Ping: [round(client.lastping, 1)]ms (Average: [round(client.avgping, 1)]ms)" + sList += "Map: [SSmapping.config?.map_name || "Loading..."]" + sList += "Round ID: [GLOB.round_id || "NULL"]" + sList += "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]" + sList += "Round Time: [DisplayTimeText(world.time - SSticker.round_start_time, 1)]" + sList += "Station Time: [STATION_TIME_TIMESTAMP("hh:mm:ss")]" + sList += SSshuttle.emergency_shuttle_stat_text tickrefresh++ - stat(null, sList) + stat(null, "[sList.Join("\n\n")]") else if(statpanel("Status") && tickrefresh != 0) - if(tickrefresh == 10) + if(tickrefresh >= tickrefreshThr) tickrefresh = 0 else tickrefresh++ - stat(null, sList) + stat(null, "[sList.Join("\n\n")]") if(client && client.holder) if(statpanel("MC"))