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