Files
Bubberstation/code/modules/escape_menu/details.dm
Zephyr 0ef5c3d049 Persistent Map Vote Tallies (#86788)
## About The Pull Request

Changes map votes to be based on a persistent tally count.
Tallies for maps are cached between rounds and are added to by map
votes.
When a map is chosen, and it wasn't the only valid one, the tallies for
said chosen map will be reset.

Refactors map vote handling and moves it from SSmapping to SSmap_vote.
Rock the Vote has been removed as a result of this refactor.

## Why It's Good For The Game

Makes it more likely that all maps will be played over the course of a
server instead of always being truly random.
Removes some clutter off of SSmapping.

🆑
refactor: Map Votes are now carried over between rounds. When a map vote
is actually a contest, the winning map will have its votes reset.
/🆑
2024-09-30 13:09:08 +13:00

44 lines
1.3 KiB
Plaintext

// This doesn't instantiate right away, since we rely on other GLOBs
GLOBAL_DATUM(escape_menu_details, /atom/movable/screen/escape_menu/details)
/// Provides a singleton for the escape menu details screen.
/proc/give_escape_menu_details()
if (isnull(GLOB.escape_menu_details))
GLOB.escape_menu_details = new
return GLOB.escape_menu_details
/atom/movable/screen/escape_menu/details
screen_loc = "EAST:-180,NORTH:-25"
maptext_height = 100
maptext_width = 200
/atom/movable/screen/escape_menu/details/Initialize(mapload, datum/hud/hud_owner)
. = ..()
update_text()
START_PROCESSING(SSescape_menu, src)
/atom/movable/screen/escape_menu/details/Destroy()
if (GLOB.escape_menu_details == src)
stack_trace("Something tried to delete the escape menu details screen")
return QDEL_HINT_LETMELIVE
STOP_PROCESSING(SSescape_menu, src)
return ..()
/atom/movable/screen/escape_menu/details/process(seconds_per_tick)
update_text()
/atom/movable/screen/escape_menu/details/proc/update_text()
var/new_maptext = {"
<span style='text-align: right; line-height: 0.7'>
Round ID: [GLOB.round_id || "Unset"]<br />
Round Time: [ROUND_TIME()]<br />
Map: [SSmapping.current_map.map_name || "Loading..."]<br />
Time Dilation: [round(SStime_track.time_dilation_current,1)]%<br />
</span>
"}
maptext = MAPTEXT(new_maptext)