mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-30 03:23:48 +01:00
Merge pull request #3145 from ApamNapat/made_useless_concats_ilegal
Turned on no-useless-concat lint and fixed it in code
This commit is contained in:
commit
b00cf1f347
@ -253,7 +253,7 @@ module.exports = {
|
|||||||
"no-use-before-define": ["off"],
|
"no-use-before-define": ["off"],
|
||||||
"no-useless-call": ["off"],
|
"no-useless-call": ["off"],
|
||||||
"no-useless-computed-key": ["error"],
|
"no-useless-computed-key": ["error"],
|
||||||
"no-useless-concat": ["off"],
|
"no-useless-concat": ["error"],
|
||||||
"no-useless-constructor": ["error"],
|
"no-useless-constructor": ["error"],
|
||||||
"no-useless-escape": ["off"],
|
"no-useless-escape": ["off"],
|
||||||
"no-useless-rename": [
|
"no-useless-rename": [
|
||||||
|
@ -148,7 +148,7 @@ function initAugmentations(): void {
|
|||||||
name: AugmentationNames.HemoRecirculator,
|
name: AugmentationNames.HemoRecirculator,
|
||||||
moneyCost: 4.5e7,
|
moneyCost: 4.5e7,
|
||||||
repCost: 1e4,
|
repCost: 1e4,
|
||||||
info: "A heart implant that greatly increases the body's ability to effectively use and pump " + "blood.",
|
info: "A heart implant that greatly increases the body's ability to effectively use and pump blood.",
|
||||||
strength_mult: 1.08,
|
strength_mult: 1.08,
|
||||||
defense_mult: 1.08,
|
defense_mult: 1.08,
|
||||||
agility_mult: 1.08,
|
agility_mult: 1.08,
|
||||||
@ -430,7 +430,7 @@ function initAugmentations(): void {
|
|||||||
repCost: 1.125e6,
|
repCost: 1.125e6,
|
||||||
moneyCost: 4.25e9,
|
moneyCost: 4.25e9,
|
||||||
info:
|
info:
|
||||||
"Graphene is grafted and fused into the skeletal structure, " + "enhancing bone density and tensile strength.",
|
"Graphene is grafted and fused into the skeletal structure, enhancing bone density and tensile strength.",
|
||||||
strength_mult: 1.7,
|
strength_mult: 1.7,
|
||||||
defense_mult: 1.7,
|
defense_mult: 1.7,
|
||||||
});
|
});
|
||||||
@ -1085,7 +1085,7 @@ function initAugmentations(): void {
|
|||||||
name: AugmentationNames.FocusWire,
|
name: AugmentationNames.FocusWire,
|
||||||
repCost: 7.5e4,
|
repCost: 7.5e4,
|
||||||
moneyCost: 9e8,
|
moneyCost: 9e8,
|
||||||
info: "A cranial implant that stops procrastination by blocking specific neural pathways " + "in the brain.",
|
info: "A cranial implant that stops procrastination by blocking specific neural pathways in the brain.",
|
||||||
hacking_exp_mult: 1.05,
|
hacking_exp_mult: 1.05,
|
||||||
strength_exp_mult: 1.05,
|
strength_exp_mult: 1.05,
|
||||||
defense_exp_mult: 1.05,
|
defense_exp_mult: 1.05,
|
||||||
@ -1486,7 +1486,7 @@ function initAugmentations(): void {
|
|||||||
name: AugmentationNames.SmartSonar,
|
name: AugmentationNames.SmartSonar,
|
||||||
repCost: 2.25e4,
|
repCost: 2.25e4,
|
||||||
moneyCost: 7.5e7,
|
moneyCost: 7.5e7,
|
||||||
info: "A cochlear implant that helps the player detect and locate enemies " + "using sound propagation.",
|
info: "A cochlear implant that helps the player detect and locate enemies using sound propagation.",
|
||||||
dexterity_mult: 1.1,
|
dexterity_mult: 1.1,
|
||||||
dexterity_exp_mult: 1.15,
|
dexterity_exp_mult: 1.15,
|
||||||
crime_money_mult: 1.25,
|
crime_money_mult: 1.25,
|
||||||
@ -2015,7 +2015,7 @@ function initAugmentations(): void {
|
|||||||
repCost: 6.25e4,
|
repCost: 6.25e4,
|
||||||
moneyCost: 2.75e8,
|
moneyCost: 2.75e8,
|
||||||
info:
|
info:
|
||||||
"Cybernetic arms created from plasteel and carbon fibers that completely replace " + "the user's organic arms.",
|
"Cybernetic arms created from plasteel and carbon fibers that completely replace the user's organic arms.",
|
||||||
strength_mult: 1.3,
|
strength_mult: 1.3,
|
||||||
dexterity_mult: 1.3,
|
dexterity_mult: 1.3,
|
||||||
});
|
});
|
||||||
|
@ -135,7 +135,7 @@ export class Action implements IAction {
|
|||||||
if (this.decays.hasOwnProperty(decay)) {
|
if (this.decays.hasOwnProperty(decay)) {
|
||||||
if (this.decays[decay] > 1) {
|
if (this.decays[decay] > 1) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Invalid decays when constructing " + "Action " + this.name + ". " + "Decay value cannot be greater than 1",
|
`Invalid decays when constructing Action ${this.name}. Decay value cannot be greater than 1`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ export const Skills: IMap<Skill> = {};
|
|||||||
Skills[SkillNames.BladesIntuition] = new Skill({
|
Skills[SkillNames.BladesIntuition] = new Skill({
|
||||||
name: SkillNames.BladesIntuition,
|
name: SkillNames.BladesIntuition,
|
||||||
desc:
|
desc:
|
||||||
"Each level of this skill increases your success chance " + "for all Contracts, Operations, and BlackOps by 3%",
|
"Each level of this skill increases your success chance for all Contracts, Operations, and BlackOps by 3%",
|
||||||
baseCost: 3,
|
baseCost: 3,
|
||||||
costInc: 2.1,
|
costInc: 2.1,
|
||||||
successChanceAll: 3,
|
successChanceAll: 3,
|
||||||
@ -33,14 +33,14 @@ export const Skills: IMap<Skill> = {};
|
|||||||
});
|
});
|
||||||
Skills[SkillNames.DigitalObserver] = new Skill({
|
Skills[SkillNames.DigitalObserver] = new Skill({
|
||||||
name: SkillNames.DigitalObserver,
|
name: SkillNames.DigitalObserver,
|
||||||
desc: "Each level of this skill increases your success chance in " + "all Operations and BlackOps by 4%",
|
desc: "Each level of this skill increases your success chance in all Operations and BlackOps by 4%",
|
||||||
baseCost: 2,
|
baseCost: 2,
|
||||||
costInc: 2.1,
|
costInc: 2.1,
|
||||||
successChanceOperation: 4,
|
successChanceOperation: 4,
|
||||||
});
|
});
|
||||||
Skills[SkillNames.Tracer] = new Skill({
|
Skills[SkillNames.Tracer] = new Skill({
|
||||||
name: SkillNames.Tracer,
|
name: SkillNames.Tracer,
|
||||||
desc: "Each level of this skill increases your success chance in " + "all Contracts by 4%",
|
desc: "Each level of this skill increases your success chance in all Contracts by 4%",
|
||||||
baseCost: 2,
|
baseCost: 2,
|
||||||
costInc: 2.1,
|
costInc: 2.1,
|
||||||
successChanceContract: 4,
|
successChanceContract: 4,
|
||||||
@ -67,7 +67,7 @@ export const Skills: IMap<Skill> = {};
|
|||||||
});
|
});
|
||||||
Skills[SkillNames.EvasiveSystem] = new Skill({
|
Skills[SkillNames.EvasiveSystem] = new Skill({
|
||||||
name: SkillNames.EvasiveSystem,
|
name: SkillNames.EvasiveSystem,
|
||||||
desc: "Each level of this skill increases your effective " + "dexterity and agility for Bladeburner actions by 4%",
|
desc: "Each level of this skill increases your effective dexterity and agility for Bladeburner actions by 4%",
|
||||||
baseCost: 2,
|
baseCost: 2,
|
||||||
costInc: 2.1,
|
costInc: 2.1,
|
||||||
effDex: 4,
|
effDex: 4,
|
||||||
|
@ -106,7 +106,7 @@ export const researchMetadata: IConstructorParams[] = [
|
|||||||
{
|
{
|
||||||
name: "JoyWire",
|
name: "JoyWire",
|
||||||
cost: 20e3,
|
cost: 20e3,
|
||||||
desc: "A brain implant which is installed in employees, increasing their " + "maximum happiness by 10.",
|
desc: "A brain implant which is installed in employees, increasing their maximum happiness by 10.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Market-TA.I",
|
name: "Market-TA.I",
|
||||||
@ -160,7 +160,7 @@ export const researchMetadata: IConstructorParams[] = [
|
|||||||
{
|
{
|
||||||
name: "sudo.Assist",
|
name: "sudo.Assist",
|
||||||
cost: 15e3,
|
cost: 15e3,
|
||||||
desc: "Develop a virtual assistant AI to handle and manage administrative " + "issues for your corporation.",
|
desc: "Develop a virtual assistant AI to handle and manage administrative issues for your corporation.",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "uPgrade: Capacity.I",
|
name: "uPgrade: Capacity.I",
|
||||||
|
@ -117,8 +117,7 @@ export function purchaseAugmentation(aug: Augmentation, fac: Faction, sing = fal
|
|||||||
const factionInfo = fac.getInfo();
|
const factionInfo = fac.getInfo();
|
||||||
const hasPrereqs = hasAugmentationPrereqs(aug);
|
const hasPrereqs = hasAugmentationPrereqs(aug);
|
||||||
if (!hasPrereqs) {
|
if (!hasPrereqs) {
|
||||||
const txt =
|
const txt = `You must first purchase or install ${aug.prereqs.join(",")} before you can purchase this one.`;
|
||||||
"You must first purchase or install " + aug.prereqs.join(",") + " before you can " + "purchase this one.";
|
|
||||||
if (sing) {
|
if (sing) {
|
||||||
return txt;
|
return txt;
|
||||||
} else {
|
} else {
|
||||||
|
@ -28,7 +28,7 @@ type IProps = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Info text for all options on the UI
|
// Info text for all options on the UI
|
||||||
const gangInfo = "Create and manage a gang for this Faction. Gangs will earn you money and " + "faction reputation";
|
const gangInfo = "Create and manage a gang for this Faction. Gangs will earn you money and faction reputation";
|
||||||
const hackingContractsInfo =
|
const hackingContractsInfo =
|
||||||
"Complete hacking contracts for your faction. " +
|
"Complete hacking contracts for your faction. " +
|
||||||
"Your effectiveness, which determines how much " +
|
"Your effectiveness, which determines how much " +
|
||||||
|
@ -375,7 +375,7 @@ function processNetscript1Imports(code: string, workerScript: WorkerScript): any
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Now we have to generate the code that would create the namespace
|
//Now we have to generate the code that would create the namespace
|
||||||
generatedCode += "var " + namespace + ";\n" + "(function (namespace) {\n";
|
generatedCode += `var ${namespace};\n(function (namespace) {\n`;
|
||||||
|
|
||||||
//Add the function declarations
|
//Add the function declarations
|
||||||
fnDeclarations.forEach((fn: any) => {
|
fnDeclarations.forEach((fn: any) => {
|
||||||
@ -390,7 +390,7 @@ function processNetscript1Imports(code: string, workerScript: WorkerScript): any
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Finish
|
//Finish
|
||||||
generatedCode += "})(" + namespace + " || " + "(" + namespace + " = {}));\n";
|
generatedCode += `})(${namespace} || (" + namespace + " = {}));\n`;
|
||||||
} else {
|
} else {
|
||||||
//import {...} from script
|
//import {...} from script
|
||||||
|
|
||||||
|
@ -1313,9 +1313,7 @@ export function createProgramWork(this: IPlayer, numCycles: number): boolean {
|
|||||||
export function finishCreateProgramWork(this: IPlayer, cancelled: boolean): string {
|
export function finishCreateProgramWork(this: IPlayer, cancelled: boolean): string {
|
||||||
const programName = this.createProgramName;
|
const programName = this.createProgramName;
|
||||||
if (cancelled === false) {
|
if (cancelled === false) {
|
||||||
dialogBoxCreate(
|
dialogBoxCreate(`You've finished creating ${programName}!<br>The new program can be found on your home computer.`);
|
||||||
"You've finished creating " + programName + "!<br>" + "The new program can be found on your home computer.",
|
|
||||||
);
|
|
||||||
|
|
||||||
this.getHomeComputer().programs.push(programName);
|
this.getHomeComputer().programs.push(programName);
|
||||||
} else {
|
} else {
|
||||||
|
@ -39,7 +39,7 @@ function giveSourceFile(bitNodeNumber: number): void {
|
|||||||
if (alreadyOwned && ownedSourceFile) {
|
if (alreadyOwned && ownedSourceFile) {
|
||||||
if (ownedSourceFile.lvl >= 3 && ownedSourceFile.n !== 12) {
|
if (ownedSourceFile.lvl >= 3 && ownedSourceFile.n !== 12) {
|
||||||
dialogBoxCreate(
|
dialogBoxCreate(
|
||||||
"The Source-File for the BitNode you just destroyed, " + sourceFile.name + ", " + "is already at max level!",
|
`The Source-File for the BitNode you just destroyed, ${sourceFile.name}, is already at max level!`,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
++ownedSourceFile.lvl;
|
++ownedSourceFile.lvl;
|
||||||
|
@ -526,7 +526,7 @@ export function Root(props: IProps): React.ReactElement {
|
|||||||
const textFile = new TextFile(scriptToSave.fileName, scriptToSave.code);
|
const textFile = new TextFile(scriptToSave.fileName, scriptToSave.code);
|
||||||
server.textFiles.push(textFile);
|
server.textFiles.push(textFile);
|
||||||
} else {
|
} else {
|
||||||
dialogBoxCreate("Invalid filename. Must be either a script (.script, .js, or .ns) or " + " or text file (.txt)");
|
dialogBoxCreate("Invalid filename. Must be either a script (.script, .js, or .ns) or a text file (.txt)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -610,7 +610,7 @@ export function Root(props: IProps): React.ReactElement {
|
|||||||
const textFile = new TextFile(currentScript.fileName, currentScript.code);
|
const textFile = new TextFile(currentScript.fileName, currentScript.code);
|
||||||
server.textFiles.push(textFile);
|
server.textFiles.push(textFile);
|
||||||
} else {
|
} else {
|
||||||
dialogBoxCreate("Invalid filename. Must be either a script (.script, .js, or .ns) or " + " or text file (.txt)");
|
dialogBoxCreate("Invalid filename. Must be either a script (.script, .js, or .ns) or a text file (.txt)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ export function buyStock(
|
|||||||
const resultTxt =
|
const resultTxt =
|
||||||
`Bought ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} for ${numeralWrapper.formatMoney(
|
`Bought ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} for ${numeralWrapper.formatMoney(
|
||||||
totalPrice,
|
totalPrice,
|
||||||
)}. ` + `Paid ${numeralWrapper.formatMoney(CONSTANTS.StockMarketCommission)} in commission fees.`;
|
)}. Paid ${numeralWrapper.formatMoney(CONSTANTS.StockMarketCommission)} in commission fees.`;
|
||||||
workerScript.log("stock.buy", () => resultTxt);
|
workerScript.log("stock.buy", () => resultTxt);
|
||||||
} else if (opts.suppressDialog !== true) {
|
} else if (opts.suppressDialog !== true) {
|
||||||
dialogBoxCreate(
|
dialogBoxCreate(
|
||||||
|
@ -640,7 +640,7 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [
|
|||||||
"of the path, you may only move to adjacent numbers in the row below.",
|
"of the path, you may only move to adjacent numbers in the row below.",
|
||||||
"The triangle is represented as a 2D array of numbers:\n\n",
|
"The triangle is represented as a 2D array of numbers:\n\n",
|
||||||
`${triangle}\n\n`,
|
`${triangle}\n\n`,
|
||||||
"Example: If you are given the following triangle:\n\n" + "[\n",
|
"Example: If you are given the following triangle:\n\n[\n",
|
||||||
" [2],\n",
|
" [2],\n",
|
||||||
" [3,4],\n",
|
" [3,4],\n",
|
||||||
" [6,5,7],\n",
|
" [6,5,7],\n",
|
||||||
|
@ -94,9 +94,9 @@ export function v1APIBreak(): void {
|
|||||||
|
|
||||||
if (s.length === 0) continue;
|
if (s.length === 0) continue;
|
||||||
|
|
||||||
txt += `// Detected change ${change[0]}, reason: ${change[1]}` + "\n";
|
txt += `// Detected change ${change[0]}, reason: ${change[1]}\n`;
|
||||||
for (const fl of s) {
|
for (const fl of s) {
|
||||||
txt += `${fl.file}:${fl.line}` + "\n";
|
txt += `${fl.file}:${fl.line}\n`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ async function main(version, versionNumber, changelog) {
|
|||||||
join('\n').replaceAll('`', '\\`');
|
join('\n').replaceAll('`', '\\`');
|
||||||
|
|
||||||
modifiedConstants = modifiedConstants.
|
modifiedConstants = modifiedConstants.
|
||||||
replace(/(^\s*?LatestUpdate:\s`\n)(.*)`,$/ms, `$1${paddedChangelog}\n` + "`,");
|
replace(/(^\s*?LatestUpdate:\s`\n)(.*)`,$/ms, `$1${paddedChangelog}\n\`,`);
|
||||||
}
|
}
|
||||||
await fs.writeFile(appPaths.constants, modifiedConstants);
|
await fs.writeFile(appPaths.constants, modifiedConstants);
|
||||||
console.log(`Modified ${appPaths.constants}`);
|
console.log(`Modified ${appPaths.constants}`);
|
||||||
|
Loading…
Reference in New Issue
Block a user