mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-10 15:15:34 +00:00
Fix issue where filling all internals with cargo racks would include restricted slots
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
#2.2.8
|
||||||
|
* Fix issue where filling all internals with cargo racks would include restricted slots
|
||||||
|
|
||||||
#2.2.7
|
#2.2.7
|
||||||
* Fix resistance diminishing return calculations
|
* Fix resistance diminishing return calculations
|
||||||
* Do not allow -100% to be entered as a modification value
|
* Do not allow -100% to be entered as a modification value
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import SlotSection from './SlotSection';
|
|||||||
import InternalSlot from './InternalSlot';
|
import InternalSlot from './InternalSlot';
|
||||||
import * as ModuleUtils from '../shipyard/ModuleUtils';
|
import * as ModuleUtils from '../shipyard/ModuleUtils';
|
||||||
import { stopCtxPropagation } from '../utils/UtilityFunctions';
|
import { stopCtxPropagation } from '../utils/UtilityFunctions';
|
||||||
|
import { canMount } from '../utils/SlotFunctions';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal slot section
|
* Internal slot section
|
||||||
@@ -47,7 +48,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.cr)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'cr')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('cr', slot.maxClass, 'E'));
|
ship.use(slot, ModuleUtils.findInternal('cr', slot.maxClass, 'E'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -63,7 +64,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.ft)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'ft')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('ft', slot.maxClass, 'C'));
|
ship.use(slot, ModuleUtils.findInternal('ft', slot.maxClass, 'C'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -79,7 +80,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.pcq)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'pcq')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('pcq', Math.min(slot.maxClass, 6), 'B')); // Passenger cabins top out at 6
|
ship.use(slot, ModuleUtils.findInternal('pcq', Math.min(slot.maxClass, 6), 'B')); // Passenger cabins top out at 6
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -95,7 +96,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.pcm)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'pcm')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('pcm', Math.min(slot.maxClass, 6), 'C')); // Passenger cabins top out at 6
|
ship.use(slot, ModuleUtils.findInternal('pcm', Math.min(slot.maxClass, 6), 'C')); // Passenger cabins top out at 6
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -111,7 +112,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.pci)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'pci')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('pci', Math.min(slot.maxClass, 6), 'D')); // Passenger cabins top out at 6
|
ship.use(slot, ModuleUtils.findInternal('pci', Math.min(slot.maxClass, 6), 'D')); // Passenger cabins top out at 6
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -127,7 +128,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.pce)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'pce')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('pce', Math.min(slot.maxClass, 6), 'E')); // Passenger cabins top out at 6
|
ship.use(slot, ModuleUtils.findInternal('pce', Math.min(slot.maxClass, 6), 'E')); // Passenger cabins top out at 6
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -144,7 +145,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
let chargeCap = 0; // Capacity of single activation
|
let chargeCap = 0; // Capacity of single activation
|
||||||
ship.internal.forEach(function(slot) {
|
ship.internal.forEach(function(slot) {
|
||||||
if ((clobber || (!slot.m && !ModuleUtils.isShieldGenerator(slot.m.grp))) && (!slot.eligible || slot.eligible.scb)) {
|
if ((clobber && !(slot.m && ModuleUtils.isShieldGenerator(slot.m.grp)) || !slot.m) && canMount(ship, slot, 'scb')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('scb', slot.maxClass, 'A'));
|
ship.use(slot, ModuleUtils.findInternal('scb', slot.maxClass, 'A'));
|
||||||
ship.setSlotEnabled(slot, chargeCap <= ship.shieldStrength); // Don't waste cell capacity on overcharge
|
ship.setSlotEnabled(slot, chargeCap <= ship.shieldStrength); // Don't waste cell capacity on overcharge
|
||||||
chargeCap += slot.m.recharge;
|
chargeCap += slot.m.recharge;
|
||||||
@@ -162,7 +163,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.hr)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'hr')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('hr', Math.min(slot.maxClass, 5), 'D')); // Hull reinforcements top out at 5D
|
ship.use(slot, ModuleUtils.findInternal('hr', Math.min(slot.maxClass, 5), 'D')); // Hull reinforcements top out at 5D
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -178,7 +179,7 @@ export default class InternalSlotSection extends SlotSection {
|
|||||||
let clobber = event.getModifierState('Alt');
|
let clobber = event.getModifierState('Alt');
|
||||||
let ship = this.props.ship;
|
let ship = this.props.ship;
|
||||||
ship.internal.forEach((slot) => {
|
ship.internal.forEach((slot) => {
|
||||||
if ((clobber || !slot.m) && (!slot.eligible || slot.eligible.mrp)) {
|
if ((clobber || !slot.m) && canMount(ship, slot, 'mrp')) {
|
||||||
ship.use(slot, ModuleUtils.findInternal('mrp', Math.min(slot.maxClass, 5), 'D')); // Module reinforcements top out at 5D
|
ship.use(slot, ModuleUtils.findInternal('mrp', Math.min(slot.maxClass, 5), 'D')); // Module reinforcements top out at 5D
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -39,7 +39,9 @@ export function trader(ship, shielded, standardOpts) {
|
|||||||
ship.use(slot, sg);
|
ship.use(slot, sg);
|
||||||
sg = null;
|
sg = null;
|
||||||
} else {
|
} else {
|
||||||
ship.use(slot, ModuleUtils.findInternal('cr', slot.maxClass, 'E'));
|
if (canMount(ship, slot, 'cr')) {
|
||||||
|
ship.use(slot, ModuleUtils.findInternal('cr', slot.maxClass, 'E'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user