mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-09 14:45:35 +00:00
Encapsulate DB.js in angular constants to help testing
This commit is contained in:
@@ -13,7 +13,6 @@ angular.module('app', ['ui.router', 'shipyard', 'ngLodash', 'app.templates'])
|
|||||||
$rootScope.HPC = hpc;
|
$rootScope.HPC = hpc;
|
||||||
$rootScope.igMap = igMap;
|
$rootScope.igMap = igMap;
|
||||||
$rootScope.hgMap = hgMap;
|
$rootScope.hgMap = hgMap;
|
||||||
$rootScope.ships = DB.ships;
|
|
||||||
$rootScope.title = 'Coriolis';
|
$rootScope.title = 'Coriolis';
|
||||||
|
|
||||||
// Formatters
|
// Formatters
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Sets up the routes and handlers before the Angular app is kicked off.
|
* Sets up the routes and handlers before the Angular app is kicked off.
|
||||||
*/
|
*/
|
||||||
angular.module('app').config(['$provide','$stateProvider', '$urlRouterProvider', '$locationProvider', function ($provide, $stateProvider, $urlRouterProvider, $locationProvider) {
|
angular.module('app').config(['$provide','$stateProvider', '$urlRouterProvider', '$locationProvider', 'ShipsDB', function ($provide, $stateProvider, $urlRouterProvider, $locationProvider, ships) {
|
||||||
// Use HTML5 push and replace state if possible
|
// Use HTML5 push and replace state if possible
|
||||||
$locationProvider.html5Mode(true);
|
$locationProvider.html5Mode(true);
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +19,7 @@ angular.module('app').config(['$provide','$stateProvider', '$urlRouterProvider',
|
|||||||
controller: 'OutfitController',
|
controller: 'OutfitController',
|
||||||
resolve: {
|
resolve: {
|
||||||
shipId: ['$stateParams',function ($p) { // Ensure ship exists before loading controller
|
shipId: ['$stateParams',function ($p) { // Ensure ship exists before loading controller
|
||||||
if (!DB.ships[$p.shipId]) {
|
if (!ships[$p.shipId]) {
|
||||||
throw { type: 'no-ship', message: $p.shipId };
|
throw { type: 'no-ship', message: $p.shipId };
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$state', '$stateParams', 'Ship', 'Components', 'Serializer', 'Persist', function ($rootScope, $scope, $state, $p, Ship, Components, Serializer, Persist) {
|
angular.module('app').controller('OutfitController', ['$rootScope','$scope', '$state', '$stateParams', 'ShipsDB', 'Ship', 'Components', 'Serializer', 'Persist', function ($rootScope, $scope, $state, $p, Ships, Ship, Components, Serializer, Persist) {
|
||||||
var data = DB.ships[$p.shipId]; // Retrieve the basic ship properties, slots and defaults
|
var data = Ships[$p.shipId]; // Retrieve the basic ship properties, slots and defaults
|
||||||
var ship = new Ship($p.shipId, data.properties, data.slots); // Create a new Ship instance
|
var ship = new Ship($p.shipId, data.properties, data.slots); // Create a new Ship instance
|
||||||
|
|
||||||
// Update the ship instance with the code (if provided) or the 'factory' defaults.
|
// Update the ship instance with the code (if provided) or the 'factory' defaults.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
angular.module('app').controller('ShipyardController', ['$rootScope', function ($rootScope) {
|
angular.module('app').controller('ShipyardController', ['$rootScope', 'ShipsDB', function ($rootScope, ships) {
|
||||||
$rootScope.title = 'Coriolis';
|
$rootScope.title = 'Coriolis';
|
||||||
$rootScope.bodyClass = 'docking-bay';
|
$rootScope.bodyClass = 'docking-bay';
|
||||||
|
$rootScope.ships = ships;
|
||||||
}]);
|
}]);
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
angular.module('app').directive('shipyardHeader', ['lodash','$rootScope', 'Persist', function (_, $rootScope, Persist) {
|
angular.module('app').directive('shipyardHeader', ['lodash','$rootScope', 'Persist', 'ShipsDB', function (_, $rootScope, Persist, ships) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
@@ -6,7 +6,7 @@ angular.module('app').directive('shipyardHeader', ['lodash','$rootScope', 'Persi
|
|||||||
scope: true,
|
scope: true,
|
||||||
link: function (scope) {
|
link: function (scope) {
|
||||||
scope.openedMenu = null;
|
scope.openedMenu = null;
|
||||||
scope.ships = DB.ships;
|
scope.ships = ships;
|
||||||
scope.allBuilds = Persist.builds;
|
scope.allBuilds = Persist.builds;
|
||||||
scope.bs = Persist.state;
|
scope.bs = Persist.state;
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
|
|||||||
|
|
||||||
Ship.prototype.useBulkhead = function(index) {
|
Ship.prototype.useBulkhead = function(index) {
|
||||||
this.bulkheads.id = index;
|
this.bulkheads.id = index;
|
||||||
this.bulkheads.c = DB.components.bulkheads[this.id][index];
|
this.bulkheads.c = Components.bulkheads(this.id, index);
|
||||||
this.updateTotals(); // Update mass, range, shield strength, armor
|
this.updateTotals(); // Update mass, range, shield strength, armor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
* @requires ngLodash is a dependency of this module.
|
* @requires ngLodash is a dependency of this module.
|
||||||
*/
|
*/
|
||||||
angular.module('shipyard', ['ngLodash'])
|
angular.module('shipyard', ['ngLodash'])
|
||||||
|
// Create 'angularized' references to DB.This will aid testing
|
||||||
|
.constant('ShipsDB', DB.ships)
|
||||||
|
.constant('ComponentsDB', DB.components)
|
||||||
.value('commonArray', [
|
.value('commonArray', [
|
||||||
'Power Plant',
|
'Power Plant',
|
||||||
'Thrusters',
|
'Thrusters',
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
angular.module('shipyard').service('Components', ['lodash', 'ComponentSet', function (_, ComponentSet) {
|
angular.module('shipyard').service('Components', ['lodash', 'ComponentsDB', 'ShipsDB', 'ComponentSet', function (_, C, Ships, ComponentSet) {
|
||||||
var C = DB.components;
|
|
||||||
|
|
||||||
this.cargoScoop = function() {
|
this.cargoScoop = function() {
|
||||||
return { name: 'Cargo Scoop', class: 1, rating: 'H', power: 0.6};
|
return { name: 'Cargo Scoop', class: 1, rating: 'H', power: 0.6};
|
||||||
@@ -38,7 +37,7 @@ angular.module('shipyard').service('Components', ['lodash', 'ComponentSet', func
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.forShip = function (shipId) {
|
this.forShip = function (shipId) {
|
||||||
var ship = DB.ships[shipId];
|
var ship = Ships[shipId];
|
||||||
return new ComponentSet(C, ship.properties.mass, ship.slots.common, ship.slots.internal[0], ship.slots.hardpoints[0]);
|
return new ComponentSet(C, ship.properties.mass, ship.slots.common, ship.slots.internal[0], ship.slots.hardpoints[0]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user