class Petli::Rooms::Dice

Constants

Symbols

Public Class Methods

new(pet) click to toggle source
Calls superclass method Petli::Rooms::Room::new
# File lib/petli/rooms/dice.rb, line 6
def initialize(pet)
  super(pet)
  @value = rand(1..6)
  @countdown = -1
end

Public Instance Methods

actions() click to toggle source
# File lib/petli/rooms/dice.rb, line 12
def actions
  %w(higher lower)
end
draw(ctx, ox, oy) click to toggle source
# File lib/petli/rooms/dice.rb, line 36
def draw(ctx, ox, oy)
  ctx.render_at(ox+9, oy+4, @pet.display)
  if @countdown == -1
    ctx.render_at(ox+4, oy+6, @value.to_s)
    ctx.render_at(ox+23, oy+6, Symbols[(0..5).to_a.sample])
  elsif @countdown == 0
    @won ? @pet.win : @pet.lose
    goto("main")
  else
    ctx.render_at(ox+4, oy+5, "▲") if @pickedhigher
    ctx.render_at(ox+4, oy+6, @value.to_s)
    ctx.render_at(ox+23, oy+6, Symbols[@pick-1])
    ctx.render_at(ox+4, oy+7, "▼") unless @pickedhigher
    @countdown -= 1
  end
end
enter() click to toggle source
# File lib/petli/rooms/dice.rb, line 16
def enter
  pet.play(game: :guess)
end
keypress(event) click to toggle source
# File lib/petli/rooms/dice.rb, line 27
def keypress(event)
  return if event.value != "h" and event.value != "l"
  @pickedhigher = event.value == "h"
  @pick = (1..6).to_a.sample
  @won = (event.value == "h" && @pick > @value) || (event.value == "l" && @pick < @value)
  @won ? @pet.celebrate : @pet.embarass
  @countdown = 20
end
leave() click to toggle source
# File lib/petli/rooms/dice.rb, line 20
def leave
  pet.reset
end
roll() click to toggle source
# File lib/petli/rooms/dice.rb, line 24
def roll
end