Outils pour utilisateurs

Outils du site


brouillon3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
brouillon3 [2026/04/19 12:04] nanakibrouillon3 [2026/04/21 17:22] (Version actuelle) nanaki
Ligne 1: Ligne 1:
-===== Liste des Sorts =====+<html>
  
-Un complément d'information sur certains sorts a été ajouté après le tableau de sorts. 
- 
-<html> 
-<head> 
-<meta charset="UTF-8"> 
-<title>Compétences — Techniques & Sorts</title> 
 <style> <style>
 body { font-family: Arial, sans-serif; margin: 10px; } body { font-family: Arial, sans-serif; margin: 10px; }
-h3 { text-align: center; } 
-.table-container { width: 100%; overflow-x: auto; margin-top: 10px; } 
-table { width: 100%; border-collapse: collapse; min-width: 1200px; } 
-th, td { padding: 8px; border: 1px solid #ccc; text-align: left; } 
-th { background: #f2f2f2; } 
-tbody tr:nth-child(odd) { background: #fafafa; } 
-tbody tr:nth-child(even) { background: #ffffff; } 
  
-/* Couleurs par race */ +.controls display:flexgap:10pxmargin-bottom:10pxflex-wrap:wrap; }
-td.race-Communs color#555+
-td.race-Nain { colorred+
-td.race-Géant { colorsaddlebrown+
-td.race-Olympien { color: darkorange; } +
-td.race-HS { color: darkgreen; } +
-td.race-Elfe { colorgreen; } +
-</style> +
-</head> +
-<body>+
  
-<!-- ================= TABLEAU 1 sorts ================= --+#pointsBox { font-weight:bold; margin-bottom:10px; }
-<h3>Gestion des compétences — sorts</h3> +
-<label for="raceSelect1">Choisir une race :</label> +
-<select id="raceSelect1"> +
-  <option value="Toutes">Toutes</option> +
-  <option value="Communs">Communs</option> +
-  <option value="Nain">Nain</option> +
-  <option value="Géant">Géant</option> +
-  <option value="Olympien">Olympien</option> +
-  <option value="HS">HS</option> +
-  <option value="Elfe">Elfe</option> +
-</select>+
  
-<div class="table-container"> +table { width:100%; border-collapse:collapse; } 
-<table id="competencesTable1"> +th, td { border:1px solid #ccc; padding:6px; text-align:left; } 
-<thead> +th { background:#f2f2f2; cursor:pointer; } 
-<tr+tr:nth-child(even){ background:#fafafa; }
-<th>Race</th><th>Nom de la compétence</th><th>Type</th><th>Catégorie</th> +
-<th>Coût (PM)</th><th>Bonus / Malus</th><th>Cible</th><th>Portée</th> +
-<th>Description</th><th>Cumulable</th><th>Prix</th> +
-</tr> +
-</thead> +
-  <tbody>+
  
-<!-- ================= COMMUNS ================= -->+.offensif { background:#ffe5e5;
 +.defensif { background:#e5f0ff;
 +.utilitaire { background:#e5ffe5; }
  
 +.lvl { padding:2px 6px; border-radius:4px; }
 +.lvl-1 { background:#ddd; }
 +.lvl-2 { background:#cce5ff; }
 +</style>
  
-<tr class="Communs"> +<div id="pointsBox"> 
-<td class="race-Communs">Communs</td><td>Arcane ajustée</td><td>Sort</td><td>Offensif</td> +Points utilisés : <span id="points">0</span> / 15 
-<td>6 MP</td><td>Avantage au toucher</td><td>Autre</td><td>min 2</td> +</div>
-<td>Donne l’avantage au toucher</td><td>/</td><td>50 pos</td> +
-</tr>+
  
-<tr class="Communs"> +<div class="controls"> 
-<td class="race-Communs">Communs</td><td>Arcanes précises</td><td>Sort</td><td>Offensif</td+<select id="raceFilter"> 
-<td>6 MP</td><td>+4 au toucher</td><td>Autre</td><td>min 2</td+<option value="Toutes">Toutes</option
-<td>Bonus de +4 pour toucher</td><td>/</td><td>50 pos</td+<option value="Communs">Communs</option
-</tr>+</select>
  
-<tr class="Communs"> +<select id="typeFilter"> 
-<td class="race-Communs">Communs</td><td>Arcanes violentes</td><td>Sort</td><td>Offensif</td+<option value="Tous">Tous</option> 
-<td>6 MP</td><td>-6 au toucher, +5 dégâts</td><td>Autre</td><td>min 2</td+<option value="CAC">CAC</option
-<td>Malus de -6 pour toucher, bonus +5 dégâts</td><td>/</td><td>50 pos</td+<option value="Distance">Distance</option
-</tr>+<option value="Sort">Sort</option
 +</select>
  
-<tr class="Communs"+<input type="textid="search" placeholder="Rechercher..."> 
-<td class="race-Communs">Communs</td><td>Aveuglement</td><td>Sort</td><td>Malédiction</td> +</div>
-<td>4 MP</td><td>-1 P</td><td>Autre</td><td>min 2</td> +
-<td>Aveuglement (x1)</td><td>non cumulable</td><td>50 pos</td+
-</tr>+
  
-<tr class="Communs"> +<table id="table"> 
-<td class="race-Communs">Communs</td><td>Coup précis</td><td>Sort</td><td>Bénédiction</td+<thead> 
-<td>4 MP</td><td>Dextérité (x2)</td><td>Autre Soi-même</td><td>max 1</td+<tr> 
-<td>Dextérité (x2)</td><td>non cumulable</td><td>50 pos</td>+<th onclick="sortTable(0)">Choix</th> 
 +<th onclick="sortTable(1)">Race</th> 
 +<th onclick="sortTable(2)">Nom</th
 +<th onclick="sortTable(3)">Type</th> 
 +<th>Effet</th
 +<th onclick="sortTable(5)">Niveau</th>
 </tr> </tr>
 +</thead>
  
-<tr class="Communs"> +<tbody>
-<td class="race-Communs">Communs</td><td>Épuisement arcanique</td><td>Sort</td><td>Malédiction</td> +
-<td>4 MP</td><td>Essoufflement (X/3)</td><td>Autre</td><td>min 2</td> +
-<td>Réduction d’endurance</td><td>/</td><td>50 pos</td> +
-</tr>+
  
-<tr class="Communs"> +<tr class="Communs offensif" data-type="CAC" data-level="1"> 
-<td class="race-Communs">Communs</td><td>Maladresse</td><td>Sort</td><td>Malédiction</td> +<td><input type="checkbox" class="skill"></td> 
-<td>MP</td><td>Maladresse (x2)</td><td>Autre</td><td>min 2</td> +<td>Communs</td> 
-<td>Réduit la précision</td><td>non cumulable</td><td>50 pos</td>+<td>Attaque précise</td> 
 +<td>CAC</td> 
 +<td>+toucher, -3 dégâts</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
-<tr class="Communs"> +<tr class="Communs offensif" data-type="Distance" data-level="1"> 
-<td class="race-Communs">Communs</td><td>Peau de granit</td><td>Sort</td><td>Bénédiction</td> +<td><input type="checkbox" class="skill"></td> 
-<td>MP</td><td>Protection (x2)</td><td>Autre / Soi-même</td><td>max 1</td> +<td>Communs</td> 
-<td>Renforce la défense</td><td>non cumulable</td><td>50 pos</td>+<td>Arme improvisée</td> 
 +<td>Distance</td> 
 +<td>-toucher, -2 dégâts</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
-<tr class="Communs"> +<tr class="Communs utilitaire" data-type="Sort" data-level="1"> 
-<td class="race-Communs">Communs</td><td>Restauration mineure</td><td>Sort</td><td>Bénédiction</td> +<td><input type="checkbox" class="skill"></td> 
-<td>6 MP</td><td>-5 malus</td><td>Autre / Soi-même</td><td>max 1</td> +<td>Communs</td> 
-<td>Réduit les malus</td><td>/</td><td>50 pos</td>+<td>Arcane ajustée</td> 
 +<td>Sort</td> 
 +<td>Avantage au toucher</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
-<tr class="Communs"> +</tbody
-<td class="race-Communs">Communs</td><td>Vulnérabilité</td><td>Sort</td><td>Malédiction</td> +</table>
-<td>6 MP</td><td>Vulnérabilité (x2)</td><td>Autre</td><td>min 2</td> +
-<td>Augmente les dégâts subis</td><td>non cumulable</td><td>50 pos</td+
-</tr>+
  
-<tr class="Communs"+<script
-<td class="race-Communs">Communs</td><td>Agressivité</td><td>Sort</td><td>Bénédiction</td> +const maxPoints 15;
-<td>6 MP</td><td>Agressivité (x1)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Augmente l’agressivité</td><td>non cumulable</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +const raceFilter document.getElementById("raceFilter"); 
-<td class="race-Communs">Communs</td><td>Armure</td><td>Sort</td><td>Bénédiction</td> +const typeFilter document.getElementById("typeFilter"); 
-<td>8 MP</td><td>Armure (x1)</td><td>Autre / Soi-même</td><td>max 1</td> +const search = document.getElementById("search"); 
-<td>Renforce la défense</td><td>non cumulable</td><td>100 pos</td> +const rows = document.querySelectorAll("#table tbody tr"); 
-</tr>+const checkboxes = document.querySelectorAll(".skill"); 
 +const pointsDisplay = document.getElementById("points");
  
-<tr class="Communs"> +function updatePoints(e){ 
-<td class="race-Communs">Communs</td><td>Colère de la nature</td><td>Sort</td><td>Malédiction</td> +  let total = 0;
-<td>8 MP</td><td>Maladresse (x2), Vulnérabilité (x2)</td><td>Autre</td><td>min 2</td> +
-<td>Affaiblissement combiné</td><td>cumulable</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"+  checkboxes.forEach(cb => { 
-<td class="race-Communs">Communs</td><td>Drain</td><td>Sort</td><td>Offensif</td> +    if(cb.checked) total++; 
-<td>6 MP</td><td>Vol de PV</td><td>Autre</td><td>min 2</td> +  });
-<td>Récupère une partie des dégâts</td><td>/</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"+  if(total maxPoints){ 
-<td class="race-Communs">Communs</td><td>Faiblesse</td><td>Sort</td><td>Malédiction</td> +    e.target.checked false; 
-<td>6 MP</td><td>Faiblesse (x1)</td><td>Autre</td><td>min 2</td> +    return; 
-<td>Réduit les capacités</td><td>non cumulable</td><td>100 pos</td> +  }
-</tr>+
  
-<tr class="Communs"> +  pointsDisplay.textContent total;
-<td class="race-Communs">Communs</td><td>Fragilité</td><td>Sort</td><td>Malédiction</td> +
-<td>10 MP</td><td>Fragilité (x1)</td><td>Autre</td><td>min 2</td> +
-<td>Augmente les dégâts subis</td><td>non cumulable</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +  if(total >maxPoints){ 
-<td class="race-Communs">Communs</td><td>Instabilité</td><td>Sort</td><td>Malédiction</td+    checkboxes.forEach(cb => { 
-<td>6 MP</td><td>Instabilité (x6)</td><td>Autre</td><td>min 2</td> +      if(!cb.checkedcb.disabled = true; 
-<td>Effet instable</td><td>cumulable</td><td>100 pos</td+    }); 
-</tr>+  } else { 
 +    checkboxes.forEach(cb =cb.disabled = false); 
 +  } 
 +}
  
-<tr class="Communs"+checkboxes.forEach(cb => { 
-<td class="race-Communs">Communs</td><td>Migraine</td><td>Sort</td><td>Malédiction</td> +  cb.addEventListener("change", updatePoints); 
-<td>4 MP</td><td>Dégâts mentaux</td><td>Autre</td><td>min 2</td> +});
-<td>Inflige des dégâts mentaux</td><td>/</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +function filter(){ 
-<td class="race-Communs">Communs</td><td>Puissance de la nature</td><td>Sort</td><td>Bénédiction</td> +  const term search.value.toLowerCase();
-<td>8 MP</td><td>Dextérité + Protection</td><td>Autre / Soi-même</td><td>/</td> +
-<td>Boost multiple</td><td>cumulable</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +  rows.forEach(row=>
-<td class="race-Communs">Communs</td><td>Régénération</td><td>Sort</td><td>Bénédiction</td> +    const raceOk = raceFilter.value==="Toutes|| row.classList.contains(raceFilter.value); 
-<td>4 MP</td><td>Soin (R/2)</td><td>Autre / Soi-même</td><td>/</td> +    const typeOk = typeFilter.value==="Tous|| row.dataset.type===typeFilter.value; 
-<td>Soins basés sur R</td><td>/</td><td>100 pos</td> +    const textOk = row.innerText.toLowerCase().includes(term);
-</tr>+
  
-<tr class="Communs"+    row.style.display (raceOk && typeOk && textOk) ? "" "none"; 
-<td class="race-Communs">Communs</td><td>Renforcement</td><td>Sort</td><td>Bénédiction</td> +  }); 
-<td>6 MP</td><td>Renforcement (x6)</td><td>Autre / Soi-même</td><td>/</td> +}
-<td>Boost global</td><td>cumulable</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +raceFilter.onchange filter; 
-<td class="race-Communs">Communs</td><td>Restauration</td><td>Sort</td><td>Bénédiction</td> +typeFilter.onchange filter; 
-<td>6 MP</td><td>Restauration (R/2)</td><td>Autre / Soi-même</td><td>/</td> +search.oninput = filter;
-<td>Restaure selon R</td><td>/</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"> +function sortTable(col){ 
-<td class="race-Communs">Communs</td><td>Siphon</td><td>Sort</td><td>Offensif</td> +  const tbody document.querySelector("#table tbody"); 
-<td>0 MP, 5 PV, 2 Mvt</td><td>Vol de PM</td><td>Autre</td><td>min 2</td> +  const rowsArr Array.from(tbody.rows);
-<td>Convertit dégâts en PM</td><td>/</td><td>100 pos</td> +
-</tr>+
  
-<tr class="Communs"+  rowsArr.sort((a,b)=>a.cells[col].innerText.localeCompare( 
-<td class="race-Communs">Communs</td><td>Stabilisation</td><td>Sort</td><td>Bénédiction</td> +    b.cells[col].innerText, 
-<td>2 MP1 Mvt</td><td>Stabilité +6</td><td>Autre / Soi-même</td><td>/</td> +    undefined
-<td>Stabilise</td><td>/</td><td>100 pos</td> +    {numeric:true} 
-</tr>+  ));
  
-<tr class="Communs"> +  rowsArr.forEach(r=>tbody.appendChild(r)); 
-<td class="race-Communs">Communs</td><td>Aide</td><td>Sort</td><td>Bénédiction</td> +} 
-<td>8 MP</td><td>Dextérité (x4)</td><td>Autre / Soi-même</td><td>/</td> +</script>
-<td>Boost fort</td><td>non cumulable</td><td>200 pos</td> +
-</tr>+
  
-<tr class="Communs"> +</html>
-<td class="race-Communs">Communs</td><td>Fatigue</td><td>Sort</td><td>Malédiction</td> +
-<td>12 MP</td><td>Vulnérabilité (x4)</td><td>Autre</td><td>min 2</td> +
-<td>Affaiblissement fort</td><td>non cumulable</td><td>200 pos</td> +
-</tr>+
  
-<tr class="Communs"> 
-<td class="race-Communs">Communs</td><td>Malchance</td><td>Sort</td><td>Malédiction</td> 
-<td>8 MP</td><td>Maladresse (x4)</td><td>Autre</td><td>min 2</td> 
-<td>Réduit précision</td><td>non cumulable</td><td>200 pos</td> 
-</tr> 
  
-<tr class="Communs"> 
-<td class="race-Communs">Communs</td><td>Récupération</td><td>Sort</td><td>Bénédiction</td> 
-<td>4 MP</td><td>Soin (R/2)</td><td>Autre</td><td>max 1</td> 
-<td>Soigne</td><td>non cumulable</td><td>200 pos</td> 
-</tr> 
  
-<tr class="Communs"> 
-<td class="race-Communs">Communs</td><td>Réflexes accrus</td><td>Sort</td><td>Bénédiction</td> 
-<td>8 MP</td><td>Protection (x4)</td><td>Autre / Soi-même</td><td>max 1</td> 
-<td>Boost défense</td><td>non cumulable</td><td>200 pos</td> 
-</tr> 
  
-<tr class="Communs"> +<html>
-<td class="race-Communs">Communs</td><td>Régénération accélérée</td><td>Sort</td><td>Bénédiction</td> +
-<td>10 MP</td><td>Soin (R)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Soins puissants</td><td>non cumulable</td><td>200 pos</td> +
-</tr>+
  
-<tr class="Communs"+<style
-<td class="race-Communs">Communs</td><td>Restauration majeure</td><td>Sort</td><td>Bénédiction</td> +table { width:100%; border-collapse:collapse; } 
-<td>12 MP</td><td>Restauration (R)</td><td>Autre / Soi-même</td><td>/</td> +th, td { border:1px solid #ccc; padding:6px; }
-<td>Restaure complètement</td><td>/</td><td>200 pos</td> +
-</tr>+
  
-<tr class="Communs"> +tr[data-effect="offensif"] { background:#ffe5e5; } 
-<td class="race-Communs">Communs</td><td>Anémie</td><td>Sort</td><td>Malédiction</td> +tr[data-effect="defensif"] { background:#e5f0ff; } 
-<td>12 MP</td><td>Faiblesse (x2)</td><td>Autre</td><td>max 1</td> +tr[data-effect="malediction"] { background:#eadcff; }
-<td>Affaiblissement sévère</td><td>non cumulable</td><td>300 pos</td> +
-</tr>+
  
-<tr class="Communs"> +th { background:#f2f2f2; } 
-<td class="race-Communs">Communs</td><td>Bénédiction</td><td>Sort</td><td>Bénédiction</td> +</style>
-<td>15 MP</td><td>Protection + Dextérité (x4)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Boost complet</td><td>non cumulable</td><td>300 pos</td> +
-</tr>+
  
-<tr class="Communs"> +<table>
-<td class="race-Communs">Communs</td><td>Cuirasse</td><td>Sort</td><td>Bénédiction</td> +
-<td>15 MP</td><td>Armure (x2)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Défense élevée</td><td>non cumulable</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Férocité</td><td>Sort</td><td>Bénédiction</td> +
-<td>12 MP</td><td>Agressivité (x2)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Offensive renforcée</td><td>non cumulable</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Friabilité</td><td>Sort</td><td>Malédiction</td> +
-<td>20 MP</td><td>Fragilité (x2)</td><td>Autre</td><td>min 2</td> +
-<td>Extrêmement fragile</td><td>non cumulable</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Puissance du lutin capricieux</td><td>Sort</td><td>Malédiction</td> +
-<td>20 MP</td><td>Maladresse + Vulnérabilité (x4)</td><td>Autre</td><td>min 2</td> +
-<td>Double malédiction</td><td>non cumulable</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Récupération supérieure</td><td>Sort</td><td>Bénédiction</td> +
-<td>10 MP</td><td>Soin (R)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Soins complets</td><td>non cumulable</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Exténuation</td><td>Sort</td><td>Malédiction</td> +
-<td>25 MP</td><td>Vulnérabilité (x8)</td><td>Autre</td><td>min 2</td> +
-<td>Vulnérabilité (x8)</td><td>/</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Guigne</td><td>Sort</td><td>Malédiction</td> +
-<td>20 MP</td><td>Maladresse (x8)</td><td>Autre</td><td>min 2</td> +
-<td>Maladresse (x8)</td><td>/</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Sauvegarde</td><td>Sort</td><td>Bénédiction</td> +
-<td>20 MP</td><td>Protection (x8)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Protection (x8)</td><td>/</td><td>300 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Virtuose</td><td>Sort</td><td>Bénédiction</td> +
-<td>20 MP</td><td>Dextérité (x8)</td><td>Autre / Soi-même</td><td>max 1</td> +
-<td>Dextérité (x8)</td><td>/</td><td>300 pos</td> +
-</tr> +
- +
-<!-- ================= RACES ================= --> +
- +
- +
-<tr class="HS"> +
-<td class="race-HS">HS</td><td>Aiguillon</td><td>Sort</td><td>Offensif</td> +
-<td>4 PM</td><td>+3</td><td>Autre</td><td>min 2</td> +
-<td>Projette un aiguillon sur l’adversaire.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="HS"> +
-<td class="race-HS">HS</td><td>Flux Vital</td><td>Sort</td><td>Bénédiction</td> +
-<td>6 PM</td><td></td><td>Soi-même</td><td>0</td> +
-<td>Puise dans la régénération magique pour se soigner.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
- +
-<tr class="HS"> +
-<td class="race-HS">HS</td><td>Arme Vivante *</td><td>Sort</td><td>Offensif</td> +
-<td>12 PM</td><td>+M</td><td>Autre</td><td>max 1</td> +
-<td>Ajoute des dégâts magiques à une attaque avec une arme composée de bois (pétrifié ou non). La caractéristique de touche pour ce sort est la CC.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
-<tr class="HS"> +
-<td class="race-HS">HS</td><td>Taillade illusoire</td><td>Sort</td><td>Offensif</td> +
-<td>10 PM</td><td>+6</td><td>Autre</td><td>max 3</td> +
-<td>Des crocs et des griffes spectraux assaillent votre adversaire de toute part.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
-<tr class="Elfe"> +
-<td class="race-Elfe">Elfe</td><td>Aiguillon</td><td>Sort</td><td>Offensif</td> +
-<td>4 PM</td><td>+3</td><td>Autre</td><td>min 2</td> +
-<td>Projette un aiguillon sur l’adversaire.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Elfe"> +
-<td class="race-Elfe">Elfe</td><td>Flèche Aquatique</td><td>Sort</td><td>Offensif</td> +
-<td>5 PM</td><td>+3 + effet Eau</td><td>Autre</td><td>min 2</td> +
-<td> Projette une flèche composée d'eau sur l'adversaire.</td><td>effet non cumulable</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Elfe"> +
-<td class="race-Elfe">Elfe</td><td>Lien de Vie</td><td>Sort</td><td>Bénédiction</td> +
-<td>6 PM</td><td></td><td>Autre</td><td>max 1</td> +
-<td>Soigne via régénération magique.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Elfe"> +
-<td class="race-Elfe">Elfe</td><td>Trait Béni *</td><td>Sort</td><td>Offensif</td> +
-<td>12 PM</td><td>+M</td><td>Autre</td><td>min 2</td> +
-<td>Ajoute des dégâts magiques lors d'une attaque au tir. La caractéristique de touche pour ce sort est la CT. L'attaquant fait en dégâts F+M et la cible encaisse avec E+M.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
-<tr class="Elfe"> +
-<td class="race-Elfe">Elfe</td><td>Glaciation</td><td>Sort</td><td>Offensif</td> +
-<td>8 PM</td><td>+6</td><td>Autre</td><td>max 2</td> +
-<td>Vous devenez froids comme l'hiver et propagez cette froideur à un ennemi proche.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
-<tr class="Géant"> +
-<td class="race-Géant">Géant</td><td>Aiguillon</td><td>Sort</td><td>Offensif</td> +
-<td>4 PM</td><td>+3</td><td>Autre</td><td>min 2</td> +
-<td>Projette un aiguillon sur l’adversaire.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Géant"> +
-<td class="race-Géant">Géant</td><td>Boule de Magma</td><td>Sort</td><td>Offensif</td> +
-<td>7 PM</td><td>+3 + effet Feu</td><td>Autre</td><td>min 2</td> +
-<td>Lance une boule de lave en fusion sur l'adversaire, qui prend feu.</td><td>effet non cumulable</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Géant"> +
-<td class="race-Géant">Géant</td><td>Régénération</td><td>Sort</td><td>Bénédiction</td> +
-<td>6 PM</td><td></td><td>Autre</td><td>max 1</td> +
-<td>Régénère la santé d'une cible au corps à corps. La cible est soignée à la hauteur de la R du lanceur. inflige poison au lanceur.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Géant"> +
-<td class="race-Géant">Géant</td><td>Météore *</td><td>Sort</td><td>Offensif</td> +
-<td>12 PM</td><td>+M + effet Feu</td><td>Autre</td><td>min 2</td> +
-<td>Ajoute des dégâts magiques et de feu à une attaque au jet de pierre. La caractéristique de touche pour ce sort est la CT. Une pierre doit être équipée pour lancer le sort. L'attaquant fait en dégâts F+M et la cible encaisse avec E+M.</td><td>effet non cumulable</td><td>300 po</td> +
-</tr> +
- +
-<tr class="Géant"> +
-<td class="race-Géant">Géant</td><td>Souffle des cimes</td><td>Sort</td><td>Offensif</td> +
-<td>8 PM</td><td>+6</td><td>Autre</td><td>max 2</td> +
-<td>Imprégné de la puissance de l'orage, vous rugissez un flot de foudre sur votre adversaire.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
- +
-<tr class="Nain"> +
-<td class="race-Nain">Nain</td><td>Pic de Pierre</td><td>Sort</td><td>Offensif</td> +
-<td>4 PM</td><td>+3</td><td>Autre</td><td>min 2</td> +
-<td>Projette un pic de pierre sur l’adversaire.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Nain"> +
-<td class="race-Nain">Nain</td><td>Poings de Pierre</td><td>Sort</td><td>Offensif</td> +
-<td>8 PM</td><td>+8</td><td>Autre</td><td>max 1</td> +
-<td>Vos poings deviennent durs comme de la roche millénaire, que vous abattez sur vos ennemis.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
- +
-<tr class="Olympien"> +
-<td class="race-Olympien">Olympien</td><td>Lame Volante</td><td>Sort</td><td>Offensif</td> +
-<td>4 PM</td><td>+3</td><td>Autre</td><td>min 2</td> +
-<td>Projette une lame magique sur l'adversaire.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Olympien"> +
-<td class="race-Olympien">Olympien</td><td>Imposition des Mains</td><td>Sort</td><td>Bénédiction</td> +
-<td>7 PM</td><td>+3</td><td>Autre</td><td>max 1</td> +
-<td>Toucher magique pour soigner un blessé.</td><td>/</td><td>100 po</td> +
-</tr> +
- +
-<tr class="Olympien"> +
-<td class="race-Olympien">Olympien</td><td>Lame Bénie *</td><td>Sort</td><td>Offensif</td> +
-<td>12 PM</td><td>+M</td><td>Autre</td><td>max 1</td> +
-<td>Ajoute des dégâts magiques lors d'une attaque de mêlée. La caractéristique de touche pour ce sort est la CC. L'attaquant fait en dégâts F+M et la cible encaisse avec E+M. </td><td>/</td><td>300 po</td> +
-</tr> +
- +
-<tr class="Olympien"> +
-<td class="race-Olympien">Olympien</td><td>Soumission divine</td><td>Sort</td><td>Offensif</td> +
-<td>8 PM</td><td>+6</td><td>Autre</td><td>max 2</td> +
-<td>Vous vous approchez de votre cible et déferlez un torrent d'énergie divine dans sa direction.</td><td>/</td><td>300 po</td> +
-</tr> +
- +
-</tbody> +
-</table+
-</div> +
- +
- +
-<script> +
-// Script pour le premier tableau +
-const select1 = document.getElementById("raceSelect1"); +
-const rows1 = document.querySelectorAll("#competencesTable1 tbody tr"); +
- +
-select1.addEventListener("change", () => { +
-  const chosenRace = select1.value; +
-  rows1.forEach(row => { +
-    const isCommun = row.classList.contains("Communs"); +
-    const isRace = row.classList.contains(chosenRace); +
-    row.style.display = (chosenRace === "Toutes" || isCommun || isRace) ? "" : "none"; +
-  }); +
-}); +
-</script> +
- +
-<hr> +
- +
-<!-- ================= TABLEAU 2 : Sorts ================= --> +
-<h3>Gestion des compétences — Techniques Corps à corps</h3> +
-<label for="raceSelect2">Choisir une race :</label> +
-<select id="raceSelect2"> +
-  <option value="Toutes">Toutes</option> +
-  <option value="Communs">Communs</option> +
-  <option value="Nain">Nain</option> +
-  <option value="Géant">Géant</option> +
-  <option value="Olympien">Olympien</option> +
-  <option value="HS">HS</option> +
-  <option value="Elfe">Elfe</option> +
-</select>+
  
-<div class="table-container"> 
-<table id="competencesTable2"> 
 <thead> <thead>
 <tr> <tr>
-<th>Race</th><th>Nom</th><th>Type</th><th>Catégorie</th> +<th>Race</th> 
-<th>Coût</th><th>Bonus / Malus</th><th>Cible</th><th>Portée</th> +<th>Nom</th> 
-<th>Description</th><th>Cumulable</th><th>Prix</th>+<th>Type</th> 
 +<th>Coût</th> 
 +<th>Effet</th> 
 +<th>Niveau</th>
 </tr> </tr>
 </thead> </thead>
 +
 <tbody> <tbody>
  
-    <!-- ===== COMMUNS ===== --> +<!-- 🔥 OFFENSIF --> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Epuisement</td><td>Technique</td><td>Contact</td><td>/</td><td><span style="color: red;">Essouflement(X/2)</span></td><td>Autre</td><td>max 1</td><td>Ne fait pas de dégâts. Jet de CC pur. Essouflement(X/2) où X est la différence des jets de dés.</td><td>effet immédiat, gain immédiat des malus, pas de statut, cumul possible</td><td>50 pos</td></tr+<tr class="Communs" data-type="Sort" data-effect="offensif"> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Attaque précise</td><td>Technique</td><td>Contact</td><td>2 PM</td><td>+4 toucher, -3 dégâts</td><td>Autre</td><td>max 1</td><td>Bonus de +4 pour toucher, -3 dégâts.</td><td>/</td><td>50 pos</td></tr+<td>Communs</td> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Attaque violente</td><td>Technique</td><td>Contact</td><td>4 PM</td><td>-6 toucher, +3 dégâts</td><td>Autre</td><td>max 1</td><td>Malus de -6 pour toucher, +3 dégâts.</td><td>/</td><td>50 pos</td></tr+<td>Boule de feu</td> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Croc-en-jambe</td><td>Technique</td><td>Contact</td><td>6 PM</td><td>Ralentissement(x2D2)</td><td>Autre</td><td>max 1</td><td>Ralentissement(x2D2)</td><td>non cumulable</td><td>100 pos</td></tr+<td>Sort</td> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Manchette</td><td>Technique</td><td>Contact</td><td>2 PM</td><td>Maladresse(xX/2)</td><td>Autre</td><td>max 1</td><td>Ne fait pas de dégâts. Jet de CC pur. Si l'attaque touche, la cible aura Maladresse(xX/2) où X est la différence des jets de dés</td><td>non cumulable</td><td>100 pos</td></tr> +<td>6 PM</td> 
-      <tr class="Communs"><td class="race-Communs">Communs</td><td>Arme infusée</td><td>Technique</td><td>Contact</td><td>8 PM</td><td>M/3</td><td>Autre</td><td>max 1</td><td>Bonus de +M/3 dégâts.</td><td>/</td><td>200 pos</td></tr> +<td>Dégâts de feu brûlure</td> 
-      <tr class="Communs"> +<td>1</td>
-<td class="race-Communs">Communs</td><td>Bousculade</td><td>Technique</td><td>Contact</td> +
-<td>Mvt</td><td>0</td><td>Autre</td><td>max 1</td> +
-<td>Touche auto, pas de dégâts. Si Pousse(F) est réussi, la cible est repoussée sur la case opposée au lanceur et gagne Stabilité(+4)</td> +
-<td>/</td><td></td>+
 </tr> </tr>
  
-<tr class="Communs"+<!-- 🛡 DÉFENSIF --> 
-<td class="race-Communs">Communs</td><td>Coup d'épaule</td><td>Technique</td><td>Contact</td> +<tr class="Communs" data-type="Sort" data-effect="defensif"> 
-<td>Mvt, 0A</td><td>-3</td><td>Autre</td><td>max 1</td> +<td>Communs</td> 
-<td>Attaque de contact à -4 pour toucher et -3 F</td> +<td>Entraide</td> 
-<td>/</td><td></td>+<td>Sort</td> 
 +<td>PM</td> 
 +<td>Soigne un allié et lui donne un bonus défensif</td> 
 +<td>1</td>
 </tr> </tr>
  
-<tr class="Communs"+<!-- ☠️ MALÉDICTION --> 
-<td class="race-Communs">Communs</td><td>Coup ajusté</td><td>Technique</td><td>Contact</td> +<tr class="Communs" data-type="Sort" data-effect="malediction"> 
-<td>2 MP</td><td>/</td><td>Autre</td><td>max 1</td> +<td>Communs</td> 
-<td>L'attaque se fait avec l'avantage</td> +<td>Maudit</td> 
-<td>/</td><td></td>+<td>Sort</td> 
 +<td>6 PM</td> 
 +<td>Réduit les capacités de la cible</td> 
 +<td>1</td>
 </tr> </tr>
  
-<tr class="Communs"> +</tbody>
-<td class="race-Communs">Communs</td><td>Attaque drainante</td><td>Technique</td><td>Contact</td> +
-<td>4 MP</td><td>/</td><td>Autre</td><td>max 1</td> +
-<td>Rend autant de PV que les dégâts infligés / 3</td> +
-<td>/</td><td></td> +
-</tr>+
  
-<tr class="Communs"> +</table>
-<td class="race-Communs">Communs</td><td>Attaque siphonnante</td><td>Technique</td><td>Contact</td> +
-<td>2 PV</td><td>/</td><td>Autre</td><td>max 1</td> +
-<td>Rend autant de PM que les dégâts infligés / 3</td> +
-<td>/</td><td></td> +
-</tr>+
  
-<tr class="Communs"> +</html>
-<td class="race-Communs">Communs</td><td>Frappe à la tempe</td><td>Technique</td><td>Contact</td> +
-<td>4 MP</td><td>/</td><td>Autre</td><td>max 1</td> +
-<td>Dommage Mentaux (6)</td> +
-<td>/</td><td></td> +
-</tr>+
  
-    <!-- ===== NAINS ===== --> 
-          <tr class="Nain"><td class="race-Nain">Nain</td><td>Assomoir</td><td>Technique</td><td>Contact</td><td>7 PM</td><td>+4</td><td>Autre</td><td>max 1</td><td>Ignore le casque (chance de critique). Jet basé sur CC.</td>/<td></td><td>200 po</td></tr> 
-      <tr class="Nain"><td class="race-Nain">Nain</td><td>Barbier</td><td>Technique</td><td>Contact</td><td>8 PM</td><td></td><td>Autre</td><td>max 1</td><td>Soigne une cible au corps à corps ( la statistique utilisée pour le soin est l'agilité du lanceur)</td><td>/</td><td>100 po</td></tr> 
-      <tr class="Nain"><td class="race-Nain">Nain</td><td>Clé de bras</td><td>Technique</td><td>Contact</td><td>7 PM</td><td></td><td>Soi-même</td><td>0</td><td>Pare la prochaine attaque de mếlée et immobilise l'adversaire (uniquement à Mains nues).</td><td>/</td><td>200 po</td></tr> 
-      <tr class="Nain"><td class="race-Nain">Nain</td><td>Attaque Sautée</td><td>Technique</td><td>Contact</td><td>12 PM</td><td>+M</td><td>Autre</td><td>min 2</td><td>Avec une arme de mêlée, déplace immédiatement le personnage au contact de la cible et lui inflige des dégâts magiques. Pour ce sort, la carac de touche est la CC. L'attaquant fait en dégâts F+M et la cible encaisse avec E+M. </td><td>/</td><td>300 po</td></tr> 
  
-    <!-- ===== GÉANTS ===== --> 
-    <tr class="Géant"> 
-      <td class="race-Géant">Géant</td><td>Uppercut</td><td>Technique</td><td>Contact</td> 
-      <td>8 PM</td><td>+3 dégâts (coup critique automatique)</td><td>Autre</td><td>max 1</td> 
-      <td>Inflige un coup critique automatique à une cible au contact : +3 dégâts sur la cible.</td><td>/</td><td>200 po</td> 
-    </tr> 
  
-    <tr class="Géant"> +<html>
-      <td class="race-Géant">Géant</td><td>Leurre</td><td>Technique</td><td>Contact</td> +
-      <td>8 PM</td><td></td><td>Soi-même</td><td>0</td> +
-      <td>Leurre la prochaine attaque magique de l'adversaire.</td><td>/</td><td>200 po</td> +
-    </tr>+
  
-    <!-- ===== OLYMPIENS ===== --+<style
-    <tr class="Olympien"> +body { font-family: Arial, sans-serif; margin: 10px; }
-      <td class="race-Olympien">Olympien</td><td>Désarmement</td><td>Technique</td><td>Contact</td> +
-      <td>7 PM</td><td>+4</td><td>Autre</td><td>max 1</td> +
-      <td>Désarme l'adversaire ( % de chance que l'adversaire lâche son arme au sol).</td><td>/</td><td>200 po</td> +
-    </tr>+
  
-    <tr class="Olympien"> +.controls { display:flex; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
-      <td class="race-Olympien">Olympien</td><td>Parade</td><td>Technique</td><td>Contact</td> +
-      <td>7 PM</td><td></td><td>Soi-même</td><td>0</td> +
-      <td>Pare la prochaine attaque de mêlée de l'adversaire (nécessite une arme de mêlée).</td><td>/</td><td>200 po</td> +
-    </tr>+
  
-    <!-- ===== HS ===== --> +#pointsBox { font-weight:bold; margin-bottom:10px; }
-    <tr class="HS"> +
-      <td class="race-HS">HS</td><td>Griffes</td><td>Technique</td><td>Contact</td> +
-      <td>6 PM</td><td>+3 + poison + poison magique</td><td>Autre</td><td>max 1</td> +
-      <td>Inflige poison + poison magique.</td><td>/</td><td>200 po</td> +
-    </tr>+
  
-    <!-- ===== ELFES ===== --> +table { width:100%; border-collapse:collapse; } 
-    <tr class="Elfe"> +th, td { border:1px solid #ccc; padding:6px; text-align:left; } 
-      <td class="race-Elfe">Elfe</td><td>Frappe vicieuse</td><td>Technique</td><td>Contact</td> +th { background:#f2f2f2; cursor:pointer; } 
-      <td>7 PM</td><td>+2</td><td>Autre</td><td>max 1</td> +tr:nth-child(even){ background:#fafafa; }
-      <td>Ignore la pièce d'armure de tronc de l'adversaire.</td><td>/</td><td>200 po</td> +
-    </tr>+
  
-    <tr class="Elfe"> +.offensif { background:#ffe5e5; } 
-      <td class="race-Elfe">Elfe</td><td>Pas de côté</td><td>Technique</td><td>Contact</td> +.defensif { background:#e5f0ff; } 
-      <td>7 PM + 1 Mvt</td><td></td><td>Soi-même</td><td>0</td> +.utilitaire { background:#e5ffe5; } 
-      <td>Esquive la prochaine attaque physique en se déplaçant aléatoirement d'une case.</td><td>/</td><td>200 po</td> +.malediction { background:#eadcff; }
-    </tr> +
-     +
-     +
-    <!-- ===== COMMUNS ===== -->+
  
-<tr class="Communs"> +.lvl { padding:2px 6px; border-radius:4px; } 
-<td class="race-Communs">Communs</td><td>Maître bretteur</td><td>Passif</td><td>Passif</td> +.lvl-1 { background:#ddd; } 
-<td>/</td><td>/</td><td>/</td><td>/</td> +.lvl-2 { background:#cce5ff; }
-<td>Les Malus infligés par les attaques de mêlée du personnage sont augmentés de 2</td> +
-<td>2 compAvancées</td><td></td> +
-</tr>+
  
-<tr class="Communs"> +</style>
-<td class="race-Communs">Communs</td><td>Duelliste</td><td>Passif</td><td>Passif</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Le personnage a l'avantage quand il effectue une attaque/technique basée sur la CC</td> +
-<td>/</td><td></td> +
-</tr>+
  
-<!-- ===== GÉANTS ===== -->+<div id="pointsBox"> 
 +Points utilisés : <span id="points">0</span> / 15 
 +</div>
  
-<tr class="Géant"+<div class="controls">
-<td class="race-Géant">Géant</td><td>Berserker*</td><td>Passif</td><td>Passif</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Gagne +1 pour toucher au CàC tous les 10 pv perdus</td> +
-<td>/</td><td></td> +
-</tr>+
  
-<!-- ===== HS ===== -->+<select id="raceFilter"> 
 +<option value="Toutes">Toutes</option> 
 +<option value="Communs">Communs</option> 
 +</select>
  
-<tr class="HS"> +<select id="typeFilter"> 
-<td class="race-HS">HS</td><td>Griffes*</td><td>Passif</td><td>Passif</td+<option value="Tous">Tous types</option
-<td>/</td><td>/</td><td>/</td><td>/</td+<option value="CAC">CAC</option
-<td>Bonus de +3Dmg aux poings</td+<option value="Distance">Distance</option
-<td>/</td><td></td+<option value="Sort">Sort</option
-</tr>+</select>
  
-<!-- ===== ELFES ===== -->+<select id="effectFilter"> 
 +<option value="Tous">Tous effets</option> 
 +<option value="offensif">Offensif</option> 
 +<option value="defensif">Soutien / Défensif</option> 
 +<option value="malediction">Malédiction</option> 
 +</select>
  
-<tr class="Elfe"+<input type="textid="search" placeholder="Rechercher...">
-<td class="race-Elfe">Elfe</td><td>Fulgurance*</td><td>Passif</td><td>Passif</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Gagne +1 pour toucher au CàC et +1 Esquive tous les 5Mvt max</td> +
-<td>/</td><td></td> +
-</tr>+
  
-  </tbody> 
-</table> 
 </div> </div>
  
-<script> +<table id="table">
-// Script pour le second tableau +
-const select2 = document.getElementById("raceSelect2"); +
-const rows2 = document.querySelectorAll("#competencesTable2 tbody tr"); +
- +
-select2.addEventListener("change", () => { +
-  const chosenRace = select2.value; +
-  rows2.forEach(row => { +
-    const isCommun = row.classList.contains("Communs"); +
-    const isRace = row.classList.contains(chosenRace); +
-    row.style.display = (chosenRace === "Toutes" || isCommun || isRace) ? "" : "none"; +
-  }); +
-}); +
-</script> +
- +
- +
-<hr> +
- +
-<!-- ================= TABLEAU 3 : Techniques Distance ================= --> +
-<h3>Gestion des compétences — Techniques Distance</h3> +
-<label for="raceSelect3">Choisir une race :</label> +
-<select id="raceSelect3"> +
-  <option value="Toutes">Toutes</option> +
-  <option value="Communs">Communs</option> +
-  <option value="Nain">Nain</option> +
-  <option value="Géant">Géant</option> +
-  <option value="Olympien">Olympien</option> +
-  <option value="HS">HS</option> +
-  <option value="Elfe">Elfe</option> +
-</select> +
- +
-<div class="table-container"> +
-<table id="competencesTable3">+
 <thead> <thead>
 <tr> <tr>
-<th>Race</th><th>Nom</th><th>Type</th><th>Catégorie</th> +<th>Choix</th> 
-<th>Coût</th><th>Bonus / Malus</th><th>Cible</th><th>Portée</th> +<th>Race</th> 
-<th>Description</th><th>Cumulable</th><th>Prix</th>+<th>Nom</th> 
 +<th>Type</th> 
 +<th>Effet</th> 
 +<th>Niveau</th>
 </tr> </tr>
 </thead> </thead>
 +
 <tbody> <tbody>
  
-<!-- ================= COMMUNS ================= -->+<!-- SORTS AJOUTES -->
  
-<tr class="Communs"+<tr class="Communs offensifdata-type="Sort" data-level="1" data-effect="offensif"> 
-<td class="race-Communs">Communs</td><td>Tir épuisant</td><td>Technique</td><td>Tir munitions</td> +<td><input type="checkbox" class="skill"></td> 
-<td>/</td><td>Essoufflement (X/3)</td><td>Autre</td><td>min 2</td> +<td>Communs</td> 
-<td>Ne fait pas de dégâts. Jet de CT pur. Essouflement(X/3) où X est la différence des jets de dés</td><td>Effet immédiat. Cumul possible.</td><td>50 pos</td>+<td>Boule de feu</td> 
 +<td>Sort</td> 
 +<td>Dégâts de feu + brûlure</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
- +<tr class="Communs defensifdata-type="Sort" data-level="1" data-effect="defensif"> 
-<tr class="Communs"+<td><input type="checkbox" class="skill"></td> 
-<td class="race-Communs">Communs</td><td>Tir précis </td><td>Technique</td><td>Distance</td> +<td>Communs</td> 
-<td>2 MP</td><td>+4 au toucher, -3 dégâts</td><td>Autre</td><td>min 2</td> +<td>Entraide</td> 
-<td>Bonus +4 au toucher, Malus de 3 aux dégâts </td><td>/</td><td>50 pos</td>+<td>Sort</td> 
 +<td>Soigne et protège un allié</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
-<tr class="Communs"+<tr class="Communs maledictiondata-type="Sort" data-level="1" data-effect="malediction"> 
-<td class="race-Communs">Communs</td><td>Tir violent</td><td>Technique</td><td>Distance</td> +<td><input type="checkbox" class="skill"></td> 
-<td>2 MP</td><td>-6 au toucher, +2 dégâts</td><td>Autre</td><td>min 2</td> +<td>Communs</td> 
-<td>Malus de -6 pour toucher, bonus +2 dégâts</td><td>/</td><td>50 pos</td>+<td>Maudit</td> 
 +<td>Sort</td> 
 +<td>Affaiblit la cible</td> 
 +<td><span class="lvl lvl-1">1</span></td>
 </tr> </tr>
  
-<tr class="Communs"> +</tbody>
-<td class="race-Communs">Communs</td><td>Tir à la cheville</td><td>Technique</td><td>Tir munitions</td> +
-<td>6 MP</td><td>Ralentissement(x1D2)</td><td>Autre</td><td>min 2</td> +
-<td>Avec une arme à munitions, si la cible est touchée Ralentissement(x1D2)  </td><td>Non cumulable</td><td>100 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Tir handicapant</td><td>Technique</td><td>Distance</td> +
-<td>4 MP</td><td>Vulnérabilité (xX)</td><td>Autre</td><td>min 2</td> +
-<td>Ne fait pas de dégâts. Jet de CT pur. Vulnérabilité (xX) où X est la différence entre le jet d'attaque et de défense /3</td><td>Non cumulable</td><td>100 pos</td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Jet infusé</td><td>Technique</td><td>Jet</td> +
-<td>10 MP</td><td>M/3</td><td>Autre</td><td>min 2</td> +
-<td>Avec une arme de jet, +M/3 dmg</td><td>/</td><td>200 pos</td> +
-</tr> +
- +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Arme improvisée</td><td>Technique</td><td>Jet</td> +
-<td>2 MP</td><td>-2</td><td>Autre</td><td>min 2</td> +
-<td>Effectue une attaque à distance, même sans arme équipée. -4 pour toucher, -2 Dmg</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Bout portant</td><td>Technique</td><td>Jet</td> +
-<td>2 MP</td><td>/</td><td>Autre</td><td>max 1</td> +
-<td>Avec une arme de jet, fait un tir en étant au contact avec -8 pour toucher</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Tir ajusté</td><td>Technique</td><td>Distance</td> +
-<td>2 MP</td><td>/</td><td>Autre</td><td>min 2</td> +
-<td>Le tir se fait avec avantage</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Jet de sable</td><td>Technique</td><td>Distance</td> +
-<td>4 MP, 1 Mvt</td><td>0</td><td>Autre</td><td>max 1</td> +
-<td>Ne fait pas de dégâts. Aveuglement (x2)</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Tireur d'élite</td><td>Passif</td><td>/</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Le personnage a l'avantage quand il effectue une attaque/technique avec une arme de tir à munitions</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Lanceur</td><td>Passif</td><td>/</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Le personnage a l'avantage quand il effectue une attaque/technique avec une arme de jet</td> +
-<td>/</td><td></td> +
-</tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Escarmoucheur</td><td>Passif</td><td>/</td> +
-<td>/</td><td>/</td><td>/</td><td>/</td> +
-<td>Les Malus infligés par les Tirs du personnage sont augmentés de 2</td> +
-<td>/</td><td></td> +
-</tr> +
- +
- +
-  </tbody>+
 </table> </table>
-</div> 
  
 <script> <script>
-// Script pour le troisieme tableau +const maxPoints 15;
-const select3 document.getElementById("raceSelect3"); +
-const rows3 = document.querySelectorAll("#competencesTable3 tbody tr");+
  
-select3.addEventListener("change", (=> { +const raceFilter = document.getElementById("raceFilter"); 
-  const chosenRace select3.value+const typeFilter document.getElementById("typeFilter")
-  rows3.forEach(row => { +const effectFilter = document.getElementById("effectFilter"); 
-    const isCommun row.classList.contains("Communs"); +const search document.getElementById("search"); 
-    const isRace row.classList.contains(chosenRace); +const rows document.querySelectorAll("#table tbody tr"); 
-    row.style.display = (chosenRace === "Toutes|| isCommun || isRace? "" : "none"+const checkboxes = document.querySelectorAll(".skill"); 
-  }); +const pointsDisplay = document.getElementById("points");
-}); +
-</script>+
  
 +function updatePoints(e){
 +  let total = 0;
  
-<hr>+  checkboxes.forEach(cb =
 +    if(cb.checked) total++; 
 +  });
  
-<!-- ================= TABLEAU 4 : Furtivité ================= --+  if(total maxPoints){ 
-<h3>Gestion des compétences — Techniques Furtivité</h3> +    e.target.checked false; 
-<label for="raceSelect4">Choisir une race :</label> +    return; 
-<select id="raceSelect4"> +  }
-  <option value="Toutes">Toutes</option> +
-  <option value="Communs">Communs</option> +
-  <option value="Nain">Nain</option> +
-  <option value="Géant">Géant</option> +
-  <option value="Olympien">Olympien</option> +
-  <option value="HS">HS</option> +
-  <option value="Elfe">Elfe</option> +
-</select>+
  
-<div class="table-container"> +  pointsDisplay.textContent total;
-<table id="competencesTable4"> +
-<thead> +
-<tr> +
-<th>Race</th><th>Nom</th><th>Type</th><th>Catégorie</th> +
-<th>Coût</th><th>Bonus / Malus</th><th>Cible</th><th>Portée</th> +
-<th>Description</th><th>Cumulable</th><th>Prix</th> +
-</tr> +
-</thead> +
-<tbody>+
  
 +  if(total >= maxPoints){
 +    checkboxes.forEach(cb => {
 +      if(!cb.checked) cb.disabled = true;
 +    });
 +  } else {
 +    checkboxes.forEach(cb => cb.disabled = false);
 +  }
 +}
  
 +checkboxes.forEach(cb => cb.addEventListener("change", updatePoints));
  
 +function filter(){
 +  const term = search.value.toLowerCase();
  
- <!-- ================= COMMUNS ================= -->+  rows.forEach(row=>{
  
- <tr class="Communs"> +    const raceOk = raceFilter.value==="Toutes|| row.classList.contains(raceFilter.value); 
- <td class="race-Communs">Communs</td><td>Exploration</td><td>Technique</td><td>Personnel</td> +    const typeOk = typeFilter.value==="Tous|| row.dataset.type===typeFilter.value; 
- <td>Toutes les A restantes </td><td>+X P</td><td>Soi-même</td><td>/</td> +    const effectOk = effectFilter.value==="Tous" || row.dataset.effect===effectFilter.value; 
- <td>Le personnage gagne Acuité visuelle (xoù x est le nombre d'actions dépensées jusqu'au prochain tour</td><td>/</td><td>50 pos</td> +    const textOk = row.innerText.toLowerCase().includes(term);
- </tr>+
  
- +    row.style.display = (raceOk && typeOk && effectOk && textOk) ? "" : "none";
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Discrétion</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt </td><td></td><td>Soi-même</td><td>/</td> +
- <td>Le personnage n'apparaîtra pas sur la carte générale jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>200 pos</td> +
- </tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Pas léger</td><td>Technique</td><td>Personnel</td> +
-<td>X MP, Y Mvt, 1A</td><td>/</td><td>Soi-même</td><td>/</td> +
-<td>Les déplacements ne laissent pas de trace de pas jusqu'au prochain tour. X= 2*(Furtivité+1). Y = 1*(Furtivité+1) (voir sous le tableau)</td> +
-<td>/</td><td></td> +
-</tr> +
- +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Olympien)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Olympien) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Elfe)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Elfe) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (HS)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (HS) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Géant)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Géant) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Nain)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Nain) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
- +
-  </tbody> +
-</table> +
-</div> +
- +
- +
-  </tbody> +
-</table> +
-</div> +
- +
-<script> +
-// Script pour le quatrieme tableau +
-const select4 = document.getElementById("raceSelect4"); +
-const rows4 = document.querySelectorAll("#competencesTable4 tbody tr"); +
- +
-select4.addEventListener("change", () => { +
-  const chosenRace = select4.value; +
-  rows3.forEach(row => { +
-    const isCommun = row.classList.contains("Communs"); +
-    const isRace = row.classList.contains(chosenRace); +
-    row.style.display = (chosenRace === "Toutes" || isCommun || isRace) ? "" : "none";+
   });   });
-}); +}
-</script>+
  
 +raceFilter.onchange = filter;
 +typeFilter.onchange = filter;
 +effectFilter.onchange = filter;
 +search.oninput = filter;
  
-<hr>+function sortTable(col){ 
 +  const tbody = document.querySelector("#table tbody"); 
 +  const rowsArr = Array.from(tbody.rows);
  
-<!-- ================= TABLEAU 5 : Survie ================= --> +  rowsArr.sort((a,b)=>a.cells[col].innerText.localeCompare(b.cells[col].innerText,undefined,{numeric:true}));
-<h3>Gestion des compétences — Techniques de Survie</h3> +
-<label for="raceSelect5">Choisir une race :</label> +
-<select id="raceSelect5"> +
-  <option value="Toutes">Toutes</option> +
-  <option value="Communs">Communs</option> +
-  <option value="Nain">Nain</option> +
-  <option value="Géant">Géant</option> +
-  <option value="Olympien">Olympien</option> +
-  <option value="HS">HS</option> +
-  <option value="Elfe">Elfe</option> +
-</select>+
  
-<div class="table-container"> +  rowsArr.forEach(r=>tbody.appendChild(r)); 
-<table id="competencesTable5"> +}
-<thead> +
-<tr> +
-<th>Race</th><th>Nom</th><th>Type</th><th>Catégorie</th> +
-<th>Coût</th><th>Bonus / Malus</th><th>Cible</th><th>Portée</th> +
-<th>Description</th><th>Cumulable</th><th>Prix</th> +
-</tr> +
-</thead> +
-<tbody> +
- +
- +
- +
- +
- <!-- ================= COMMUNS ================= --> +
- +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Exploration</td><td>Technique</td><td>Personnel</td> +
- <td>Toutes les A restantes </td><td>+X P</td><td>Soi-même</td><td>/</td> +
- <td>Le personnage gagne Acuité visuelle (x) où x est le nombre d'actions dépensées jusqu'au prochain tour</td><td>/</td><td>50 pos</td> +
- </tr> +
- +
- +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Discrétion</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt </td><td></td><td>Soi-même</td><td>/</td> +
- <td>Le personnage n'apparaîtra pas sur la carte générale jusqu'à son prochain tourX= 2*(Furtivité+1). Y 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>200 pos</td> +
- </tr> +
- +
-<tr class="Communs"> +
-<td class="race-Communs">Communs</td><td>Pas léger</td><td>Technique</td><td>Personnel</td> +
-<td>X MP, Y Mvt, 1A</td><td>/</td><td>Soi-même</td><td>/</td> +
-<td>Les déplacements ne laissent pas de trace de pas jusqu'au prochain tour. X= 2*(Furtivité+1). Y = 1*(Furtivité+1) (voir sous le tableau)</td> +
-<td>/</td><td></td> +
-</tr> +
- +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Olympien)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Olympien) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Elfe)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Elfe) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (HS)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (HS) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Géant)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Géant) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
-  +
- <tr class="Communs"> +
- <td class="race-Communs">Communs</td><td>Camouflage (Nain)</td><td>Technique</td><td>Personnel</td> +
- <td>X MP, Y Mvt</td><td>/</td><td>Soi-même</td><td>/</td> +
- <td>Apparaît sur la carte générale avec la Race choisie (Nain) jusqu'à son prochain tour. X= 2*(Furtivité+1). Y = 1/2*(Furtivité+1) (voir sous le tableau)</td><td>/</td><td>300 pos</td> +
- </tr> +
- +
-  </tbody+
-</table> +
-</div> +
- +
- +
-<script> +
-// Script pour le cinquième tableau +
-const select5 = document.getElementById("raceSelect5")+
-const rows5 = document.querySelectorAll("#competencesTable5 tbody tr"); +
- +
-select5.addEventListener("change", () => { +
-  const chosenRace = select5.value; +
-  rows3.forEach(row => { +
-    const isCommun = row.classList.contains("Communs"); +
-    const isRace = row.classList.contains(chosenRace); +
-    row.style.display = (chosenRace === "Toutes" || isCommun || isRace) ? "" : "none"; +
-  }); +
-});+
 </script> </script>
  
- 
-</body> 
 </html> </html>
- 
- 
- 
- 
-**Fonctionnement de la carte sur Olympia** :  
->1) Tous les joueurs sur Olympia apparaissent en points noirs sur la carte du monde. 
-> 
->2) Dans un rayon de 15 cases autour de sa position, un joueur voit la couleur de la race des  autres personnages. 
-> 
->3) Si le personnage se déplace, la couleur se met à jour en fonction de la nouvelle position. 
- 
-  
-**Fonctionnement des compétences de discrétion **: 
->1) Lorsque le personnage utilise la compétence "discrétion", il n'apparait plus sur la carte du monde __**jusqu'à sa prochaine activation**__. L'icone Furtivité apparait avec un décompte.  
-> 
->Lors de son prochain tour, pour être de nouveau invisible sur la carte du monde, le joueur devra relancer la compétence "discrétion" (au plus tôt pour apparaitre le moins longtemps possible sur la carte du monde). 
-> 
->2) Pour éviter que ce soit trop simple de rester furtif, le coût augmente à mesure du nombre d'utilisations successives le compétence.  
-> 
->3) Utiliser une compétence de discrétion (Discrétion pour le moment) ajoute une charge de l'Effet "Furtivité" pour 48h qui se stack et dont la durée se réinitialise à chaque utilisation de Discrétion. Chaque charge de "Furtivité" augmente les coûts des compétences de discrétion.  
-> 
->4) Pour réinitialiser le coût des compétences de discrétion, il faut perdre l'effet Furtivité (donc ne pas utiliser de compétence de discrétion pendant 48h) 
-> 
->5)Avec la compétence Discrétion, __**on est invisible uniquement sur la carte globale et non sur les mini map (ville et sous plans)**__. 
- 
- 
  
brouillon3.1776593071.txt.gz · Dernière modification : 2026/04/19 12:04 de nanaki