Sha256: 17c859aecef8f0719e0e2aee0aac85498e5620921a6c53628471c83fc7e823cd

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

module Petli
  module Rooms
    class Guess < Room
      def initialize(pet)
        super(pet)
        @left = true
        @countdown = -1
      end

      def actions
        %w(left right)
      end

      def enter
        pet.play(game: :guess)
      end

      def leave
        pet.reset
      end

      def keypress(event)
        return if event.value != "l" and event.value != "r"
        @petpickedleft = rand(1..2) == 1
        @pickedleft = event.value == "l"
        (@petpickedleft == @pickedleft) ? @pet.celebrate : @pet.embarass
        @countdown = 20
      end

      def draw(ctx, ox, oy)
        ctx.render_at(ox+9, oy+4, @pet.display)
        if @countdown == -1
          ctx.render_at(ox+4, oy+5, "☟") if @left
          ctx.render_at(ox+23, oy+5, "☟") unless @left
          ctx.render_at(ox+4, oy+6, "▒") if @left
          ctx.render_at(ox+23, oy+6, "▒") unless @left
          @left = !@left
        elsif @countdown == 0
          (@petpickedleft == @pickedleft) ? @pet.win : @pet.lose
          goto("main")
        else
          ctx.render_at(ox+4, oy+5, "☟") if @pickedleft
          ctx.render_at(ox+23, oy+5, "☟") unless @pickedleft
          ctx.render_at(ox+4, oy+6, "▒") if @petpickedleft
          ctx.render_at(ox+23, oy+6, "▒") unless @petpickedleft
          @countdown -= 1
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
petli-0.0.2 lib/petli/rooms/guess.rb
petli-0.0.1 lib/petli/rooms/guess.rb