module Gamefic::Scriptable::Events

Scriptable methods related to creating event callbacks.

Public Instance Methods

on_conclude(&block) click to toggle source
# File lib/gamefic/scriptable/events.rb, line 53
def on_conclude &block
  rulebook.events.on_conclude(Callback.new(self, block))
end
on_player_conclude(&block) click to toggle source

@yieldparam [Actor] @return [Proc]

# File lib/gamefic/scriptable/events.rb, line 59
def on_player_conclude &block
  rulebook.events.on_player_conclude(Callback.new(self, block))
end
on_player_output(&block) click to toggle source

@yieldparam [Actor] @yieldparam [Hash] @return [Proc]

# File lib/gamefic/scriptable/events.rb, line 66
def on_player_output &block
  rulebook.events.on_player_output Callback.new(self, block)
end
on_player_ready(&block) click to toggle source

Add a block to be executed for each player at the beginning of a turn.

@example Tell the player how many turns they’ve played.

on_player_ready do |player|
  player[:turns] ||= 1
  player.tell "Turn #{player[:turns]}"
  player[:turns] += 1
end

@yieldparam [Gamefic::Actor]

# File lib/gamefic/scriptable/events.rb, line 30
def on_player_ready &block
  wrapper = proc do
    players.each { |player| Stage.run(self, player, &block) }
  end
  on_ready &wrapper
end
on_player_update(&block) click to toggle source

Add a block to be executed for each player at the end of a turn.

@yieldparam [Gamefic::Actor]

# File lib/gamefic/scriptable/events.rb, line 46
def on_player_update &block
  wrapper = proc do
    players.each { |player| Stage.run(self, player, &block) }
  end
  on_update &wrapper
end
on_ready(&block) click to toggle source

Add a block to be executed on preparation of every turn.

@example Increment a turn counter

turn = 0
on_ready do
  turn += 1
end
# File lib/gamefic/scriptable/events.rb, line 16
def on_ready &block
  rulebook.events.on_ready(Callback.new(self, block))
end
on_update(&block) click to toggle source

Add a block to be executed after the Plot is finished updating a turn.

# File lib/gamefic/scriptable/events.rb, line 39
def on_update &block
  rulebook.events.on_update(Callback.new(self, block))
end