1
0
Fork 0

Refactored namespaces

This commit is contained in:
Michaël Lemaire 2017-02-09 01:00:35 +01:00
parent eb75658a10
commit bee43583ca
141 changed files with 305 additions and 302 deletions

3
TODO
View file

@ -1,6 +1,9 @@
* Restore serialization * Restore serialization
* Drones: add tooltip * Drones: add tooltip
* Drones: add hull points and take area damage * Drones: add hull points and take area damage
* Drones: change the sprite angle for deploy animation
* Better display of effects over ship sprite (repairs, sticky effects...)
* Add a battle log display
* Organize arena objects and information in layers * Organize arena objects and information in layers
* Allow to cancel last moves * Allow to cancel last moves
* Add more visual effects to weapons, hits and explosions * Add more visual effects to weapons, hits and explosions

View file

@ -31,7 +31,7 @@
<script> <script>
window.oncontextmenu = function (e) { e.preventDefault(); }; window.oncontextmenu = function (e) { e.preventDefault(); };
window.onload = function () { window.onload = function () {
new TS.SpaceTac.GameUI(); new TS.SpaceTac.MainUI();
}; };
</script> </script>
</body> </body>

View file

@ -6,30 +6,30 @@ if (typeof window != "undefined") {
module TS.SpaceTac { module TS.SpaceTac {
// Router between game views // Router between game views
export class GameUI extends Phaser.Game { export class MainUI extends Phaser.Game {
// Current game session // Current game session
session: Game.GameSession; session: GameSession;
// Current focused star system // Current focused star system
star: Game.Star; star: Star;
// Audio manager // Audio manager
audio: View.Audio; audio: UI.Audio;
constructor(headless: boolean = false) { constructor(headless: boolean = false) {
super(1920, 1080, headless ? Phaser.HEADLESS : Phaser.AUTO, '-space-tac'); super(1920, 1080, headless ? Phaser.HEADLESS : Phaser.AUTO, '-space-tac');
this.audio = new View.Audio(this); this.audio = new UI.Audio(this);
this.session = new Game.GameSession(); this.session = new GameSession();
this.star = null; this.star = null;
this.state.add('boot', View.Boot); this.state.add('boot', UI.Boot);
this.state.add('preload', View.Preload); this.state.add('preload', UI.Preload);
this.state.add('mainmenu', View.MainMenu); this.state.add('mainmenu', UI.MainMenu);
this.state.add('router', View.Router); this.state.add('router', UI.Router);
this.state.add('battle', View.BattleView); this.state.add('battle', UI.BattleView);
this.state.add('universe', View.UniverseMapView); this.state.add('universe', UI.UniverseMapView);
this.state.start('boot'); this.state.start('boot');
} }
@ -38,10 +38,10 @@ module TS.SpaceTac {
saveGame(): boolean { saveGame(): boolean {
if (typeof (Storage) !== "undefined") { if (typeof (Storage) !== "undefined") {
localStorage.setItem("spacetac-savegame", this.session.saveToString()); localStorage.setItem("spacetac-savegame", this.session.saveToString());
(<View.BaseView>this.state.getCurrentState()).messages.addMessage("Game saved"); (<UI.BaseView>this.state.getCurrentState()).messages.addMessage("Game saved");
return true; return true;
} else { } else {
(<View.BaseView>this.state.getCurrentState()).messages.addMessage("Your browser does not support saving"); (<UI.BaseView>this.state.getCurrentState()).messages.addMessage("Your browser does not support saving");
return false; return false;
} }
} }
@ -51,7 +51,7 @@ module TS.SpaceTac {
if (typeof (Storage) !== "undefined") { if (typeof (Storage) !== "undefined") {
var loaded = localStorage.getItem("spacetac-savegame"); var loaded = localStorage.getItem("spacetac-savegame");
if (loaded) { if (loaded) {
this.session = Game.GameSession.loadFromString(loaded); this.session = GameSession.loadFromString(loaded);
console.log("Game loaded"); console.log("Game loaded");
return true; return true;
} else { } else {
@ -65,7 +65,7 @@ module TS.SpaceTac {
} }
// Get the focuses star system // Get the focuses star system
getFocusedStar(): Game.Star { getFocusedStar(): Star {
if (this.star && this.star.universe === this.session.universe) { if (this.star && this.star.universe === this.session.universe) {
return this.star; return this.star;
} else { } else {

@ -1 +1 @@
Subproject commit 6d16fc0a5b50aa53c68c09fda2d0d3c5ec22b02d Subproject commit 795267025bbe1f67c33645af12096dd57a8f1109

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("Battle", function () { describe("Battle", function () {
it("defines play order by initiative throws", function () { it("defines play order by initiative throws", function () {
var fleet1 = new Fleet(null); var fleet1 = new Fleet(null);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A turn-based battle between fleets // A turn-based battle between fleets
export class Battle { export class Battle {
// Flag indicating if the battle is ended // Flag indicating if the battle is ended

View file

@ -1,6 +1,6 @@
/// <reference path="events/BaseLogEvent.ts"/> /// <reference path="events/BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Check a single game log event // Check a single game log event
function checkEvent(got: BaseLogEvent, ship: Ship, code: string, function checkEvent(got: BaseLogEvent, ship: Ship, code: string,
target_ship: Ship = null, target_x: number = null, target_y: number = null): void { target_ship: Ship = null, target_x: number = null, target_y: number = null): void {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Log of a battle // Log of a battle
// This keeps track of all events in a battle // This keeps track of all events in a battle
// It also allows to register a callback to receive these events // It also allows to register a callback to receive these events

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("BattleOutcome", () => { describe("BattleOutcome", () => {
it("generates loot from dead ships, for the winner to take", () => { it("generates loot from dead ships, for the winner to take", () => {
var fleet1 = new Fleet(); var fleet1 = new Fleet();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Result of an ended battle // Result of an ended battle
export class BattleOutcome { export class BattleOutcome {
// Indicates if the battle is a draw (no winner) // Indicates if the battle is a draw (no winner)

View file

@ -1,6 +1,6 @@
/// <reference path="effects/BaseEffect.ts" /> /// <reference path="effects/BaseEffect.ts" />
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Fake effect to capture apply requests * Fake effect to capture apply requests
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Drones are static objects that apply effects in a circular zone around themselves. * Drones are static objects that apply effects in a circular zone around themselves.
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("EffectTemplate", () => { describe("EffectTemplate", () => {
it("interpolates between weak and strong effects", () => { it("interpolates between weak and strong effects", () => {
var base_effect = new AttributeEffect("hull_capacity", 6); var base_effect = new AttributeEffect("hull_capacity", 6);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Modifier for a value of a BaseEffect subclass // Modifier for a value of a BaseEffect subclass
export class EffectTemplateModifier { export class EffectTemplateModifier {
// Value name // Value name

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Equipment", () => { describe("Equipment", () => {
it("checks capabilities requirements", function () { it("checks capabilities requirements", function () {
var equipment = new Equipment(); var equipment = new Equipment();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Piece of equipment to attach in slots // Piece of equipment to attach in slots
export class Equipment { export class Equipment {
// Actual slot this equipment is attached to // Actual slot this equipment is attached to

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("Fleet", function () { describe("Fleet", function () {
it("get average level", function () { it("get average level", function () {
var fleet = new Fleet(); var fleet = new Fleet();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A fleet of ships // A fleet of ships
export class Fleet { export class Fleet {
// Fleet owner // Fleet owner

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Generator of balanced ships to form a fleet // Generator of balanced ships to form a fleet
export class FleetGenerator { export class FleetGenerator {
// Random generator to use // Random generator to use

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
function applyGameSteps(session: GameSession): void { function applyGameSteps(session: GameSession): void {
var battle = session.getBattle(); var battle = session.getBattle();
battle.advanceToNextShip(); battle.advanceToNextShip();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A game session, binding a universe and a player // A game session, binding a universe and a player
export class GameSession { export class GameSession {
// Game universe // Game universe
@ -14,13 +14,13 @@ module TS.SpaceTac.Game {
// Load a game state from a string // Load a game state from a string
static loadFromString(serialized: string): GameSession { static loadFromString(serialized: string): GameSession {
var serializer = new Serializer(); var serializer = new Serializer(TS.SpaceTac);
return <GameSession>serializer.unserialize(serialized); return <GameSession>serializer.unserialize(serialized);
} }
// Serializes the game state to a string // Serializes the game state to a string
saveToString(): string { saveToString(): string {
var serializer = new Serializer(); var serializer = new Serializer(TS.SpaceTac);
return serializer.serialize(this); return serializer.serialize(this);
} }
@ -35,14 +35,14 @@ module TS.SpaceTac.Game {
start_location.encounter_gen = true; start_location.encounter_gen = true;
start_location.encounter = null; start_location.encounter = null;
this.player = new Game.Player(this.universe); this.player = new Player(this.universe);
this.player.fleet = fleet_generator.generate(1, this.player); this.player.fleet = fleet_generator.generate(1, this.player);
this.player.fleet.setLocation(start_location); this.player.fleet.setLocation(start_location);
} }
// Start a new "quick battle" game // Start a new "quick battle" game
startQuickBattle(with_ai: boolean = false): void { startQuickBattle(with_ai: boolean = false): void {
var battle = Game.Battle.newQuickRandom(with_ai); var battle = Battle.newQuickRandom(with_ai);
this.player = battle.fleets[0].player; this.player = battle.fleets[0].player;
this.player.setBattle(battle); this.player.setBattle(battle);
} }

View file

@ -1,6 +1,6 @@
/// <reference path="LootTemplate.ts" /> /// <reference path="LootTemplate.ts" />
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
class TestTemplate extends LootTemplate { class TestTemplate extends LootTemplate {
constructor() { constructor() {
super(SlotType.Shield, "Hexagrid Shield"); super(SlotType.Shield, "Hexagrid Shield");

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Equipment generator from loot templates // Equipment generator from loot templates
export class LootGenerator { export class LootGenerator {
// List of available templates // List of available templates
@ -21,9 +21,9 @@ module TS.SpaceTac.Game {
// Fill the list of templates // Fill the list of templates
populate(): void { populate(): void {
var templates: LootTemplate[] = []; var templates: LootTemplate[] = [];
for (var template_name in TS.SpaceTac.Game.Equipments) { for (var template_name in TS.SpaceTac.Equipments) {
if (template_name && template_name.indexOf("Abstract") != 0) { if (template_name && template_name.indexOf("Abstract") != 0) {
var template_class = TS.SpaceTac.Game.Equipments[template_name]; var template_class = TS.SpaceTac.Equipments[template_name];
var template: LootTemplate = new template_class(); var template: LootTemplate = new template_class();
templates.push(template); templates.push(template);
} }

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("LootTemplate", () => { describe("LootTemplate", () => {
it("interpolates between weak and strong loot", () => { it("interpolates between weak and strong loot", () => {
var template = new LootTemplate(SlotType.Weapon, "Bulletator"); var template = new LootTemplate(SlotType.Weapon, "Bulletator");

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Template used to generate a loot equipment // Template used to generate a loot equipment
export class LootTemplate { export class LootTemplate {
// Type of slot this equipment will fit in // Type of slot this equipment will fit in

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("MoveFireSimulator", function () { describe("MoveFireSimulator", function () {
function simpleWeaponCase(distance = 10, ship_ap = 5, weapon_ap = 3, engine_distance = 5): [Ship, MoveFireSimulator, BaseAction] { function simpleWeaponCase(distance = 10, ship_ap = 5, weapon_ap = 3, engine_distance = 5): [Ship, MoveFireSimulator, BaseAction] {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* A single action in the sequence result from the simulator * A single action in the sequence result from the simulator

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("NameGenerator", () => { describe("NameGenerator", () => {
it("generates unique names", () => { it("generates unique names", () => {
var random = new RandomGenerator(0.48, 0.9, 0.1); var random = new RandomGenerator(0.48, 0.9, 0.1);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A unique name generator // A unique name generator
export class NameGenerator { export class NameGenerator {
// List of available choices // List of available choices

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("Player", function () { describe("Player", function () {
it("keeps track of visited locations", function () { it("keeps track of visited locations", function () {
let player = new Player(); let player = new Player();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// One player (human or IA) // One player (human or IA)
export class Player { export class Player {
// Universe in which we are playing // Universe in which we are playing

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Random generator, used in all throws // Random generator, used in all throws
export class RandomGenerator { export class RandomGenerator {
// Array of next values, empty for a correct generator // Array of next values, empty for a correct generator

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
function checkProportional(range: Range, value1: number, value2: number) { function checkProportional(range: Range, value1: number, value2: number) {
expect(range.getProportional(value1)).toEqual(value2); expect(range.getProportional(value1)).toEqual(value2);
expect(range.getReverseProportional(value2)).toEqual(value1); expect(range.getReverseProportional(value2)).toEqual(value1);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Range of number values // Range of number values
export class Range { export class Range {
// Minimal value // Minimal value

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Ship", function () { describe("Ship", function () {
it("moves and computes facing angle", function () { it("moves and computes facing angle", function () {
var ship = new Ship(null, "Test"); var ship = new Ship(null, "Test");

View file

@ -1,7 +1,7 @@
/// <reference path="ShipAttribute.ts"/> /// <reference path="ShipAttribute.ts"/>
/// <reference path="ShipValue.ts"/> /// <reference path="ShipValue.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Set of ShipAttribute for a ship * Set of ShipAttribute for a ship

View file

@ -1,6 +1,6 @@
/// <reference path="ShipValue.ts"/> /// <reference path="ShipValue.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* A ship attribute is a value computed by a sum of contributions from equipments and sticky effects. * A ship attribute is a value computed by a sum of contributions from equipments and sticky effects.
* *

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("ShipGenerator", function () { describe("ShipGenerator", function () {
it("can use ship model", function () { it("can use ship model", function () {
var gen = new ShipGenerator(); var gen = new ShipGenerator();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Generator of random ship // Generator of random ship
export class ShipGenerator { export class ShipGenerator {
// Random number generator used // Random number generator used

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A model of ship // A model of ship
// It defines the ship looks, and available slots for equipment // It defines the ship looks, and available slots for equipment
export class ShipModel { export class ShipModel {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("ShipValue", function () { describe("ShipValue", function () {
it("is initially not limited", function () { it("is initially not limited", function () {
var attr = new ShipValue("test"); var attr = new ShipValue("test");

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* A ship value is a number that may vary and be constrained in a given range. * A ship value is a number that may vary and be constrained in a given range.
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Slot", () => { describe("Slot", () => {
it("checks equipment type", () => { it("checks equipment type", () => {
var ship = new Ship(); var ship = new Ship();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Types of slots // Types of slots
export enum SlotType { export enum SlotType {
Armor, Armor,

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Star", () => { describe("Star", () => {
it("lists links to other stars", () => { it("lists links to other stars", () => {
var universe = new Universe(); var universe = new Universe();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// A star system // A star system
export class Star { export class Star {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("StarLink", () => { describe("StarLink", () => {
it("checks link intersection", () => { it("checks link intersection", () => {
var star1 = new Star(null, 0, 0); var star1 = new Star(null, 0, 0);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// An hyperspace link between two star systems // An hyperspace link between two star systems
export class StarLink { export class StarLink {
// Stars // Stars

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("StarLocation", () => { describe("StarLocation", () => {
it("removes generated encounters that lose", function () { it("removes generated encounters that lose", function () {
var location = new StarLocation(null, StarLocationType.PLANET, 0, 0); var location = new StarLocation(null, StarLocationType.PLANET, 0, 0);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
export enum StarLocationType { export enum StarLocationType {
STAR, STAR,
WARP, WARP,

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Target", () => { describe("Target", () => {
it("initializes from ship or location", () => { it("initializes from ship or location", () => {
var target: Target; var target: Target;

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Find the nearest intersection between a line and a circle // Find the nearest intersection between a line and a circle
// Circle is supposed to be centered at (0,0) // Circle is supposed to be centered at (0,0)
// Nearest intersection to (x1,y1) is returned // Nearest intersection to (x1,y1) is returned

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// unit testing utilities // unit testing utilities
export class TestTools { export class TestTools {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("Universe", () => { describe("Universe", () => {
it("generates star systems", () => { it("generates star systems", () => {
var universe = new Universe(); var universe = new Universe();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Main game universe // Main game universe
export class Universe { export class Universe {
// List of star systems // List of star systems

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("BaseAction", function () { describe("BaseAction", function () {
it("check if equipment can be used with remaining AP", function () { it("check if equipment can be used with remaining AP", function () {
var equipment = new Equipment(SlotType.Armor); var equipment = new Equipment(SlotType.Armor);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Base class for action definitions // Base class for action definitions
export class BaseAction { export class BaseAction {
// Identifier code for the type of action // Identifier code for the type of action

View file

@ -1,6 +1,6 @@
/// <reference path="../effects/BaseEffect.ts" /> /// <reference path="../effects/BaseEffect.ts" />
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("DeployDroneAction", function () { describe("DeployDroneAction", function () {
it("stores useful information", function () { it("stores useful information", function () {
let equipment = new Equipment(SlotType.Weapon, "testdrone"); let equipment = new Equipment(SlotType.Weapon, "testdrone");

View file

@ -1,6 +1,6 @@
/// <reference path="BaseAction.ts"/> /// <reference path="BaseAction.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Action to deploy a drone in space * Action to deploy a drone in space
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("EndTurnAction", () => { describe("EndTurnAction", () => {
it("can't be applied to non-playing ship", () => { it("can't be applied to non-playing ship", () => {
var battle = Battle.newQuickRandom(); var battle = Battle.newQuickRandom();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Action to end the ship's turn // Action to end the ship's turn
export class EndTurnAction extends BaseAction { export class EndTurnAction extends BaseAction {
constructor() { constructor() {

View file

@ -1,6 +1,6 @@
/// <reference path="BaseAction.ts"/> /// <reference path="BaseAction.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Action to fire a weapon on another ship, or in space // Action to fire a weapon on another ship, or in space
export class FireWeaponAction extends BaseAction { export class FireWeaponAction extends BaseAction {
// Boolean set to true if the weapon can target space // Boolean set to true if the weapon can target space

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("MoveAction", function () { describe("MoveAction", function () {
it("checks movement against remaining AP", function () { it("checks movement against remaining AP", function () {
var ship = new Ship(); var ship = new Ship();

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Action to move to a given location // Action to move to a given location
export class MoveAction extends BaseAction { export class MoveAction extends BaseAction {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.AI { module TS.SpaceTac.AI {
// Base class for all Artificial Intelligence interaction // Base class for all Artificial Intelligence interaction
export class AbstractAI { export class AbstractAI {
// The fleet controlled by this AI // The fleet controlled by this AI

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.AI.Specs { module TS.SpaceTac.AI.Specs {
describe("BullyAI", function () { describe("BullyAI", function () {
it("lists enemies", function () { it("lists enemies", function () {
var battle = new Battle(); var battle = new Battle();

View file

@ -1,5 +1,5 @@
/// <reference path="AbstractAI.ts"/> /// <reference path="AbstractAI.ts"/>
module TS.SpaceTac.Game.AI { module TS.SpaceTac.AI {
// Combination of a move action and a fire action // Combination of a move action and a fire action
export class BullyManeuver { export class BullyManeuver {
// Move action to position the ship before firing // Move action to position the ship before firing

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.AI { module TS.SpaceTac.AI {
// Ship maneuver for an artifical intelligence // Ship maneuver for an artifical intelligence
// A maneuver is like a human player action, choosing an equipment and using it // A maneuver is like a human player action, choosing an equipment and using it
export class Maneuver { export class Maneuver {

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.AI { module TS.SpaceTac.AI {
// A chain of Maneuver to execute sequentially // A chain of Maneuver to execute sequentially
export class ManeuverSequence { export class ManeuverSequence {
// Concerned ship // Concerned ship

View file

@ -1,6 +1,6 @@
/// <reference path="BaseEffect.ts"/> /// <reference path="BaseEffect.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Effect to modify an attribute. * Effect to modify an attribute.
* *

View file

@ -1,6 +1,6 @@
/// <reference path="BaseEffect.ts"/> /// <reference path="BaseEffect.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Enforce a limitation on ship attribute final value * Enforce a limitation on ship attribute final value
* *

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Base class for effects of actions // Base class for effects of actions
// Effects are typically one shot, but sticky effects can be used to apply effects over a period // Effects are typically one shot, but sticky effects can be used to apply effects over a period
export class BaseEffect { export class BaseEffect {

View file

@ -1,6 +1,6 @@
/// <reference path="BaseEffect.ts"/> /// <reference path="BaseEffect.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Apply damage on a ship. * Apply damage on a ship.
* *

View file

@ -1,6 +1,6 @@
/// <reference path="BaseEffect.ts"/> /// <reference path="BaseEffect.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Wrapper around another effect, to make it stick to a ship. * Wrapper around another effect, to make it stick to a ship.
* *

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
describe("ValueEffect", function () { describe("ValueEffect", function () {
it("adds an amount to a ship value", function () { it("adds an amount to a ship value", function () {
let effect = new ValueEffect("shield", 20); let effect = new ValueEffect("shield", 20);

View file

@ -1,6 +1,6 @@
/// <reference path="BaseEffect.ts"/> /// <reference path="BaseEffect.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
/** /**
* Effect to add (or subtract if negative) an amount to a ship value. * Effect to add (or subtract if negative) an amount to a ship value.
* *

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
describe("AbstractDrone", function () { describe("AbstractDrone", function () {
it("can be configured", function () { it("can be configured", function () {
let template = new AbstractDrone("test"); let template = new AbstractDrone("test");

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
/** /**
* Base class for all weapon equipment that deploys a drone. * Base class for all weapon equipment that deploys a drone.
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("AbstractWeapon", function () { describe("AbstractWeapon", function () {
it("has fire action, and damage effects on target", function () { it("has fire action, and damage effects on target", function () {
var weapon = new Equipments.AbstractWeapon("Super Fire Weapon", 50, 60); var weapon = new Equipments.AbstractWeapon("Super Fire Weapon", 50, 60);

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
// Base convenience class for weapons // Base convenience class for weapons
export class AbstractWeapon extends LootTemplate { export class AbstractWeapon extends LootTemplate {
// Boolean set to true if the weapon can target space // Boolean set to true if the weapon can target space

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class BasicForceField extends LootTemplate { export class BasicForceField extends LootTemplate {
constructor() { constructor() {
super(SlotType.Shield, "Basic Force Field"); super(SlotType.Shield, "Basic Force Field");

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class BasicPowerCore extends LootTemplate { export class BasicPowerCore extends LootTemplate {
constructor() { constructor() {
super(SlotType.Power, "Basic Power Core"); super(SlotType.Power, "Basic Power Core");

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
// Equipment: Conventional Engine // Equipment: Conventional Engine
export class ConventionalEngine extends LootTemplate { export class ConventionalEngine extends LootTemplate {
constructor() { constructor() {

View file

@ -1,6 +1,6 @@
/// <reference path="AbstractWeapon.ts"/> /// <reference path="AbstractWeapon.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class GatlingGun extends AbstractWeapon { export class GatlingGun extends AbstractWeapon {
constructor() { constructor() {
super("Gatling Gun", 50, 100); super("Gatling Gun", 50, 100);

View file

@ -1,6 +1,6 @@
/// <reference path="../LootTemplate.ts"/> /// <reference path="../LootTemplate.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class IronHull extends LootTemplate { export class IronHull extends LootTemplate {
constructor() { constructor() {
super(SlotType.Armor, "IronHull"); super(SlotType.Armor, "IronHull");

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("PowerDepleter", () => { describe("PowerDepleter", () => {
it("limits target's AP", () => { it("limits target's AP", () => {
var template = new Equipments.PowerDepleter(); var template = new Equipments.PowerDepleter();

View file

@ -1,6 +1,6 @@
/// <reference path="AbstractWeapon.ts"/> /// <reference path="AbstractWeapon.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class PowerDepleter extends AbstractWeapon { export class PowerDepleter extends AbstractWeapon {
constructor() { constructor() {
super("Power Depleter"); super("Power Depleter");

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
describe("RepairDrone", function () { describe("RepairDrone", function () {
it("generates a drone that may repair ships hull", function () { it("generates a drone that may repair ships hull", function () {
let template = new RepairDrone(); let template = new RepairDrone();

View file

@ -1,6 +1,6 @@
/// <reference path="AbstractDrone.ts"/> /// <reference path="AbstractDrone.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
/** /**
* Drone that repairs damage done to the hull. * Drone that repairs damage done to the hull.
*/ */

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game.Specs { module TS.SpaceTac.Specs {
describe("SubMunitionMissile", () => { describe("SubMunitionMissile", () => {
it("hits several targets in circle", () => { it("hits several targets in circle", () => {
var battle = TestTools.createBattle(1, 2); var battle = TestTools.createBattle(1, 2);

View file

@ -1,6 +1,6 @@
/// <reference path="AbstractWeapon.ts"/> /// <reference path="AbstractWeapon.ts"/>
module TS.SpaceTac.Game.Equipments { module TS.SpaceTac.Equipments {
export class SubMunitionMissile extends AbstractWeapon { export class SubMunitionMissile extends AbstractWeapon {
constructor() { constructor() {
super("SubMunition Missile", 30, 50); super("SubMunition Missile", 30, 50);

View file

@ -1,4 +1,4 @@
module TS.SpaceTac.Game { module TS.SpaceTac {
// Base class for a BattleLog event // Base class for a BattleLog event
export class BaseLogEvent { export class BaseLogEvent {
// Code of the event (its type) // Code of the event (its type)

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a ship takes damage // Event logged when a ship takes damage
export class DamageEvent extends BaseLogEvent { export class DamageEvent extends BaseLogEvent {
// Damage to hull // Damage to hull

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a ship is dead // Event logged when a ship is dead
export class DeathEvent extends BaseLogEvent { export class DeathEvent extends BaseLogEvent {
constructor(ship: Ship) { constructor(ship: Ship) {

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a drone is deployed by a ship // Event logged when a drone is deployed by a ship
export class DroneDeployedEvent extends BaseLogEvent { export class DroneDeployedEvent extends BaseLogEvent {
// Pointer to the drone // Pointer to the drone

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a drone is destroyed // Event logged when a drone is destroyed
export class DroneDestroyedEvent extends BaseLogEvent { export class DroneDestroyedEvent extends BaseLogEvent {
// Pointer to the drone // Pointer to the drone

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a sticky effect is added to a ship // Event logged when a sticky effect is added to a ship
export class EffectAddedEvent extends BaseLogEvent { export class EffectAddedEvent extends BaseLogEvent {
// Pointer to the effect // Pointer to the effect

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a sticky effect is added to a ship // Event logged when a sticky effect is added to a ship
export class EffectDurationChangedEvent extends BaseLogEvent { export class EffectDurationChangedEvent extends BaseLogEvent {
// Pointer to the effect // Pointer to the effect

View file

@ -1,6 +1,6 @@
/// <reference path="BaseLogEvent.ts"/> /// <reference path="BaseLogEvent.ts"/>
module TS.SpaceTac.Game { module TS.SpaceTac {
// Event logged when a sticky effect is removed from a ship // Event logged when a sticky effect is removed from a ship
export class EffectRemovedEvent extends BaseLogEvent { export class EffectRemovedEvent extends BaseLogEvent {
// Pointer to the effect // Pointer to the effect

Some files were not shown because too many files have changed in this diff Show more