class PlaylyfeClient::V2::PlayerEvent::Base
Attributes
action_id[R]
action_name[R]
actor_alias[R]
actor_id[R]
changes[R]
count[R]
player_alias[R]
player_id[R]
process_id[R]
process_name[R]
rule_id[R]
rule_name[R]
Public Class Methods
build(ev_hash, game, player=nil)
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 96 def self.build(ev_hash, game, player=nil) case ev_hash["event"] when "level" klass= LevelChangedEvent when "action" klass= ActionPlayedEvent when "achievement" klass= AchievementEvent when "custom_rule" klass= CustomRuleAppliedEvent when "score" klass= ScoreUpdatedByAdminEvent else return nil end return klass.new(ev_hash, game, player) end
new(ev_hash,game,player=nil)
click to toggle source
Calls superclass method
PlaylyfeClient::V2::Event::new
# File lib/playlyfe_client/v2/event/player_event.rb, line 30 def initialize(ev_hash,game,player=nil) super(ev_hash,game) if @ev_hash.has_key?("actor") @actor_id=@ev_hash["actor"]["id"] @actor_alias=@ev_hash["actor"]["alias"] else if player.nil? raise "cannot create actor from hash #{@ev_hash} and player #{player}" else @actor_id=player.id @actor_alias=player.alias end end ["action", "rule", "process"].each do |att| unless @ev_hash[att].nil? instance_variable_set("@#{att}_id", @ev_hash[att]["id"]) instance_variable_set("@#{att}_name", @ev_hash[att]["name"]) end end @count= @ev_hash["count"] || 0 @player_id=@actor_id @player_alias=@actor_alias if @ev_hash.has_key?("player") @player_id=@ev_hash["player"]["id"] @player_alias=@ev_hash["player"]["alias"] end set_changes end
Public Instance Methods
action()
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 23 def action return nil if action_id.nil? game.actions.find(action_id) end
player()
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 11 def player game.players.find(player_id) end
process()
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 19 def process process_id #todo end
rule()
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 15 def rule rule_id #todo end
Private Instance Methods
set_changes()
click to toggle source
# File lib/playlyfe_client/v2/event/player_event.rb, line 67 def set_changes @changes=[] return @changes if @ev_hash["changes"].nil? for ch in @ev_hash["changes"] if ch["delta"].has_key?("old") chng={delta: [ ch["delta"]["old"], ch["delta"]["new"] ]} else k=ch["delta"].keys.first chng={delta: [ ch["delta"][k]["old"], ch["delta"][k]["new"], k ]} end chng[:metric]=game.metrics.find(ch["metric"]["id"]) @changes << chng end end