class FTLTools::BarBuilder

Constants

GRADE
SIZE
YEAR_OFFSET

Attributes

bar[R]

Public Class Methods

new() click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 13
def initialize
  @bar    = FTLTools::Bar.new
  @dice   = FTLTools::Dice.new
end

Public Instance Methods

build_patrons() click to toggle source

def generate_time

t = Time.now
year  = t.year - YEAR_OFFSET
day   = t.strftime("%j")
time = [year, day].join('.')

end

# File lib/ftl_tools/bar_builder.rb, line 51
def build_patrons
  builder     = FTLTools::CharacterBuilder.new
  patrons     = Array.new
  max         = rand(6) + 1
  if ['medium', 'large'].include?(@bar.size)
    max = (max + 2) * 3 
  end
  max.times {
    patrons   << builder.setup
    builder.reset
  }
  patrons
end
generate_grade() click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 32
def generate_grade
  GRADE.sample
end
generate_name() click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 36
def generate_name
  [ "Lusty's Dive", "Joe's Bar and Blowfish Emporium", "Beers and Dears" ].sample
end
generate_size() click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 40
def generate_size
  SIZE.sample
end
reset() click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 18
def reset
  @bar    = FTLTools::Bar.new
end
setup(data = {}) click to toggle source
# File lib/ftl_tools/bar_builder.rb, line 22
def setup(data = {})
  @data             = data
  @bar.name         = @data.fetch(:name, generate_name) 
  @bar.size         = @data.fetch(:size, generate_size)
  @bar.grade        = @data.fetch(:grade, generate_grade)
  @bar.patrons      = build_patrons
  #@bar.time         = generate_time
  return @bar
end