mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-27 08:27:32 +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-useless-call": ["off"],
|
||||
"no-useless-computed-key": ["error"],
|
||||
"no-useless-concat": ["off"],
|
||||
"no-useless-concat": ["error"],
|
||||
"no-useless-constructor": ["error"],
|
||||
"no-useless-escape": ["off"],
|
||||
"no-useless-rename": [
|
||||
|
@ -148,7 +148,7 @@ function initAugmentations(): void {
|
||||
name: AugmentationNames.HemoRecirculator,
|
||||
moneyCost: 4.5e7,
|
||||
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,
|
||||
defense_mult: 1.08,
|
||||
agility_mult: 1.08,
|
||||
@ -430,7 +430,7 @@ function initAugmentations(): void {
|
||||
repCost: 1.125e6,
|
||||
moneyCost: 4.25e9,
|
||||
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,
|
||||
defense_mult: 1.7,
|
||||
});
|
||||
@ -1085,7 +1085,7 @@ function initAugmentations(): void {
|
||||
name: AugmentationNames.FocusWire,
|
||||
repCost: 7.5e4,
|
||||
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,
|
||||
strength_exp_mult: 1.05,
|
||||
defense_exp_mult: 1.05,
|
||||
@ -1486,7 +1486,7 @@ function initAugmentations(): void {
|
||||
name: AugmentationNames.SmartSonar,
|
||||
repCost: 2.25e4,
|
||||
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_exp_mult: 1.15,
|
||||
crime_money_mult: 1.25,
|
||||
@ -2015,7 +2015,7 @@ function initAugmentations(): void {
|
||||
repCost: 6.25e4,
|
||||
moneyCost: 2.75e8,
|
||||
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,
|
||||
dexterity_mult: 1.3,
|
||||
});
|
||||
|
@ -135,7 +135,7 @@ export class Action implements IAction {
|
||||
if (this.decays.hasOwnProperty(decay)) {
|
||||
if (this.decays[decay] > 1) {
|
||||
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({
|
||||
name: SkillNames.BladesIntuition,
|
||||
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,
|
||||
costInc: 2.1,
|
||||
successChanceAll: 3,
|
||||
@ -33,14 +33,14 @@ export const Skills: IMap<Skill> = {};
|
||||
});
|
||||
Skills[SkillNames.DigitalObserver] = new Skill({
|
||||
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,
|
||||
costInc: 2.1,
|
||||
successChanceOperation: 4,
|
||||
});
|
||||
Skills[SkillNames.Tracer] = new Skill({
|
||||
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,
|
||||
costInc: 2.1,
|
||||
successChanceContract: 4,
|
||||
@ -67,7 +67,7 @@ export const Skills: IMap<Skill> = {};
|
||||
});
|
||||
Skills[SkillNames.EvasiveSystem] = new Skill({
|
||||
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,
|
||||
costInc: 2.1,
|
||||
effDex: 4,
|
||||
|
@ -106,7 +106,7 @@ export const researchMetadata: IConstructorParams[] = [
|
||||
{
|
||||
name: "JoyWire",
|
||||
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",
|
||||
@ -160,7 +160,7 @@ export const researchMetadata: IConstructorParams[] = [
|
||||
{
|
||||
name: "sudo.Assist",
|
||||
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",
|
||||
|
@ -117,8 +117,7 @@ export function purchaseAugmentation(aug: Augmentation, fac: Faction, sing = fal
|
||||
const factionInfo = fac.getInfo();
|
||||
const hasPrereqs = hasAugmentationPrereqs(aug);
|
||||
if (!hasPrereqs) {
|
||||
const txt =
|
||||
"You must first purchase or install " + aug.prereqs.join(",") + " before you can " + "purchase this one.";
|
||||
const txt = `You must first purchase or install ${aug.prereqs.join(",")} before you can purchase this one.`;
|
||||
if (sing) {
|
||||
return txt;
|
||||
} else {
|
||||
|
@ -28,7 +28,7 @@ type IProps = {
|
||||
};
|
||||
|
||||
// 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 =
|
||||
"Complete hacking contracts for your faction. " +
|
||||
"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
|
||||
generatedCode += "var " + namespace + ";\n" + "(function (namespace) {\n";
|
||||
generatedCode += `var ${namespace};\n(function (namespace) {\n`;
|
||||
|
||||
//Add the function declarations
|
||||
fnDeclarations.forEach((fn: any) => {
|
||||
@ -390,7 +390,7 @@ function processNetscript1Imports(code: string, workerScript: WorkerScript): any
|
||||
});
|
||||
|
||||
//Finish
|
||||
generatedCode += "})(" + namespace + " || " + "(" + namespace + " = {}));\n";
|
||||
generatedCode += `})(${namespace} || (" + namespace + " = {}));\n`;
|
||||
} else {
|
||||
//import {...} from script
|
||||
|
||||
|
@ -1313,9 +1313,7 @@ export function createProgramWork(this: IPlayer, numCycles: number): boolean {
|
||||
export function finishCreateProgramWork(this: IPlayer, cancelled: boolean): string {
|
||||
const programName = this.createProgramName;
|
||||
if (cancelled === false) {
|
||||
dialogBoxCreate(
|
||||
"You've finished creating " + programName + "!<br>" + "The new program can be found on your home computer.",
|
||||
);
|
||||
dialogBoxCreate(`You've finished creating ${programName}!<br>The new program can be found on your home computer.`);
|
||||
|
||||
this.getHomeComputer().programs.push(programName);
|
||||
} else {
|
||||
|
@ -39,7 +39,7 @@ function giveSourceFile(bitNodeNumber: number): void {
|
||||
if (alreadyOwned && ownedSourceFile) {
|
||||
if (ownedSourceFile.lvl >= 3 && ownedSourceFile.n !== 12) {
|
||||
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 {
|
||||
++ownedSourceFile.lvl;
|
||||
|
@ -526,7 +526,7 @@ export function Root(props: IProps): React.ReactElement {
|
||||
const textFile = new TextFile(scriptToSave.fileName, scriptToSave.code);
|
||||
server.textFiles.push(textFile);
|
||||
} 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;
|
||||
}
|
||||
|
||||
@ -610,7 +610,7 @@ export function Root(props: IProps): React.ReactElement {
|
||||
const textFile = new TextFile(currentScript.fileName, currentScript.code);
|
||||
server.textFiles.push(textFile);
|
||||
} 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;
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ export function buyStock(
|
||||
const resultTxt =
|
||||
`Bought ${numeralWrapper.formatShares(shares)} shares of ${stock.symbol} for ${numeralWrapper.formatMoney(
|
||||
totalPrice,
|
||||
)}. ` + `Paid ${numeralWrapper.formatMoney(CONSTANTS.StockMarketCommission)} in commission fees.`;
|
||||
)}. Paid ${numeralWrapper.formatMoney(CONSTANTS.StockMarketCommission)} in commission fees.`;
|
||||
workerScript.log("stock.buy", () => resultTxt);
|
||||
} else if (opts.suppressDialog !== true) {
|
||||
dialogBoxCreate(
|
||||
|
@ -640,7 +640,7 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [
|
||||
"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",
|
||||
`${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",
|
||||
" [3,4],\n",
|
||||
" [6,5,7],\n",
|
||||
|
@ -94,9 +94,9 @@ export function v1APIBreak(): void {
|
||||
|
||||
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) {
|
||||
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('`', '\\`');
|
||||
|
||||
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);
|
||||
console.log(`Modified ${appPaths.constants}`);
|
||||
|
Loading…
Reference in New Issue
Block a user