Merge branch 'develop' into feat/polish-mission-2
🔍 Lint / 🪄 Check lint (push) Has been cancelled
🔍 Lint / 🎨 Check format (push) Has been cancelled
🔍 Lint / 🔎 Typecheck (push) Has been cancelled
📊 Quality / 🔒 Security Audit (push) Has been cancelled
📊 Quality / 📋 Dependency Freshness (push) Has been cancelled
📊 Quality / 📦 Bundle Size (push) Has been cancelled
🔍 Lint / 🏗 Build (push) Has been cancelled

This commit is contained in:
math-pixel
2026-06-02 20:43:00 +02:00
91 changed files with 2119 additions and 934 deletions
+59 -15
View File
@@ -25,26 +25,48 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
interactUiPath: REPAIR_INTERACT_UI_PATH,
brokenUiPath: REPAIR_BROKEN_UI_PATH,
case: DEFAULT_REPAIR_CASE,
requiredReplacementPartId: "ebike-cooling-core-replacement",
requiredReplacementPartIds: ["ebike-cooling-core-replacement"],
brokenParts: [
{
id: "ebike-cooling-core",
label: "Cooling core",
modelPath: "/models/refroidisseur/model.gltf",
nodeName: "refroidisseur",
targetNodeName: "refroidisseur",
caseSlotName: "placeholder_1",
},
],
replacementParts: [
{
id: "ebike-cooling-core-replacement",
label: "Replacement cooling core",
label: "Refroidisseur",
modelPath: "/models/refroidisseur/model.gltf",
caseAnchor: "refroidisseur",
targetNodeName: "refroidisseur",
},
{
id: "ebike-glove-distractor",
label: "Insulation glove",
modelPath: "/models/gant_l/model.gltf",
id: "ebike-cable-right-distractor",
label: "Câble droit",
modelPath: "/models/cable1/model.gltf",
caseAnchor: "cabledroit",
},
{
id: "ebike-cable-left-distractor",
label: "Câble gauche",
modelPath: "/models/cable2/model.gltf",
caseAnchor: "cablegauche",
},
{
id: "ebike-puce-haut-distractor",
label: "Puce haute",
modelPath: "/models/puce/model.gltf",
caseAnchor: "pucehaut",
},
{
id: "ebike-puce-bas-distractor",
label: "Puce basse",
modelPath: "/models/puce/model.gltf",
caseAnchor: "pucebas",
},
],
},
@@ -53,13 +75,16 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
label: "Power pylon",
description:
"Restore the pylon lamp relay and damaged panel before reconnecting the grid",
modelPath: "/models/pylone/model.gltf",
modelPath: "/models/pylone/model.glb",
stageUiPath: "/assets/world/UI/pylon-mission-notification.webm",
interactUiPath: REPAIR_INTERACT_UI_PATH,
brokenUiPath: REPAIR_BROKEN_UI_PATH,
case: DEFAULT_REPAIR_CASE,
reassemblySeconds: 1.8,
requiredReplacementPartId: "pylon-grid-relay-replacement",
requiredReplacementPartIds: [
"pylon-cable-right-replacement",
"pylon-cable-left-replacement",
],
scanPartSeconds: 1.4,
brokenParts: [
{
@@ -77,19 +102,38 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
],
replacementParts: [
{
id: "pylon-grid-relay-replacement",
label: "Replacement grid relay",
modelPath: "/models/pylone/model.gltf",
id: "pylon-cable-right-replacement",
label: "Câble droit",
modelPath: "/models/cable1/model.gltf",
caseAnchor: "cabledroit",
caseLockGroup: "pylon-cable",
targetNodeName: "cable2",
},
{
id: "pylon-stone-distractor",
label: "Stone counterweight",
modelPath: "/models/galet/model.gltf",
id: "pylon-cable-left-replacement",
label: "Câble gauche",
modelPath: "/models/cable2/model.gltf",
caseAnchor: "cablegauche",
caseLockGroup: "pylon-cable",
targetNodeName: "cable2",
},
{
id: "pylon-cooling-distractor",
label: "Cooling core",
label: "Refroidisseur",
modelPath: "/models/refroidisseur/model.gltf",
caseAnchor: "refroidisseur",
},
{
id: "pylon-puce-haut-distractor",
label: "Puce haute",
modelPath: "/models/puce/model.gltf",
caseAnchor: "pucehaut",
},
{
id: "pylon-puce-bas-distractor",
label: "Puce basse",
modelPath: "/models/puce/model.gltf",
caseAnchor: "pucebas",
},
],
},
@@ -104,7 +148,7 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
brokenUiPath: REPAIR_BROKEN_UI_PATH,
case: DEFAULT_REPAIR_CASE,
reassemblySeconds: 1.2,
requiredReplacementPartId: "farm-irrigation-pump-replacement",
requiredReplacementPartIds: ["farm-irrigation-pump-replacement"],
scanPartSeconds: 0.9,
brokenParts: [
{