530 lines
15 KiB
Markdown
530 lines
15 KiB
Markdown
# Nourisseur
|
||
|
||
## 1. Définition
|
||
Employé chargé de l'approvisionnement en nourriture des enclos. Il remplit les mangeoires vides et s'assure que les animaux n'ont pas faim. Achetable avec des pièces.
|
||
|
||
## 2. Fonctions
|
||
* **Remplissage :** Détecte les mangeoires vides et va les remplir.
|
||
* **Qualité :** Peut (avec amélioration) fournir une nourriture de meilleure qualité (+santé).
|
||
* **Automatisation :** Évite au joueur de devoir cliquer manuellement pour nourrir (si mécanique manuelle existe).
|
||
|
||
## 3. Icone
|
||
* **Représentation :** Seau ou Sac de graines.
|
||
* **Couleur dominante :** Marron et Orange.
|
||
|
||
## 4. Interactions
|
||
* **Recrutement :** Menu "Employés", coût en pièces.
|
||
* **Gestion :** Définir des priorités (ex: nourrir les bébés en premier).
|
||
|
||
## 5. Annexes Techniques
|
||
|
||
### Données (JSON)
|
||
```json
|
||
{
|
||
"employee_id": "feeder_02",
|
||
"type": "nourisseur",
|
||
"name": "Bob",
|
||
"salary": 30,
|
||
"hire_cost": 300,
|
||
"stats": {
|
||
"capacity": 50, // Quantité de nourriture transportable
|
||
"speed": 1.2
|
||
},
|
||
"current_task": "moving_to_enclosure_12",
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
### Règles Métier
|
||
* Les animaux affamés perdent de la santé et du bonheur.
|
||
* Le nourisseur doit retourner au stock (bâtiment de service) pour se ravitailler.
|
||
|
||
## 6. Annexes UX/UI
|
||
* **Visuel Carte :** Personnage avec une brouette ou un sac sur le dos.
|
||
* **Animation :** Verse de la nourriture dans l'auge.
|
||
* **Alerte :** Icône "Faim" rouge clignotante si le nourisseur est débordé.
|
||
|
||
|
||
# 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.
|
||
|
||
|
||
## Définition
|
||
|
||
| Champ | Valeur |
|
||
|---|---|
|
||
| Entité | Employé “Nourisseur” |
|
||
| Rôle | Approvisionner les mangeoires, éviter la faim, appliquer (si présent) la nourriture spéciale ciblée. |
|
||
| Logistique | Transport capacité `stats.capacity`, ravitaillement depuis stock. |
|
||
| Vue | Isométrique 2.5D, sprite 4 directions, sélection base-sprite. |
|
||
|
||
## Fonctions (tableau détaillé)
|
||
|
||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||
|---|---|---|---|---|---|
|
||
| Détection auge vide | Tick nourisseur | enclos, jauges auge | liste tâches | Priorité bébés > adultes | Event `FEEDER_SCAN` |
|
||
| Remplissage | Arrivée en enclos | stock, capacity | auge + | Consomme stock global, clamp max auge | Event `FEEDER_FILL_START/END` |
|
||
| Ravitaillement stock | capacity=0 | stock bâtiment | capacity reset | Retour “service stock” obligatoire | Event `FEEDER_RESTOCK` |
|
||
| Qualité nourriture | upgrade | niveau/skill | santé + | Bonus si nourriture premium active | Event `FEEDER_PREMIUM_APPLIED` |
|
||
|
||
## Icone de base
|
||
|
||
| Élément | Spécification |
|
||
|---|---|
|
||
| Représentation | Seau / sac de graines |
|
||
| Couleur dominante | Marron / orange |
|
||
| Variantes | `icon_feeder_bucket.png`, `icon_feeder_bag.png` |
|
||
| États | Badge “en route” (flèche), “débordé” (rouge), “capacity vide” (0) |
|
||
|
||
## Interactions (tableau détaillé)
|
||
|
||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||
|---|---|---|---|---|---|
|
||
| Recruter | Action | coins ≥ `hire_cost` | Menu Employés → Nourisseur → Confirmer | entité créée | `INSUFFICIENT_FUNDS`, `EMPLOYEE_CAP_REACHED` |
|
||
| Définir priorités | Action | - | panel nourisseur → priorités | ordre tâches | - |
|
||
| Assigner zone/enclos | Action | cible valide | “Assigner” → clic | couverture | `INVALID_TARGET` |
|
||
| Forcer nourrir | Action | enclos sélectionné | bouton “Nourrir maintenant” | tâche top priorité | `NO_FEEDER_AVAILABLE`, `OUT_OF_FOOD_STOCK` |
|
||
| Inspecter stock | Consultation | - | panel stock | quantités | - |
|
||
|
||
## Annexes Techniques
|
||
|
||
### 1. Données et États (tableau détaillé)
|
||
|
||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||
|---|---|---|---|---|
|
||
| `employee_id` | string | `feeder_02` | DB | unique |
|
||
| `type` | enum | `nourisseur` | DB | constante |
|
||
| `salary` | int | 30 | config | coins/jour |
|
||
| `hire_cost` | int | 300 | config | one-shot |
|
||
| `stats.capacity` | int | 50 | DB | [10..200] |
|
||
| `stats.speed` | float | 1.2 | DB | déplacement |
|
||
| `current_task` | string | `moving_to_enclosure_12` | runtime | debug |
|
||
| `state` | enum | `IDLE|MOVING|FILLING|RESTOCK|BREAK` | runtime | FSM |
|
||
| `carried_food` | int | 0..capacity | runtime | décrémente |
|
||
| `assigned_zone` | uuid/null | null | runtime | null=global |
|
||
| `grid` | object | `{x,y}` | runtime | position |
|
||
| `iso_x/iso_y` | int | - | rendu | projection |
|
||
| `z_index` | int | - | rendu | profondeur |
|
||
| `hitbox` | enum | `base_sprite` | rendu | click base |
|
||
|
||
#### Caractéristiques Initiales (tableau détaillé)
|
||
|
||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||
|---|---:|---|---|
|
||
| Capacité | 50 | unités | transport |
|
||
| Vitesse | 1.2 | coef | marche |
|
||
| Temps remplissage | 1 | min in-game | par auge |
|
||
| Temps restock | 2 | min in-game | au stock |
|
||
| Seuil faim critique | 80 | % | déclenche urgence |
|
||
|
||
#### Scores Initiaux (tableau détaillé)
|
||
|
||
| Score | Valeur initiale | Plage | Impact |
|
||
|---|---:|---|---|
|
||
| Auges remplies/jour | 0 | 0..∞ | faim - |
|
||
| Ruptures évitées | 0 | 0..∞ | survie + |
|
||
| Coût nourrissage/jour | 30 | 0..∞ | dépenses employés |
|
||
|
||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||
|
||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||
|---|---|---|---|---|
|
||
| Apparition | embauche | coins | entité | `IDLE` |
|
||
| Action | auge vide | stock | auge + | pas si stock=0 |
|
||
| Restock | capacity=0 | stock bâtiment | capacity reset | chemin valide |
|
||
| Disparition | licenciement (si prévu) | - | suppression | stop tâches |
|
||
|
||
#### Conditions d'Apparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Achat | coins ≥ `hire_cost` | vrai | création |
|
||
|
||
#### Conditions de Disparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Licenciement | action joueur | vrai | suppression |
|
||
| Zoo supprimé | - | vrai | suppression |
|
||
|
||
#### Hérédité (tableau détaillé)
|
||
|
||
| Élément | Hérité | Règle |
|
||
|---|---|---|
|
||
| Stats | Oui | persistées |
|
||
| Carried food | Non | remis à 0 au reset |
|
||
|
||
### 3. Impacts Environnementaux
|
||
|
||
#### Impact Température (tableau détaillé)
|
||
|
||
| Température | Effet | Condition |
|
||
|---|---|---|
|
||
| Extrême | consommation + | animaux mangent plus selon règles |
|
||
| Tempérée | neutre | - |
|
||
|
||
#### Impact Milieu (Biome) (tableau détaillé)
|
||
|
||
| Biome | Effet | Notes |
|
||
|---|---|---|
|
||
| Chemins | déplacement + | visiteurs attirés aux chemins |
|
||
| Sable/neige | déplacement - | ralentissement |
|
||
|
||
#### Impact Saisons (tableau détaillé)
|
||
|
||
| Saison | Effet | Modificateur |
|
||
|---|---|---|
|
||
| Hiver | ration + | +10% conso |
|
||
| Été | eau/boisson + | incidents soif visiteurs + |
|
||
|
||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||
|
||
| Période | Effet | Règle |
|
||
|---|---|---|
|
||
| Matin | repas 1 | tâche batch |
|
||
| Soir | repas 2 | tâche batch |
|
||
| Nuit | urgence | uniquement si faim critique |
|
||
|
||
### 4. Impacts Biologiques et Sociaux
|
||
|
||
#### Impact Reproduction (tableau détaillé)
|
||
|
||
| Facteur | Effet sur taux | Condition |
|
||
|---|---|---|
|
||
| Faim basse | + | si animaux bien nourris |
|
||
|
||
#### Impact Mort (tableau détaillé)
|
||
|
||
| Cas | Effet | Condition |
|
||
|---|---|---|
|
||
| Stock 0 | risque mort + | faim extrême prolongée |
|
||
|
||
#### Impact Nourriture (tableau détaillé)
|
||
|
||
| Type | Effet | Condition |
|
||
|---|---|---|
|
||
| Standard | neutre | base |
|
||
| Spéciale | buff | selon `nourriture_speciale.md` |
|
||
|
||
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||
|
||
| État | Effet | Condition |
|
||
|---|---|---|
|
||
| Animaux actifs (pas affamés) | satisfaction + | enclos proches |
|
||
|
||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||
|
||
| Action | Effet animaux | Condition |
|
||
|---|---|---|
|
||
| Nourrir | stress - | faim résolue |
|
||
|
||
#### Impact Valeur (tableau détaillé)
|
||
|
||
| Facteur | Variation | Condition |
|
||
|---|---:|---|
|
||
| Animal bien nourri | +5% | vente animal |
|
||
|
||
### 5. Impacts Logistiques et Économiques
|
||
|
||
#### Vitesse (Camion) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Livraison nourriture | +stock | via camion/achat |
|
||
|
||
#### Vitesse (Nurserie) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Priorité bébés | + | si règle activée |
|
||
|
||
#### Vitesse (Accueil) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| - | aucun | - |
|
||
|
||
#### Vitesse (Recherche) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Tech nutrition | + | réduit conso ou augmente qualité |
|
||
|
||
#### Vitesse (Labo) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| - | aucun | - |
|
||
|
||
#### Vitesse (Visite) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Temps séjour | + | animaux visibles actifs |
|
||
|
||
#### Dépenses (Billeterie) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| - | 0 | - | - |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Vente nourriture visiteurs | revenu + | coins | canicule |
|
||
|
||
#### Dépenses (Visiteurs) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Plainte faim | remboursement | coins | si incidents |
|
||
|
||
#### Dépenses (Employés) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Salaire | 30 | coins/jour | actif |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Section dupliquée | 0 | - | conservée |
|
||
|
||
#### Dépenses (Nurseries) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Lait/bébés | +conso | stock | si bébés présents |
|
||
|
||
#### Dépenses (Nourriture) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Achat nourriture | variable | coins | menu achats |
|
||
|
||
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Ration arrivée | 5 | coins | accueil |
|
||
|
||
#### Dépenses (Camion) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Transport nourriture | 10 | coins | livraison |
|
||
|
||
#### Trajet Visiteurs
|
||
|
||
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Ville | Zoo | réputation | nourisseur indirect |
|
||
|
||
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Nourisseur | Enclos | auge vide | déplacement sur chemins |
|
||
|
||
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Visiteur | Boutique | faim/soif | achat |
|
||
|
||
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Visiteur mécontent | sortie | incidents | départ |
|
||
|
||
### 6. Événements
|
||
|
||
#### Événements du Jeu (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Payload | Effet |
|
||
|---|---|---|---|
|
||
| `FEED_LOW` | auge < seuil | enclosure_id | warning |
|
||
| `FEED_FILLED` | fin remplissage | enclosure_id | info |
|
||
|
||
#### Événements du Carte (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `FEEDER_MOVING` | tâche | rendu déplacement |
|
||
|
||
#### Événements du Zoo (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `FOOD_STOCK_EMPTY` | stock=0 | alerte |
|
||
|
||
#### Événements du Ville / Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_BUY_FOOD` | faim/soif | revenu |
|
||
|
||
#### Événements du Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| `VISITOR_COMPLAINT_HUNGER` | faim | satisfaction - |
|
||
|
||
#### Événements du Joueur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `PLAYER_FORCE_FEED` | bouton | tâche urgente |
|
||
|
||
### 7. Progression
|
||
|
||
#### Tableau des Upgrades (tableau détaillé)
|
||
|
||
| Niveau | Coût | Effet | Débloque |
|
||
|---|---:|---|---|
|
||
| 1 | 0 | remplissage base | - |
|
||
| 2 | 1000 | capacity +20 | moins restocks |
|
||
| 3 | 2500 | speed +0.1 | réactivité |
|
||
| 4 | 5000 | qualité + | premium |
|
||
|
||
### 8. Logique et Interfaces
|
||
|
||
#### Pseudo-code Impacts (tableau détaillé)
|
||
|
||
| Fonction | Entrées | Sorties | Notes |
|
||
|---|---|---|---|
|
||
| `scan_empty_troughs` | enclos | list | priorités |
|
||
| `fill_trough` | stock, carried | trough | clamp |
|
||
| `restock` | stock building | carried reset | - |
|
||
|
||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||
|
||
| ID | Niveau | Message | Condition |
|
||
|---|---|---|---|
|
||
| `OUT_OF_FOOD_STOCK` | Alerte | "Stock de nourriture vide." | stock=0 |
|
||
| `FEEDER_OVERLOADED` | Warning | "Nourisseur débordé." | trop tâches |
|
||
| `FEED_FILLED` | Info | "Mangeoire remplie." | fin |
|
||
|
||
## Annexes UX/UI
|
||
|
||
### 1. Expérience Utilisateur (UX)
|
||
|
||
#### Description UX (tableau détaillé)
|
||
|
||
| Parcours | But | Friction | Réduction clics |
|
||
|---|---|---|---|
|
||
| Automatiser nourrissage | éviter morts | manque stock | deep-link menu achats |
|
||
| Prioriser bébés | survie | réglages | preset “bébés d’abord” |
|
||
|
||
#### Description UI (tableau détaillé)
|
||
|
||
| Composant | Contenu | États |
|
||
|---|---|---|
|
||
| Panel nourisseur | capacity, tâches | moving/filling |
|
||
| Badge faim | icône rouge | clignote |
|
||
|
||
#### Emplacement (tableau détaillé)
|
||
|
||
| Zone UI | Position | Notes |
|
||
|---|---|---|
|
||
| HUD | menu employés | - |
|
||
| Enclos | jauge auge | overlay |
|
||
|
||
#### Intégration (tableau détaillé)
|
||
|
||
| Intégration | Contrat | Notes |
|
||
|---|---|---|
|
||
| Stock nourriture | global | pas de cache |
|
||
| Nourriture spéciale | ciblée | cf. spec |
|
||
|
||
#### Navigation (tableau détaillé)
|
||
|
||
| Action | Chemin | Résultat |
|
||
|---|---|---|
|
||
| Ouvrir panel | clic nourisseur | panel |
|
||
| Forcer nourrir | clic enclos | tâche |
|
||
|
||
#### Événements (tableau détaillé)
|
||
|
||
| Event UI | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `OPEN_FEEDER_PANEL` | clic | panel |
|
||
| `CLICK_FORCE_FEED` | bouton | urgence |
|
||
|
||
#### Assets Skinables
|
||
|
||
##### Musiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée | Notes |
|
||
|---|---|---:|---|
|
||
| `feeder_loop.mp3` | ambiance | loop | discret |
|
||
|
||
##### Sons (tableau détaillé)
|
||
|
||
| Asset | Usage | Volume |
|
||
|---|---|---|
|
||
| `pour_food.mp3` | verse | faible |
|
||
| `ui_food_empty.mp3` | stock 0 | moyen |
|
||
|
||
##### Graphiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Contraintes |
|
||
|---|---|---|
|
||
| `feeder_sprite_[dir].png` | sprite | 4 dirs |
|
||
| `fx_grains.png` | FX | overlay |
|
||
|
||
##### Images (tableau détaillé)
|
||
|
||
| Asset | Usage |
|
||
|---|---|
|
||
| `icon_feeder_bag.png` | icône |
|
||
| `portrait_feeder.png` | panel |
|
||
|
||
##### Vidéos (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée |
|
||
|---|---|---:|
|
||
| `feed_success.webm` | popup | 0.8s |
|
||
|
||
##### Animations (tableau détaillé)
|
||
|
||
| Animation | Déclencheur | Notes |
|
||
|---|---|---|
|
||
| grains qui tombent | filling | loop |
|
||
| jauge auge + | fin | 0.4s |
|
||
|
||
##### Couleurs (tableau détaillé)
|
||
|
||
| Token | Valeur | Usage |
|
||
|---|---|---|
|
||
| `feeder_primary` | #E67E22 | UI |
|
||
| `feeder_alert` | #E74C3C | faim |
|
||
|
||
##### Textes (tableau détaillé)
|
||
|
||
| Clé | FR | EN |
|
||
|---|---|---|
|
||
| `feeder.force` | Nourrir maintenant | Feed now |
|
||
| `food.empty` | Stock vide | Empty stock |
|
||
|
||
##### Formes (tableau détaillé)
|
||
|
||
| Élément | Forme | Notes |
|
||
|---|---|---|
|
||
| Jauge auge | barre | lisible |
|
||
| Badge faim | rond | clignote |
|