mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-10 07:05:35 +00:00
Refinements, limpet ammo display added to reloads
This commit is contained in:
@@ -40,8 +40,8 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
$scope.retroPredicate = 'netCost';
|
$scope.retroPredicate = 'netCost';
|
||||||
$scope.costDesc = true;
|
$scope.costDesc = true;
|
||||||
$scope.costPredicate = 'c.cost';
|
$scope.costPredicate = 'c.cost';
|
||||||
$scope.ammoDesc = false;
|
$scope.ammoDesc = true;
|
||||||
$scope.ammoPredicate = 'ammoName';
|
$scope.ammoPredicate = 'ammoUnitCost';
|
||||||
$scope.costTab = Persist.getCostTab() || 'costs';
|
$scope.costTab = Persist.getCostTab() || 'costs';
|
||||||
|
|
||||||
if ($scope.savedCode) {
|
if ($scope.savedCode) {
|
||||||
@@ -555,29 +555,40 @@ 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;
|
var controllers = [];
|
||||||
|
var total = 0, i, l, item, q;
|
||||||
|
|
||||||
for (var g in { common: 1, internal: 1, hardpoints: 1 }) {
|
for (var g in { common: 1, internal: 1, hardpoints: 1 }) {
|
||||||
var slotGroup = ship[g];
|
var slotGroup = ship[g];
|
||||||
for (i = 0, l = slotGroup.length; i < l; i++) {
|
for (i = 0, l = slotGroup.length; i < l; i++) {
|
||||||
var q = 0;
|
|
||||||
if (slotGroup[i].id) {
|
if (slotGroup[i].id) {
|
||||||
//special cases needed for fuel, SCB and AFMU since they don't use standard ammo/clip
|
//special cases needed for fuel, SCB, AFMU, and limpet controllers since they don't use standard ammo/clip
|
||||||
if (slotGroup[i].c.grp == 'ft') {
|
var isLimpet = false;
|
||||||
q = slotGroup[i].c.capacity;
|
q = 0;
|
||||||
slotGroup[i].c.ammocost = 50;
|
switch (slotGroup[i].c.grp) {
|
||||||
}
|
case 'ft':
|
||||||
if (slotGroup[i].c.grp == 'scb') {
|
q = slotGroup[i].c.capacity;
|
||||||
q = slotGroup[i].c.cells;
|
slotGroup[i].c.ammocost = 50;
|
||||||
}
|
break;
|
||||||
if (slotGroup[i].c.grp == 'am') {
|
case 'scb':
|
||||||
q = slotGroup[i].c.ammo;
|
q = slotGroup[i].c.cells;
|
||||||
|
break;
|
||||||
|
case 'am':
|
||||||
|
q = slotGroup[i].c.ammo;
|
||||||
|
break;
|
||||||
|
case 'fx': case 'hb': case 'cc': case 'pc':
|
||||||
|
isLimpet = true;
|
||||||
|
if (!ship.cargoCapacity) { //skip ammo costs if no cargo space for limpets
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
q = ship.cargoCapacity;
|
||||||
|
slotGroup[i].c.ammocost = 101;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
||||||
}
|
}
|
||||||
//calculate ammo costs only if a cost is specified
|
//calculate ammo costs only if a cost is specified
|
||||||
if (slotGroup[i].c.ammocost > 0) {
|
if (slotGroup[i].c.ammocost > 0) {
|
||||||
if (q == 0) {
|
|
||||||
q = slotGroup[i].c.clip + slotGroup[i].c.ammo;
|
|
||||||
}
|
|
||||||
item = {
|
item = {
|
||||||
ammoClassRating: slotGroup[i].c.class + slotGroup[i].c.rating,
|
ammoClassRating: slotGroup[i].c.class + slotGroup[i].c.rating,
|
||||||
ammoName: slotGroup[i].c.name || slotGroup[i].c.grp,
|
ammoName: slotGroup[i].c.name || slotGroup[i].c.grp,
|
||||||
@@ -585,12 +596,23 @@ angular.module('app').controller('OutfitController', ['$window', '$rootScope', '
|
|||||||
ammoUnitCost: slotGroup[i].c.ammocost,
|
ammoUnitCost: slotGroup[i].c.ammocost,
|
||||||
ammoTotalCost: q * slotGroup[i].c.ammocost
|
ammoTotalCost: q * slotGroup[i].c.ammocost
|
||||||
};
|
};
|
||||||
costs.push(item);
|
if (isLimpet) { //add total limpet cost once and finalize costs entry later
|
||||||
total += item.ammoTotalCost;
|
controllers.push(item);
|
||||||
|
total += controllers.length == 1 ? item.ammoTotalCost : 0;
|
||||||
|
} else {
|
||||||
|
costs.push(item);
|
||||||
|
total += item.ammoTotalCost;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
q = Math.ceil(ship.cargoCapacity / controllers.length);
|
||||||
|
for (i = 0; i < controllers.length; i++) {
|
||||||
|
controllers[i].ammoTotalCost = q * 101;
|
||||||
|
controllers[i].ammoMax = (i == 0) && (q != ship.cargoCapacity / controllers.length) ? q-- : q; // handle rounding error with first controller
|
||||||
|
costs.push(controllers[i]);
|
||||||
|
}
|
||||||
$scope.ammoTotal = total;
|
$scope.ammoTotal = total;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user