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