Files
builazoo/docs/specs/joueur.md
2026-03-05 04:01:29 +01:00

200 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spécifications : Joueur
## Définition
L'utilisateur humain.
## Variantes de représentation
### Joueur actif
Le joueur actif est représenté par :
- **un profil** (pseudo, progression, paramètres) ;
- **un avatar personnalisable** (genre, skins, titres) : voir `avatar_joueur.md` et `inventaire_skins.md`.
### Autres joueurs
Les autres joueurs (humains) peuvent être représentés dans des modules sociaux (carte monde, visite, classements) par :
- un **portrait/mini-avatar** cohérent avec leurs skins (si le profil requis nest pas accessible, afficher un état verrouillé explicite, pas de dégradation silencieuse) ;
- un **pseudo** et des indicateurs de progression (niveau, réputation) selon les règles du module.
## Propriétés
- **Compte** : Authentifié par clé privée (pas de mot de passe).
- **Ressources** : Pièces, Unités de recherche.
- **Zoo** : Possède et gère un unique zoo.
- **Démarrage** : Commence avec 200 pièces et 3 couples reproducteurs basiques.
## Actions
- Achat/Vente.
- Placement/Déplacement.
- Upgrade bâtiments/carte.
- Gestion des incidents visiteurs.
- Configuration du profil d'absence (Bot).
# Annexes Techniques
## 1. Données et États
### Modèle de Données (JSON)
```json
{
"id": "uuid",
"public_key": "string (ed25519)",
"username": "string",
"created_at": "timestamp",
"last_login": "timestamp",
"resources": {
"coins": "integer",
"research_points": "integer"
},
"settings": {
"music_enabled": "boolean",
"bot_profile_id": "integer"
},
"iso_x": "integer",
"iso_y": "integer",
"z_index": "integer"
}
```
### Caractéristiques Initiales
| Caractéristique | Valeur Initiale |
| :--- | :--- |
| Pièces | 200 |
| Recherche | 0 |
| Animaux | 3 couples (6 animaux) |
### Scores Initiaux
**Niveau Joueur** : 1.
## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
Inscription.
### Conditions de Disparition
Suppression compte.
### Hérédité
**Héritage** : Le joueur garde son niveau et ses recherches après un reset.
## 3. Impacts Environnementaux
### Impact Température
**Confort** : Le joueur doit gérer la température pour ses animaux.
### Impact Milieu (Biome)
**Stratégie** : Le joueur choisit les biomes à développer.
### Impact Saisons
**Planification** : Le joueur adapte sa stratégie aux saisons.
### Impact Heure / Jour-Nuit
**Gestion** : Le joueur gère les cycles d'ouverture.
## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Démarrage autonome** : Le joueur reçoit 3 couples reproducteurs basiques (Lapins/Poules/Canards selon biome) pour garantir une reproduction immédiate et alimenter le marché bas prix.
### Impact Mort
**Gestion Crise** : Le joueur doit réagir aux décès.
### Impact Nourriture
**Logistique** : Le joueur achète la nourriture.
### Impact Attractivité (Visiteurs/Animaux)
**Objectif** : Maximiser l'attractivité.
### Impact Valeur
**Finance** : Gérer le budget.
## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
| Domaine | Paramètre | Valeur | Unité | Règle |
|---|---|---:|---|---|
| Camion | Actions/minute | 6 | actions | Limite anti-spam côté UI (évite double-clic achats/ventes). |
| Nurserie | Ouverture panel | 250 | ms | Transition UI (snappy) pour boucles fréquentes. |
| Accueil | Placement animal | 1 | interaction | Tap-to-select → Tap-to-place en 1 geste (accessibilité). |
| Recherche | Lancement projet | 1 | clic | 1 clic depuis menu achats → centre recherche → projet. |
| Labo | Achat offre rare | 1 | drag/drop | Alternatif : tap offre → tap camion (mobile). |
| Visite | Pan/zoom | 60 | FPS | Cible de fluidité sur la carte isométrique. |
### Dépenses (Boutiques/Visiteurs)
| Poste | Coût | Unité | Condition | Impact |
|---|---:|---|---|---|
| Parking | 05 | pièces / visite | Selon politique du joueur | Ajuste satisfaction visiteurs et revenus. |
| Marketing | 05000 | pièces / action | Campagne publicitaire | Augmente affluence temporaire. |
| Skins / thèmes | 02000 | pièces / item | Achat cosmétique | Aucun impact gameplay (sauf attractivité visuelle si spécifié ailleurs). |
### Trajet Visiteurs
**Design** : Le joueur trace les routes.
## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
* **Connexion** : Chargement état.
* **Quête** : Validation.
## 7. Progression
### Tableau des Upgrades
| Niveau | Coût | Avantage |
| :--- | :--- | :--- |
| 1 | 0 | Accès de base |
| 2 | 1000 | Accès statistiques avancées |
## 8. Logique et Interfaces
### Pseudo-code Impacts
```javascript
function playerAction(action):
if checkResources(action.cost):
execute(action)
```
### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `WELCOME` | Info | "Bienvenue dans votre nouveau zoo !" |
| `NO_MONEY` | Alerte | "Fonds insuffisants." |
# Annexes UX/UI
## 0. Direction Artistique & Vue
* **Vue** : Isométrique (2.5D).
* **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg).
* **Sprites** : 4 directions.
* **Interactions** :
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
* **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.
## 1. Expérience Utilisateur (UX)
### HUD Principal (Permanent)
**Description UX** : Le joueur voit en permanence ses ressources et accès rapides.
**Description UI** : Barre supérieure avec Compteurs (Pièces, Recherche, Réputation). Barre inférieure ou latérale avec Menus (Construction, Carte Monde, Inventaire, Profil).
**Emplacement** : Écran (Overlay).
**Intégration** : Fixe.
**Navigation** : Clic Menu -> Ouverture Panneau.
**Événements** : `UI_CLICK`.
#### Assets
- **Musiques** : `ui_hud_ambience.mp3` (très léger, optionnel, volume 15%).
- **Sons** : `ui_click.mp3`.
- **Graphiques** : Style UI "Bois et Pierre" ou "Moderne Clean".
- **Images** : Icônes (Pièce, Fiole, Marteau, Carte).
- **Vidéos** : `hud_counters_hint.webm` (micro-anim 1s, loop, optionnel sur tutoriel).
- **Animations** : Compteurs qui défilent quand gain/perte.
- **Couleurs** : Or, Bleu, Blanc.
- **Textes** : Chiffres, Labels menus.
- **Formes** : Barres, Boutons ronds.
### Profil & Bot (Configuration)
**Description UX** : Le joueur configure son avatar et son bot d'absence.
**Description UI** : Modal Profil. Onglet "Gestion Absence" avec sélecteur de Bot (Famille > Spécialisation).
**Emplacement** : Menu Profil.
**Intégration** : Modal.
**Navigation** : Profil -> Bot -> Sauvegarder.
**Événements** : `SAVE_PROFILE`.
#### Assets
- **Musiques** : `ui_profile_open.mp3` (jingle court).
- **Sons** : `save_success.mp3`.
- **Graphiques** : Portraits de bots.
- **Images** : Avatars joueurs.
- **Vidéos** : `profile_avatar_spin.webm` (aperçu rotation/pose, 2s, loop).
- **Animations** : Checkmark vert.
- **Couleurs** : Bleu UI.
- **Textes** : Description des bots ("Le Conservateur : Achète de la nourriture, évite les risques").
- **Formes** : Cartes de sélection.