class Room

Constants

ROOM_SQUARE_SIZE
SQUARES_BETWEEN_ROOMS

Attributes

content[R]
content_description[R]
decorations[R]
entry_room[R]
id[RW]
left[R]
max_x[R]
max_y[R]
min_x[R]
min_y[R]
top[R]

Public Class Methods

new( top, left, lair, room_data = {} ) click to toggle source
# File lib/rooms/room.rb, line 18
def initialize( top, left, lair, room_data = {} )
  @top = room_data['top'] ? room_data['top'].to_i : top
  @left = room_data['left'] ? room_data['left'].to_i : left
  @content = room_data['content']
  @content_description = room_data['content_description']
  @entry_room = room_data['entry_room']
  @id = room_data['id'] ? room_data['id'] : [ top, left ]

  @decorations = []
  if room_data['decorations']
    load_decoration_from_json(room_data['decorations'] )
  else
    create_decorations
  end

  create_encounters( lair ) unless room_data['content_description']
end

Public Instance Methods

compute_coords() click to toggle source
# File lib/rooms/room.rb, line 45
def compute_coords
  @min_x = ( ( @left-1 ) * ROOM_SQUARE_SIZE + @left * SQUARES_BETWEEN_ROOMS ) * SQUARE_SIZE_IN_PIXELS
  @max_x = @min_x + ROOM_SQUARE_SIZE * SQUARE_SIZE_IN_PIXELS
  @min_y = ( ( @top-1 ) * ROOM_SQUARE_SIZE + @top * SQUARES_BETWEEN_ROOMS ) * SQUARE_SIZE_IN_PIXELS
  @max_y = @min_y + ROOM_SQUARE_SIZE * SQUARE_SIZE_IN_PIXELS
end
compute_coords_at_origin() click to toggle source
# File lib/rooms/room.rb, line 52
def compute_coords_at_origin
  @min_x = SQUARES_BETWEEN_ROOMS * SQUARE_SIZE_IN_PIXELS
  @max_x = @min_x + ROOM_SQUARE_SIZE * SQUARE_SIZE_IN_PIXELS
  @min_y = SQUARES_BETWEEN_ROOMS * SQUARE_SIZE_IN_PIXELS
  @max_y = @min_y + ROOM_SQUARE_SIZE * SQUARE_SIZE_IN_PIXELS
end
decal_at_origin() click to toggle source
# File lib/rooms/room.rb, line 40
def decal_at_origin
  @top = 1
  @left = 1
end
to_hash( hallways ) click to toggle source
# File lib/rooms/room.rb, line 59
def to_hash( hallways )
  {id: @id, entry_room: @entry_room, content: @content, content_description: @content_description,
   top: @top, left: @left, decorations: @decorations.map{ |d| d[:decoration_type] },
   connected_hallways: hallways.connected_hallways( self ).map{ |k, h| { k => h.to_hash } } }
end
to_json_hash( hallways ) click to toggle source
# File lib/rooms/room.rb, line 65
def to_json_hash( hallways )
  if @decorations.count > 1
    a = :true
  end
  h = to_hash( hallways )
  h.delete(:connected_hallways)
  h
end
top_left_array() click to toggle source
# File lib/rooms/room.rb, line 36
def top_left_array
  [ @top, @left ]
end