mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-10 07:05:35 +00:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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.vehicles;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
||||||
}
|
}
|
||||||
@@ -596,6 +599,17 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//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
|
//limpets if controllers exist and cargo space available
|
||||||
if (limpets > 0) {
|
if (limpets > 0) {
|
||||||
item = {
|
item = {
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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.vehicles">{{'vehicles' | translate}}: {{c.c.vehicles}}</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...bb316e77b2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "coriolis_shipyard",
|
"name": "coriolis_shipyard",
|
||||||
"version": "1.9.0",
|
"version": "1.10.1",
|
||||||
"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