1
0
Fork 0

Always use strict mode

This commit is contained in:
Michaël Lemaire 2017-01-03 23:26:56 +01:00
parent c84bac7d59
commit 4aa30265dd
127 changed files with 7 additions and 258 deletions

View file

@ -1,8 +1,6 @@
/// <reference path="../typings/index.d.ts"/>
module SpaceTac {
"use strict";
// Router between game views
export class GameUI extends Phaser.Game {
// Current game session

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Code to identify
export enum AttributeCode {
// Initiative level

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Collection of several attributes
export class AttributeCollection extends Serializable {
// Attributes

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// A turn-based battle between fleets
export class Battle extends Serializable {
// Flag indicating if the battle is ended

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Log of a battle
// This keeps track of all events in a battle
// It also allows to register a callback to receive these events

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Result of an ended battle
export class BattleOutcome extends Serializable {
// Indicates if the battle is a draw (no winner)

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Piece of equipment to attach in slots
export class Equipment extends Serializable {
// Actual slot this equipment is attached to

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// A fleet of ships
export class Fleet extends Serializable {
// Fleet owner

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// A game session, binding a universe and a player
export class GameSession extends Serializable {
// Game universe

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// Equipment generator from loot templates
export class LootGenerator {
// List of available templates

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Template used to generate a loot equipment
export class LootTemplate extends Serializable {
// Type of slot this equipment will fit in
@ -152,7 +150,7 @@ module SpaceTac.Game {
// Convenience function to add a sticking effect on target
addTemporaryEffectOnTarget(effect: TemporaryEffect, min_value: number, max_value: number = null,
min_duration: number = 1, max_duration: number = null): void {
min_duration: number = 1, max_duration: number = null): void {
var template = new EffectTemplate(effect);
template.addModifier("value", new Range(min_value, max_value));
template.addModifier("duration", new IntegerRange(min_duration, max_duration));

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// A unique name generator
export class NameGenerator {
// List of available choices

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// One player (human or IA)
export class Player extends Serializable {
// Universe in which we are playing

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Random generator, used in all throws
export class RandomGenerator extends Serializable {
// Array of next values, empty for a correct generator

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Range of number values
export class Range extends Serializable {
// Minimal value

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// Base class for serializable objects
export class Serializable {
static _next_sid: number = 0;

View file

@ -1,13 +1,11 @@
module SpaceTac.Game {
"use strict";
// Serializer to cascade through Serializable objects
export class Serializer {
// Mapping of IDs to objects
refs: {[index: string]: any};
refs: { [index: string]: any };
// Serializable classes
classes: {[index: string]: typeof Serializable};
classes: { [index: string]: typeof Serializable };
constructor() {
this.refs = {};
@ -15,9 +13,9 @@ module SpaceTac.Game {
}
// List all classes that implement "Serializable", with their full path in SpaceTac.Game namespace
collectSerializableClasses(container: any = null, path: string = ""): {[index: string]: typeof Serializable} {
collectSerializableClasses(container: any = null, path: string = ""): { [index: string]: typeof Serializable } {
if (container) {
var result: {[index: string]: typeof Serializable} = {};
var result: { [index: string]: typeof Serializable } = {};
for (var obj_name in container) {
if (container.hasOwnProperty(obj_name)) {
var obj = container[obj_name];

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// A single ship in a Fleet
export class Ship extends Serializable {
// Fleet this ship is a member of

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// Generator of random ship
export class ShipGenerator {
// Random number generator used

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Types of slots
export enum SlotType {
Armor,

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// A star system
export class Star extends Serializable {

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// An hyperspace link between two star systems
export class StarLink extends Serializable {
// Stars

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
export enum StarLocationType {
STAR,
WARP,

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// 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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// unit testing utilities
export class TestTools {

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// Generic tools functions
export class Tools {

View file

@ -1,8 +1,6 @@
/// <reference path="Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Main game universe
export class Universe extends Serializable {
// List of star systems

View file

@ -1,8 +1,6 @@
/// <reference path="../Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Base class for action definitions
export class BaseAction extends Serializable {
// Identifier code for the type of action

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="BaseAction.ts"/>
module SpaceTac.Game {
"use strict";
// 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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
// Action to move to a given location
export class MoveAction extends BaseAction {

View file

@ -1,8 +1,6 @@
/// <reference path="../Serializable.ts"/>
module SpaceTac.Game.AI {
"use strict";
// Base class for all Artificial Intelligence interaction
export class AbstractAI extends Serializable {
// The fleet controlled by this AI

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="TemporaryEffect.ts"/>
module SpaceTac.Game {
"use strict";
// Hard limitation on attribute value
// For example, this could be used to slow a target by limiting its action points
export class AttributeLimitEffect extends TemporaryEffect {
@ -29,5 +27,5 @@ module SpaceTac.Game {
getFullCode(): string {
return this.code + "-" + AttributeCode[this.attrcode].toLowerCase().replace("_", "");
}
}
}
}

View file

@ -1,8 +1,6 @@
/// <reference path="BaseEffect.ts"/>
module SpaceTac.Game {
"use strict";
// Effect on attribute maximum
// Typically, these effects are summed up to define an attribute maximum
export class AttributeMaxEffect extends BaseEffect {

View file

@ -1,8 +1,6 @@
/// <reference path="BaseEffect.ts"/>
module SpaceTac.Game {
"use strict";
// Effect on attribute value
// Typically, these effects are summed up to define an attribute value
export class AttributeValueEffect extends BaseEffect {

View file

@ -1,8 +1,6 @@
/// <reference path="../Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Base class for effects of actions
// Effects can be permanent or temporary (for a number of turns)
export class BaseEffect extends Serializable {

View file

@ -1,8 +1,6 @@
/// <reference path="BaseEffect.ts"/>
module SpaceTac.Game {
"use strict";
// Apply damage to a ship
export class DamageEffect extends BaseEffect {
// Base damage points

View file

@ -1,8 +1,6 @@
/// <reference path="BaseEffect.ts"/>
module SpaceTac.Game {
"use strict";
// Base class for actions that will stick to a target for a number of rounds
export class TemporaryEffect extends BaseEffect {
// Duration, in number of turns

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="AbstractWeapon.ts"/>
module SpaceTac.Game.Equipments {
"use strict";
export class EnergyDepleter extends AbstractWeapon {
constructor() {
super("Energy Depleter");

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="../EnergyDepleter.ts"/>
module SpaceTac.Game.Specs {
"use strict";
describe("EnergyDepleter", () => {
it("limits target's AP", () => {
var template = new Equipments.EnergyDepleter();

View file

@ -1,8 +1,6 @@
/// <reference path="../SubMunitionMissile.ts"/>
module SpaceTac.Game.Specs {
"use strict";
describe("SubMunitionMissile", () => {
it("hits several targets in circle", () => {
var battle = TestTools.createBattle(1, 2);

View file

@ -1,8 +1,6 @@
/// <reference path="BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// Event logged when a ship moves
export class AttributeChangeEvent extends BaseLogEvent {
// Saved version of the attribute

View file

@ -1,8 +1,6 @@
/// <reference path="../Serializable.ts"/>
module SpaceTac.Game {
"use strict";
// Base class for a BattleLog event
export class BaseLogEvent extends Serializable {
// Code of the event (its type)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// Event logged when the battle ended
// This is always the last event of a battle log
export class EndBattleEvent extends BaseLogEvent {

View file

@ -1,8 +1,6 @@
/// <reference path="BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// Event logged when a weapon is used on a target
export class FireEvent extends BaseLogEvent {
// Weapon used

View file

@ -1,8 +1,6 @@
/// <reference path="BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// Event logged when a ship moves
export class MoveEvent extends BaseLogEvent {
// New facing angle, in radians

View file

@ -1,8 +1,6 @@
/// <reference path="BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// Battle event, when a ship turn ended, and advanced to a new one
export class ShipChangeEvent extends BaseLogEvent {
constructor(ship: Ship, new_ship: Ship) {

View file

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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
describe("Attribute", function () {
it("is initially not limited", function () {
var attr = new Attribute();

View file

@ -1,6 +1,4 @@
module SpaceTac.Game {
"use strict";
describe("AttributeCollection", function () {
it("sets and gets an attribute value", function () {
var coll = new AttributeCollection();

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="../events/BaseLogEvent.ts"/>
module SpaceTac.Game {
"use strict";
// 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 {

View file

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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game.Specs {
"use strict";
describe("EffectTemplate", () => {
it("interpolates between weak and strong effects", () => {
var base_effect = new AttributeMaxEffect(AttributeCode.Hull, 6);

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game.Specs {
"use strict";
class TestTemplate extends LootTemplate {
constructor() {
super(SlotType.Shield, "Hexagrid Shield");

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
/// <reference path="../Serializable.ts"/>
module SpaceTac.Game.Specs {
"use strict";
export class SerializableTestObj3 extends Serializable {
a: boolean;
b: SerializableTestObj1;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,4 @@
module SpaceTac.Game.Specs {
"use strict";
class TestObj {
a: string;
b: any;

View file

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

View file

@ -1,6 +1,4 @@
module SpaceTac.View {
"use strict";
// Base class for all game views
export class BaseView extends Phaser.State {
// Link to the root UI

View file

@ -1,6 +1,4 @@
module SpaceTac.View {
"use strict";
export class Boot extends Phaser.State {
preload() {
this.game.stage.backgroundColor = 0x202020;

View file

@ -1,8 +1,6 @@
/// <reference path="BaseView.ts"/>
module SpaceTac.View {
"use strict";
export class MainMenu extends BaseView {
button_new_game: Phaser.Button;
button_quick_battle: Phaser.Button;

View file

@ -1,8 +1,6 @@
/// <reference path="BaseView.ts"/>
module SpaceTac.View {
"use strict";
export class Preload extends BaseView {
private preloadBar: Phaser.Sprite;

View file

@ -1,6 +1,4 @@
module SpaceTac.View {
"use strict";
// Router to other states
export class Router extends Phaser.State {
create() {

View file

@ -1,6 +1,4 @@
module SpaceTac.View {
"use strict";
// Bar with all available action icons displayed
export class ActionBar extends Phaser.Group {
// Link to the parent battleview

View file

@ -1,6 +1,4 @@
module SpaceTac.View {
"use strict";
// Icon to activate a ship capability (move, fire...)
export class ActionIcon extends Phaser.Button {
// Link to the parent bar

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