diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index e53c91ac20d..3a1ba7595c0 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -65,6 +65,8 @@ SUBSYSTEM_DEF(ticker) to_chat(world, "Please, setup your character and select ready. Game will start in [config.pregame_timestart] seconds") current_state = GAME_STATE_PREGAME fire() // TG says this is a good idea + for(var/mob/new_player/N in GLOB.player_list) + N.new_player_panel_proc() // to enable the observe option if(GAME_STATE_PREGAME) if(!SSticker.ticker_going) // This has to be referenced like this, and I dont know why. If you dont put SSticker. it will break return diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f53daba6626..2bb2466ce02 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -77,7 +77,10 @@ else output += "

Global Antag Candidacy" output += "
You are [client.skip_antag ? "ineligible" : "eligible"] for all antag roles.

" - output += "

Observe

" + if(!SSticker || SSticker.current_state == GAME_STATE_STARTUP) + output += "

Observe (Please wait...)

" + else + output += "

Observe

" if(GLOB.join_tos) output += "

Terms of Service

" @@ -103,7 +106,7 @@ output += "" - var/datum/browser/popup = new(src, "playersetup", "
New Player Options
", 220, 290) + var/datum/browser/popup = new(src, "playersetup", "
New Player Options
", 240, 330) popup.set_window_options("can_close=0") popup.set_content(output) popup.open(0) @@ -144,7 +147,8 @@ /mob/new_player/Topic(href, href_list[]) - if(!client) return 0 + if(!client) + return FALSE if(href_list["consent_signed"]) var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") @@ -162,12 +166,12 @@ if(href_list["show_preferences"]) client.prefs.ShowChoices(src) - return 1 + return TRUE if(href_list["ready"]) if(!tos_consent) to_chat(usr, "You must consent to the terms of service before you can join!") - return 0 + return FALSE ready = !ready new_player_panel_proc() @@ -182,7 +186,11 @@ if(href_list["observe"]) if(!tos_consent) to_chat(usr, "You must consent to the terms of service before you can join!") - return 0 + return FALSE + + if(!SSticker || SSticker.current_state == GAME_STATE_STARTUP) + to_chat(usr, "You must wait for the server to finish starting before you can join!") + return FALSE if(alert(src,"Are you sure you wish to observe? You cannot normally join the round after doing this!","Player Setup","Yes","No") == "Yes") if(!client) @@ -216,12 +224,12 @@ return 1 if(href_list["tos"]) privacy_consent() - return 0 + return FALSE if(href_list["late_join"]) if(!tos_consent) to_chat(usr, "You must consent to the terms of service before you can join!") - return 0 + return FALSE if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING) to_chat(usr, "The round is either not ready, or has already finished...") return @@ -229,7 +237,7 @@ if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) - return 0 + return FALSE LateChoices() @@ -248,7 +256,7 @@ if(client.prefs.species in GLOB.whitelisted_species) if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) - return 0 + return FALSE AttemptLateSpawn(href_list["SelectedJob"],client.prefs.spawnpoint) return