class Process::Roulette::Croupier::RestartHandler
The RestartHandler
encapsulates the “restart” state of the croupier state machine. It builds a scoreboard of results from the most recent game and sends it to all controllers, and then advances the state machine to the “join” state.
Public Class Methods
new(croupier)
click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 12 def initialize(croupier) @croupier = croupier end
Public Instance Methods
_results_for(player)
click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 33 def _results_for(player) { name: player.username, killed_at: player.killed_at, killer: player.victims.last, victims: player.victims } end
_sorted_players()
click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 29 def _sorted_players @croupier.players.sort_by { |player| -player.victims.length } end
run()
click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 16 def run scoreboard = _sorted_players.map do |player| _results_for(player) end @croupier.controllers.each do |controller| controller.send_packet('DONE') controller.send_packet(scoreboard) end JoinHandler end