# ╔══════════════════════════════════════════════════════════════════════╗
# ║              MINI-ROYAUME — Jeu de stratégie narratif               ║
# ║                        30 tours pour régner                         ║
# ║                                                                      ║
# ║  5 ressources : Peuple · Or · Armée · Magie · Réputation            ║
# ║  Chaque tour : 1 Loi, 1 Construction, 1 Alliance OU 1 Guerre        ║
# ║  Événements aléatoires, crises, récompenses, fins multiples         ║
# ║                                                                      ║
# ║  ASSETS :                                                            ║
# ║  Sons : bibliothèque JDR-Bot (cyril-fiesta.fr) — usage libre        ║
# ║  Images : OpenGameArt.org (CC0 / CC-BY)                             ║
# ╚══════════════════════════════════════════════════════════════════════╝

titre: "⚜️ MINI-ROYAUME — (v_partiesroyaume_o_v règnes · 🏆 Record : v_scorerecord_o_v)"
markdown: story
police: serif

# 🎵 SOURCES AUDIO (freesound.org — usage libre)
# Ambiance château / diplomatie / galeries : "Sunday Morning In The Great Hall" — FoolBoyMedia (CC-BY-NC 4.0)
#   https://freesound.org/people/FoolBoyMedia/sounds/333800/
# Tension / crise / danger : "Empty Threat" — BloodPixelHero (CC-BY 4.0)
#   https://freesound.org/people/BloodPixelHero/sounds/575659/
# Paisible / récolte / survie : "Spring Birds & Woodpeckers (Loop)" — Resaural (CC0)
#   https://freesound.org/people/Resaural/sounds/634511/
# Arcanique / méditation : "Mystical Whisper" — Artem_Zaitsev (CC0)
#   https://freesound.org/people/Artem_Zaitsev/sounds/837983/
# Festival / célébration : "Dance and Spin Around (short ver.)" — AudioCoffee (CC-BY-NC 4.0)
#   https://freesound.org/people/AudioCoffee/sounds/733400/
# Défaite / game over : "Epic Heroic Orchestral Dramatic" — SoundFlakes (CC-BY 4.0)
#   https://freesound.org/people/SoundFlakes/sounds/423499/

vars:
  # ── Ressources principales (0-100) ──────────────────────────
  peuple:
    valeur: 50
    description: "Bonheur et loyauté du peuple (0-100)"
  or:
    valeur: 40
    description: "Trésor royal (0-100)"
  armee:
    valeur: 30
    description: "Puissance militaire (0-100)"
  magie:
    valeur: 20
    description: "Énergie arcanique du royaume (0-100)"
  reput:
    valeur: 50
    description: "Réputation diplomatique (0-100)"
  # ── Tour et progression ──────────────────────────────────────
  tour:
    valeur: 0
    description: "Tour actuel (1-30)"
  score:
    valeur: 0
    description: "Score final calculé en fin de partie"
  scorebase:
    valeur: 0
    description: "Somme pondérée des ressources (intermédiaire calcul)"
  # ── Événements aléatoires du tour ───────────────────────────
  evtype:
    valeur: 0
    description: "Type d'événement : 1=crise 2=bonne nouvelle 3=visiteur 4=calme"
  evrand:
    valeur: 0
    description: "Sous-type d'événement aléatoire"
  # ── Tirage action ────────────────────────────────────────────
  actionrand:
    valeur: 0
    description: "Sous-tirage pour variante d'action"
  # ── Compteurs internes ───────────────────────────────────────
  victoires:
    valeur: 0
    description: "Batailles gagnées"
  constructions:
    valeur: 0
    description: "Constructions réalisées"
  lois:
    valeur: 0
    description: "Lois promulguées"
  alliances:
    valeur: 0
    description: "Alliances formées"
  guerres:
    valeur: 0
    description: "Guerres déclenchées (info score)"
  # ── Bonus passifs (acquis par constructions) ─────────────────
  bonusor:
    valeur: 0
    description: "Bonus d'or par tour (marché)"
  bonuspeuple:
    valeur: 0
    description: "Bonus de peuple par tour (temple)"
  bonusarmee:
    valeur: 0
    description: "Bonus armée par tour (caserne)"
  bonusmagie:
    valeur: 0
    description: "Bonus magie par tour (tour des mages)"
  # ── Bâtiments construits (flags) ────────────────────────────
  bmarche:
    valeur: 0
    description: "Marché construit (0/1)"
  btemple:
    valeur: 0
    description: "Temple construit (0/1)"
  bcaserne:
    valeur: 0
    description: "Caserne construite (0/1)"
  btour:
    valeur: 0
    description: "Tour des mages construite (0/1)"
  bfort:
    valeur: 0
    description: "Forteresse construite (0/1)"
  bbibliotheque:
    valeur: 0
    description: "Bibliothèque construite (0/1)"
  # ── Dé interne ──────────────────────────────────────────────
  de:
    valeur: 0
    description: "Dé générique (1-6)"
  # ── Alerte seuil bas (affichée une fois) ─────────────────────────────
  alertpeuple:
    valeur: 0
    description: "Alerte peuple déjà montrée"
  alertor:
    valeur: 0
    description: "Alerte or déjà montrée"
  alertarmee:
    valeur: 0
    description: "Alerte armée déjà montrée"
  alertreput:
    valeur: 0
    description: "Alerte réputation déjà montrée"

vars_online:
  scorerecord_o: 0
  partiesroyaume_o: 0

# ─────────────────────────────────────────────────────────────────────────
# ÉVÉNEMENTS GLOBAUX
# ─────────────────────────────────────────────────────────────────────────
evenements_globaux:
  # Plafonds
  - etat: on
    si: "v_peuple_v > 100"
    faire: "peuple.=.100"
  - etat: on
    si: "v_or_v > 100"
    faire: "or.=.100"
  - etat: on
    si: "v_armee_v > 100"
    faire: "armee.=.100"
  - etat: on
    si: "v_magie_v > 100"
    faire: "magie.=.100"
  - etat: on
    si: "v_reput_v > 100"
    faire: "reput.=.100"
  # Planchers
  - etat: on
    si: "v_peuple_v < 0"
    faire: "peuple.=.0"
  - etat: on
    si: "v_or_v < 0"
    faire: "or.=.0"
  - etat: on
    si: "v_armee_v < 0"
    faire: "armee.=.0"
  - etat: on
    si: "v_magie_v < 0"
    faire: "magie.=.0"
  - etat: on
    si: "v_reput_v < 0"
    faire: "reput.=.0"
  # Calcul du score centralisé (utilisé par fin + défaites)
  # Score pondéré : peuple x2, or x1.5, armée x1, magie x1.5, réputation x2
  # + bonus actions + bonus victoires (x5) - pénalité guerres excessives
  - id: calcul_score
    etat: on
    si: "~"
    faire:
      # Peuple x2, Réputation x2, Or x1, Magie x1, Armée x1
      - "scorebase.=.0"
      - "scorebase.+.v_peuple_v"
      - "scorebase.+.v_peuple_v"
      - "scorebase.+.v_reput_v"
      - "scorebase.+.v_reput_v"
      - "scorebase.+.v_or_v"
      - "scorebase.+.v_magie_v"
      - "scorebase.+.v_armee_v"
      # Bonus actions
      - "scorebase.+.v_constructions_v"
      - "scorebase.+.v_lois_v"
      - "scorebase.+.v_alliances_v"
      - "score.=.v_scorebase_v"
      # Bonus victoires x5
      - "scorebase.=.v_victoires_v"
      - "scorebase.*.5"
      - "score.+.v_scorebase_v"
  # Alertes seuil bas — une seule fois par ressource
  - etat: on
    si: "v_peuple_v <= 15 v_alertpeuple_v = 0"
    faire: "alertpeuple.=.1"
    texte: "```systeme\n⚠️ ALERTE : Le peuple gronde ! (Peuple ≤ 15) — Une révolte couve si vous n'agissez pas.```"
  - etat: on
    si: "v_or_v <= 10 v_alertor_v = 0"
    faire: "alertor.=.1"
    texte: "```systeme\n⚠️ ALERTE : Le trésor est vide ! (Or ≤ 10) — Vos ministres réclament des impôts.```"
  - etat: on
    si: "v_armee_v <= 10 v_alertarmee_v = 0"
    faire: "alertarmee.=.1"
    texte: "```systeme\n⚠️ ALERTE : L'armée se débande ! (Armée ≤ 10) — Vos frontières sont vulnérables.```"
  - etat: on
    si: "v_reput_v <= 10 v_alertreput_v = 0"
    faire: "alertreput.=.1"
    texte: "```systeme\n⚠️ ALERTE : Votre réputation est en ruines ! (Réputation ≤ 10) — Les ambassades ferment leurs portes.```"
  # Reset alertes si ressource remonte
  - etat: on
    si: "v_peuple_v > 15"
    faire: "alertpeuple.=.0"
  - etat: on
    si: "v_or_v > 10"
    faire: "alertor.=.0"
  - etat: on
    si: "v_armee_v > 10"
    faire: "alertarmee.=.0"
  - etat: on
    si: "v_reput_v > 10"
    faire: "alertreput.=.0"

997_globaux: avant

# ─────────────────────────────────────────────────────────────────────────
# SALLES
# ─────────────────────────────────────────────────────────────────────────
salles:

# ═══════════════════════════════════════════════════════
# INTRO & SETUP
# ═══════════════════════════════════════════════════════

- id: intro
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    ⚜️ **MINI-ROYAUME**
    *30 tours pour bâtir une légende — ou disparaître*
    ```
    ```story
    La salle du trône est silencieuse.
    La couronne repose sur le coussin de velours devant vous.

    Votre conseiller Aldwyn s'agenouille et lève les yeux vers vous :

    *« Sire. Le royaume hérite de cinquante âmes, quarante pièces d'or, une armée naissante et une réputation à construire. Trente lunes s'écouleront. Après quoi, l'histoire jugera votre règne. »*

    *« Chaque tour, vous choisirez : une loi à décréter, un bâtiment à élever, une alliance à nouer — ou une guerre à déclarer. Mais le royaume a sa propre vie : des crises surgiront, des visiteurs frapperont à vos portes, des bonnes nouvelles viendront parfois. »*

    *« Cinq ressources vous définissent. Aucune n'est secondaire. »*
    ```
    ```systeme
    🏰 Peuple — loyauté et bonheur de vos sujets
    💰 Or — trésor royal, finance tout le reste
    ⚔️ Armée — défense et conquête
    🔮 Magie — puissance arcanique, soins, découvertes
    👑 Réputation — diplomatie, alliances, allure d'un grand règne
    ```
  choix:
    - commande: commencer
      bouton: "👑 Ceindre la couronne"
      vers: debut
      si: "~"

- id: debut
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "tour.=.1"
        - "partiesroyaume_o.+.1"
      vers: nouveau_tour

# ═══════════════════════════════════════════════════════
# BOUCLE PRINCIPALE — NOUVEAU TOUR
# ═══════════════════════════════════════════════════════

- id: nouveau_tour
  texte: "null"
  init:
    - var: evrand
      valeur: "%=1:6"
    - var: de
      valeur: "%=1:6"
  evenements:
    # Fin de partie à T=30
    - si: "v_tour_v > 30"
      vers: calcul_fin
    # Appliquer bonus passifs
    - si: "~"
      faire:
        - "or.+.v_bonusor_v"
        - "peuple.+.v_bonuspeuple_v"
        - "armee.+.v_bonusarmee_v"
        - "magie.+.v_bonusmagie_v"
    # Feedback passif si des bâtiments génèrent des revenus
    - si: "v_bonusor_v >= 1"
      texte:
        - texte: "```systeme\n💰 +v_bonusor_v Or (revenus du Marché)\n```"
          si: "v_bmarche_v = 1"
    - si: "v_bonuspeuple_v >= 1"
      texte: "```systeme\n🏰 +v_bonuspeuple_v Peuple (bénédictions du Temple)\n```"
    - si: "v_bonusarmee_v >= 1"
      texte:
        - texte: "```systeme\n⚔️ +v_bonusarmee_v Armée (recrues de la Caserne)\n```"
          si: "v_bcaserne_v = 1"
        - texte: "```systeme\n⚔️ +v_bonusarmee_v Armée (garnison de la Forteresse)\n```"
          si: "v_bfort_v = 1"
        - texte: "```systeme\n⚔️ +v_bonusarmee_v Armée (revenus militaires)\n```"
          si: "~"
    - si: "v_bonusmagie_v >= 1"
      texte:
        - texte: "```systeme\n🔮 +v_bonusmagie_v Magie (études de la Tour des Mages)\n```"
          si: "v_btour_v = 1 v_bbibliotheque_v = 0"
        - texte: "```systeme\n🔮 +v_bonusmagie_v Magie (recherches de la Bibliothèque)\n```"
          si: "v_bbibliotheque_v = 1 v_btour_v = 0"
        - texte: "```systeme\n🔮 +v_bonusmagie_v Magie (synergie Tour & Bibliothèque)\n```"
          si: "v_btour_v = 1 v_bbibliotheque_v = 1"
        - texte: "```systeme\n🔮 +v_bonusmagie_v Magie (revenus arcaniques)\n```"
          si: "~"
    # Tirage pondéré du type d'événement (crises plus fréquentes)
    - si: "~"
      faire: "evtype.=.%1:4,2:4,3:2,4:2"
    # Dispatcher événement
    - si: "v_evtype_v = 1"
      vers: crise
    - si: "v_evtype_v = 2"
      vers: bonne_nouvelle
    - si: "v_evtype_v = 3"
      vers: visiteur
    - si: "~"
      vers: calme

# ═══════════════════════════════════════════════════════
# HUD — Encadré persistant
# ═══════════════════════════════════════════════════════

- id: hub_action
  texte:
    - texte: "```story\n*« Sire, votre armée est dangereusement faible. Un raid ennemi pourrait tout réduire à néant. »*\n```"
      si: "v_armee_v <= 15"
    - texte: "```story\n*« Sire, le peuple murmure dans les ruelles. Il faudra agir vite. »*\n```"
      si: "v_peuple_v <= 20"
    - texte: "```story\n*« Sire, le trésor se vide. Sans or, rien ne tient. »*\n```"
      si: "v_or_v <= 15"
    - texte: "```story\n*« Sire, les ambassades murmurent — votre réputation se fissure. »*\n```"
      si: "v_reput_v <= 20"
    - texte: "```story\n*« Sire, votre réputation brille à travers les royaumes. Les envoyés affluent. »*\n```"
      si: "v_reput_v >= 80"
    - texte: "```story\n*« Sire, la magie de votre royaume fascine les érudits du monde entier. »*\n```"
      si: "v_magie_v >= 75"
    - texte: "```story\n*« Sire, tout semble en ordre. Les prochaines décisions seront décisives. »*\n```"
      si: "~"
    - "```systeme\nQue décrétez-vous ce tour, Sire ?\n```"
  encadre:
    position: haut
    couleur-texte: "#c9a84c"
    texte:
      - texte: "⚜️ Tour **v_tour_v**/30  •  🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v"
        taille: 14
        police: serif
  choix:
    - commande: loi
      bouton: "📜 Loi  — décret royal"
      vers: menu_loi
      si: "~"
    - commande: construction
      bouton: "🏗️ Construction  — bâtir durablement"
      vers: menu_construction
      si: "~"
    - commande: alliance
      bouton: "🤝 Alliance  — diplomatie"
      vers: menu_alliance
      si: "~"
    - commande: guerre
      bouton: "⚔️ Guerre  — conquête ou défense"
      vers: menu_guerre
      si: "~"

# ═══════════════════════════════════════════════════════
# ÉVÉNEMENTS ALÉATOIRES
# ═══════════════════════════════════════════════════════

- id: crise
  texte: "null"
  evenements:
    - si: "v_evrand_v = 1"
      vers: crise_epidemie
    - si: "v_evrand_v = 2"
      vers: crise_incendie
    - si: "v_evrand_v = 3"
      vers: crise_trahison
    - si: "v_evrand_v = 4"
      vers: crise_disette
    - si: "v_evrand_v = 5"
      vers: crise_invasion
    - si: "~"
      vers: crise_revolte

- id: bonne_nouvelle
  texte: "null"
  evenements:
    - si: "v_evrand_v = 1"
      vers: bn_recolte
    - si: "v_evrand_v = 2"
      vers: bn_merchant
    - si: "v_evrand_v = 3"
      vers: bn_heroine
    - si: "v_evrand_v = 4"
      vers: bn_magie
    - si: "v_evrand_v = 5"
      vers: bn_festival
    - si: "~"
      vers: bn_ambassadeur

- id: visiteur
  texte: "null"
  evenements:
    - si: "v_evrand_v <= 2"
      vers: visit_mage
    - si: "v_evrand_v <= 4"
      vers: visit_mercenaire
    - si: "~"
      vers: visit_espion

- id: calme
  texte:
    - texte: |
        ```story
        ☀️ **Journée tranquille**
        *Les cloches sonnent, les marchés bourdonnent. Le peuple semble apaisé.*
        ```
      si: "v_evrand_v <= 2"
    - texte: |
        ```story
        🌙 **Nuit calme au palais**
        *Vos espions ne signalent rien. Vos ministres soufflent. Vous aussi.*
        ```
      si: "v_evrand_v <= 4"
    - texte: |
        ```story
        🌤️ **Rien à signaler**
        *Aldwyn entre, sourit, et repart. Bonne journée.*
        ```
      si: "~"
  evenements:
    # Calme varié selon evrand : plutôt peuple, or, ou magie selon le tirage
    - si: "v_evrand_v <= 2"
      faire: "peuple.+.5"
      vers: hub_action
      texte: "🏰 +5 Peuple (calme bienfaisant — les enfants jouent dans les rues)"
    - si: "v_evrand_v <= 4"
      faire:
        - "or.+.4"
        - "peuple.+.2"
      vers: hub_action
      texte: "💰 +4 Or · 🏰 +2 Peuple (petits commerces florissants)"
    - si: "~"
      faire: "magie.+.4"
      vers: hub_action
      texte: "🔮 +4 Magie (nuit propice aux études arcaniques)"

# ── CRISES ─────────────────────────────────────────────

- id: crise_epidemie
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danger.mp3>>
    ```story
    🦠 **Épidémie !**
    Une fièvre mystérieuse se répand dans les faubourgs.
    Les médecins sont dépassés. Le peuple a peur.
    ```
  evenements:
    - si: "v_magie_v >= 25"
      faire:
        - "peuple.-.8"
        - "magie.-.10"
      vers: hub_action
      texte: "🔮 Vos mages enrayent partiellement l'épidémie. 🏰 -8 Peuple · 🔮 -10 Magie"
    - si: "~"
      faire:
        - "peuple.-.18"
        - "or.-.8"
      vers: hub_action
      texte: "💀 L'épidémie fait des ravages. 🏰 -18 Peuple · 💰 -8 Or (soins d'urgence)"

- id: crise_incendie
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danger.mp3>>
    ```story
    🔥 **Grand Incendie !**
    Le quartier des artisans est en flammes.
    Toute une nuit de travail de vos soldats pour l'éteindre.
    ```
  evenements:
    - si: "v_armee_v >= 20"
      faire:
        - "or.-.12"
        - "armee.-.5"
        - "peuple.+.5"
      vers: hub_action
      texte: "⚔️ L'armée maîtrise le feu. 💰 -12 Or · ⚔️ -5 Armée · 🏰 +5 Peuple (gratitude)"
    - si: "~"
      faire:
        - "or.-.20"
        - "peuple.-.12"
      vers: hub_action
      texte: "🔥 L'incendie ravage tout. 💰 -20 Or · 🏰 -12 Peuple"

- id: crise_trahison
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danger.mp3>>
    ```story
    🗡️ **Trahison dans la cour !**
    Un noble vous a vendu des secrets militaires à un royaume voisin.
    Votre espion l'a découvert — mais les dégâts sont faits.
    ```
  evenements:
    - si: "v_reput_v >= 40"
      faire:
        - "reput.-.15"
        - "armee.-.8"
      vers: hub_action
      texte: "👑 -15 Réputation · ⚔️ -8 Armée. Votre réputation absorbe le choc."
    - si: "~"
      faire:
        - "reput.-.25"
        - "armee.-.15"
        - "or.-.10"
      vers: hub_action
      texte: "💔 Catastrophe diplomatique. 👑 -25 Réputation · ⚔️ -15 Armée · 💰 -10 Or"

- id: crise_disette
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danger.mp3>>
    ```story
    🌾 **Mauvaise récolte !**
    Les greniers se vident. Des familles affamées se rassemblent aux portes du palais.
    ```
  evenements:
    - si: "v_or_v >= 25"
      faire:
        - "or.-.20"
        - "peuple.+.8"
      vers: hub_action
      texte: "💰 -20 Or (achat de vivres) · 🏰 +8 Peuple (distribution)"
    - si: "~"
      faire:
        - "peuple.-.22"
        - "reput.-.10"
      vers: hub_action
      texte: "💀 Famine. 🏰 -22 Peuple · 👑 -10 Réputation (incapacité à nourrir le peuple)"

- id: crise_invasion
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/goblin.wav>>
    ```story
    ⚔️ **Invasion ennemie !**
    Une armée ennemie franchit vos frontières du nord.
    Vos généraux vous attendent en salle de guerre.
    ```
  evenements:
    - si: "v_armee_v >= 35"
      faire:
        - "armee.-.15"
        - "reput.+.12"
        - "victoires.+.1"
      vers: hub_action
      texte: "⚔️ Victoire défensive ! ⚔️ -15 Armée (pertes) · 👑 +12 Réputation · 🏆 Victoire enregistrée"
    - si: "v_armee_v >= 15"
      faire:
        - "armee.-.20"
        - "or.-.15"
        - "peuple.-.10"
      vers: hub_action
      texte: "😤 Victoire à la Pyrrhus. ⚔️ -20 · 💰 -15 · 🏰 -10"
    - si: "~"
      faire:
        - "peuple.-.25"
        - "or.-.25"
        - "reput.-.20"
      vers: hub_action
      texte: "💀 Défaite ! Le royaume est pillé. 🏰 -25 · 💰 -25 · 👑 -20"

- id: crise_revolte
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danger.mp3>>
    ```story
    🔥 **Révolte populaire !**
    Des barricades dans les rues. Le peuple exige plus de justice.
    Votre garde personnelle vous demande des ordres.
    ```
  evenements:
    - si: "v_peuple_v >= 40"
      faire:
        - "peuple.-.10"
        - "reput.+.5"
        - "or.-.8"
      vers: hub_action
      texte: "🤝 Négociation réussie. 🏰 -10 · 👑 +5 · 💰 -8 (concessions)"
    - si: "v_armee_v >= 25"
      faire:
        - "peuple.-.20"
        - "armee.-.8"
        - "reput.-.15"
      vers: hub_action
      texte: "⚔️ Répression militaire. 🏰 -20 · ⚔️ -8 · 👑 -15 (brutalité)"
    - si: "~"
      faire:
        - "peuple.-.30"
        - "reput.-.20"
      vers: hub_action
      texte: "💀 La révolte s'étend. 🏰 -30 · 👑 -20"

# ── BONNES NOUVELLES ────────────────────────────────────

- id: bn_recolte
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/balade.mp3>>
    ```story
    🌾 **Récolte exceptionnelle !**
    Les greniers débordent. Les paysans chantent dans les champs.
    Aldwyn sourit pour la première fois depuis longtemps.
    *« Sire, le ciel vous est favorable ce jour. »*
    ```
  evenements:
    - si: "~"
      faire:
        - "or.+.15"
        - "peuple.+.12"
      vers: hub_action
      texte: "🌾 Les greniers sont pleins ! 💰 +15 Or · 🏰 +12 Peuple"

- id: bn_merchant
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    🛒 **Caravane marchande !**
    Une riche caravane venue du lointain Est demande l'autorisation de commercer dans votre capitale.
    Des soieries, des épices, des pierres précieuses — et beaucoup d'or.
    ```
  evenements:
    - si: "~"
      faire:
        - "or.+.20"
        - "reput.+.8"
      vers: hub_action
      texte: "🛒 Échanges florissants ! 💰 +20 Or · 👑 +8 Réputation (votre capitale rayonne)"

- id: bn_heroine
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/win.ogg>>
    ```story
    🗡️ **Une héroïne se présente !**
    Elle porte des cicatrices de cent batailles et une réputation qui la précède.
    *« Je sers les causes justes, pas les plus riches. Êtes-vous juste, Sire ? »*
    ```
  evenements:
    - si: "~"
      faire:
        - "armee.+.18"
        - "reput.+.10"
      vers: hub_action
      texte: "🗡️ Elle entre au service du royaume ! ⚔️ +18 Armée · 👑 +10 Réputation"

- id: bn_magie
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/meditation.mp3>>
    ```story
    🔮 **Découverte arcanique !**
    Vos chercheurs ont isolé un cristal de mana pur dans les mines royales.
    Sa lueur bleue illumine les galeries depuis trois jours.
    ```
  evenements:
    - si: "~"
      faire:
        - "magie.+.20"
        - "or.+.8"
      vers: hub_action
      texte: "🔮 Le cristal alimente vos tours ! 🔮 +20 Magie · 💰 +8 Or (valeur marchande)"

- id: bn_festival
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/danse.mp3>>
    ```story
    🎉 **Grand Festival Royal !**
    Le peuple célèbre l'anniversaire du royaume.
    Chants, banquets, feux d'artifice magiques.
    *Les rires vous parviennent jusqu'aux fenêtres du palais.*
    ```
  evenements:
    - si: "~"
      faire:
        - "peuple.+.20"
        - "reput.+.12"
        - "or.-.8"
      vers: hub_action
      texte: "🎉 La fête restera dans les mémoires ! 🏰 +20 Peuple · 👑 +12 Réputation · 💰 -8 Or"

- id: bn_ambassadeur
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    🤝 **Ambassadeur extraordinaire !**
    Un ambassadeur apporte en cadeau de la part d'un roi voisin : de l'or, et une promesse de paix.
    *« Mon souverain vous tient en haute estime, Sire. »*
    ```
  evenements:
    - si: "~"
      faire:
        - "or.+.12"
        - "reput.+.15"
        - "peuple.+.5"
      vers: hub_action
      texte: "🤝 La diplomatie porte ses fruits ! 💰 +12 Or · 👑 +15 Réputation · 🏰 +5 Peuple"

# ── VISITEURS ──────────────────────────────────────────

- id: visit_mage
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    🔮 **Un mage errant frappe à vos portes.**
    Il propose un marché : vous lui offrez l'hospitalité, il partage ses secrets arcaniques.
    *Aldwyn chuchote : « C'est risqué, Sire. Mais la magie de votre royaume est actuellement à v_magie_v. »*
    ```
  choix:
    - commande: accueillir
      bouton: "✅ Accueillir  (risque/récompense aléatoire)"
      vers: visit_mage_oui
      si: "~"
    - commande: renvoyer
      bouton: "❌ Renvoyer  (–5 Réputation)"
      vers: visit_mage_non
      si: "~"

- id: visit_mage_oui
  texte: "null"
  init:
    - var: de
      valeur: "%=1:6"
  evenements:
    - si: "v_de_v >= 4"
      faire:
        - "magie.+.22"
        - "reput.+.5"
      vers: hub_action
      texte: "✨ Excellent choix ! 🔮 +22 Magie · 👑 +5 Réputation. Le mage partage des secrets précieux."
    # Synergie bibliothèque : le mage trouve une bibliothèque et produit encore mieux
    - si: "v_bbibliotheque_v = 1"
      faire:
        - "magie.+.14"
        - "or.-.5"
      vers: hub_action
      texte: "📚 Le mage passe ses nuits dans votre bibliothèque. Un résultat modeste mais prometteur. 🔮 +14 Magie · 💰 -5 Or"
    - si: "~"
      faire:
        - "or.-.10"
        - "magie.+.8"
      vers: hub_action
      texte: "😕 Le mage mange beaucoup pour peu de résultats. 💰 -10 Or · 🔮 +8 Magie."

- id: visit_mage_non
  texte: "null"
  evenements:
    - si: "~"
      faire: "reput.-.5"
      vers: hub_action
      texte: "🚪 Vous renvoyez le mage. 👑 -5 Réputation (manque d'hospitalité)."

- id: visit_mercenaire
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    ⚔️ **Un chef mercenaire arrive.**
    Il propose ses troupes aguerries — contre une forte rémunération.
    *Votre armée est à v_armee_v. Votre trésor, à v_or_v. Vaut-il 20 pièces d'or ?*
    ```
  choix:
    - commande: recruter
      bouton: "💰 Recruter  (–20 Or, +25 Armée)"
      vers: visit_merc_oui
      si: "v_or_v >= 20"
      texte_ko: "Il vous faut 20 Or. Votre trésor ne suffit pas."
    - commande: refuser
      bouton: "❌ Refuser  (aucun effet)"
      vers: visit_merc_non
      si: "~"

- id: visit_merc_oui
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.20"
        - "armee.+.25"
      vers: hub_action
      texte: "⚔️ +25 Armée · 💰 -20 Or. Des soldats expérimentés rejoignent votre bannière."

- id: visit_merc_non
  texte: "null"
  evenements:
    - si: "~"
      vers: hub_action
      texte: "Le chef mercenaire repart chercher un employeur moins regardant."

- id: visit_espion
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    🕵️ **Une silhouette encapuchonnée se glisse dans vos appartements.**
    Ce n'est pas une menace — c'est une proposition.
    *« Je travaille pour personne et pour tout le monde, Sire. Je vends des informations. Intéressé ? »*

    *Aldwyn fronce les sourcils : « Ce genre de personnage coûte cher… mais peut rapporter gros. »*
    ```
  choix:
    - commande: payer
      bouton: "💰 Payer l'espion  (–15 Or, renseignements précieux)"
      vers: visit_espion_oui
      si: "v_or_v >= 15"
      texte_ko: "Vous n'avez pas 15 Or pour cette transaction."
    - commande: chasser
      bouton: "🚪 Chasser l'intrus  (aucun coût)"
      vers: visit_espion_non
      si: "~"

- id: visit_espion_oui
  texte: "null"
  init:
    - var: de
      valeur: "%=1:6"
  evenements:
    # Les infos permettent de déjouer une crise imminente → bonus reput + armée
    - si: "v_de_v >= 4"
      faire:
        - "or.-.15"
        - "armee.+.12"
        - "reput.+.10"
      vers: hub_action
      texte: "🕵️ Excellent ! Les renseignements déjouent un complot. 💰 -15 Or · ⚔️ +12 Armée · 👑 +10 Réputation"
    # Infos sur les routes commerciales → bonus or
    - si: "v_de_v >= 2"
      faire:
        - "or.-.15"
        - "or.+.22"
        - "reput.+.5"
      vers: hub_action
      texte: "🕵️ Des routes secrètes vous sont révélées. 💰 +7 Or net · 👑 +5 Réputation"
    # Fausse piste — vous avez été berné
    - si: "~"
      faire:
        - "or.-.15"
        - "reput.-.8"
      vers: hub_action
      texte: "🕵️ Arnaque ! Les informations étaient fausses. 💰 -15 Or · 👑 -8 Réputation (humiliation)"

- id: visit_espion_non
  texte: "null"
  evenements:
    - si: "~"
      vers: hub_action
      texte: "La silhouette disparaît dans les ombres. Aldwyn pousse un soupir de soulagement."

# ═══════════════════════════════════════════════════════
# MENU LOI
# ═══════════════════════════════════════════════════════

- id: menu_loi
  texte: |
    ```story
    📜 **DÉCRET ROYAL**
    Aldwyn déroule les parchemins devant vous.
    *« Quelle sera la loi de ce jour, Sire ? Chaque décret a ses partisans et ses adversaires. »*
    ```
    ```systeme
    Chaque loi est un compromis — enrichir le trésor mécontente le peuple, et vice-versa.
    Certaines lois comportent une part de hasard selon la réaction du peuple.
    ```
  choix:
    - commande: impot
      bouton: "💰 Lever des impôts  (+Or, –Peuple)"
      vers: loi_impot
      si: "~"
    - commande: amnistie
      bouton: "🕊️ Amnistie  (+Peuple, –Or)"
      vers: loi_amnistie
      si: "~"
    - commande: conscription
      bouton: "⚔️ Conscription  (+Armée, –Peuple)"
      vers: loi_conscription
      si: "~"
    - commande: liberte
      bouton: "🗽 Liberté de culte  (+Magie, +Réputation)"
      vers: loi_liberte
      si: "~"
    - commande: protectionnisme
      bouton: "🛡️ Protectionnisme  (+Or, –Réputation)"
      vers: loi_protectionnisme
      si: "~"
    - commande: investissement
      bouton: "🌱 Investissement public  (+Peuple, –Or)"
      vers: loi_investissement
      si: "~"
    - commande: retour
      bouton: "↩️ Retour"
      vers: hub_action
      si: "~"

- id: loi_impot
  texte: "null"
  init:
    - var: actionrand
      valeur: "%=1:3"
  evenements:
    - si: "v_actionrand_v = 1"
      faire:
        - "or.+.25"
        - "peuple.-.18"
        - "lois.+.1"
      vers: fin_tour
      texte: "📜 Le collecteur revient avec des sacs pleins… et des huées dehors. 💰 +25 Or · 🏰 -18 Peuple"
    - si: "v_actionrand_v = 2"
      faire:
        - "or.+.15"
        - "peuple.-.10"
        - "lois.+.1"
      vers: fin_tour
      texte: "📜 Les marchands ronchonnent mais paient. 💰 +15 Or · 🏰 -10 Peuple"
    - si: "~"
      faire:
        - "or.+.10"
        - "peuple.-.5"
        - "lois.+.1"
      vers: fin_tour
      texte: "📜 Une taxe mesurée. Le peuple murmure — mais ne se révolte pas. 💰 +10 Or · 🏰 -5 Peuple"

- id: loi_amnistie
  texte: "null"
  evenements:
    - si: "v_or_v >= 15"
      faire:
        - "peuple.+.22"
        - "or.-.15"
        - "reput.+.8"
        - "lois.+.1"
      vers: fin_tour
      texte: "🕊️ Amnistie proclamée. 🏰 +22 Peuple · 💰 -15 Or · 👑 +8 Réputation"
    - si: "~"
      faire:
        - "peuple.+.12"
        - "reput.+.5"
        - "lois.+.1"
      vers: fin_tour
      texte: "🕊️ Amnistie symbolique (trésor vide). 🏰 +12 Peuple · 👑 +5 Réputation"

- id: loi_conscription
  texte: "null"
  evenements:
    - si: "v_peuple_v >= 35"
      faire:
        - "armee.+.20"
        - "peuple.-.15"
        - "lois.+.1"
      vers: fin_tour
      texte: "⚔️ Conscription. ⚔️ +20 Armée · 🏰 -15 Peuple (résistance modérée)"
    - si: "~"
      faire:
        - "armee.+.12"
        - "peuple.-.25"
        - "reput.-.8"
        - "lois.+.1"
      vers: fin_tour
      texte: "⚔️ Conscription forcée sur population réduite. ⚔️ +12 · 🏰 -25 · 👑 -8"

- id: loi_liberte
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "magie.+.15"
        - "reput.+.12"
        - "peuple.+.8"
        - "lois.+.1"
      vers: fin_tour
      texte: "🗽 Liberté de culte promulguée. 🔮 +15 Magie · 👑 +12 Réputation · 🏰 +8 Peuple"

- id: loi_protectionnisme
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.+.18"
        - "reput.-.15"
        - "lois.+.1"
      vers: fin_tour
      texte: "🛡️ Frontières commerciales fermées. 💰 +18 Or · 👑 -15 Réputation"

- id: loi_investissement
  texte: "null"
  evenements:
    - si: "v_or_v >= 20"
      faire:
        - "peuple.+.20"
        - "or.-.20"
        - "reput.+.10"
        - "lois.+.1"
      vers: fin_tour
      texte: "🌱 Grands travaux publics. 🏰 +20 Peuple · 💰 -20 Or · 👑 +10 Réputation"
    - si: "~"
      faire:
        - "peuple.+.8"
        - "lois.+.1"
      vers: fin_tour
      texte: "🌱 Investissement limité (peu d'or). 🏰 +8 Peuple"

# ═══════════════════════════════════════════════════════
# MENU CONSTRUCTION
# ═══════════════════════════════════════════════════════

- id: menu_construction
  texte:
    - "```story\n🏗️ **GRANDS TRAVAUX**\n*« Vos architectes attendent vos ordres, Sire. Un bâtiment construit rapporte chaque tour — à vie. »*\n```"
    - texte: "```systeme\n✅ Marché Royal · +3 Or/tour\n```"
      si: "v_bmarche_v = 1"
    - texte: "```systeme\n✅ Temple de la Paix · +3 Peuple/tour\n```"
      si: "v_btemple_v = 1"
    - texte: "```systeme\n✅ Caserne · +3 Armée/tour\n```"
      si: "v_bcaserne_v = 1"
    - texte: "```systeme\n✅ Tour des Mages · +4 Magie/tour\n```"
      si: "v_btour_v = 1 v_bbibliotheque_v = 0"
    - texte: "```systeme\n✅ Tour des Mages · +4 Magie/tour  ⟶  +6 Magie/tour grâce à la synergie Bibliothèque !\n```"
      si: "v_btour_v = 1 v_bbibliotheque_v = 1"
    - texte: "```systeme\n✅ Forteresse des Pics · +5 Armée/tour\n```"
      si: "v_bfort_v = 1 v_bmarche_v = 0"
    - texte: "```systeme\n✅ Forteresse des Pics · +5 Armée/tour  ⟶  +2 Or/tour grâce à la synergie Marché !\n```"
      si: "v_bfort_v = 1 v_bmarche_v = 1"
    - texte: "```systeme\n✅ Grande Bibliothèque · +2 Magie/tour\n```"
      si: "v_bbibliotheque_v = 1 v_btour_v = 0"
    - texte: "```systeme\n✅ Grande Bibliothèque · +2 Magie/tour  ⟶  +6 Magie/tour grâce à la synergie Tour des Mages !\n```"
      si: "v_bbibliotheque_v = 1 v_btour_v = 1"
    - texte: "```systeme\n🔨 Aucun bâtiment construit — chaque construction rapporte à chaque tour.\n```"
      si: "v_constructions_v = 0"
  choix:
    - commande: marche
      bouton: "🏪 Marché (+Or passif, coût: 15 Or)"
      vers: build_marche
      si: "v_or_v >= 15 v_bmarche_v = 0"
      texte_ko: "Déjà construit ou pas assez d'or (15)."
      grise-si: "v_bmarche_v = 1"
    - commande: temple
      bouton: "⛪ Temple (+Peuple passif, coût: 12 Or)"
      vers: build_temple
      si: "v_or_v >= 12 v_btemple_v = 0"
      texte_ko: "Déjà construit ou pas assez d'or (12)."
      grise-si: "v_btemple_v = 1"
    - commande: caserne
      bouton: "🏰 Caserne (+Armée passif, coût: 18 Or)"
      vers: build_caserne
      si: "v_or_v >= 18 v_bcaserne_v = 0"
      texte_ko: "Déjà construit ou pas assez d'or (18)."
      grise-si: "v_bcaserne_v = 1"
    - commande: tourmages
      bouton: "🗼 Tour des Mages (+Magie passif, coût: 20 Or)"
      vers: build_tour
      si: "v_or_v >= 20 v_btour_v = 0"
      texte_ko: "Déjà construite ou pas assez d'or (20)."
      grise-si: "v_btour_v = 1"
    - commande: forteresse
      bouton: "🛡️ Forteresse (défense renforcée, coût: 25 Or)"
      vers: build_fort
      si: "v_or_v >= 25 v_bfort_v = 0"
      texte_ko: "Déjà construite ou pas assez d'or (25)."
      grise-si: "v_bfort_v = 1"
    - commande: bibliotheque
      bouton: "📚 Bibliothèque (+Magie +Réputation, coût: 15 Or)"
      vers: build_biblio
      si: "v_or_v >= 15 v_bbibliotheque_v = 0"
      texte_ko: "Déjà construite ou pas assez d'or (15)."
      grise-si: "v_bbibliotheque_v = 1"
    - commande: renforcer
      bouton: "🔨 Renforcer les fortifications (sans bâtiment fixe)"
      vers: build_renfort
      si: "v_or_v >= 10"
      texte_ko: "Pas assez d'or (10)."
    - commande: retour
      bouton: "↩️ Revoir les options"
      vers: hub_action
      si: "~"

- id: build_marche
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.15"
        - "bmarche.=.1"
        - "bonusor.+.3"
        - "constructions.+.1"
      texte: "🏪 Marché Royal construit ! 💰 -15 Or · Bonus permanent : +3 Or/tour"
    # Synergie Forteresse : le marché profite des garnisons → +2 Or/tour supplémentaire
    - si: "v_bfort_v = 1"
      faire: "bonusor.+.2"
      texte: "⚡ **Synergie Marché + Forteresse !** Les soldats dépensent leur solde en ville. +2 Or/tour supplémentaire."
    - si: "~"
      vers: fin_tour

- id: build_temple
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.12"
        - "btemple.=.1"
        - "bonuspeuple.+.3"
        - "constructions.+.1"
        - "peuple.+.8"
      vers: fin_tour
      texte: "⛪ Temple de la Paix construit ! 💰 -12 Or · 🏰 +8 Peuple · Bonus permanent : +3 Peuple/tour"

- id: build_caserne
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.18"
        - "bcaserne.=.1"
        - "bonusarmee.+.3"
        - "constructions.+.1"
        - "armee.+.10"
      vers: fin_tour
      texte: "🏰 Caserne construite ! 💰 -18 Or · ⚔️ +10 Armée · Bonus permanent : +3 Armée/tour"

- id: build_tour
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.20"
        - "btour.=.1"
        - "bonusmagie.+.4"
        - "constructions.+.1"
        - "magie.+.12"
      texte: "🗼 Tour des Mages érigée ! 💰 -20 Or · 🔮 +12 Magie · Bonus permanent : +4 Magie/tour"
    # Synergie Bibliothèque : échanges entre chercheurs → +2 Magie/tour supplémentaire
    - si: "v_bbibliotheque_v = 1"
      faire: "bonusmagie.+.2"
      texte: "⚡ **Synergie Tour + Bibliothèque !** Les mages et les érudits s'échangent leurs savoirs. +2 Magie/tour supplémentaire."
    - si: "~"
      vers: fin_tour

- id: build_fort
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.25"
        - "bfort.=.1"
        - "bonusarmee.+.5"
        - "constructions.+.1"
        - "armee.+.15"
        - "reput.+.8"
      texte: "🛡️ Forteresse des Pics construite ! 💰 -25 Or · ⚔️ +15 Armée · 👑 +8 Réputation · Bonus : +5 Armée/tour"
    # Synergie Marché : les garnisons stimulent l'économie locale → +2 Or/tour
    - si: "v_bmarche_v = 1"
      faire: "bonusor.+.2"
      texte: "⚡ **Synergie Forteresse + Marché !** Les soldats font prospérer les commerçants locaux. +2 Or/tour supplémentaire."
    - si: "~"
      vers: fin_tour

- id: build_biblio
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.15"
        - "bbibliotheque.=.1"
        - "bonusmagie.+.2"
        - "constructions.+.1"
        - "magie.+.8"
        - "reput.+.10"
      texte: "📚 Grande Bibliothèque construite ! 💰 -15 Or · 🔮 +8 Magie · 👑 +10 Réputation · Bonus : +2 Magie/tour"
    # Synergie Tour des Mages : les deux institutions s'alimentent → +2 Magie/tour
    - si: "v_btour_v = 1"
      faire: "bonusmagie.+.2"
      texte: "⚡ **Synergie Bibliothèque + Tour des Mages !** Les archives et les tours de recherche se complètent. +2 Magie/tour supplémentaire."
    - si: "~"
      vers: fin_tour

- id: build_renfort
  texte: "null"
  init:
    - var: actionrand
      valeur: "%=1:3"
  evenements:
    - si: "v_actionrand_v = 1"
      faire:
        - "or.-.10"
        - "armee.+.12"
        - "constructions.+.1"
      vers: fin_tour
      texte: "🔨 Remparts renforcés. 💰 -10 Or · ⚔️ +12 Armée"
    - si: "~"
      faire:
        - "or.-.10"
        - "armee.+.8"
        - "peuple.+.4"
        - "constructions.+.1"
      vers: fin_tour
      texte: "🔨 Fossés creusés, palissades érigées. 💰 -10 Or · ⚔️ +8 Armée · 🏰 +4 Peuple (emplois)"

# ═══════════════════════════════════════════════════════
# MENU ALLIANCE
# ═══════════════════════════════════════════════════════

- id: menu_alliance
  texte: |
    ```story
    🤝 **DIPLOMATIE**
    *« Sire, plusieurs émissaires attendent en antichambre. La diplomatie coûte moins cher que la guerre. »*
    ```
  choix:
    - commande: marchand
      bouton: "🛒 Alliance marchande (+Or +Réputation)"
      vers: all_marchand
      si: "~"
    - commande: militaire
      bouton: "⚔️ Pacte militaire (+Armée, investissement)"
      vers: all_militaire
      si: "v_or_v >= 12"
      texte_ko: "Cette alliance nécessite 12 Or de cadeaux diplomatiques."
    - commande: arcanique
      bouton: "🔮 Cercle arcanique (+Magie, si réputation ≥ 40)"
      vers: all_arcanique
      si: "v_reput_v >= 40"
      texte_ko: "Votre réputation est trop basse pour intégrer ce cercle (40 requis)."
    - commande: populaire
      bouton: "🏰 Mouvement populaire (+Peuple)"
      vers: all_populaire
      si: "~"
    - commande: mariage
      bouton: "💍 Alliance par mariage (+Réputation +++)"
      vers: all_mariage
      si: "v_reput_v >= 30"
      texte_ko: "Votre réputation est trop faible pour cette proposition (30 requis)."
    - commande: retour
      bouton: "↩️ Revoir les options"
      vers: hub_action
      si: "~"

- id: all_marchand
  texte: "null"
  init:
    - var: actionrand
      valeur: "%=1:3"
  evenements:
    - si: "v_actionrand_v <= 2"
      faire:
        - "or.+.18"
        - "reput.+.12"
        - "alliances.+.1"
      vers: fin_tour
      texte: "🛒 Alliance marchande signée. 💰 +18 Or · 👑 +12 Réputation"
    - si: "~"
      faire:
        - "or.+.10"
        - "reput.+.6"
        - "alliances.+.1"
      vers: fin_tour
      texte: "🛒 Alliance modeste. 💰 +10 Or · 👑 +6 Réputation (partenaire peu enthousiasmé)"

- id: all_militaire
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.12"
        - "armee.+.22"
        - "reput.+.8"
        - "alliances.+.1"
      vers: fin_tour
      texte: "⚔️ Pacte militaire conclu. 💰 -12 Or · ⚔️ +22 Armée · 👑 +8 Réputation"

- id: all_arcanique
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "magie.+.25"
        - "reput.+.10"
        - "alliances.+.1"
      vers: fin_tour
      texte: "🔮 Initié au Cercle Arcanique. 🔮 +25 Magie · 👑 +10 Réputation"

- id: all_populaire
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "peuple.+.18"
        - "reput.+.8"
        - "alliances.+.1"
      vers: fin_tour
      texte: "🏰 Mouvement populaire soutenu. 🏰 +18 Peuple · 👑 +8 Réputation"

- id: all_mariage
  texte: "null"
  init:
    - var: actionrand
      valeur: "%=1:2"
  evenements:
    - si: "v_actionrand_v = 1"
      faire:
        - "reput.+.30"
        - "or.+.15"
        - "peuple.+.10"
        - "alliances.+.1"
      vers: fin_tour
      texte: "💍 Mariage royal célébré ! 👑 +30 Réputation · 💰 +15 Or (dot) · 🏰 +10 Peuple (fête)"
    - si: "~"
      faire:
        - "reput.+.20"
        - "peuple.+.8"
        - "alliances.+.1"
      vers: fin_tour
      texte: "💍 Mariage discret mais solide. 👑 +20 Réputation · 🏰 +8 Peuple"

# ═══════════════════════════════════════════════════════
# MENU GUERRE
# ═══════════════════════════════════════════════════════

- id: menu_guerre
  texte: |
    ```story
    ⚔️ **SALLE DE GUERRE**
    *« Sire, vos généraux sont prêts. Mais la guerre use les hommes et vide les caisses. Êtes-vous certain ? »*
    ```
    ```systeme
    Armée actuelle : v_armee_v / 100  —  plus elle est haute, plus vos chances sont bonnes.
    ```
  choix:
    - commande: raid
      bouton: "🗡️ Raid-éclair (+Or, risque faible)"
      vers: guerre_raid
      si: "v_armee_v >= 15"
      texte_ko: "Armée trop faible pour un raid (15 requis)."
    - commande: conquete
      bouton: "🏴 Conquête territoriale (+Or +Réputation, risque moyen)"
      vers: guerre_conquete
      si: "v_armee_v >= 30"
      texte_ko: "Armée insuffisante pour une conquête (30 requis)."
    - commande: croisade
      bouton: "✝️ Croisade magique (+Magie +Réputation, coût en peuple)"
      vers: guerre_croisade
      si: "v_magie_v >= 25 v_armee_v >= 20"
      texte_ko: "Requiert 25 Magie et 20 Armée."
    - commande: mercenaires
      bouton: "💀 Engager des mercenaires (+Armée immédiat, coût Or)"
      vers: guerre_merc
      si: "v_or_v >= 20"
      texte_ko: "Pas assez d'or pour les mercenaires (20 requis)."
    - commande: retour
      bouton: "↩️ Revoir les options"
      vers: hub_action
      si: "~"

- id: guerre_raid
  texte: "null"
  init:
    - var: de
      valeur: "%=1:6"
  evenements:
    - si: "v_de_v >= 4"
      faire:
        - "or.+.22"
        - "armee.-.8"
        - "reput.-.8"
        - "victoires.+.1"
        - "guerres.+.1"
      vers: fin_tour
      texte: "🗡️ Coup de main parfait ! Vos cavaliers rentrent chargés d'or. 💰 +22 Or · ⚔️ -8 Armée · 👑 -8 Réputation"
    - si: "~"
      faire:
        - "or.-.8"
        - "armee.-.15"
        - "reput.-.12"
        - "guerres.+.1"
      vers: fin_tour
      texte: "🗡️ L'ennemi avait prévu le raid. Vos hommes battent en retraite. 💰 -8 Or · ⚔️ -15 Armée · 👑 -12 Réputation"

- id: guerre_conquete
  texte: "null"
  init:
    - var: de
      valeur: "%=1:6"
  evenements:
    - si: "v_de_v >= 3"
      faire:
        - "or.+.30"
        - "reput.+.15"
        - "armee.-.18"
        - "peuple.+.10"
        - "victoires.+.1"
        - "guerres.+.1"
      vers: fin_tour
      texte: "🏴 Victoire ! Les nouvelles terres jurent allégeance à votre couronne. 💰 +30 Or · 👑 +15 Réputation · ⚔️ -18 · 🏰 +10"
    - si: "~"
      faire:
        - "or.-.15"
        - "armee.-.25"
        - "reput.-.18"
        - "peuple.-.12"
        - "guerres.+.1"
      vers: fin_tour
      texte: "🏴 La conquête tourne au désastre. Vos généraux rentrent la tête basse. 💰 -15 · ⚔️ -25 · 👑 -18 · 🏰 -12"

- id: guerre_croisade
  texte: "null"
  init:
    - var: de
      valeur: "%=1:6"
  evenements:
    - si: "v_de_v >= 3"
      faire:
        - "magie.+.18"
        - "reput.+.22"
        - "armee.-.12"
        - "peuple.-.10"
        - "victoires.+.1"
        - "guerres.+.1"
      vers: fin_tour
      texte: "✝️ Croisade triomphante ! 🔮 +18 Magie · 👑 +22 Réputation · ⚔️ -12 · 🏰 -10"
    - si: "~"
      faire:
        - "magie.-.15"
        - "armee.-.20"
        - "peuple.-.15"
        - "reput.-.10"
        - "guerres.+.1"
      vers: fin_tour
      texte: "✝️ Croisade déroute. 🔮 -15 · ⚔️ -20 · 🏰 -15 · 👑 -10"

- id: guerre_merc
  texte: "null"
  evenements:
    - si: "~"
      faire:
        - "or.-.20"
        - "armee.+.28"
        - "guerres.+.1"
      vers: fin_tour
      texte: "💀 Mercenaires recrutés. 💰 -20 Or · ⚔️ +28 Armée"

# ═══════════════════════════════════════════════════════
# FIN DE TOUR
# ═══════════════════════════════════════════════════════

- id: fin_tour
  texte:
    - texte: "```story\n*La lune se lève sur votre premier mois de règne. Tout reste à faire.*\n```"
      si: "v_tour_v = 1"
    - texte: "```story\n*Dixième tour. Un tiers du chemin. Votre règne prend forme — pour le meilleur ou pour le pire.*\n```"
      si: "v_tour_v = 10"
    - texte: "```story\n🔔 **Mi-règne.** Quinze tours se sont écoulés. L'histoire commence à se souvenir de vous.\nVotre état : 🏰 v_peuple_v · 💰 v_or_v · ⚔️ v_armee_v · 🔮 v_magie_v · 👑 v_reput_v\nBâtiments élevés : v_constructions_v · Lois : v_lois_v · Alliances : v_alliances_v\n```"
      si: "v_tour_v = 15"
    - texte: "```story\n*Vingt tours déjà. Plus qu'un tiers du chemin. L'histoire s'écrit.*\n```"
      si: "v_tour_v = 20"
    - texte: "```story\n*Vingt-cinq tours. La fin approche. Tout ce que vous avez semé va bientôt porter ses fruits — ou ses épines.*\n```"
      si: "v_tour_v = 25"
    - texte: "```story\n*Dernier tour. Ce que vous avez bâti, ou négligé, va maintenant parler pour vous.*\n```"
      si: "v_tour_v = 29"
    - texte: "~"
  evenements:
    - si: "~"
      faire: "tour.+.1"
      vers: check_defaite

- id: check_defaite
  texte: "null"
  evenements:
    # Défaite peuple : rébellion totale
    - si: "v_peuple_v <= 0"
      vers: pre_defaite_revolte
    # Défaite or + armée : effondrement
    - si: "v_or_v <= 0 v_armee_v <= 0"
      vers: pre_defaite_banqueroute
    # Défaite réputation : exil diplomatique
    - si: "v_reput_v <= 0"
      vers: pre_defaite_exil
    # Sinon → nouveau tour
    - si: "~"
      vers: nouveau_tour

# ─── Calculs de score avant défaite ──────────────────

- id: pre_defaite_revolte
  texte: "null"
  evenements:
    - si: "~"
      faire: "declencher_event:calcul_score"
      vers: defaite_revolte

- id: pre_defaite_banqueroute
  texte: "null"
  evenements:
    - si: "~"
      faire: "declencher_event:calcul_score"
      vers: defaite_banqueroute

- id: pre_defaite_exil
  texte: "null"
  evenements:
    - si: "~"
      faire: "declencher_event:calcul_score"
      vers: defaite_exil

# ═══════════════════════════════════════════════════════
# CALCUL FIN DE PARTIE (T=30)
# ═══════════════════════════════════════════════════════

- id: calcul_fin
  texte: "null"
  evenements:
    - si: "~"
      faire: "declencher_event:calcul_score"
    # Légère pénalité sur guerres trop nombreuses (belligérance)
    - si: "v_guerres_v >= 5"
      faire: "score.-.v_guerres_v"
      texte: "⚔️ -v_guerres_v pts (trop de guerres, réputation souillée)"
    # Dispatcher vers la fin narrative selon ressources dominantes
    - si: "v_peuple_v >= 70 v_reput_v >= 70"
      vers: fin_legende
    - si: "v_or_v >= 70 v_armee_v >= 70"
      vers: fin_conquete
    - si: "v_magie_v >= 70"
      vers: fin_arcanique
    - si: "v_peuple_v >= 60"
      vers: fin_prospere
    - si: "v_reput_v >= 60"
      vers: fin_diplomate
    - si: "v_armee_v >= 60"
      vers: fin_guerrier
    - si: "v_or_v >= 60"
      vers: fin_avare
    - si: "~"
      vers: fin_survie

# ═══════════════════════════════════════════════════════
# FINS NARRATIVES (8 fins + 3 défaites = 11 fins)
# ═══════════════════════════════════════════════════════

- id: fin_legende
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/win.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    ```story
    👑 **FIN : LA LÉGENDE**

    Trente lunes ont passé. Votre règne est entré dans les annales.
    Le peuple vous porte aux nues. Les rois voisins vous craignent et vous admirent.
    Des bardes composent déjà des épopées à votre gloire.

    Aldwyn s'incline une dernière fois, les yeux brillants.
    *« Votre règne est terminé, Sire. Mais votre légende, elle, ne fait que commencer. »*

    Votre royaume — **prospère, respecté, aimé** — rayonnera pendant des siècles.
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v
    🏆 Score final : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "👑 FIN LÉGENDAIRE — Score : v_score_v | Record : v_scorerecord_o_v"

- id: fin_conquete
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/win.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    ```story
    ⚔️ **FIN : L'EMPIRE**

    Votre trésor déborde. Vos armées sont invincibles.
    Trente lunes de conquêtes et de discipline ont forgé un empire de fer et d'or.
    Certains vous admirent. D'autres vous redoutent. Tous vous obéissent.

    Aldwyn range les cartes de campagne.
    *« Vous avez construit un empire, Sire. La question qui restera : était-ce un royaume ? »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "⚔️ FIN EMPIRE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_arcanique
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/win.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/meditation.mp3>>
    ```story
    🔮 **FIN : L'ÂGE D'OR ARCANIQUE**

    Votre royaume est devenu un phare de la magie.
    Des savants du monde entier affluent pour étudier dans vos tours.
    La magie imprègne les rues, guérit les malades, illumine les nuits.

    Aldwyn lève les yeux vers les cristaux qui flottent au plafond.
    *« Vous avez bâti non pas un empire, Sire, mais une civilisation. »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "🔮 FIN ARCANIQUE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_prospere
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/balade.mp3>>
    ```story
    🏰 **FIN : LE RÈGNE HEUREUX**

    Votre peuple est heureux, bien nourri, en sécurité.
    Vous n'avez pas conquis le monde — vous avez juste rendu votre coin du monde meilleur.
    Ce n'est pas rien.

    Aldwyn pose une main sur votre épaule.
    *« Les historiens retiendront votre méthode, Sire : la bienveillance comme politique d'État. »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "🏰 FIN PROSPÈRE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_diplomate
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/galeries.mp3>>
    ```story
    🤝 **FIN : L'ARCHITECTE DE LA PAIX**

    Votre nom est synonyme de sagesse diplomatique.
    Vous avez évité trois guerres majeures et signé dix traités durables.
    Les enfants de vos ennemis d'hier grandissent en paix.

    Aldwyn consulte ses archives diplomatiques.
    *« Certains rois font des statues, Sire. Vous avez fait la paix. »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "🤝 FIN DIPLOMATIQUE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_guerrier
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/combat/win.ogg>>
    ```story
    ⚔️ **FIN : LE SEIGNEUR DE GUERRE**

    Vos bannières flottent sur des terres conquises.
    Vos soldats sont les meilleurs du monde connu.
    Vous avez tenu vos frontières — et un peu au-delà.

    Aldwyn vous regarde, pensif.
    *« Un royaume ne vit pas que de batailles, Sire. La prochaine génération aura d'autres questions à poser. »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "⚔️ FIN GUERRIÈRE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_avare
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/meditation.mp3>>
    ```story
    💰 **FIN : LE TRÉSOR ROYAL**

    Vos coffres débordent. Votre royaume est riche.
    Le peuple... survivra. L'armée... défend.
    Mais cette richesse, à quoi vous a-t-elle vraiment servi ?

    Aldwyn choisit ses mots avec soin.
    *« L'or est un excellent serviteur et un mauvais maître, Sire. »*
    *On dit que votre successeur a tout dilapidé en dix ans. Il paraît que le peuple n'a pas pleuré.*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "💰 FIN AVARE — Score : v_score_v <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>"

- id: fin_survie
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/balade.mp3>>
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/chateau/congratulations.ogg>>
    ```story
    😮‍💨 **FIN : LA SURVIE**

    Trente lunes. Vous avez tenu.
    Pas glorieusement. Pas facilement. Mais vous avez tenu.

    Le royaume existe encore. C'est déjà quelque chose.

    Aldwyn sourit, las mais sincère.
    *« Préserver, c'est aussi gouverner, Sire. Pas tous les règnes ne sont des épopées. »*

    *Les chroniqueurs ont noté votre règne en une phrase :
    « Il/Elle a préservé ce qui existait. »*
    ```
    ```systeme
    🏰 v_peuple_v  💰 v_or_v  ⚔️ v_armee_v  🔮 v_magie_v  👑 v_reput_v  •  🏆 Score : v_score_v  ·  Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record mondial : v_score_v points !**"
    - si: "~"
      fin: victoire
      texte: "😮‍💨 FIN SURVIE — Score : v_score_v"

# ── DÉFAITES ──────────────────────────────────────────

- id: defaite_revolte
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/game-over.mp3>>
    ```story
    🔥 **DÉFAITE : LA GRANDE RÉVOLTE**

    Tour v_tour_v. Le palais brûle.
    Le peuple, trop longtemps ignoré, trop longtemps écrasé, a renversé le trône.
    Vous fuyez dans la nuit par une porte dérobée, la couronne dans les bras.

    Aldwyn, fidèle jusqu'au bout, murmure :
    *« Un roi qui perd son peuple n'avait peut-être pas de peuple à perdre. »*
    ```
    ```systeme
    🏆 Score final : v_score_v · Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record : v_score_v points — même dans la défaite.**"
    - si: "~"
      fin: defaite
      texte: "🔥 DÉFAITE — Révolte au tour v_tour_v. Score : v_score_v"

- id: defaite_banqueroute
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/game-over.mp3>>
    ```story
    💀 **DÉFAITE : EFFONDREMENT TOTAL**

    Tour v_tour_v. Le trésor est vide. L'armée s'est débandée.
    Les créanciers étrangers saisissent les terres royales, pièce par pièce.
    Votre règne s'achève non dans les flammes, mais dans le silence glacial de la faillite.

    Aldwyn range ses parchemins pour la dernière fois.
    *« L'or et les épées. Perdez les deux — perdez tout. »*
    ```
    ```systeme
    🏆 Score final : v_score_v · Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record : v_score_v points — même dans la défaite.**"
    - si: "~"
      fin: defaite
      texte: "💀 DÉFAITE — Banqueroute au tour v_tour_v. Score : v_score_v"

- id: defaite_exil
  texte: |
    <<https://cyril-fiesta.fr/jdr-bot/scenarios/sons/mini_royaume/game-over.mp3>>
    ```story
    👑 **DÉFAITE : L'EXIL DIPLOMATIQUE**

    Tour v_tour_v. Votre réputation est en cendres.
    Les derniers ambassadeurs ont quitté votre capitale ce matin.
    Aucun royaume ne veut plus commercer avec vous, vous prêter serment, vous traiter d'égal.

    Ce soir, un messager vous remet une lettre signée de sept rois.
    *« Vous n'êtes plus reconnu comme souverain légitime. »*

    Aldwyn plie bagage en silence.
    *« On peut perdre une guerre, Sire. Perdre l'estime de tous — c'est perdre le droit de régner. »*
    ```
    ```systeme
    🏆 Score final : v_score_v · Record : v_scorerecord_o_v
    ```
  evenements:
    - si: "v_score_v > v_scorerecord_o_v"
      faire: "scorerecord_o.=.v_score_v"
      texte: "🏆 **Nouveau record : v_score_v points — même dans la défaite.**"
    - si: "~"
      fin: defaite
      texte: "👑 DÉFAITE — Exil diplomatique au tour v_tour_v. Score : v_score_v"
