<script>
 import {
     Card,
     CardBody,
     Container,
     Icon,
 } from 'sveltestrap';

 import { challengeInfo } from '../stores/challengeinfo.js';
 import { settings } from '../stores/settings.js';
</script>

<Container class="my-3">
<h1 class="text-dark">
    {$challengeInfo.title}
    <small class="text-muted">Règles générales</small>
</h1>

<div class="card-group text-justify mb-5">
<div class="card niceborder">
<div class="card-body text-indent">
  <h2>Débloquage des challenges</h2>
  <p>
    Au début, seul le premier défi de chaque scénario est
    accessible.  Les défis de niveau supérieur sont débloqués en
    validant celui du niveau qui le précéde.
  </p>
  <hr>

  <h2>Le classement</h2>
  <p>
    Pour figurer dans le classement, il faut avoir réalisé au moins une
    action&nbsp;: qu'elle ajoute ou retire des points.
  </p>
  <p>
    En cas d'égalité au score, les équipes sont départagées selon leur
    ordre d'arrivée à ce score.
  </p>

  <hr>
  <h2>Calcul des points</h2>
  <p>
    Pour gagner des points, vous devez résoudre les défis qui vous sont
    proposés. Plus le challenge est compliqué, plus il rapporte de points.
  </p>

  <h3>Coût des tentatives</h3>
  <p>
    Vous disposez de 10&nbsp;tentatives pour trouver la/les solutions d'un
    challenge. Au delà, chaque tentative vous fait perdre une petite quantité
    de points comme suit&nbsp;:
  </p>
  <table class="table table-sm table-striped">
    <thead>
      <tr>
	<th>Nombre de tentatives</th>
	<th>Coût par tentative</th>
      </tr>
    </thead>
    <tbody>
      <tr>
	<td>0 à 10</td>
	<td>0&nbsp;point</td>
      </tr>
      <tr>
	<td>11 à 20</td>
	<td>{Math.round($settings.submissionCostBase * 10) / 10}&nbsp;{$settings.submissionCostBase < 2?"point":"points"}</td>
      </tr>
      <tr>
	<td>21 à 30</td>
	<td>{Math.round($settings.submissionCostBase * 20) / 10}&nbsp;{$settings.submissionCostBase * 2 < 2?"point":"points"}</td>
      </tr>
      <tr>
	<td>31 à 40</td>
	<td>{Math.round($settings.submissionCostBase * 30) / 10}&nbsp;{$settings.submissionCostBase * 3 < 2?"point":"points"}</td>
      </tr>
      <tr>
	<td>41 à 50</td>
	<td>{Math.round($settings.submissionCostBase * 40) / 10}&nbsp;{$settings.submissionCostBase * 4 < 2?"point":"points"}</td>
      </tr>
      <tr>
	<td>...</td>
	<td>...</td>
      </tr>
    </tbody>
  </table>
</div>
</div>
<div class="card niceborder">
<div class="card-body text-indent">
  <p>
    Par exemple&nbsp;:
  </p>
  <ul>
    <li>À&nbsp;10 tentatives, vous aurez perdu {$settings.submissionCostBase * 0}&nbsp;{$settings.submissionCostBase * 0 < 2?"point":"points"}.</li>
    <li>À&nbsp;15 tentatives, vous aurez perdu en tout {$settings.submissionCostBase * 5}&nbsp;{$settings.submissionCostBase * 5 < 2?"point":"points"}&nbsp;: <samp> {$settings.submissionCostBase} &times; 5</samp>.</li>
    <li>25 tentatives vous coûteront en tout {$settings.submissionCostBase * 20}&nbsp;{$settings.submissionCostBase * 20 < 2?"point":"points"}&nbsp;: <samp>{$settings.submissionCostBase} &times; 10 + {$settings.submissionCostBase} &times; 2 &times; 5</samp>.</li>
    <li>50 tentatives vous coûteront en tout {$settings.submissionCostBase * 100}&nbsp;{$settings.submissionCostBase * 100 < 2?"point":"points"}&nbsp;: <samp>{$settings.submissionCostBase} &times; 10 + {$settings.submissionCostBase} &times; 2 &times; 10 + {$settings.submissionCostBase} &times; 3 &times; 10 + {$settings.submissionCostBase} &times; 4 &times; 10</samp>.</li>
  </ul>
  <p>
    La dernière tentative (lorsque tous les flags sont bons) est comptabilisée
    parmi ce nombre de tentatives.
  </p>
  <hr>

  <h3>Coût des indices</h3>
  <p>
    Pour vous aider, certains défis vous proposent un ou
    plusieurs <strong>indices</strong>. Ces indices vous font perdre des
    points, la valeur de points perdus est indiquée pour chaque indice.
  </p>
  <p>
    Ces points sont perdus, que vous réussissiez ou non le défi.
  </p>
  <p>
    Vous pouvez débloquer des indices même si vous ne disposez pas de
    suffisamment de points (ou même si vous n'en avez pas encore) ; dans ce
    cas, votre score sera négatif.
  </p>
  <hr>

  <h3>Bonus</h3>
  <p>
    Plusieurs bonus peuvent s'appliquer en même temps, dans ce cas, le calcul
    du bonus est toujours effectué à partir du nombre de points initiaux du
    défi.
  </p>

  <h4>Prem's</h4>
  <p>
    Un bonus de +{$settings.firstBlood * 100}&nbsp;% est attribué à la première équipe qui résout un défi.
  </p>

  <h4>Bonus temporaires <small><Icon name="gift" aria-hidden="true" title="Des
    bonus existent pour au moins un challenge de ce thème" /></small></h4>
  <p>
    Au cours du challenge, afin de booster les équipes ou certains challenges,
    un bonus peut-être attribué si une tentative valide est envoyée durant la
    période d'activité du bonus. Restez à l'écoute et observez les challenges
    portant cette icône&nbsp;: <Icon name="gift"
    aria-hidden="true" title="Des bonus existent pour au moins un challenge de ce
    thème" />
  </p>
</div>
</div>
</div>
</Container>
