diff --git a/src/world/Environment.tsx b/src/world/Environment.tsx
index 430bc66..f2d4a54 100644
--- a/src/world/Environment.tsx
+++ b/src/world/Environment.tsx
@@ -11,6 +11,7 @@ import {
isMapModelVisible,
useMapPerformanceStore,
} from "@/managers/stores/useMapPerformanceStore";
+import { useRepairFocusStore } from "@/managers/stores/useRepairFocusStore";
import { SkyModel } from "@/components/three/world/SkyModel";
import { CloudSystem } from "@/world/clouds/CloudSystem";
import { FogSystem } from "@/world/fog/FogSystem";
@@ -24,6 +25,9 @@ export function Environment(): React.JSX.Element {
const groups = useMapPerformanceStore((state) => state.groups);
const models = useMapPerformanceStore((state) => state.models);
const showSky = isMapModelVisible("sky", { groups, models });
+ // Hide vegetation while the repair focus bubble is active so the cocoon
+ // shroud is not pierced by tall trees / bushes around the repair model.
+ const repairFocusActive = useRepairFocusStore((state) => state.active);
if (sceneMode === "physics") {
return (
@@ -52,7 +56,7 @@ export function Environment(): React.JSX.Element {
-
+ {repairFocusActive ? null : }
>
);
}
diff --git a/src/world/GameStageContent.tsx b/src/world/GameStageContent.tsx
index 3b18fee..60c473f 100644
--- a/src/world/GameStageContent.tsx
+++ b/src/world/GameStageContent.tsx
@@ -16,6 +16,7 @@ import {
OUTRO_STAGE_ANCHOR,
} from "@/data/gameplay/gameStageAnchors";
import { useGameStore } from "@/managers/stores/useGameStore";
+import { useRepairFocusStore } from "@/managers/stores/useRepairFocusStore";
import { useRepairMissionAnchorStore } from "@/managers/stores/useRepairMissionAnchorStore";
import { isPylonNarrativeStep } from "@/types/gameplay/repairMission";
import type { RepairMissionTriggerConfig } from "@/types/gameplay/repairMission";
@@ -86,6 +87,7 @@ export function GameStageContent(): React.JSX.Element {
const mainState = useGameStore((state) => state.mainState);
const pylonStep = useGameStore((state) => state.pylon.currentStep);
const anchors = useRepairMissionAnchorStore((state) => state.anchors);
+ const repairFocusActive = useRepairFocusStore((state) => state.active);
const pylonInNarrative =
mainState === "pylon" && isPylonNarrativeStep(pylonStep);
@@ -95,7 +97,7 @@ export function GameStageContent(): React.JSX.Element {
{mainState === "intro" ? : null}
- {isDebugEnabled() ? (
+ {isDebugEnabled() && !repairFocusActive ? (
<>