37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
module SpaceTac.Game {
|
|
"use strict";
|
|
|
|
// Generator of random ship
|
|
export class ShipGenerator {
|
|
// Random number generator used
|
|
random: RandomGenerator;
|
|
|
|
// Create a default ship generator
|
|
constructor(random: RandomGenerator = null) {
|
|
this.random = random || new RandomGenerator();
|
|
}
|
|
|
|
// Generate a ship of a given level
|
|
// The ship will not be named, nor will be a member of any fleet
|
|
generate(level: number): Ship {
|
|
var result = new Ship();
|
|
var loot = new LootGenerator(this.random);
|
|
|
|
// Add equipment slots
|
|
result.addSlot(SlotType.Armor);
|
|
result.addSlot(SlotType.Engine);
|
|
result.addSlot(SlotType.Power);
|
|
result.addSlot(SlotType.Shield);
|
|
result.addSlot(SlotType.Weapon);
|
|
|
|
// Fill equipment slots
|
|
result.slots.forEach((slot: Slot) => {
|
|
var equipment = loot.generate(new IntegerRange(level, level), slot.type);
|
|
slot.attach(equipment);
|
|
});
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|