class FTLTools::ShipBuilder

Attributes

ship[R]

Public Class Methods

new(data = {}) click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 9
def initialize(data = {})
  @ship   = FTLTools::Ship.new
  @dice   = FTLTools::Dice.new
end

Public Instance Methods

generate_cargo_capacity() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 51
def generate_cargo_capacity
  hold = @dice.roll_1 * 15
  hold_max = @ship.hull_size / 10
  [hold, hold_max].min
end
generate_drive_size() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 34
def generate_drive_size
  ((@ship.hull_size / 10) * 1.5).to_i
end
generate_hull_size() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 30
def generate_hull_size
  @dice.roll_2 * 100
end
generate_name() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 42
def generate_name
  %w(BMM-12345 Avenger Fred).sample
end
generate_passengers() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 46
def generate_passengers
  # Need to figure out the ship build specs, vs hull size.
  @dice.roll_2
end
generate_service() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 57
def generate_service
  ['Free Trader', 'Navy', 'Merchant Marine'].sample
end
generate_weapons() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 38
def generate_weapons
  @ship.hull_size / 100
end
reset() click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 14
def reset
  @ship   = FTLTools::Ship.new
end
setup(data = {}) click to toggle source
# File lib/ftl_tools/ship_builder.rb, line 18
def setup(data = {})
  @data                 = data
  @ship.name            = @data.fetch(:name, generate_name) 
  @ship.hull_size       = @data.fetch(:hull_size, generate_hull_size).to_i
  @ship.drive_size      = @data.fetch(:drive_size, generate_drive_size).to_i
  @ship.weapons         = @data.fetch(:weapons, generate_weapons).to_i
  @ship.passengers      = @data.fetch(:passengers, generate_passengers)
  @ship.cargo_capacity  = @data.fetch(:cargo_capacity, generate_cargo_capacity).to_i
  @ship.service         = @data.fetch(:service, generate_service)
  @ship
end