1
0
Fork 0

Added encounter fleet generation (unbalanced)

This commit is contained in:
Michaël Lemaire 2015-04-07 02:00:00 +02:00
parent c9412ec8ef
commit c9c11d23ce
4 changed files with 35 additions and 6 deletions

View 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;
}
}
}

View file

@ -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);
}

View file

@ -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);
}
}

View file

@ -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();
}
}
}