Fixed a performance issue when installing too many Neuroflux at once.

This commit is contained in:
Olivier Gagnon
2021-06-13 11:05:07 -04:00
parent 2b1ec7d573
commit 39b4048603
5 changed files with 36 additions and 8 deletions
+21 -5
View File
@@ -2157,15 +2157,31 @@ function installAugmentations() {
dialogBoxCreate("You have not purchased any Augmentations to install!");
return false;
}
var augmentationList = "";
for (var i = 0; i < Player.queuedAugmentations.length; ++i) {
var aug = Augmentations[Player.queuedAugmentations[i].name];
let augmentationList = "";
let nfgIndex = -1;
for(let i = Player.queuedAugmentations.length-1; i >= 0; i--) {
if(Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {
nfgIndex = i;
break;
}
}
for (let i = 0; i < Player.queuedAugmentations.length; ++i) {
const ownedAug = Player.queuedAugmentations[i];
const aug = Augmentations[ownedAug.name];
if (aug == null) {
console.error(`Invalid augmentation: ${Player.queuedAugmentations[i].name}`);
console.error(`Invalid augmentation: ${ownedAug.name}`);
continue;
}
if(ownedAug.name === AugmentationNames.NeuroFluxGovernor
&& i !== nfgIndex) continue;
let level = null;
if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {
level = ` - ${ownedAug.level}`;
}
applyAugmentation(Player.queuedAugmentations[i]);
augmentationList += (aug.name + "<br>");
augmentationList += (aug.name + level + "<br>");
}
Player.queuedAugmentations = [];
dialogBoxCreate("You slowly drift to sleep as scientists put you under in order " +
+12 -1
View File
@@ -7,12 +7,23 @@ import * as React from "react";
import { Augmentations } from "../../Augmentation/Augmentations";
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
import { Player } from "../../Player";
import { IPlayerOwnedAugmentation } from "../../Augmentation/PlayerOwnedAugmentation";
import { AugmentationAccordion } from "../../ui/React/AugmentationAccordion";
export function PurchasedAugmentations(): React.ReactElement {
const augs: React.ReactElement[] = [];
for (const ownedAug of Player.queuedAugmentations) {
// Only render the last NeuroFlux (there are no findLastIndex btw)
let nfgIndex = -1;
for(let i = Player.queuedAugmentations.length-1; i >= 0; i--) {
if(Player.queuedAugmentations[i].name === AugmentationNames.NeuroFluxGovernor) {
nfgIndex = i;
break;
}
}
for (let i = 0; i < Player.queuedAugmentations.length; i++) {
const ownedAug = Player.queuedAugmentations[i];
if(ownedAug.name === AugmentationNames.NeuroFluxGovernor && i !== nfgIndex) continue;
const aug = Augmentations[ownedAug.name];
let level = null;
if (ownedAug.name === AugmentationNames.NeuroFluxGovernor) {