add: configure mission-specific repair variants

This commit is contained in:
Tom Boullay
2026-05-08 02:41:57 +01:00
parent ead3634aab
commit e4f6ec211c
8 changed files with 40 additions and 9 deletions
@@ -14,6 +14,8 @@ export function RepairReassemblyStep({
onComplete,
}: RepairReassemblyStepProps): React.JSX.Element {
const [split, setSplit] = useState(true);
const reassemblySeconds =
config.reassemblySeconds ?? REPAIR_REASSEMBLY_SECONDS;
useEffect(() => {
const closeTimeoutId = window.setTimeout(() => {
@@ -21,13 +23,13 @@ export function RepairReassemblyStep({
}, 50);
const completeTimeoutId = window.setTimeout(() => {
onComplete();
}, REPAIR_REASSEMBLY_SECONDS * 1000);
}, reassemblySeconds * 1000);
return () => {
window.clearTimeout(closeTimeoutId);
window.clearTimeout(completeTimeoutId);
};
}, [onComplete]);
}, [onComplete, reassemblySeconds]);
return (
<group>
@@ -260,7 +260,7 @@ function getPlaceholderTargets(
return REPLACEMENT_START_OFFSETS.map(
(offset, index): RepairCasePlaceholder => ({
name: `fallback_${index + 1}`,
name: `placeholder_${index + 1}`,
position: [
REPAIR_CASE_FOCUS_POSITION[0] + offset[0],
REPAIR_CASE_FOCUS_POSITION[1] + offset[1],
@@ -30,6 +30,7 @@ export function RepairScanSequence({
const [parts, setParts] = useState<readonly ExplodedPart[]>([]);
const [activePartIndex, setActivePartIndex] = useState(0);
const activePart = parts[activePartIndex];
const scanPartSeconds = config.scanPartSeconds ?? REPAIR_SCAN_PART_SECONDS;
const brokenPartIndexes = getBrokenPartIndexes(parts, config.brokenParts);
const visibleBrokenPartIndexes = brokenPartIndexes.filter(
(partIndex) => partIndex <= activePartIndex,
@@ -48,12 +49,12 @@ export function RepairScanSequence({
return nextIndex;
});
}, REPAIR_SCAN_PART_SECONDS * 1000);
}, scanPartSeconds * 1000);
return () => {
window.clearTimeout(timeoutId);
};
}, [activePartIndex, config, onComplete, parts]);
}, [activePartIndex, config, onComplete, parts, scanPartSeconds]);
return (
<group>