class GameEngine::GameState

Attributes

id[R]
phase[RW]
player_one[R]
player_two[R]
round[RW]
time[RW]

Public Class Methods

new(game_data) click to toggle source
# File lib/smack_engine/game_state.rb, line 6
def initialize(game_data)
  @id = game_data.id
  @player_one = GameEngine::Player.new(game_data.player_one)
  @player_two = GameEngine::Player.new(game_data.player_two)
  @round = 0
  @phase = :setup
  @time = Time.now
end

Public Instance Methods

target_player(player_id) click to toggle source
# File lib/smack_engine/game_state.rb, line 15
def target_player(player_id)
  return player_one if player_one.id.to_i == player_id.to_i
  return player_two if player_two.id.to_i == player_id.to_i
  raise ArgumentError.new("No player found with id = #{player_id}")
end
winner() click to toggle source
# File lib/smack_engine/game_state.rb, line 21
def winner
  return player_one if player_one.points > 0 && player_two.points <= 0
  return player_two if player_two.points > 0 && player_one.points <= 0
end
won?() click to toggle source
# File lib/smack_engine/game_state.rb, line 26
def won?
  winner != nil
end