diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 694f64e0f21..40fab2ed2bf 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -194,8 +194,15 @@ datum/controller/vote proc/submit_vote(var/ckey, var/vote) if(mode) - if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) - return 0 + if(config.vote_no_dead && usr && !usr.client.holder) + if (isnewplayer(usr)) + usr << "You must be playing or have been playing to start a vote." + return 0 + else if (isobserver(usr)) + var/mob/dead/observer/O = usr + if (O.started_as_observer) + usr << "You must be playing or have been playing to start a vote." + return 0 if(vote && vote >= 1 && vote <= choices.len) if(current_votes[ckey]) choices[choices[current_votes[ckey]]]-- @@ -211,6 +218,16 @@ datum/controller/vote // Transfer votes are their own little special snowflake var/next_allowed_time = 0 if (vote_type == "crew_transfer") + if (config.vote_no_dead && !usr.client.holder) + if (isnewplayer(usr)) + usr << "You must be playing or have been playing to start a vote." + return 0 + else if (isobserver(usr)) + var/mob/dead/observer/O = usr + if (O.started_as_observer) + usr << "You must be playing or have been playing to start a vote." + return 0 + if (last_transfer_vote) next_allowed_time = (last_transfer_vote + config.vote_delay) else diff --git a/config/example/config.txt b/config/example/config.txt index 7f730bef569..6082e8703e9 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -162,7 +162,8 @@ VOTE_AUTOGAMEMODE_TIMELEFT 100 ## min delay (deciseconds) before a transfer vote can be called (default 120 minutes) TRANSFER_TIMEOUT 72000 -## prevents dead players from voting or starting votes +## Prevets lobby-sitters and ghosts who went straight from the lobby to observing from voting. +## Ghosts who died will still be able to vote. #NO_DEAD_VOTE ## players' votes default to "No vote" (otherwise, default to "No change") diff --git a/html/changelogs/skul1l32-voting.yml b/html/changelogs/skul1l32-voting.yml new file mode 100644 index 00000000000..9a058972aa0 --- /dev/null +++ b/html/changelogs/skul1l32-voting.yml @@ -0,0 +1,6 @@ +author: Skull132 + +delete-after: True + +changes: + - tweak: "Modified the voting limitation system to only prohibit voting for lobby sitters and ghosts who went straight from the lobby to observing."