mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Roundstart no longer delayed by initializations
This commit is contained in:
@@ -2,7 +2,7 @@ var/datum/subsystem/mapping/SSmapping
|
|||||||
|
|
||||||
/datum/subsystem/mapping
|
/datum/subsystem/mapping
|
||||||
name = "Mapping"
|
name = "Mapping"
|
||||||
init_order = 13
|
init_order = 12
|
||||||
flags = SS_NO_FIRE
|
flags = SS_NO_FIRE
|
||||||
display_order = 50
|
display_order = 50
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ var/datum/subsystem/objects/SSobj
|
|||||||
|
|
||||||
/datum/subsystem/objects
|
/datum/subsystem/objects
|
||||||
name = "Objects"
|
name = "Objects"
|
||||||
init_order = 12
|
init_order = 11
|
||||||
priority = 40
|
priority = 40
|
||||||
|
|
||||||
var/initialized = INITIALIZATION_INSSOBJ
|
var/initialized = INITIALIZATION_INSSOBJ
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ var/datum/subsystem/ticker/ticker
|
|||||||
|
|
||||||
/datum/subsystem/ticker
|
/datum/subsystem/ticker
|
||||||
name = "Ticker"
|
name = "Ticker"
|
||||||
init_order = 0
|
init_order = 13
|
||||||
|
|
||||||
priority = 200
|
priority = 200
|
||||||
flags = SS_FIRE_IN_LOBBY|SS_KEEP_TIMING
|
flags = SS_FIRE_IN_LOBBY|SS_KEEP_TIMING
|
||||||
@@ -39,7 +39,8 @@ var/datum/subsystem/ticker/ticker
|
|||||||
var/tipped = 0 //Did we broadcast the tip of the day yet?
|
var/tipped = 0 //Did we broadcast the tip of the day yet?
|
||||||
var/selected_tip // What will be the tip of the day?
|
var/selected_tip // What will be the tip of the day?
|
||||||
|
|
||||||
var/timeLeft = 1200 //pregame timer
|
var/timeLeft //pregame timer
|
||||||
|
var/start_at
|
||||||
|
|
||||||
var/totalPlayers = 0 //used for pregame stats on statpanel
|
var/totalPlayers = 0 //used for pregame stats on statpanel
|
||||||
var/totalPlayersReady = 0 //used for pregame stats on statpanel
|
var/totalPlayersReady = 0 //used for pregame stats on statpanel
|
||||||
@@ -66,19 +67,19 @@ var/datum/subsystem/ticker/ticker
|
|||||||
if(!syndicate_code_response)
|
if(!syndicate_code_response)
|
||||||
syndicate_code_response = generate_code_phrase()
|
syndicate_code_response = generate_code_phrase()
|
||||||
..()
|
..()
|
||||||
|
start_at = world.time + (config.lobby_countdown * 10)
|
||||||
|
world << "<span class='boldnotice'>Welcome to [station_name()]!</span>"
|
||||||
|
world << "Please set up your character and select \"Ready\". The game will start in about [config.lobby_countdown] seconds."
|
||||||
|
current_state = GAME_STATE_PREGAME
|
||||||
|
for(var/client/C in clients)
|
||||||
|
window_flash(C, ignorepref = TRUE) //let them know lobby has opened up.
|
||||||
|
|
||||||
/datum/subsystem/ticker/fire()
|
/datum/subsystem/ticker/fire()
|
||||||
switch(current_state)
|
switch(current_state)
|
||||||
if(GAME_STATE_STARTUP)
|
|
||||||
timeLeft = config.lobby_countdown * 10
|
|
||||||
world << "<span class='boldnotice'>Welcome to [station_name()]!</span>"
|
|
||||||
world << "Please set up your character and select \"Ready\". The game will start in [config.lobby_countdown] seconds."
|
|
||||||
current_state = GAME_STATE_PREGAME
|
|
||||||
for(var/client/C in clients)
|
|
||||||
window_flash(C, ignorepref = TRUE) //let them know lobby has opened up.
|
|
||||||
|
|
||||||
if(GAME_STATE_PREGAME)
|
if(GAME_STATE_PREGAME)
|
||||||
//lobby stats for statpanels
|
//lobby stats for statpanels
|
||||||
|
if(isnull(timeLeft))
|
||||||
|
timeLeft = max(0,start_at - world.time)
|
||||||
totalPlayers = 0
|
totalPlayers = 0
|
||||||
totalPlayersReady = 0
|
totalPlayersReady = 0
|
||||||
for(var/mob/new_player/player in player_list)
|
for(var/mob/new_player/player in player_list)
|
||||||
@@ -707,3 +708,15 @@ var/datum/subsystem/ticker/ticker
|
|||||||
|
|
||||||
if(news_message)
|
if(news_message)
|
||||||
send2otherserver(news_source, news_message,"News_Report")
|
send2otherserver(news_source, news_message,"News_Report")
|
||||||
|
|
||||||
|
/datum/subsystem/ticker/proc/GetTimeLeft()
|
||||||
|
if(isnull(ticker.timeLeft))
|
||||||
|
return max(0, start_at - world.time)
|
||||||
|
return timeLeft
|
||||||
|
|
||||||
|
/datum/subsystem/ticker/proc/SetTimeLeft(newtime)
|
||||||
|
if(newtime >= 0 && isnull(timeLeft)) //remember, negative means delayed
|
||||||
|
start_at = world.time + newtime
|
||||||
|
else
|
||||||
|
timeLeft = newtime
|
||||||
|
|
||||||
@@ -569,11 +569,11 @@ var/global/BSACooldown = 0
|
|||||||
set desc="Delay the game start"
|
set desc="Delay the game start"
|
||||||
set name="Delay pre-game"
|
set name="Delay pre-game"
|
||||||
|
|
||||||
var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(ticker.timeLeft/10)) as num|null
|
var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(ticker.GetTimeLeft()/10)) as num|null
|
||||||
if(ticker.current_state > GAME_STATE_PREGAME)
|
if(ticker.current_state > GAME_STATE_PREGAME)
|
||||||
return alert("Too late... The game has already started!")
|
return alert("Too late... The game has already started!")
|
||||||
if(newtime)
|
if(newtime)
|
||||||
ticker.timeLeft = newtime * 10
|
ticker.SetTimeLeft(newtime * 10)
|
||||||
if(newtime < 0)
|
if(newtime < 0)
|
||||||
world << "<b>The game start has been delayed.</b>"
|
world << "<b>The game start has been delayed.</b>"
|
||||||
log_admin("[key_name(usr)] delayed the round start.")
|
log_admin("[key_name(usr)] delayed the round start.")
|
||||||
|
|||||||
@@ -75,7 +75,10 @@
|
|||||||
stat("Map:", MAP_NAME)
|
stat("Map:", MAP_NAME)
|
||||||
|
|
||||||
if(ticker.current_state == GAME_STATE_PREGAME)
|
if(ticker.current_state == GAME_STATE_PREGAME)
|
||||||
stat("Time To Start:", (ticker.timeLeft >= 0) ? "[round(ticker.timeLeft / 10)]s" : "DELAYED")
|
var/time_remaining = ticker.GetTimeLeft()
|
||||||
|
if(time_remaining >= 0)
|
||||||
|
time_remaining /= 10
|
||||||
|
stat("Time To Start:", (time_remaining >= 0) ? "[round(time_remaining)]s" : "DELAYED")
|
||||||
|
|
||||||
stat("Players:", "[ticker.totalPlayers]")
|
stat("Players:", "[ticker.totalPlayers]")
|
||||||
if(client.holder)
|
if(client.holder)
|
||||||
|
|||||||
Reference in New Issue
Block a user