class Degica::Room
Attributes
description[RW]
doors[RW]
Public Class Methods
new(description, objects = [])
click to toggle source
# File lib/degica/room.rb, line 6 def initialize(description, objects = []) @description = description.highlight @doors = DoorCollection.new @objects = ObjectCollection.new(objects) @generated = false end
Public Instance Methods
actions()
click to toggle source
# File lib/degica/room.rb, line 24 def actions actions = @doors.actions + @objects.actions actions << Action.new(:room, self) actions << Action.new(:door, @doors.first) if @doors.size == 1 actions end
describe()
click to toggle source
# File lib/degica/room.rb, line 31 def describe @description end
generate!()
click to toggle source
# File lib/degica/room.rb, line 13 def generate! return if @generated @generated = true rooms = Game.objects.rooms.select do |room| room.doors.empty? && room != self end.sample(rand(1..2)) rooms.map { |r| make_door(r) } end
Private Instance Methods
make_door(room)
click to toggle source
# File lib/degica/room.rb, line 37 def make_door(room) Door.new(self, room) end