Refactored namespaces
This commit is contained in:
parent
eb75658a10
commit
bee43583ca
3
TODO
3
TODO
|
@ -1,6 +1,9 @@
|
|||
* Restore serialization
|
||||
* Drones: add tooltip
|
||||
* 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
|
||||
* Allow to cancel last moves
|
||||
* Add more visual effects to weapons, hits and explosions
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<script>
|
||||
window.oncontextmenu = function (e) { e.preventDefault(); };
|
||||
window.onload = function () {
|
||||
new TS.SpaceTac.GameUI();
|
||||
new TS.SpaceTac.MainUI();
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -6,30 +6,30 @@ if (typeof window != "undefined") {
|
|||
|
||||
module TS.SpaceTac {
|
||||
// Router between game views
|
||||
export class GameUI extends Phaser.Game {
|
||||
export class MainUI extends Phaser.Game {
|
||||
// Current game session
|
||||
session: Game.GameSession;
|
||||
session: GameSession;
|
||||
|
||||
// Current focused star system
|
||||
star: Game.Star;
|
||||
star: Star;
|
||||
|
||||
// Audio manager
|
||||
audio: View.Audio;
|
||||
audio: UI.Audio;
|
||||
|
||||
constructor(headless: boolean = false) {
|
||||
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.state.add('boot', View.Boot);
|
||||
this.state.add('preload', View.Preload);
|
||||
this.state.add('mainmenu', View.MainMenu);
|
||||
this.state.add('router', View.Router);
|
||||
this.state.add('battle', View.BattleView);
|
||||
this.state.add('universe', View.UniverseMapView);
|
||||
this.state.add('boot', UI.Boot);
|
||||
this.state.add('preload', UI.Preload);
|
||||
this.state.add('mainmenu', UI.MainMenu);
|
||||
this.state.add('router', UI.Router);
|
||||
this.state.add('battle', UI.BattleView);
|
||||
this.state.add('universe', UI.UniverseMapView);
|
||||
|
||||
this.state.start('boot');
|
||||
}
|
||||
|
@ -38,10 +38,10 @@ module TS.SpaceTac {
|
|||
saveGame(): boolean {
|
||||
if (typeof (Storage) !== "undefined") {
|
||||
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;
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ module TS.SpaceTac {
|
|||
if (typeof (Storage) !== "undefined") {
|
||||
var loaded = localStorage.getItem("spacetac-savegame");
|
||||
if (loaded) {
|
||||
this.session = Game.GameSession.loadFromString(loaded);
|
||||
this.session = GameSession.loadFromString(loaded);
|
||||
console.log("Game loaded");
|
||||
return true;
|
||||
} else {
|
||||
|
@ -65,7 +65,7 @@ module TS.SpaceTac {
|
|||
}
|
||||
|
||||
// Get the focuses star system
|
||||
getFocusedStar(): Game.Star {
|
||||
getFocusedStar(): Star {
|
||||
if (this.star && this.star.universe === this.session.universe) {
|
||||
return this.star;
|
||||
} else {
|
|
@ -1 +1 @@
|
|||
Subproject commit 6d16fc0a5b50aa53c68c09fda2d0d3c5ec22b02d
|
||||
Subproject commit 795267025bbe1f67c33645af12096dd57a8f1109
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("Battle", function () {
|
||||
it("defines play order by initiative throws", function () {
|
||||
var fleet1 = new Fleet(null);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A turn-based battle between fleets
|
||||
export class Battle {
|
||||
// Flag indicating if the battle is ended
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="events/BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Check a single game log event
|
||||
function checkEvent(got: BaseLogEvent, ship: Ship, code: string,
|
||||
target_ship: Ship = null, target_x: number = null, target_y: number = null): void {
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Log of a battle
|
||||
// This keeps track of all events in a battle
|
||||
// It also allows to register a callback to receive these events
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("BattleOutcome", () => {
|
||||
it("generates loot from dead ships, for the winner to take", () => {
|
||||
var fleet1 = new Fleet();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Result of an ended battle
|
||||
export class BattleOutcome {
|
||||
// Indicates if the battle is a draw (no winner)
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="effects/BaseEffect.ts" />
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Fake effect to capture apply requests
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Drones are static objects that apply effects in a circular zone around themselves.
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("EffectTemplate", () => {
|
||||
it("interpolates between weak and strong effects", () => {
|
||||
var base_effect = new AttributeEffect("hull_capacity", 6);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Modifier for a value of a BaseEffect subclass
|
||||
export class EffectTemplateModifier {
|
||||
// Value name
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Equipment", () => {
|
||||
it("checks capabilities requirements", function () {
|
||||
var equipment = new Equipment();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Piece of equipment to attach in slots
|
||||
export class Equipment {
|
||||
// Actual slot this equipment is attached to
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("Fleet", function () {
|
||||
it("get average level", function () {
|
||||
var fleet = new Fleet();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A fleet of ships
|
||||
export class Fleet {
|
||||
// Fleet owner
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Generator of balanced ships to form a fleet
|
||||
export class FleetGenerator {
|
||||
// Random generator to use
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
function applyGameSteps(session: GameSession): void {
|
||||
var battle = session.getBattle();
|
||||
battle.advanceToNextShip();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A game session, binding a universe and a player
|
||||
export class GameSession {
|
||||
// Game universe
|
||||
|
@ -14,13 +14,13 @@ module TS.SpaceTac.Game {
|
|||
|
||||
// Load a game state from a string
|
||||
static loadFromString(serialized: string): GameSession {
|
||||
var serializer = new Serializer();
|
||||
var serializer = new Serializer(TS.SpaceTac);
|
||||
return <GameSession>serializer.unserialize(serialized);
|
||||
}
|
||||
|
||||
// Serializes the game state to a string
|
||||
saveToString(): string {
|
||||
var serializer = new Serializer();
|
||||
var serializer = new Serializer(TS.SpaceTac);
|
||||
return serializer.serialize(this);
|
||||
}
|
||||
|
||||
|
@ -35,14 +35,14 @@ module TS.SpaceTac.Game {
|
|||
start_location.encounter_gen = true;
|
||||
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.setLocation(start_location);
|
||||
}
|
||||
|
||||
// Start a new "quick battle" game
|
||||
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.setBattle(battle);
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="LootTemplate.ts" />
|
||||
|
||||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
class TestTemplate extends LootTemplate {
|
||||
constructor() {
|
||||
super(SlotType.Shield, "Hexagrid Shield");
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Equipment generator from loot templates
|
||||
export class LootGenerator {
|
||||
// List of available templates
|
||||
|
@ -21,9 +21,9 @@ module TS.SpaceTac.Game {
|
|||
// Fill the list of templates
|
||||
populate(): void {
|
||||
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) {
|
||||
var template_class = TS.SpaceTac.Game.Equipments[template_name];
|
||||
var template_class = TS.SpaceTac.Equipments[template_name];
|
||||
var template: LootTemplate = new template_class();
|
||||
templates.push(template);
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("LootTemplate", () => {
|
||||
it("interpolates between weak and strong loot", () => {
|
||||
var template = new LootTemplate(SlotType.Weapon, "Bulletator");
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Template used to generate a loot equipment
|
||||
export class LootTemplate {
|
||||
// Type of slot this equipment will fit in
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("MoveFireSimulator", function () {
|
||||
|
||||
function simpleWeaponCase(distance = 10, ship_ap = 5, weapon_ap = 3, engine_distance = 5): [Ship, MoveFireSimulator, BaseAction] {
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
|
||||
/**
|
||||
* A single action in the sequence result from the simulator
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("NameGenerator", () => {
|
||||
it("generates unique names", () => {
|
||||
var random = new RandomGenerator(0.48, 0.9, 0.1);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A unique name generator
|
||||
export class NameGenerator {
|
||||
// List of available choices
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("Player", function () {
|
||||
it("keeps track of visited locations", function () {
|
||||
let player = new Player();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// One player (human or IA)
|
||||
export class Player {
|
||||
// Universe in which we are playing
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Random generator, used in all throws
|
||||
export class RandomGenerator {
|
||||
// Array of next values, empty for a correct generator
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
function checkProportional(range: Range, value1: number, value2: number) {
|
||||
expect(range.getProportional(value1)).toEqual(value2);
|
||||
expect(range.getReverseProportional(value2)).toEqual(value1);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Range of number values
|
||||
export class Range {
|
||||
// Minimal value
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Ship", function () {
|
||||
it("moves and computes facing angle", function () {
|
||||
var ship = new Ship(null, "Test");
|
|
@ -1,7 +1,7 @@
|
|||
/// <reference path="ShipAttribute.ts"/>
|
||||
/// <reference path="ShipValue.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
|
||||
/**
|
||||
* Set of ShipAttribute for a ship
|
|
@ -1,6 +1,6 @@
|
|||
/// <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.
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("ShipGenerator", function () {
|
||||
it("can use ship model", function () {
|
||||
var gen = new ShipGenerator();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Generator of random ship
|
||||
export class ShipGenerator {
|
||||
// Random number generator used
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A model of ship
|
||||
// It defines the ship looks, and available slots for equipment
|
||||
export class ShipModel {
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("ShipValue", function () {
|
||||
it("is initially not limited", function () {
|
||||
var attr = new ShipValue("test");
|
|
@ -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.
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Slot", () => {
|
||||
it("checks equipment type", () => {
|
||||
var ship = new Ship();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Types of slots
|
||||
export enum SlotType {
|
||||
Armor,
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Star", () => {
|
||||
it("lists links to other stars", () => {
|
||||
var universe = new Universe();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// A star system
|
||||
export class Star {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("StarLink", () => {
|
||||
it("checks link intersection", () => {
|
||||
var star1 = new Star(null, 0, 0);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// An hyperspace link between two star systems
|
||||
export class StarLink {
|
||||
// Stars
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("StarLocation", () => {
|
||||
it("removes generated encounters that lose", function () {
|
||||
var location = new StarLocation(null, StarLocationType.PLANET, 0, 0);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
export enum StarLocationType {
|
||||
STAR,
|
||||
WARP,
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Target", () => {
|
||||
it("initializes from ship or location", () => {
|
||||
var target: Target;
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Find the nearest intersection between a line and a circle
|
||||
// Circle is supposed to be centered at (0,0)
|
||||
// Nearest intersection to (x1,y1) is returned
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// unit testing utilities
|
||||
export class TestTools {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("Universe", () => {
|
||||
it("generates star systems", () => {
|
||||
var universe = new Universe();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Main game universe
|
||||
export class Universe {
|
||||
// List of star systems
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("BaseAction", function () {
|
||||
it("check if equipment can be used with remaining AP", function () {
|
||||
var equipment = new Equipment(SlotType.Armor);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Base class for action definitions
|
||||
export class BaseAction {
|
||||
// Identifier code for the type of action
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../effects/BaseEffect.ts" />
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("DeployDroneAction", function () {
|
||||
it("stores useful information", function () {
|
||||
let equipment = new Equipment(SlotType.Weapon, "testdrone");
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseAction.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Action to deploy a drone in space
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("EndTurnAction", () => {
|
||||
it("can't be applied to non-playing ship", () => {
|
||||
var battle = Battle.newQuickRandom();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Action to end the ship's turn
|
||||
export class EndTurnAction extends BaseAction {
|
||||
constructor() {
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseAction.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Action to fire a weapon on another ship, or in space
|
||||
export class FireWeaponAction extends BaseAction {
|
||||
// Boolean set to true if the weapon can target space
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("MoveAction", function () {
|
||||
it("checks movement against remaining AP", function () {
|
||||
var ship = new Ship();
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Action to move to a given location
|
||||
export class MoveAction extends BaseAction {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.AI {
|
||||
module TS.SpaceTac.AI {
|
||||
// Base class for all Artificial Intelligence interaction
|
||||
export class AbstractAI {
|
||||
// The fleet controlled by this AI
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.AI.Specs {
|
||||
module TS.SpaceTac.AI.Specs {
|
||||
describe("BullyAI", function () {
|
||||
it("lists enemies", function () {
|
||||
var battle = new Battle();
|
|
@ -1,5 +1,5 @@
|
|||
/// <reference path="AbstractAI.ts"/>
|
||||
module TS.SpaceTac.Game.AI {
|
||||
module TS.SpaceTac.AI {
|
||||
// Combination of a move action and a fire action
|
||||
export class BullyManeuver {
|
||||
// Move action to position the ship before firing
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.AI {
|
||||
module TS.SpaceTac.AI {
|
||||
// Ship maneuver for an artifical intelligence
|
||||
// A maneuver is like a human player action, choosing an equipment and using it
|
||||
export class Maneuver {
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.AI {
|
||||
module TS.SpaceTac.AI {
|
||||
// A chain of Maneuver to execute sequentially
|
||||
export class ManeuverSequence {
|
||||
// Concerned ship
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseEffect.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Effect to modify an attribute.
|
||||
*
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseEffect.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Enforce a limitation on ship attribute final value
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Base class for effects of actions
|
||||
// Effects are typically one shot, but sticky effects can be used to apply effects over a period
|
||||
export class BaseEffect {
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseEffect.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Apply damage on a ship.
|
||||
*
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseEffect.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Wrapper around another effect, to make it stick to a ship.
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
describe("ValueEffect", function () {
|
||||
it("adds an amount to a ship value", function () {
|
||||
let effect = new ValueEffect("shield", 20);
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseEffect.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
/**
|
||||
* Effect to add (or subtract if negative) an amount to a ship value.
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
describe("AbstractDrone", function () {
|
||||
it("can be configured", function () {
|
||||
let template = new AbstractDrone("test");
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
/**
|
||||
* Base class for all weapon equipment that deploys a drone.
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("AbstractWeapon", function () {
|
||||
it("has fire action, and damage effects on target", function () {
|
||||
var weapon = new Equipments.AbstractWeapon("Super Fire Weapon", 50, 60);
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
// Base convenience class for weapons
|
||||
export class AbstractWeapon extends LootTemplate {
|
||||
// Boolean set to true if the weapon can target space
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class BasicForceField extends LootTemplate {
|
||||
constructor() {
|
||||
super(SlotType.Shield, "Basic Force Field");
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class BasicPowerCore extends LootTemplate {
|
||||
constructor() {
|
||||
super(SlotType.Power, "Basic Power Core");
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
// Equipment: Conventional Engine
|
||||
export class ConventionalEngine extends LootTemplate {
|
||||
constructor() {
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="AbstractWeapon.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class GatlingGun extends AbstractWeapon {
|
||||
constructor() {
|
||||
super("Gatling Gun", 50, 100);
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="../LootTemplate.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class IronHull extends LootTemplate {
|
||||
constructor() {
|
||||
super(SlotType.Armor, "IronHull");
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("PowerDepleter", () => {
|
||||
it("limits target's AP", () => {
|
||||
var template = new Equipments.PowerDepleter();
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="AbstractWeapon.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class PowerDepleter extends AbstractWeapon {
|
||||
constructor() {
|
||||
super("Power Depleter");
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
describe("RepairDrone", function () {
|
||||
it("generates a drone that may repair ships hull", function () {
|
||||
let template = new RepairDrone();
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="AbstractDrone.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
/**
|
||||
* Drone that repairs damage done to the hull.
|
||||
*/
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game.Specs {
|
||||
module TS.SpaceTac.Specs {
|
||||
describe("SubMunitionMissile", () => {
|
||||
it("hits several targets in circle", () => {
|
||||
var battle = TestTools.createBattle(1, 2);
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="AbstractWeapon.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game.Equipments {
|
||||
module TS.SpaceTac.Equipments {
|
||||
export class SubMunitionMissile extends AbstractWeapon {
|
||||
constructor() {
|
||||
super("SubMunition Missile", 30, 50);
|
|
@ -1,4 +1,4 @@
|
|||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Base class for a BattleLog event
|
||||
export class BaseLogEvent {
|
||||
// Code of the event (its type)
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a ship takes damage
|
||||
export class DamageEvent extends BaseLogEvent {
|
||||
// Damage to hull
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a ship is dead
|
||||
export class DeathEvent extends BaseLogEvent {
|
||||
constructor(ship: Ship) {
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a drone is deployed by a ship
|
||||
export class DroneDeployedEvent extends BaseLogEvent {
|
||||
// Pointer to the drone
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a drone is destroyed
|
||||
export class DroneDestroyedEvent extends BaseLogEvent {
|
||||
// Pointer to the drone
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a sticky effect is added to a ship
|
||||
export class EffectAddedEvent extends BaseLogEvent {
|
||||
// Pointer to the effect
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a sticky effect is added to a ship
|
||||
export class EffectDurationChangedEvent extends BaseLogEvent {
|
||||
// Pointer to the effect
|
|
@ -1,6 +1,6 @@
|
|||
/// <reference path="BaseLogEvent.ts"/>
|
||||
|
||||
module TS.SpaceTac.Game {
|
||||
module TS.SpaceTac {
|
||||
// Event logged when a sticky effect is removed from a ship
|
||||
export class EffectRemovedEvent extends BaseLogEvent {
|
||||
// Pointer to the effect
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue