mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-09 06:43:24 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9af87ae88e | ||
|
|
a2f91cf620 | ||
|
|
8e28408a8d | ||
|
|
eb70eb417a | ||
|
|
126e8ca59b | ||
|
|
c81d7bf302 | ||
|
|
78e85f2c6a | ||
|
|
973af84b73 | ||
|
|
3c8b1f7d6a | ||
|
|
62d9749660 | ||
|
|
7db185e635 | ||
|
|
e69bdac75c | ||
|
|
231f7e9267 | ||
|
|
2ef44e38b3 | ||
|
|
d051829f98 | ||
|
|
01e8e71b28 | ||
|
|
14681aa9fa | ||
|
|
b93572b18d | ||
|
|
41c4b4243a | ||
|
|
f5127c2475 | ||
|
|
db4303d3c8 | ||
|
|
8bc100714f | ||
|
|
fabd370f4a | ||
|
|
769c20154d | ||
|
|
2b5edd75cb |
@@ -556,7 +556,7 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
|
|
||||||
function updateAmmoCosts() {
|
function updateAmmoCosts() {
|
||||||
var costs = $scope.ammoList = [];
|
var costs = $scope.ammoList = [];
|
||||||
var total = 0, i, l, item, q, limpets = 0, scoop = false;
|
var total = 0, i, l, item, q, limpets = 0, srvs = 0, scoop = false;
|
||||||
|
|
||||||
for (var g in { standard: 1, internal: 1, hardpoints: 1 }) {
|
for (var g in { standard: 1, internal: 1, hardpoints: 1 }) {
|
||||||
var slotGroup = ship[g];
|
var slotGroup = ship[g];
|
||||||
@@ -577,6 +577,9 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
case 'fx': case 'hb': case 'cc': case 'pc':
|
case 'fx': case 'hb': case 'cc': case 'pc':
|
||||||
limpets = ship.cargoCapacity;
|
limpets = ship.cargoCapacity;
|
||||||
break;
|
break;
|
||||||
|
case 'pv':
|
||||||
|
srvs += slotGroup[i].c.bays;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
||||||
}
|
}
|
||||||
@@ -597,6 +600,17 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
}
|
}
|
||||||
|
|
||||||
//limpets if controllers exist and cargo space available
|
//limpets if controllers exist and cargo space available
|
||||||
|
if (srvs > 0) {
|
||||||
|
item = {
|
||||||
|
ammoName: 'SRVs',
|
||||||
|
ammoMax: srvs,
|
||||||
|
ammoUnitCost: 6005,
|
||||||
|
ammoTotalCost: srvs * 6005
|
||||||
|
};
|
||||||
|
costs.push(item);
|
||||||
|
total += item.ammoTotalCost;
|
||||||
|
}
|
||||||
|
//limpets if controllers exist and cargo space available
|
||||||
if (limpets > 0) {
|
if (limpets > 0) {
|
||||||
item = {
|
item = {
|
||||||
ammoName: 'limpets',
|
ammoName: 'limpets',
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ angular.module('app').config(['$translateProvider', function($translateProvider)
|
|||||||
proceed: 'proceed',
|
proceed: 'proceed',
|
||||||
pc: 'Prospector Limpet Controller',
|
pc: 'Prospector Limpet Controller',
|
||||||
pl: 'Pulse Laser',
|
pl: 'Pulse Laser',
|
||||||
|
pv: 'Planetary Vehicle Hangar',
|
||||||
PWR: 'PWR',
|
PWR: 'PWR',
|
||||||
rg: 'Rail Gun',
|
rg: 'Rail Gun',
|
||||||
range: 'range',
|
range: 'range',
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ angular.module('app').config(['$translateProvider', function($translateProvider)
|
|||||||
}])
|
}])
|
||||||
.value('Languages', {
|
.value('Languages', {
|
||||||
en: 'English',
|
en: 'English',
|
||||||
de: 'Deutsh',
|
de: 'Deutsch',
|
||||||
it: 'Italiano',
|
it: 'Italiano',
|
||||||
es: 'Español',
|
es: 'Español',
|
||||||
fr: 'Français',
|
fr: 'Français',
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ angular.module('app').service('Serializer', ['lodash', 'GroupMap', 'MountMap', '
|
|||||||
internal = ship.internal;
|
internal = ship.internal;
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
$schema: 'http://cdn.coriolis.io/schemas/ship-loadout/2.json#',
|
$schema: 'http://cdn.coriolis.io/schemas/ship-loadout/3.json#',
|
||||||
name: buildName,
|
name: buildName,
|
||||||
ship: ship.name,
|
ship: ship.name,
|
||||||
references: [{
|
references: [{
|
||||||
|
|||||||
@@ -547,8 +547,8 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
|
|||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
Ship.prototype.useUtility = function(group, rating, clobber) {
|
Ship.prototype.useUtility = function(group, rating, name, clobber) {
|
||||||
var component = Components.findHardpoint(group, 0, rating);
|
var component = Components.findHardpoint(group, 0, rating, name);
|
||||||
for (var i = this.hardpoints.length; i--; ) {
|
for (var i = this.hardpoints.length; i--; ) {
|
||||||
if ((clobber || !this.hardpoints[i].c) && !this.hardpoints[i].maxClass) {
|
if ((clobber || !this.hardpoints[i].c) && !this.hardpoints[i].maxClass) {
|
||||||
this.use(this.hardpoints[i], component.id, component);
|
this.use(this.hardpoints[i], component.id, component);
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ angular.module('shipyard', ['ngLodash'])
|
|||||||
fx: 'Fuel Transfer Limpet Controller',
|
fx: 'Fuel Transfer Limpet Controller',
|
||||||
pc: 'Prospector Limpet Controller',
|
pc: 'Prospector Limpet Controller',
|
||||||
cc: 'Collector Limpet Controller',
|
cc: 'Collector Limpet Controller',
|
||||||
|
pv: 'Planetary Vehicle Hangar',
|
||||||
|
|
||||||
// Hard Points
|
// Hard Points
|
||||||
bl: 'Beam Laser',
|
bl: 'Beam Laser',
|
||||||
@@ -165,6 +166,7 @@ angular.module('shipyard', ['ngLodash'])
|
|||||||
*/
|
*/
|
||||||
.constant('Discounts', {
|
.constant('Discounts', {
|
||||||
'0%': 1,
|
'0%': 1,
|
||||||
|
'2.5%': 0.975,
|
||||||
'5%': 0.95,
|
'5%': 0.95,
|
||||||
'10%': 0.90,
|
'10%': 0.90,
|
||||||
'15%': 0.85,
|
'15%': 0.85,
|
||||||
|
|||||||
308
app/schemas/ship-loadout/3.json
Normal file
308
app/schemas/ship-loadout/3.json
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"id": "http://cdn.coriolis.io/schemas/ship-loadout/3.json#",
|
||||||
|
"title": "Ship Loadout",
|
||||||
|
"type": "object",
|
||||||
|
"description": "The details for a specific ship build/loadout",
|
||||||
|
"required": ["name", "ship", "components"],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"description": "The name of the build/loadout",
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 2
|
||||||
|
},
|
||||||
|
"ship": {
|
||||||
|
"description": "The full display name of the ship",
|
||||||
|
"type": "string",
|
||||||
|
"minimum": 3
|
||||||
|
},
|
||||||
|
"manufacturer": {
|
||||||
|
"description": "The ship manufacturer",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"references" : {
|
||||||
|
"description": "3rd Party references and/or links to this build/loadout",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"required": ["name","url"],
|
||||||
|
"additionalProperties": true,
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"description": "The name of the 3rd party, .e.g 'Coriolis.io' or 'E:D Shipyard'",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"description": "The link/url to the 3rd party referencing this build/loadout",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"description": "The components used by this build",
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["standard", "internal", "hardpoints", "utility"],
|
||||||
|
"properties": {
|
||||||
|
"standard": {
|
||||||
|
"description": "The set of standard components across all ships",
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": ["bulkheads", "powerPlant", "thrusters", "frameShiftDrive", "lifeSupport", "powerDistributor", "sensors", "fuelTank", "cargoHatch"],
|
||||||
|
"properties": {
|
||||||
|
"bulkheads": {
|
||||||
|
"enum": ["Lightweight Alloy", "Reinforced Alloy", "Military Grade Composite", "Mirrored Surface Composite", "Reactive Surface Composite"]
|
||||||
|
},
|
||||||
|
"cargoHatch": {
|
||||||
|
"required": ["enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"powerPlant": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 2, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"thrusters": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 2, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameShiftDrive": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 2, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lifeSupport": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 6 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"powerDistributor": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sensors": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fuelTank": {
|
||||||
|
"required": ["class", "rating", "enabled", "priority"],
|
||||||
|
"properties": {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 6 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"internal": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": ["object", "null"],
|
||||||
|
"required": ["class", "rating", "enabled", "priority", "group"],
|
||||||
|
"properties" : {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 8 },
|
||||||
|
"rating": { "$ref": "#/definitions/standardRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 },
|
||||||
|
"group": {
|
||||||
|
"description": "The group of the component, e.g. 'Shield Generator', or 'Cargo Rack'",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "The name identifying the component (if applicable), e.g. 'Advance Discovery Scanner', or 'Detailed Surface Scanner'",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minItems": 3
|
||||||
|
},
|
||||||
|
"hardpoints": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": ["object", "null"],
|
||||||
|
"required": ["class", "rating", "enabled", "priority", "group", "mount"],
|
||||||
|
"properties" : {
|
||||||
|
"class": { "type": "integer", "minimum": 1, "maximum": 4 },
|
||||||
|
"rating": { "$ref": "#/definitions/allRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 },
|
||||||
|
"mount": { "type": "string", "enum": ["Fixed", "Gimballed", "Turret"] },
|
||||||
|
"group": {
|
||||||
|
"description": "The group of the component, e.g. 'Beam Laser', or 'Missile Rack'",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "The name identifing the component (if applicable), e.g. 'Retributor', or 'Mining Lance'",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minItems": 1
|
||||||
|
},
|
||||||
|
"utility": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": ["object", "null"],
|
||||||
|
"required": ["class", "rating", "enabled", "priority", "group"],
|
||||||
|
"properties" : {
|
||||||
|
"class": { "type": "integer", "minimum": 0, "maximum": 0 },
|
||||||
|
"rating": { "$ref": "#/definitions/allRatings" },
|
||||||
|
"enabled": { "type": "boolean" },
|
||||||
|
"priority": { "type": "integer", "minimum": 1, "maximum": 5 },
|
||||||
|
"group": {
|
||||||
|
"description": "The group of the component, e.g. 'Shield Booster', or 'Kill Warrant Scanner'",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "The name identifing the component (if applicable), e.g. 'Point Defence', or 'Electronic Countermeasure'",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minItems": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"description": "Optional statistics from the build",
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": true,
|
||||||
|
"properties": {
|
||||||
|
"agility": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"armour": {
|
||||||
|
"description": "Sum of base armour + any hull reinforcements",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"armourAdded":{
|
||||||
|
"description": "Armour added through Hull reinforcement",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"baseShieldStrength": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"baseArmour": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"boost": {
|
||||||
|
"description": "Maximum boost speed of the ships (4 pips, straight-line)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"cargoCapacity": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"class": {
|
||||||
|
"description": "Ship Class/Size [Small, Medium, Large]",
|
||||||
|
"enum": [1,2,3]
|
||||||
|
},
|
||||||
|
"dps": {
|
||||||
|
"description": "Cumulative DPS based on the in-game 1-10 statistic",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"hullCost": {
|
||||||
|
"description": "Cost of the ship's hull",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"hullMass": {
|
||||||
|
"description": "Mass of the Ship hull only",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"fuelCapacity": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"fullTankRange": {
|
||||||
|
"description": "Single Jump range with a full tank (unladenMass + fuel)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ladenMass": {
|
||||||
|
"description": "Mass of the Ship + fuel + cargo (hull + all components + fuel tank + cargo capacity)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"ladenRange": {
|
||||||
|
"description": "Single Jump range with full cargo load, see ladenMass",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"masslock": {
|
||||||
|
"description": "Mass Lock Factor of the Ship",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"shieldStrength": {
|
||||||
|
"description": "Shield strengh in Mega Joules (Mj)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"speed": {
|
||||||
|
"description": "Maximum speed of the ships (4 pips, straight-line)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"totalCost": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1
|
||||||
|
},
|
||||||
|
"unladenRange": {
|
||||||
|
"description": "Single Jump range when unladen, see unladenMass",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"unladenMass": {
|
||||||
|
"description": "Mass of the Ship (hull + all components)",
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definitions": {
|
||||||
|
"standardRatings": { "enum": ["A", "B", "C", "D", "E", "F", "G", "H"] },
|
||||||
|
"allRatings": { "enum": ["A", "B", "C", "D", "E", "F", "G", "H", "I" ] }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
<div class="l" ng-if="c.c.maxmass">{{'max mass' | translate}}: {{c.c.maxmass}} <u translate="T"></u></div>
|
<div class="l" ng-if="c.c.maxmass">{{'max mass' | translate}}: {{c.c.maxmass}} <u translate="T"></u></div>
|
||||||
<div class="l" ng-if="c.c.bins">{{c.c.bins}} <u translate="bins"></u></div>
|
<div class="l" ng-if="c.c.bins">{{c.c.bins}} <u translate="bins"></u></div>
|
||||||
<div class="l" ng-if="c.c.rate">{{'rate' | translate}}: {{c.c.rate}} <u>kg/s</u> {{'refuel time' | translate}}: {{$r.fTime(fuel * 1000 / c.c.rate)}}</div>
|
<div class="l" ng-if="c.c.rate">{{'rate' | translate}}: {{c.c.rate}} <u>kg/s</u> {{'refuel time' | translate}}: {{$r.fTime(fuel * 1000 / c.c.rate)}}</div>
|
||||||
|
<div class="l" ng-if="c.c.bays">{{'bays' | translate}}: {{c.c.bays}}</div>
|
||||||
<div class="l" ng-if="c.c.ammo">{{'ammo' | translate}}: {{$r.fCrd(c.c.ammo)}}</div>
|
<div class="l" ng-if="c.c.ammo">{{'ammo' | translate}}: {{$r.fCrd(c.c.ammo)}}</div>
|
||||||
<div class="l" ng-if="c.c.cells">{{'cells' | translate}}: {{c.c.cells}}</div>
|
<div class="l" ng-if="c.c.cells">{{'cells' | translate}}: {{c.c.cells}}</div>
|
||||||
<div class="l" ng-if="c.c.recharge">{{'recharge' | translate}}: {{c.c.recharge}} <u>MJ</u> {{'total' | translate}}: {{c.c.cells * c.c.recharge}} <u>MJ</u></div>
|
<div class="l" ng-if="c.c.recharge">{{'recharge' | translate}}: {{c.c.recharge}} <u>MJ</u> {{'total' | translate}}: {{c.c.cells * c.c.recharge}} <u>MJ</u></div>
|
||||||
|
|||||||
@@ -296,6 +296,10 @@
|
|||||||
<li class="c" ng-click="useUtility('sb','B')">B</li>
|
<li class="c" ng-click="useUtility('sb','B')">B</li>
|
||||||
<li class="c" ng-click="useUtility('sb','A')">A</li>
|
<li class="c" ng-click="useUtility('sb','A')">A</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<div class="select-group cap" translate="Heat Sink Launcher"></div>
|
||||||
|
<ul>
|
||||||
|
<li class="lc" ng-click="useUtility('cm',null,'Heat Sink Launcher')" translate="Heat Sink Launcher"></li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="slot" ng-repeat="h in ship.hardpoints | filter:{maxClass: '0'}" ng-click="selectSlot($event, h)" context-menu="select('h', h, $event, 'empty')" ng-class="{selected: selectedSlot==h}">
|
<div class="slot" ng-repeat="h in ship.hardpoints | filter:{maxClass: '0'}" ng-click="selectSlot($event, h)" context-menu="select('h', h, $event, 'empty')" ng-class="{selected: selectedSlot==h}">
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
<th rowspan="2" class="sortable le" ng-click="sortShips('name')" translate="ship"></th>
|
<th rowspan="2" class="sortable le" ng-click="sortShips('name')" translate="ship"></th>
|
||||||
<th rowspan="2" class="sortable" ng-click="sortShips('manufacturer')" translate="manufacturer"></th>
|
<th rowspan="2" class="sortable" ng-click="sortShips('manufacturer')" translate="manufacturer"></th>
|
||||||
<th rowspan="2" class="sortable" ng-click="sortShips('class')" translate="size"></th>
|
<th rowspan="2" class="sortable" ng-click="sortShips('class')" translate="size"></th>
|
||||||
|
<th rowspan="2" class="sortable" ng-click="sortShips('agility')" translate="agility"></th>
|
||||||
<th colspan="4" translate="base"></th>
|
<th colspan="4" translate="base"></th>
|
||||||
<th colspan="4" translate="max"></th>
|
<th colspan="4" translate="max"></th>
|
||||||
<th colspan="5" class="sortable" ng-click="sortShips('hpCount')" translate="hardpoints"></th>
|
<th colspan="5" class="sortable" ng-click="sortShips('hpCount')" translate="hardpoints"></th>
|
||||||
@@ -49,6 +50,7 @@
|
|||||||
<td class="le" ng-bind="s.manufacturer"></td>
|
<td class="le" ng-bind="s.manufacturer"></td>
|
||||||
<!-- Pad Size -->
|
<!-- Pad Size -->
|
||||||
<td class="cap" ng-bind="SZM[s.class] | translate"></td>
|
<td class="cap" ng-bind="SZM[s.class] | translate"></td>
|
||||||
|
<td class="ri" ng-bind="s.agility"></td>
|
||||||
<!-- Base -->
|
<!-- Base -->
|
||||||
<td class="ri">{{fCrd(s.speed)}} <u translate>m/s</u></td>
|
<td class="ri">{{fCrd(s.speed)}} <u translate>m/s</u></td>
|
||||||
<td class="ri">{{fCrd(s.boost)}} <u translate>m/s</u></td>
|
<td class="ri">{{fCrd(s.boost)}} <u translate>m/s</u></td>
|
||||||
|
|||||||
2
data
2
data
Submodule data updated: a3afc00fa3...0f2e563d06
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "coriolis_shipyard",
|
"name": "coriolis_shipyard",
|
||||||
"version": "1.9.0",
|
"version": "1.10.4",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/cmmcleod/coriolis"
|
"url": "https://github.com/cmmcleod/coriolis"
|
||||||
|
|||||||
@@ -268,8 +268,8 @@
|
|||||||
"fuelCapacity": 32,
|
"fuelCapacity": 32,
|
||||||
"cargoCapacity": 128,
|
"cargoCapacity": 128,
|
||||||
"ladenMass": 1339.2,
|
"ladenMass": 1339.2,
|
||||||
"armour": 2078,
|
"armour": 2228,
|
||||||
"armourAdded": 240,
|
"armourAdded": 390,
|
||||||
"armourMultiplier": 1.95,
|
"armourMultiplier": 1.95,
|
||||||
"shieldMultiplier": 1.4,
|
"shieldMultiplier": 1.4,
|
||||||
"totalCost": 882362060,
|
"totalCost": 882362060,
|
||||||
|
|||||||
2
test/fixtures/expected-builds.json
vendored
2
test/fixtures/expected-builds.json
vendored
@@ -45,6 +45,6 @@
|
|||||||
"Attack": "25A5C4A4D6A4A3C1r0s0s0s0s000404-04-4a-5d27-.Iw18aQ==.Aw18aQ=="
|
"Attack": "25A5C4A4D6A4A3C1r0s0s0s0s000404-04-4a-5d27-.Iw18aQ==.Aw18aQ=="
|
||||||
},
|
},
|
||||||
"eagle": {
|
"eagle": {
|
||||||
"Figther": "42A3A3A1D2A2A2C0p0p24-40532j.Iw19A===.Aw19A==="
|
"Figther": "42A3A3A1D2A2A2C0p0p24-40532j-.Iw1-EA==.Aw1-EA=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
3
test/fixtures/valid-detailed-export.json
vendored
3
test/fixtures/valid-detailed-export.json
vendored
@@ -3423,7 +3423,8 @@
|
|||||||
"class": 1,
|
"class": 1,
|
||||||
"rating": "A",
|
"rating": "A",
|
||||||
"group": "Fuel Scoop"
|
"group": "Fuel Scoop"
|
||||||
}
|
},
|
||||||
|
null
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"stats": {
|
"stats": {
|
||||||
|
|||||||
@@ -76,10 +76,24 @@ describe('Database', function() {
|
|||||||
expect(ids[id]).toBeFalsy('ID already exists: ' + id);
|
expect(ids[id]).toBeFalsy('ID already exists: ' + id);
|
||||||
expect(group[c].eddbID).toBeDefined('Standard component' + id + ' is missing EDDB ID');
|
expect(group[c].eddbID).toBeDefined('Standard component' + id + ' is missing EDDB ID');
|
||||||
//validateEDDBId('Standard', group[c]);
|
//validateEDDBId('Standard', group[c]);
|
||||||
expect(group[c].grp).toBeDefined('Common component has no group defined, Type: ' + i + ', ID: ' + c);
|
expect(group[c].grp).toBeDefined('Standard component has no group defined, Type: ' + i + ', ID: ' + c);
|
||||||
ids[id] = true;
|
ids[id] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var s in DB.components.bulkheads) {
|
||||||
|
var bulkheadSet = DB.components.bulkheads[s];
|
||||||
|
for (var b in bulkheadSet) {
|
||||||
|
var id = bulkheadSet[b].id;
|
||||||
|
expect(ids[id]).toBeFalsy('ID already exists: ' + id);
|
||||||
|
expect(bulkheadSet[b].eddbID).toBeDefined('Bulkhead component' + id + ' is missing EDDB ID');
|
||||||
|
//validateEDDBId('Bulkheads', group[c]);
|
||||||
|
expect(bulkheadSet[b].cost).toBeDefined('Bulkhead has no cost defined, ID: ' + id);
|
||||||
|
expect(bulkheadSet[b].mass).toBeDefined('Bulkhead has no mass defined, ID: ' + id);
|
||||||
|
ids[id] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('has valid hardpoints', function() {
|
it('has valid hardpoints', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user