# Spécifications : Achat et Upgrade (Générique)

## Mécanique
- **Coût** : Payé en Pièces (ou Unités de Recherche pour la Carte du Monde).
- **Progression** : 7 Niveaux pour la plupart des éléments.
- **Formule de Coût** : `Coût_Niveau_N = Coût_Base * Multiplicateur^(N-1)`.

## Validation
- L'achat est instantané si les fonds sont disponibles.
- L'effet est immédiat (pas de temps de construction, sauf si spécifié autrement).

# Annexes Techniques

## 1. Données et États
### Modèle de Données (JSON)
**Transaction** :
```json
{
  "id": "uuid",
  "type": "BUY/UPGRADE",
  "item_type": "string",
  "item_id": "uuid",
  "cost": "int",
  "currency": "coins",
  "status": "enum (SUCCESS, FAILED)",
  "failure_reason": "string (optional)",
  "timestamp": "date",
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}
```

### Caractéristiques Initiales
**Solde Joueur** : Voir `joueur.md`.

### Scores Initiaux
**Dépenses Totales** : 0.

## 2. Cycles de Vie et Apparition
### Conditions d'Apparition
**Menu Achat** : Accessible via le HUD.

### Conditions de Disparition
**Fermeture Menu**.

### Hérédité
**Historique** : Les transactions sont loggées pour les stats.

## 3. Impacts Environnementaux
### Impact Température
**Isolation** : Les bâtiments de haut niveau résistent mieux aux coûts énergétiques (Chauffage/Clim -10% par niveau).

### Impact Milieu (Biome)
**Adaptation** : Construire sur un biome "difficile" (Toundra, Désert) coûte +20% à l'achat initial (frais de fondations).

### Impact Saisons
**Soldes** : Certains items moins chers en Hiver (-15% sur les chauffages).
**Surcharge** : En Été, les stands de glaces coûtent +10% à l'achat (demande forte).

### Impact Heure / Jour-Nuit
**Tarif de Nuit** : Les travaux (Upgrades) lancés la nuit (22h-06h) sont 5% moins chers (main d'œuvre nocturne).

## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
**Couveuses** : L'achat d'upgrades "Confort" pour les enclos augmente la fertilité de +2%.

### Impact Mort
**Sécurité** : Les clôtures de haut niveau réduisent le risque de fuite et d'accident mortel de 99%.

### Impact Nourriture
**Stockage** : Les upgrades de "Réserve" permettent d'acheter la nourriture en gros (-5% prix unitaire).

### Impact Attractivité (Visiteurs/Animaux)
**Nouveauté** : Chaque nouvel achat génère un boost temporaire d'attractivité ("C'est tout neuf !" +10% pendant 2 jours).

### Impact Valeur
**Inflation** : Les prix augmentent légèrement si le joueur est très riche (équilibrage dynamique).
**Revente** : Un bâtiment peut être revendu pour 50% de son coût total (base + upgrades).

## 5. Impacts Logistiques et Économiques
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
**Livraison** : Instantanée pour les bâtiments, temps de trajet pour les animaux.
**Construction** : Les gros bâtiments (Laboratoire, Centre Recherche) prennent 24h in-game à être opérationnels.

### Dépenses (Boutiques/Visiteurs)
**Investissement** : Dépense principale du joueur.
**Maintenance** : Chaque niveau d'upgrade augmente les frais d'entretien quotidiens de +5%.

### Trajet Visiteurs
**Obstacle** : Un bâtiment en construction bloque le passage, forçant les visiteurs à faire un détour.

## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
*   **Promo** : Offre limitée dans le temps (-20%).

## 7. Progression
### Tableau des Upgrades
| Niveau | Multiplicateur Coût | Effet Général | Apparence |
| :--- | :--- | :--- | :--- |
| 1 | x1.0 | Fonctionnalité de base | Standard |
| 2 | x1.5 | +10% Efficacité | +Détails |
| 3 | x2.2 | +25% Efficacité | +Couleurs |
| 4 | x3.3 | +45% Efficacité | +Éclairage |
| 5 | x5.0 | +70% Efficacité | +Enseigne |
| 6 | x7.5 | +100% Efficacité | +Moderne |
| 7 | x11.0 | +150% Efficacité | Futuriste (Or/Platine) |

## 8. Logique et Interfaces
### Pseudo-code Impacts
```javascript
function processPurchase(player, item):
  # Vérification pré-requis (ex: niveau joueur)
  if player.level < item.required_level:
     emitEvent("BUY_FAIL", "Niveau joueur insuffisant")
     return

  # Vérification espace (si applicable)
  if item.is_physical and not map.hasSpace(item.size):
     emitEvent("BUY_FAIL", "Pas de place")
     return

  if player.coins >= item.cost:
    player.coins -= item.cost
    player.inventory.add(item)
    emitEvent("BUY_SUCCESS")
    logTransaction(player, item, "SUCCESS")
  else:
    emitEvent("BUY_FAIL", "Fonds insuffisants")
    logTransaction(player, item, "FAILED")
```

### Messages d'Infos / Alerte
| ID | Niveau | Message |
| :--- | :--- | :--- |
| `FUNDS_LOW` | Alerte | "Pas assez de pièces !" |
| `LEVEL_LOW` | Alerte | "Niveau X requis pour acheter ceci." |
| `NO_SPACE` | Alerte | "Impossible de construire ici." |

# 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)
### Interface d'Achat (Consultation)
**Description UX** : Le joueur ouvre le menu de construction ou d'upgrade.
**Description UI** : Grille d'éléments achetables. Prix affiché clairement. Grisé si trop cher.
**Emplacement** : HUD Bas.
**Intégration** : Menu déroulant ou fixe.
**Navigation** : Clic Catégorie -> Liste Objets.
**Événements** : `OPEN_SHOP_MENU`.

#### Assets
- **Musiques** : Jingle "Caisse Enregistreuse" (court).
- **Sons** : `ui_hover.mp3`.
- **Graphiques** : Icônes Bâtiments.
- **Images** : Sprites des bâtiments dans le menu (2D isométrique).
- **Vidéos** : Mini-clip "Construction en cours" (optionnel).
- **Animations** : Bouton rebondit au survol.
- **Couleurs** : Fond sombre, Texte clair.
- **Textes** : Prix, Nom.
- **Formes** : Cartes carrées avec coins arrondis.

### Confirmation Achat (Action)
**Description UX** : Le joueur clique pour acheter.
**Description UI** : Feedback immédiat (son + animation pièces déduites).
**Emplacement** : HUD.
**Intégration** : Immédiat.
**Navigation** : Clic Achat.
**Événements** : `BUY_ITEM`.

#### Assets
- **Musiques** : Jingle "Succès" (trompettes légères).
- **Sons** : `buy_success.mp3`.
- **Graphiques** : Particules de pièces d'or.
- **Images** : Icône "Vendu" tamponnée.
- **Vidéos** : Transition de fermeture de menu (wipe).
- **Animations** : Compteur pièces descend.
- **Couleurs** : Rouge (déduction).
- **Textes** : "-500".
- **Formes** : Effet d'onde de choc circulaire au clic.
