mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-10 07:05:35 +00:00
add some more guards on ships
This commit is contained in:
@@ -163,10 +163,14 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
slot = ship.internal.filter(a => a.maxClass === 4).filter(a => a.maxClass >= fs.class)
|
slot = ship.internal.filter(a => a.maxClass === 4).filter(a => a.maxClass >= fs.class)
|
||||||
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
||||||
[0];
|
[0];
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (fsd.class === 6 && fsd.rating === 'A') {
|
} else if (fsd.class === 6 && fsd.rating === 'A') {
|
||||||
let fs = ModuleUtils.findInternal('fs', 6, 'B');
|
let fs = ModuleUtils.findInternal('fs', 6, 'B');
|
||||||
let slot = ship.internal.filter(a => a.maxClass >= 6)
|
let slot = ship.internal.filter(a => a.maxClass >= 6)
|
||||||
@@ -176,10 +180,14 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
if (slot.m) {
|
if (slot.m) {
|
||||||
fs = ModuleUtils.findInternal('fs', 5, 'A');
|
fs = ModuleUtils.findInternal('fs', 5, 'A');
|
||||||
slot = ship.internal.filter(a => a.maxClass === 5)[0];
|
slot = ship.internal.filter(a => a.maxClass === 5)[0];
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (fsd.class === 7 && fsd.rating === 'A') {
|
} else if (fsd.class === 7 && fsd.rating === 'A') {
|
||||||
let fs = ModuleUtils.findInternal('fs', 7, 'B');
|
let fs = ModuleUtils.findInternal('fs', 7, 'B');
|
||||||
let slot = ship.internal.filter(a => a.maxClass >= 7).filter(a => a.maxClass >= fs.class)
|
let slot = ship.internal.filter(a => a.maxClass >= 7).filter(a => a.maxClass >= fs.class)
|
||||||
@@ -188,11 +196,15 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
if (slot.m) {
|
if (slot.m) {
|
||||||
fs = ModuleUtils.findInternal('fs', 6, 'A');
|
fs = ModuleUtils.findInternal('fs', 6, 'A');
|
||||||
slot = ship.internal.filter(a => a.maxClass === 6)[0];
|
slot = ship.internal.filter(a => a.maxClass === 6)[0];
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (fs) {
|
||||||
ship.use(slot, fs);
|
ship.use(slot, fs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (tier !== 1) {
|
if (tier !== 1) {
|
||||||
const fuelNeeded = ship.standard[2].m.maxfuel * 3;
|
const fuelNeeded = ship.standard[2].m.maxfuel * 3;
|
||||||
@@ -208,14 +220,18 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
if (ship.id === 'alliance_chieftain' || ship.id === 'alliance_crusader' || ship.id === 'federal_gunship' || ship.id === 'vulture') {
|
if (ship.id === 'alliance_chieftain' || ship.id === 'alliance_crusader' || ship.id === 'federal_gunship' || ship.id === 'vulture') {
|
||||||
const hrp = ModuleUtils.findInternal('hrp', 3, 'D');
|
const hrp = ModuleUtils.findInternal('hrp', 3, 'D');
|
||||||
const slot = ship.internal.filter(e => e.eligible && e.maxClass === 3);
|
const slot = ship.internal.filter(e => e.eligible && e.maxClass === 3);
|
||||||
|
if (hrp) {
|
||||||
ship.use(slot, hrp);
|
ship.use(slot, hrp);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
const sg = ship.getAvailableModules().lightestShieldGenerator(ship.ladenMass);
|
const sg = ship.getAvailableModules().lightestShieldGenerator(ship.ladenMass);
|
||||||
const slot = ship.internal.filter(a => !a.m)
|
const slot = ship.internal.filter(a => !a.m)
|
||||||
.filter(a => a.maxClass >= sg.class)
|
.filter(a => a.maxClass >= sg.class)
|
||||||
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
||||||
[0];
|
[0];
|
||||||
|
if (sg) {
|
||||||
ship.use(slot, sg);
|
ship.use(slot, sg);
|
||||||
|
}
|
||||||
if (engineeringLevel === 2) {
|
if (engineeringLevel === 2) {
|
||||||
// ELP G3
|
// ELP G3
|
||||||
const shieldBP = getBlueprint('ShieldGenerator_Optimised', ship.findShieldGenerator());
|
const shieldBP = getBlueprint('ShieldGenerator_Optimised', ship.findShieldGenerator());
|
||||||
@@ -247,7 +263,9 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
.filter(a => a.maxClass >= sg.class)
|
.filter(a => a.maxClass >= sg.class)
|
||||||
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
||||||
[0];
|
[0];
|
||||||
|
if (sg) {
|
||||||
ship.use(slot, sg);
|
ship.use(slot, sg);
|
||||||
|
}
|
||||||
if (engineeringLevel === 1) {
|
if (engineeringLevel === 1) {
|
||||||
// ELP G3
|
// ELP G3
|
||||||
const shieldBP = getBlueprint('ShieldGenerator_Optimised', ship.findShieldGenerator());
|
const shieldBP = getBlueprint('ShieldGenerator_Optimised', ship.findShieldGenerator());
|
||||||
@@ -298,8 +316,9 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
.filter(d => d.rating === 'D')
|
.filter(d => d.rating === 'D')
|
||||||
.filter(d => (d.engcap * 1.728) >= ship.boostEnergy)
|
.filter(d => (d.engcap * 1.728) >= ship.boostEnergy)
|
||||||
.sort((a, b) => a.class.toString().localeCompare(b.class.toString()))[0];
|
.sort((a, b) => a.class.toString().localeCompare(b.class.toString()))[0];
|
||||||
|
if (pd) {
|
||||||
ship.use(ship.standard[4], pd);
|
ship.use(ship.standard[4], pd);
|
||||||
|
}
|
||||||
// CE G5
|
// CE G5
|
||||||
const pdBP = getBlueprint('PowerDistributor_HighFrequency', ship.standard[4]);
|
const pdBP = getBlueprint('PowerDistributor_HighFrequency', ship.standard[4]);
|
||||||
pdBP.grade = 5;
|
pdBP.grade = 5;
|
||||||
@@ -311,15 +330,18 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
.filter(d => d.rating === 'D')
|
.filter(d => d.rating === 'D')
|
||||||
.sort((a, b) => a.engcap > b.engcap)
|
.sort((a, b) => a.engcap > b.engcap)
|
||||||
[0];
|
[0];
|
||||||
|
if (pd) {
|
||||||
ship.use(ship.standard[4], pd);
|
ship.use(ship.standard[4], pd);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (engineeringLevel === 3) {
|
if (engineeringLevel === 3) {
|
||||||
const pd = ship.availCS.standard[4]
|
const pd = ship.availCS.standard[4]
|
||||||
.filter(d => d.rating === 'D')
|
.filter(d => d.rating === 'D')
|
||||||
.sort((a, b) => b.class.toString().localeCompare(a.class.toString()))[0];
|
.sort((a, b) => b.class.toString().localeCompare(a.class.toString()))[0];
|
||||||
|
if (pd) {
|
||||||
ship.use(ship.standard[4], pd);
|
ship.use(ship.standard[4], pd);
|
||||||
|
}
|
||||||
// CE G5
|
// CE G5
|
||||||
const pdBP = getBlueprint('PowerDistributor_HighFrequency', ship.standard[4]);
|
const pdBP = getBlueprint('PowerDistributor_HighFrequency', ship.standard[4]);
|
||||||
pdBP.grade = 5;
|
pdBP.grade = 5;
|
||||||
@@ -330,69 +352,74 @@ export function dw2Build(ship, tier, engineeringLevel, role, gfsb, gpp, fighter)
|
|||||||
const pd = ship.availCS.standard[4]
|
const pd = ship.availCS.standard[4]
|
||||||
.filter(d => d.rating === 'D')
|
.filter(d => d.rating === 'D')
|
||||||
.sort((a, b) => b.class.toString().localeCompare(a.class.toString()))[0];
|
.sort((a, b) => b.class.toString().localeCompare(a.class.toString()))[0];
|
||||||
|
if (pd) {
|
||||||
ship.use(ship.standard[4], pd);
|
ship.use(ship.standard[4], pd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ship.fighterHangars && fighter) {
|
if (ship.fighterHangars && fighter) {
|
||||||
const slot = ship.internal.filter(s => s.maxClass >= 5 && !s.m)
|
const slot = ship.internal.filter(s => s.maxClass >= 5 && !s.m)
|
||||||
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
.sort((a, b) => a.maxClass.toString().localeCompare(b.maxClass.toString()))
|
||||||
[0];
|
[0];
|
||||||
if (slot) {
|
|
||||||
const mod = ModuleUtils.findInternal('fh', 5, 'D');
|
const mod = ModuleUtils.findInternal('fh', 5, 'D');
|
||||||
|
if (slot && mod) {
|
||||||
ship.use(slot, mod);
|
ship.use(slot, mod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tier === 1) {
|
if (tier === 1) {
|
||||||
ship.use(ship.standard[4], ModuleUtils.findStandard('pd', 1, 'D'));
|
const pd = ModuleUtils.findStandard('pd', 1, 'D');
|
||||||
|
if (pd) {
|
||||||
|
ship.use(ship.standard[4]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let dssPriority = 0
|
let dssPriority = 0;
|
||||||
let srvPriority = 0
|
let srvPriority = 0;
|
||||||
let afmu = true
|
let afmu = true;
|
||||||
let cargo = false
|
let cargo = false;
|
||||||
let miningLaserPriority = 0
|
let miningLaserPriority = 0;
|
||||||
let refinery = false
|
let refinery = false;
|
||||||
let collector = false
|
let collector = false;
|
||||||
let prospector = false
|
let prospector = false;
|
||||||
let miningTools = false
|
let miningTools = false;
|
||||||
let refuelLimpets = false
|
let refuelLimpets = false;
|
||||||
let repairLimpets = false
|
let repairLimpets = false;
|
||||||
console.log(role)
|
console.log(role);
|
||||||
if (role === 'exploration') {
|
if (role === 'exploration') {
|
||||||
dssPriority = 2;
|
dssPriority = 2;
|
||||||
afmu = true;
|
afmu = true;
|
||||||
} else if (role === 'surface') {
|
} else if (role === 'surface') {
|
||||||
dssPriority = 2
|
dssPriority = 2;
|
||||||
srvPriority = 2
|
srvPriority = 2;
|
||||||
} else if (role === 'materialProspector') {
|
} else if (role === 'materialProspector') {
|
||||||
miningLaserPriority = 2
|
miningLaserPriority = 2;
|
||||||
srvPriority = 1
|
srvPriority = 1;
|
||||||
} else if (role === 'propectorMining') {
|
} else if (role === 'propectorMining') {
|
||||||
dssPriority = 1
|
dssPriority = 1;
|
||||||
prospector = true
|
prospector = true;
|
||||||
miningLaserPriority = 1
|
miningLaserPriority = 1;
|
||||||
cargo = true
|
cargo = true;
|
||||||
miningTools = true
|
miningTools = true;
|
||||||
|
|
||||||
} else if (role === 'bigRigMining') {
|
} else if (role === 'bigRigMining') {
|
||||||
dssPriority = 1
|
dssPriority = 1;
|
||||||
miningLaserPriority = 2
|
miningLaserPriority = 2;
|
||||||
cargo = true
|
cargo = true;
|
||||||
collector = true
|
collector = true;
|
||||||
refinery = true
|
refinery = true;
|
||||||
miningTools = true
|
miningTools = true;
|
||||||
|
|
||||||
} else if (role === 'fuelRat') {
|
} else if (role === 'fuelRat') {
|
||||||
refuelLimpets = true
|
refuelLimpets = true;
|
||||||
cargo = true
|
cargo = true;
|
||||||
srvPriority = 1
|
srvPriority = 1;
|
||||||
|
|
||||||
} else if (role === 'mechanic') {
|
} else if (role === 'mechanic') {
|
||||||
repairLimpets = true
|
repairLimpets = true;
|
||||||
cargo = true
|
cargo = true;
|
||||||
srvPriority = 1
|
srvPriority = 1;
|
||||||
} else if (role === 'trucker') {
|
} else if (role === 'trucker') {
|
||||||
cargo = true;
|
cargo = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user