Added encounter fleet generation (unbalanced)
This commit is contained in:
parent
c9412ec8ef
commit
c9c11d23ce
27
src/app/game/FleetGenerator.ts
Normal file
27
src/app/game/FleetGenerator.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
module SpaceTac.Game {
|
||||
"use strict";
|
||||
|
||||
// Generator of balanced ships to form a fleet
|
||||
export class FleetGenerator {
|
||||
// Random generator to use
|
||||
random: RandomGenerator;
|
||||
|
||||
constructor(random: RandomGenerator = new RandomGenerator()) {
|
||||
this.random = random;
|
||||
}
|
||||
|
||||
// Generate a fleet of a given level
|
||||
generate(level: number, player: Player = null, ship_count: number = 3): Fleet {
|
||||
var fleet = new Fleet(player);
|
||||
var ship_generator = new ShipGenerator(this.random);
|
||||
|
||||
while (ship_count--) {
|
||||
var ship = ship_generator.generate(level);
|
||||
ship.name = "Ship " + ship_count.toString();
|
||||
fleet.addShip(ship);
|
||||
}
|
||||
|
||||
return fleet;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,6 +32,8 @@ module SpaceTac.Game {
|
|||
|
||||
// Generate a real single player game
|
||||
startNewGame(): void {
|
||||
var fleet_generator = new FleetGenerator();
|
||||
|
||||
this.universe = new Universe();
|
||||
this.universe.generate();
|
||||
|
||||
|
@ -40,6 +42,7 @@ module SpaceTac.Game {
|
|||
start_location.encounter = null;
|
||||
|
||||
this.player = new Game.Player(this.universe);
|
||||
this.player.fleet = fleet_generator.generate(1, this.player);
|
||||
this.player.fleet.setLocation(start_location);
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,10 @@ module SpaceTac.Game {
|
|||
this.encounter_gen = true;
|
||||
|
||||
if (random.throw() < 0.8) {
|
||||
this.encounter = new Fleet();
|
||||
var fleet_generator = new FleetGenerator(random);
|
||||
var ship_count = random.throwInt(1, 5);
|
||||
this.encounter = fleet_generator.generate(this.star.level, null, ship_count);
|
||||
this.encounter.player.ai = new AI.BullyAI(this.encounter);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,6 @@ module SpaceTac.Game.AI {
|
|||
|
||||
// Base class for all Artificial Intelligence interaction
|
||||
export class AbstractAI extends Serializable {
|
||||
// The battle this AI is involved in
|
||||
battle: Battle;
|
||||
|
||||
// The fleet controlled by this AI
|
||||
fleet: Fleet;
|
||||
|
||||
|
@ -30,7 +27,6 @@ module SpaceTac.Game.AI {
|
|||
super();
|
||||
|
||||
this.fleet = fleet;
|
||||
this.battle = fleet.battle;
|
||||
this.async = true;
|
||||
this.workqueue = [];
|
||||
}
|
||||
|
@ -104,7 +100,7 @@ module SpaceTac.Game.AI {
|
|||
}
|
||||
}
|
||||
this.ship = null;
|
||||
this.battle.advanceToNextShip();
|
||||
this.fleet.battle.advanceToNextShip();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue