diff --git a/bot.py b/bot.py
index bbb66ab..acf0a7c 100755
--- a/bot.py
+++ b/bot.py
@@ -68,18 +68,39 @@ def generer_carte():
         if data_canton['capture']:
             path = next(e for e in doc.getElementsByTagName('path') if e.getAttribute('id') == code_canton)
             couleur = data_canton['capture']
-            path.setAttribute('class', f"capture-{couleur}")
+            if data_canton['verrouille']:
+                path.setAttribute('fill', f"url(#verrouille-{couleur})")
+            else:
+                path.setAttribute('class', f"capture-{couleur}")
     with open('map.svg', 'w') as f:
         doc.writexml(f)
     cairosvg.svg2png(url='map.svg', write_to='map.png')
 
-@bot.command()
-async def carte(ctx: commands.Context):
-    with open('map.png', 'rb') as f:
-        await ctx.send(file=discord.File(f, filename="battle4suisse.png"), ephemeral=True)
 
 @bot.command()
-async def capture(ctx: commands.Context, canton: CodeCanton, *, couleur: Couleur | None = None):
+async def carte(ctx: commands.Context):
+    rouges = list(canton_code for canton_code, canton in data['cantons'].items()
+                  if canton['capture'] == "rouge")
+    rouges_verrouilles = list(canton_code for canton_code, canton in data['cantons'].items()
+                              if canton['capture'] == "rouge" and canton['verrouille'])
+    noms_rouges = ", ".join(code_canton + (":lock:" if code_canton in rouges_verrouilles else "") for code_canton in rouges)
+    verts = list(canton_code for canton_code, canton in data['cantons'].items()
+                if canton['capture'] == "vert")
+    verts_verrouilles = list(canton_code for canton_code, canton in data['cantons'].items()
+                            if canton['capture'] == "vert" and canton['verrouille'])
+    noms_verts = ", ".join(code_canton + (":lock:" if code_canton in verts_verrouilles else "") for code_canton in verts)
+    libres = list(canton_code for canton_code, canton in data['cantons'].items()
+                if canton['capture'] is None)
+    message = f""":red_circle: Équipe rouge : **{len(rouges)} canton{"s" if len(rouges) > 1 else ""}** (dont **{len(rouges_verrouilles)} verrouillé{"s" if len(rouges_verrouilles) > 1 else ""}**) : {noms_rouges}
+:green_circle: Équipe verte : **{len(verts)} canton{"s" if len(verts) > 1 else ""}** (dont **{len(verts_verrouilles)} verrouillé{"s" if len(verts_verrouilles) > 1 else ""}**) : {noms_verts}
+:white_circle: **{len(libres)} canton{"s" if len(libres) > 1 else ""}** libre{"s" if len(libres) > 1 else ""} : {", ".join(libres)}"""
+    generer_carte()
+    with open('map.png', 'rb') as f:
+        await ctx.send(message, file=discord.File(f, filename="battle4suisse.png"))
+
+
+@bot.command()
+async def capturer(ctx: commands.Context, canton: CodeCanton, *, couleur: Couleur | None = None):
     if couleur is None:
         author_id = ctx.author.id
         for couleur, membres_equipe in data['equipes'].items():
@@ -90,11 +111,11 @@ async def capture(ctx: commands.Context, canton: CodeCanton, *, couleur: Couleur
     data['cantons'][canton]['capture'] = couleur
     with DATA_FILE.open('w') as data_file:
         json.dump(data, data_file, indent=4)
-    generer_carte()
+    await ctx.send(f"@everyone L'équipe {couleur} a capturé le canton de **{CANTONS[canton]}** !")
     return await carte(ctx)
 
 
-@capture.error
+@capturer.error
 async def capture_error(ctx, error):
     if isinstance(error, commands.BadLiteralArgument):
         await ctx.send(f"Canton inconnu : {error.argument}, valeurs possibles : {", ".join(error.literals)}")
@@ -102,6 +123,24 @@ async def capture_error(ctx, error):
         await ctx.send(str(error))
 
 
+@bot.command()
+async def verrouiller(ctx: commands.Context, canton: CodeCanton, *, couleur: Couleur | None = None):
+    if couleur is None:
+        author_id = ctx.author.id
+        for couleur, membres_equipe in data['equipes'].items():
+            if author_id in membres_equipe:
+                break
+        else:
+            raise commands.BadArgument("Vous n'appartez à aucune équipe. Merci de faire `$equipe [rouge|vert]`.")
+    data['cantons'][canton]['capture'] = couleur
+    data['cantons'][canton]['verrouille'] = True
+    with DATA_FILE.open('w') as data_file:
+        json.dump(data, data_file, indent=4)
+    generer_carte()
+    await ctx.send(f"@everyone L'équipe {couleur} a capturé le canton de **{CANTONS[canton]}** !")
+    return await carte(ctx)
+
+
 @bot.command()
 async def reset(ctx: commands.Context, canton: CodeCanton):
     data['cantons'][canton]['capture'] = None
diff --git a/map_blank.svg b/map_blank.svg
index 6ea28e7..2e1100e 100644
--- a/map_blank.svg
+++ b/map_blank.svg
@@ -51,10 +51,18 @@
 
   .capture-vert
   {
-    fill:#338000;
+    fill:#33c000;
   }
 
 </style>
+    <pattern id="verrouille-rouge" width="4" height="4" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
+      <rect width="2" height="4" transform="translate(0,0)" fill="#800000"/>
+      <rect x="2" width="2" height="4" transform="translate(0,0)" fill="#ff0000"/>
+    </pattern>
+    <pattern id="verrouille-vert" width="4" height="4" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
+      <rect width="2" height="4" transform="translate(0,0)" fill="#114000"/>
+      <rect x="2" width="2" height="4" transform="translate(0,0)" fill="#33c000"/>
+    </pattern>
   </defs>
   <g id="Cantons_default">
     <path id="ZH" d="M 641.9985,223.19813 L 639.03348,225.00903 L 635.93138,224.75052 L 635.15585,223.84574 L 634.38033,221.00215 L 633.47555,220.87289 L 629.85642,220.48513 L 628.56388,219.96811 L 627.78835,218.54632 L 627.6591,216.34899 L 627.01283,214.28092 L 626.49581,211.95434 L 626.36656,209.88627 L 625.07401,209.36926 L 623.65221,209.62777 L 622.61818,207.17194 L 620.16235,207.5597 L 618.8698,205.87939 L 617.83577,204.84535 L 613.69963,205.10386 L 610.46827,204.84535 L 608.4002,205.62088 L 606.20288,207.5597 L 603.10077,208.72299 L 598.44762,208.98149 L 595.34551,209.24 L 591.46788,208.07671 L 590.04609,206.91342 L 585.7537,207.03731 C 585.105,206.01341 584.63946,204.43721 584.07427,203.36838 C 583.61392,202.49782 582.82298,201.43578 582.38538,200.55356 C 581.98123,199.73879 581.53927,198.60413 581.25945,197.73875 C 581.15233,197.40746 580.92719,196.87454 580.95258,196.88442 C 581.17078,195.98173 580.89978,194.7083 580.69649,193.798 C 580.48107,192.83337 579.8754,191.64192 579.57056,190.70171 C 579.38095,190.11692 579.19721,189.31613 579.0076,188.73134 C 578.70275,187.79113 578.31487,186.52345 577.88167,185.63504 C 577.53251,184.91898 576.66625,183.91747 576.25996,183.21155 L 579.54598,182.55364 L 581.92229,181.45688 L 584.2986,178.80638 L 586.06,175.62048 L 587.82062,172.60249 L 586.8642,172.1566 L 584.88943,174.95394 L 582.16781,174.45339 L 580.79686,173.33256 L 579.08709,171.25339 L 578.61443,163.48435 L 579.18871,160.89889 L 572.33823,157.27977 L 571.95046,155.08245 L 578.02542,147.8442 L 578.80094,146.03464 L 578.15467,142.93254 L 574.53555,140.86447 L 572.33823,139.83043 L 572.07972,138.92565 L 571.17494,133.88473 L 570.65792,131.04114 L 570.27016,129.36083 L 568.7191,128.06829 L 566.90954,122.63961 L 568.97761,116.17689 L 570.78717,112.81628 L 570.78717,108.68014 L 574.14779,105.83654 L 578.28393,101.7004 L 580.6105,95.754703 L 580.86901,91.877073 L 580.22274,91.13386 L 581.52811,89.076325 C 582.05769,89.318917 582.68654,89.770867 583.22982,89.931304 C 583.96319,90.147878 584.99867,90.19593 585.76316,90.212785 C 587.03233,90.240768 588.73127,90.128256 589.98538,89.931304 C 591.01725,89.769253 592.34983,89.340193 593.36316,89.086859 C 594.71427,88.749081 596.69474,88.71308 597.86686,87.960933 C 598.32193,87.668914 598.49007,86.752617 599.01585,86.549661 C 599.54795,86.333665 600.36755,86.792677 600.96316,86.835006 C 601.63702,86.882895 602.54818,86.726794 603.21501,86.835006 C 604.00578,86.96333 604.99317,87.412094 605.74835,87.679451 C 606.42848,87.920237 607.33067,88.255053 608.0002,88.523896 C 608.597,88.763532 609.43803,89.007794 609.97057,89.36834 C 610.6628,89.837002 611.48836,90.63586 611.94094,91.338711 C 612.33155,91.945325 612.53206,92.915008 612.78539,93.590564 C 613.03872,94.266119 612.99105,95.506993 613.62983,95.842417 C 613.93809,96.004284 614.46273,95.748973 614.75576,95.560935 C 615.21083,95.268916 615.63366,94.633998 615.88168,94.153527 C 616.16367,93.607249 616.39318,92.795763 616.44465,92.183156 C 616.50867,91.421164 615.81652,90.331412 616.16317,89.649822 C 616.4718,89.042984 617.70806,89.05538 618.13354,88.523896 C 618.85134,87.627253 618.71677,85.87691 619.25946,84.864635 C 619.82653,83.806871 620.98747,82.658216 621.71124,81.803997 C 622.35373,81.148516 623.25575,80.462308 623.76317,79.797967 C 624.17642,79.25692 624.6818,78.476081 624.8891,77.827596 C 625.14751,77.019239 625.17524,75.861424 625.17058,75.01278 C 625.16638,74.248114 625.07501,73.221179 624.8891,72.479446 C 624.77854,72.038342 624.43669,71.513142 624.32613,71.072038 C 624.14022,70.330305 624.03271,69.303288 624.04465,68.538704 C 624.05398,67.941664 624.17821,67.146833 624.32613,66.568333 C 624.50486,65.869328 624.44921,64.303124 625.17058,64.31648 C 625.70456,64.326366 625.59646,65.489188 625.73354,66.00537 C 625.84406,66.421529 625.73006,67.089979 626.01502,67.412778 C 626.19175,67.612971 626.60308,67.619598 626.85947,67.694259 C 627.19376,67.791603 627.64333,68.040687 627.98539,67.975741 C 628.69906,67.840238 629.5916,67.196881 629.95576,66.568333 C 630.3812,65.834016 630.29885,64.599935 630.23725,63.753517 C 630.1867,63.059007 630.04448,62.091456 629.67428,61.501665 C 629.32365,60.943055 628.32864,60.657432 627.95107,60.174933 C 627.54896,59.515399 627.45913,58.338596 627.42243,57.560922 C 627.39034,56.880866 627.43907,55.93626 627.70391,55.30907 C 627.91425,54.810949 628.60939,54.39539 628.82984,53.901662 C 629.03926,53.432637 629.03723,52.721057 629.11132,52.212773 C 629.20952,51.53908 629.3505,50.640418 629.3928,49.96092 C 629.40854,49.708076 629.22905,49.309773 629.3928,49.116475 C 629.72481,48.724545 630.57341,48.909087 631.08169,48.834994 C 631.75538,48.736789 632.65318,48.528654 633.33354,48.553512 C 633.76384,48.569234 634.34787,48.659243 634.74095,48.834994 C 635.1264,49.007332 635.5331,49.420859 635.86688,49.679438 C 636.29433,50.010579 636.85546,50.463383 637.27428,50.805365 C 637.78514,51.222501 638.47615,51.768026 638.96317,52.212773 C 639.13954,52.373836 639.28908,52.746554 639.52725,52.775904 L 637.45676,55.549256 L 637.01482,57.405411 L 638.51742,60.764168 L 640.375,63.656984 L 642.1875,64.656984 L 644.1875,65.781984 L 648.5625,66.656984 L 652.75,66.781984 L 655.6875,64.906984 L 657.25,63.281984 L 658.25,62.531984 L 659.25,61.031984 L 659.8125,59.969484 L 660.375,60.156984 L 664.25,60.594484 L 664.25,61.531984 L 666.75,62.781984 L 669.8125,63.906984 L 672.625,64.719484 L 673.3125,65.594484 L 669.0625,73.344484 L 665.125,78.781983 L 663.15625,77.531983 L 663.28125,76.719483 L 658.59375,75.969483 L 656,76.125733 L 654.84375,77.125733 L 654.625,78.969483 L 655.00185,80.386381 L 655.85207,82.894264 C 656.65116,82.951054 657.60791,82.242928 658.3854,82.049819 C 658.88391,81.926001 659.56104,81.747841 660.07429,81.768338 C 661.46588,81.823913 663.28805,82.369255 664.55865,82.887563 L 664.85715,87.192284 L 667.77396,89.136828 L 671.55178,90.298989 L 674.375,92.844484 L 675.625,94.469484 L 675.375,95.469484 L 671.75,95.594484 L 672.25,98.219484 L 673.25,100.46948 L 674.875,101.46948 L 677.5,101.34448 L 679.5,100.71948 L 681.875,101.96948 L 686.25,103.96948 L 686.875,107.46948 L 685.75,113.84448 L 684,117.84448 L 683.375,122.09448 L 685.98196,126.96704 L 685.80519,129.88386 L 686.86585,132.80067 L 688.63361,134.39166 L 690.04783,135.54071 L 687.30779,136.51298 L 686.07035,139.78335 L 684.29103,142.60307 C 685.89729,142.8446 687.98249,143.53384 689.466,144.19537 C 690.10198,144.47897 690.82374,145.09862 691.45638,145.38959 C 692.48567,145.863 694.02572,146.07715 695.03905,146.58382 C 695.88349,147.00605 697.13305,150.37659 697.12591,153.10956 L 698.17956,155.51648 L 700.74282,160.99655 L 703.83641,165.85791 L 704.63191,171.69154 L 703.74802,175.58063 L 699.59377,176.28774 L 696.67695,179.02778 L 694.64402,181.32587 L 695.26274,183.35881 L 696.67695,182.91686 L 697.1189,184.06591 L 695.43952,187.77822 L 695.52791,190.78343 L 689.78266,192.28603 L 685.125,193.90698 L 682.9375,195.53198 L 681.375,196.46948 L 679.125,196.46948 L 675.125,195.90698 L 672.875,194.65698 L 670.3125,194.09448 L 667.9375,194.84448 L 666,196.84448 L 664.75,198.90698 L 665.25,200.59448 L 665.3125,205.15698 M 642,223.06323 L 641.53125,221.56323 L 640.375,219.12573 L 640.5625,217.21948 L 642.625,215.71948 L 644.75,213.09448 L 646.1875,210.40698 L 646.9375,208.84448 L 649.1875,208.59448 L 658.66997,205.45589 L 665.39062,205.11011"/>