Files
LT3andGitHub 30bd96e37e Ranked Choice Voting (#4166)
## About The Pull Request

Implements ranked choice voting for storyteller and map vote

## Why It's Good For The Game

I can close the secret storyteller PR

## Changelog

🆑 LT3
qol: Ranked choice voting is now available for storyteller and map votes
/🆑
2025-07-02 17:14:40 -06:00

35 lines
1006 B
Plaintext

/datum/vote
// Specifies if people who haven't spent INGAME_TIME_NEEDED minutes in the round are allowed to vote
var/allow_ghosts = TRUE
#define INGAME_TIME_NEEDED 30
// Checks if a mob can partake in voting. Feel free to add overrides when adding your own votes!
// This is called directly from /datum/controller/subsystem/vote so some nullchecks are excluded as they are included before this is called
/datum/vote/proc/can_mob_vote(mob/voter)
if(SSticker.HasRoundStarted() && !allow_ghosts)
if(GLOB.client_minutes_in_round[voter.client.ckey] >= INGAME_TIME_NEEDED)
return TRUE
else
return FALSE
return TRUE
#undef INGAME_TIME_NEEDED
/datum/vote/transfer_vote
allow_ghosts = FALSE
// Has this vote been run before?
var/has_ran = FALSE
winner_method = VOTE_WINNER_METHOD_SIMPLE
display_statistics = FALSE
/datum/vote/transfer_vote/can_mob_vote(mob/voter)
if(has_ran)
return TRUE
return ..()
/datum/vote/transfer_vote/finalize_vote(winning_option)
has_ran = TRUE
return ..()