Class: Hearthstone::Models::GameLoader
- Inherits:
-
Object
- Object
- Hearthstone::Models::GameLoader
- Defined in:
- lib/hearthstone/models/game_loader.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
-
#game ⇒ Object
readonly
Returns the value of attribute game.
Instance Method Summary collapse
-
#initialize(data) ⇒ GameLoader
constructor
A new instance of GameLoader.
- #load_event(name, data) ⇒ Object
- #load_players ⇒ Object
- #load_turn(number: 0, events: []) ⇒ Object
- #load_turns ⇒ Object
Constructor Details
#initialize(data) ⇒ GameLoader
Returns a new instance of GameLoader.
11 12 13 14 |
# File 'lib/hearthstone/models/game_loader.rb', line 11 def initialize(data) @data = data @game = Game.new end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
8 9 10 |
# File 'lib/hearthstone/models/game_loader.rb', line 8 def data @data end |
#game ⇒ Object (readonly)
Returns the value of attribute game.
9 10 11 |
# File 'lib/hearthstone/models/game_loader.rb', line 9 def game @game end |
Instance Method Details
#load_event(name, data) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/hearthstone/models/game_loader.rb', line 38 def load_event(name, data) event_sym = name.to_sym case event_sym when :open_card, :card_received, :card_revealed, :card_played, :card_added_to_deck, :card_drawn, :card_discarded, :card_destroyed, :card_put_in_play game.send(event_sym, data) when :damaged game.apply_damage(id: data[:id], amount: data[:amount]) when :attached game.card_attached(attachment_id: data[:id], target_id: data[:target]) end end |
#load_players ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/hearthstone/models/game_loader.rb', line 16 def load_players data[:players].each do |player| game.add_player(id: player[:id], name: player[:name], first_player: player[:first_player], hero_id: player[:hero][:id], hero_card_id: player[:hero][:card_id], hero_power_id: player[:hero_power][:id], hero_power_card_id: player[:hero_power][:card_id]) end end |
#load_turn(number: 0, events: []) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/hearthstone/models/game_loader.rb', line 30 def load_turn(number: 0, events: []) game.turn = number events.each do |event| load_event(event[0], event[1]) end end |
#load_turns ⇒ Object
24 25 26 27 28 |
# File 'lib/hearthstone/models/game_loader.rb', line 24 def load_turns data[:turns].each do |turn| load_turn(number: turn[:number], events: turn[:events]) end end |