Autotransfer subsystem uses REALTIMEOFDAY (#22397)

* autotransfer changes

* Update autotransfer.dm

* Update autotransfer.dm
This commit is contained in:
lessthanthree
2023-07-24 16:51:57 -04:00
committed by GitHub
parent b9ffb2d83d
commit 8dcd9bef1d
2 changed files with 17 additions and 3 deletions
+2 -1
View File
@@ -282,7 +282,8 @@ SUBSYSTEM_DEF(ticker)
round_start_time = world.time //otherwise round_start_time would be 0 for the signals
SEND_SIGNAL(src, COMSIG_TICKER_ROUND_STARTING, world.time)
real_round_start_time = world.timeofday //SKYRAT EDIT ADDITION
real_round_start_time = REALTIMEOFDAY //SKYRAT EDIT ADDITION
SSautotransfer.new_shift(real_round_start_time) //SKYRAT EDIT ADDITION
log_world("Game start took [(world.timeofday - init_start)/10]s")
INVOKE_ASYNC(SSdbcore, TYPE_PROC_REF(/datum/controller/subsystem/dbcore,SetRoundStart))
@@ -17,7 +17,7 @@ SUBSYSTEM_DEF(autotransfer)
return SS_INIT_NO_NEED
var/init_vote = CONFIG_GET(number/vote_autotransfer_initial)
starttime = world.realtime // Skyrat edit
starttime = REALTIMEOFDAY
targettime = starttime + init_vote
voteinterval = CONFIG_GET(number/vote_autotransfer_interval)
maxvotes = CONFIG_GET(number/vote_autotransfer_maximum)
@@ -29,7 +29,7 @@ SUBSYSTEM_DEF(autotransfer)
curvotes = SSautotransfer.curvotes
/datum/controller/subsystem/autotransfer/fire()
if(world.realtime < targettime) // Skyrat edit
if(REALTIMEOFDAY < targettime)
return
if(maxvotes == NO_MAXVOTES_CAP || maxvotes > curvotes)
SSvote.initiate_vote(/datum/vote/transfer_vote, "automatic transfer", forced = TRUE)
@@ -38,4 +38,17 @@ SUBSYSTEM_DEF(autotransfer)
else
SSshuttle.autoEnd()
/**
* At shift start, pulls the autotransfer interval from config and applies
*
* Arguments:
* * real_round_shift_time - World time the round left the pregame lobby
*/
/datum/controller/subsystem/autotransfer/proc/new_shift(real_round_start_time)
var/init_vote = CONFIG_GET(number/vote_autotransfer_initial) // Check if an admin has manually set an override in the pre-game lobby
starttime = real_round_start_time
targettime = starttime + init_vote
log_game("Autotransfer enabled, first vote in [DisplayTimeText(targettime - starttime)]")
message_admins("Autotransfer enabled, first vote in [DisplayTimeText(targettime - starttime)]")
#undef NO_MAXVOTES_CAP