Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c194cdd2e | |||
| feaf502e44 | |||
| 489499f5d2 |
@@ -14,6 +14,7 @@ export function MissionNotification({
|
|||||||
}: MissionNotificationProps): React.JSX.Element {
|
}: MissionNotificationProps): React.JSX.Element {
|
||||||
const src =
|
const src =
|
||||||
imagePath ?? (mission ? MISSION_NOTIFICATION_IMAGE_PATHS[mission] : "");
|
imagePath ?? (mission ? MISSION_NOTIFICATION_IMAGE_PATHS[mission] : "");
|
||||||
|
const isVideo = src.toLowerCase().endsWith(".webm");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@@ -22,11 +23,24 @@ export function MissionNotification({
|
|||||||
>
|
>
|
||||||
<div className="mission-notification__glow" />
|
<div className="mission-notification__glow" />
|
||||||
<span className="mission-notification__image-wrap">
|
<span className="mission-notification__image-wrap">
|
||||||
|
{isVideo ? (
|
||||||
|
<video
|
||||||
|
className="mission-notification__image"
|
||||||
|
src={src}
|
||||||
|
aria-label="Nouvel objectif de mission"
|
||||||
|
autoPlay
|
||||||
|
loop
|
||||||
|
muted
|
||||||
|
playsInline
|
||||||
|
preload="auto"
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
<img
|
<img
|
||||||
className="mission-notification__image"
|
className="mission-notification__image"
|
||||||
src={src}
|
src={src}
|
||||||
alt="Nouvel objectif de mission"
|
alt="Nouvel objectif de mission"
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ export const EBIKE_WORLD_SCALE = 0.35;
|
|||||||
export const EBIKE_INTRO_BREAKDOWN_DISTANCE = 15;
|
export const EBIKE_INTRO_BREAKDOWN_DISTANCE = 15;
|
||||||
export const EBIKE_BREAKDOWN_DIALOGUE_DELAY_MS = 250;
|
export const EBIKE_BREAKDOWN_DIALOGUE_DELAY_MS = 250;
|
||||||
|
|
||||||
export const EBIKE_MAX_SPEED = 3;
|
|
||||||
export const EBIKE_ACCELERATION_DURATION_MS = 2000;
|
export const EBIKE_ACCELERATION_DURATION_MS = 2000;
|
||||||
export const EBIKE_DECELERATION_DURATION_MS = 2000;
|
export const EBIKE_DECELERATION_DURATION_MS = 2000;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export const INTRO_MISSION_NOTIFICATION_IMAGE_PATH =
|
|||||||
|
|
||||||
export const MISSION_NOTIFICATION_IMAGE_PATHS: Record<RepairMissionId, string> =
|
export const MISSION_NOTIFICATION_IMAGE_PATHS: Record<RepairMissionId, string> =
|
||||||
{
|
{
|
||||||
ebike: "/assets/world/UI/ebike-mission-notification.png",
|
ebike: "/assets/world/UI/ebike-mission-notification.webm",
|
||||||
pylon: "/assets/world/UI/pylon-mission-notification.png",
|
pylon: "/assets/world/UI/pylon-mission-notification.webm",
|
||||||
farm: "/assets/world/UI/farm-mission-notification.png",
|
farm: "/assets/world/UI/farm-mission-notification.webm",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
|
|||||||
"Repair the damaged cooling module before relaunching the bike",
|
"Repair the damaged cooling module before relaunching the bike",
|
||||||
modelPath: "/models/ebike/model.gltf",
|
modelPath: "/models/ebike/model.gltf",
|
||||||
modelScale: 0.3,
|
modelScale: 0.3,
|
||||||
stageUiPath: "/assets/world/UI/ebike.webm",
|
stageUiPath: "/assets/world/UI/ebike-mission-notification.webm",
|
||||||
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
||||||
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
||||||
case: DEFAULT_REPAIR_CASE,
|
case: DEFAULT_REPAIR_CASE,
|
||||||
@@ -59,7 +59,7 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
|
|||||||
description:
|
description:
|
||||||
"Restore the pylon lamp relay and damaged panel before reconnecting the grid",
|
"Restore the pylon lamp relay and damaged panel before reconnecting the grid",
|
||||||
modelPath: "/models/pylone/model.gltf",
|
modelPath: "/models/pylone/model.gltf",
|
||||||
stageUiPath: "/assets/world/UI/centrale.webm",
|
stageUiPath: "/assets/world/UI/pylon-mission-notification.webm",
|
||||||
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
||||||
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
||||||
case: DEFAULT_REPAIR_CASE,
|
case: DEFAULT_REPAIR_CASE,
|
||||||
@@ -104,7 +104,7 @@ export const REPAIR_MISSIONS: Record<RepairMissionId, RepairMissionConfig> = {
|
|||||||
description:
|
description:
|
||||||
"Stabilize the irrigation loop and humidity sensor before restarting the farm",
|
"Stabilize the irrigation loop and humidity sensor before restarting the farm",
|
||||||
modelPath: "/models/fermeverticale/model.gltf",
|
modelPath: "/models/fermeverticale/model.gltf",
|
||||||
stageUiPath: "/assets/world/UI/laferme.webm",
|
stageUiPath: "/assets/world/UI/farm-mission-notification.webm",
|
||||||
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
interactUiPath: REPAIR_INTERACT_UI_PATH,
|
||||||
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
brokenUiPath: REPAIR_BROKEN_UI_PATH,
|
||||||
case: DEFAULT_REPAIR_CASE,
|
case: DEFAULT_REPAIR_CASE,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export const PLAYER_EYE_HEIGHT = 1.75;
|
|||||||
export const PLAYER_CAPSULE_RADIUS = 0.35;
|
export const PLAYER_CAPSULE_RADIUS = 0.35;
|
||||||
|
|
||||||
export const PLAYER_WALK_SPEED = 5;
|
export const PLAYER_WALK_SPEED = 5;
|
||||||
export const PLAYER_EBIKE_SPEED = 30;
|
export const PLAYER_EBIKE_SPEED = 20;
|
||||||
export const PLAYER_AIR_CONTROL_FACTOR = 0.35;
|
export const PLAYER_AIR_CONTROL_FACTOR = 0.35;
|
||||||
export const PLAYER_JUMP_SPEED = 9;
|
export const PLAYER_JUMP_SPEED = 9;
|
||||||
export const PLAYER_GRAVITY = 30;
|
export const PLAYER_GRAVITY = 30;
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import {
|
|||||||
EBIKE_ACCELERATION_DURATION_MS,
|
EBIKE_ACCELERATION_DURATION_MS,
|
||||||
EBIKE_CAMERA_TRANSFORM,
|
EBIKE_CAMERA_TRANSFORM,
|
||||||
EBIKE_DECELERATION_DURATION_MS,
|
EBIKE_DECELERATION_DURATION_MS,
|
||||||
EBIKE_MAX_SPEED,
|
|
||||||
} from "@/data/ebike/ebikeConfig";
|
} from "@/data/ebike/ebikeConfig";
|
||||||
|
|
||||||
/** Global window properties used for ebike communication */
|
/** Global window properties used for ebike communication */
|
||||||
@@ -415,7 +414,7 @@ export function PlayerController({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const movementSpeed = isEbikeMounted
|
const movementSpeed = isEbikeMounted
|
||||||
? EBIKE_MAX_SPEED * ebikeSpeedFactor.current
|
? currentSpeed * ebikeSpeedFactor.current
|
||||||
: currentSpeed;
|
: currentSpeed;
|
||||||
const accel = onFloor.current
|
const accel = onFloor.current
|
||||||
? movementSpeed
|
? movementSpeed
|
||||||
|
|||||||
Reference in New Issue
Block a user