feat: suppression HUD (redondant avec cockpit), compteur stylé, navbar nettoyée

- Suppression Hud.jsx + HUDON/HUDOFF.svg (cockpit header fait le même job)
- Retrait toggle HUD de la navbar + props isVisible
- Compteur click-zone : glow vert, plus gros, lisible sur fond sombre
- Tooltip sur le bouton bulles navbar
This commit is contained in:
2026-03-20 16:28:47 +01:00
parent c673ae0da5
commit 3839a1e6a2
7 changed files with 20 additions and 99 deletions

View File

@@ -1,43 +0,0 @@
// Hud.jsx — Stats HUD (Zustand)
import { useGameStore } from "../../store/useGameStore";
import { formatNumber } from "../../utils/formatNumber";
const formatTime = (time) => {
const hours = Math.floor(time / 3600);
const minutes = Math.floor((time % 3600) / 60);
const secs = time % 60;
return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`;
};
function Hud({ isVisible }) {
const resources = useGameStore((s) => s.state.resources);
const clickMultiplier = useGameStore((s) => s.state.clickMultiplier);
const productionPerSecond = useGameStore((s) => s.productionPerSecond);
const playSeconds = useGameStore((s) => s.playSeconds);
if (isVisible) return null;
return (
<div className="fixed top-20 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2 px-6 py-3 rounded-xl bg-gray-900/90 backdrop-blur-sm text-white font-[var(--font)]">
<div className="flex gap-6 text-sm">
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Temps</span>
<span>{formatTime(playSeconds)}</span>
</div>
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Têtards/s</span>
<span>{formatNumber(productionPerSecond)}</span>
</div>
<div className="flex flex-col items-center">
<span className="text-gray-400 text-xs">Ponte</span>
<span>{clickMultiplier}</span>
</div>
</div>
<div className="text-lg font-bold text-emerald-400">
{formatNumber(resources)}
</div>
</div>
);
}
export default Hud;

View File

@@ -7,38 +7,14 @@ import "../scss/root.scss";
import PrimaryButton from "./buttons/PrimaryButton";
import Burger from "./burger";
import { useAuth } from "../context/AuthContext";
import HUDON from "../../public/NavBar/HUDON.svg";
import HUDOFF from "../../public/NavBar/HUDOFF.svg";
import SnowOn from "../../public/NavBar/SnowOn.svg";
import SnowOff from "../../public/NavBar/SnowOff.svg";
import { useState } from "react";
export default function Navbar({
navData,
isVisible,
setIsVisible,
toggleRain,
setToggleRain,
}) {
Navbar.propTypes = {
isVisible: PropTypes.bool,
setIsVisible: PropTypes.function,
setToggleRain: PropTypes.function,
toggleRain: PropTypes.bool,
}.isRequired;
export default function Navbar({ navData, toggleRain, setToggleRain }) {
const { user, logout } = useAuth();
const [imageSrc, setImageSrc] = useState(HUDON);
const [snowImageSrc, setSnowImageSrc] = useState(SnowOff);
const toggleHud = () => {
if (!isVisible) {
setIsVisible(true);
setImageSrc(HUDOFF);
} else {
setIsVisible(false);
setImageSrc(HUDON);
}
};
function toggleRainBtn() {
if (toggleRain === false) {
setToggleRain(true);
@@ -48,6 +24,7 @@ export default function Navbar({
setSnowImageSrc(SnowOff);
}
}
return (
<nav className="header-main">
<Link
@@ -108,17 +85,12 @@ export default function Navbar({
Connexion
</Link>
)}
<img
onClick={() => toggleHud()}
src={imageSrc}
style={{ height: "28px" }}
alt="boutton on"
/>
<img
onClick={() => toggleRainBtn()}
src={snowImageSrc}
style={{ height: "28px" }}
alt="boutton on"
style={{ height: "28px", cursor: "pointer" }}
alt="Activer/désactiver les bulles"
title="Ambiance bulles"
/>
<Burger navData={navData} />
</div>