200 lines
7.0 KiB
Markdown
200 lines
7.0 KiB
Markdown
# 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 n’est 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 | 0–5 | pièces / visite | Selon politique du joueur | Ajuste satisfaction visiteurs et revenus. |
|
||
| Marketing | 0–5000 | pièces / action | Campagne publicitaire | Augmente affluence temporaire. |
|
||
| Skins / thèmes | 0–2000 | 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.
|