brouillon3
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| brouillon3 [2026/04/18 22:17] – nanaki | brouillon3 [2026/04/21 17:22] (Version actuelle) – nanaki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ===== Liste des Sorts ===== | + | < |
| - | Un complément d' | ||
| - | |||
| - | < | ||
| - | < | ||
| - | <meta charset=" | ||
| - | < | ||
| < | < | ||
| body { font-family: | body { font-family: | ||
| - | h3 { text-align: center; } | ||
| - | .table-container { width: 100%; overflow-x: auto; margin-top: 10px; } | ||
| - | table { width: 100%; border-collapse: | ||
| - | th, td { padding: 8px; border: 1px solid #ccc; text-align: left; } | ||
| - | th { background: #f2f2f2; } | ||
| - | tbody tr: | ||
| - | tbody tr: | ||
| - | /* Couleurs par race */ | + | .controls |
| - | td.race-Communs | + | |
| - | td.race-Nain { color: red; } | + | |
| - | td.race-Géant { color: saddlebrown; } | + | |
| - | td.race-Olympien { color: darkorange; } | + | |
| - | td.race-HS { color: darkgreen; } | + | |
| - | td.race-Elfe { color: green; } | + | |
| - | </ | + | |
| - | </ | + | |
| - | < | + | |
| - | <!-- ================= TABLEAU 1 : sorts ================= --> | + | #pointsBox { font-weight:bold; margin-bottom:10px; } |
| - | < | + | |
| - | <label for=" | + | |
| - | <select id=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | </ | + | |
| - | <div class=" | + | table { width:100%; border-collapse: |
| - | <table id=" | + | th, td { border:1px solid #ccc; padding: |
| - | < | + | th { background:# |
| - | <tr> | + | tr:nth-child(even){ background:# |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | </ | + | |
| - | < | + | |
| - | <!-- ================= COMMUNS ================= --> | + | .offensif { background:# |
| + | .defensif { background:# | ||
| + | .utilitaire { background:# | ||
| + | .lvl { padding:2px 6px; border-radius: | ||
| + | .lvl-1 { background:# | ||
| + | .lvl-2 { background:# | ||
| + | </ | ||
| - | <tr class="Communs"> | + | <div id="pointsBox"> |
| - | <td class="race-Communs">Communs</td>< | + | Points utilisés : <span id="points">0</span> / 15 |
| - | <td>6 MP</ | + | </div> |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <div class=" |
| - | <td class="race-Communs"> | + | <select id="raceFilter"> |
| - | <td>6 MP</td>< | + | <option value=" |
| - | <td>Bonus de +4 pour toucher</ | + | <option value=" |
| - | </tr> | + | </select> |
| - | <tr class="Communs"> | + | <select id="typeFilter"> |
| - | <td class="race-Communs">Communs</td><td>Arcanes violentes</td>< | + | <option value="Tous">Tous</option> |
| - | <td>6 MP</td>< | + | <option value=" |
| - | <td>Malus de -6 pour toucher, bonus +5 dégâts</ | + | <option value=" |
| - | </tr> | + | <option value=" |
| + | </select> | ||
| - | <tr class="Communs"> | + | <input type="text" |
| - | <td class="race-Communs"> | + | </div> |
| - | <td>4 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | <table id="table"> |
| - | <td class=" | + | <thead> |
| - | <td>4 MP</ | + | <tr> |
| - | <td> | + | <th onclick=" |
| + | <th onclick=" | ||
| + | <th onclick=" | ||
| + | <th onclick=" | ||
| + | <th>Effet</th> | ||
| + | <th onclick=" | ||
| </tr> | </tr> | ||
| + | </ | ||
| - | <tr class=" | + | <tbody> |
| - | <td class=" | + | |
| - | <td>4 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <tr class=" |
| - | <td class=" | + | <td>< |
| - | < | + | <td>Communs</td> |
| - | <td>Réduit la précision</td>< | + | <td>Attaque précise</td> |
| + | <td>CAC</ | ||
| + | <td>+4 toucher, -3 dégâts</ | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | <tr class=" |
| - | <td class=" | + | <td>< |
| - | < | + | <td>Communs</td> |
| - | < | + | <td>Arme improvisée</td> |
| + | <td>Distance</ | ||
| + | <td>-4 toucher, -2 dégâts</td> | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | <tr class=" |
| - | <td class=" | + | <td>< |
| - | <td>6 MP</ | + | <td>Communs</td> |
| - | < | + | <td>Arcane ajustée</td> |
| + | <td>Sort</ | ||
| + | <td>Avantage au toucher</td> | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | </tbody> |
| - | <td class=" | + | </table> |
| - | <td>6 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <script> |
| - | <td class=" | + | const maxPoints |
| - | <td>6 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | const raceFilter |
| - | <td class="race-Communs"> | + | const typeFilter |
| - | <td>8 MP</ | + | const search = document.getElementById(" |
| - | < | + | const rows = document.querySelectorAll("# |
| - | </tr> | + | const checkboxes = document.querySelectorAll(" |
| + | const pointsDisplay = document.getElementById(" | ||
| - | <tr class=" | + | function updatePoints(e){ |
| - | <td class=" | + | let total = 0; |
| - | <td>8 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | checkboxes.forEach(cb |
| - | <td class=" | + | |
| - | <td>6 MP</ | + | }); |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | if(total |
| - | <td class=" | + | |
| - | <td>6 MP</ | + | |
| - | < | + | } |
| - | </tr> | + | |
| - | <tr class=" | + | pointsDisplay.textContent |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | if(total >= maxPoints){ |
| - | <td class=" | + | |
| - | <td>6 MP</ | + | if(!cb.checked) cb.disabled = true; |
| - | < | + | }); |
| - | </tr> | + | } else { |
| + | checkboxes.forEach(cb => cb.disabled = false); | ||
| + | } | ||
| + | } | ||
| - | <tr class=" | + | checkboxes.forEach(cb |
| - | <td class="race-Communs"> | + | |
| - | <td>4 MP</ | + | }); |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | function filter(){ |
| - | <td class=" | + | const term = search.value.toLowerCase(); |
| - | <td>8 MP</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | rows.forEach(row=> |
| - | <td class="race-Communs"> | + | const raceOk = raceFilter.value==="Toutes" |
| - | <td>4 MP</ | + | const typeOk = typeFilter.value==="Tous" |
| - | < | + | const textOk = row.innerText.toLowerCase().includes(term); |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | row.style.display |
| - | <td class="race-Communs"> | + | }); |
| - | <td>6 MP</ | + | } |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | raceFilter.onchange |
| - | <td class=" | + | typeFilter.onchange |
| - | <td>6 MP</ | + | search.oninput = filter; |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | function sortTable(col){ |
| - | <td class=" | + | const tbody = document.querySelector("#table tbody"); |
| - | <td>0 MP, 5 PV, 2 Mvt</ | + | const rowsArr |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | rowsArr.sort((a, |
| - | <td class=" | + | |
| - | <td>2 MP, 1 Mvt</ | + | |
| - | < | + | |
| - | </tr> | + | )); |
| - | <tr class=" | + | rowsArr.forEach(r=>tbody.appendChild(r)); |
| - | <td class=" | + | } |
| - | <td>8 MP</ | + | </script> |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | </html> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>8 MP</ | ||
| - | < | ||
| - | </tr> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>4 MP</ | ||
| - | < | ||
| - | </tr> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>8 MP</ | ||
| - | < | ||
| - | </tr> | ||
| - | <tr class=" | + | <html> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <style> |
| - | <td class=" | + | table { width:100%; border-collapse: |
| - | <td>12 MP</ | + | th, td { border:1px solid #ccc; padding: |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class="Communs"> | + | tr[data-effect="offensif"] { background:# |
| - | <td class="race-Communs"> | + | tr[data-effect="defensif"] { background:# |
| - | < | + | tr[data-effect=" |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | th { background:# |
| - | <td class=" | + | </style> |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <table> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <thead> |
| - | <td class=" | + | <tr> |
| - | <td>12 MP</td><td>Agressivité (x2)</td>< | + | <th>Race</th> |
| - | <td> | + | <th>Nom</th> |
| + | <th>Type</th> | ||
| + | <th>Coût</th> | ||
| + | <th>Effet</th> | ||
| + | <th>Niveau</th> | ||
| </tr> | </tr> | ||
| + | </ | ||
| - | <tr class=" | + | <tbody> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <!-- 🔥 OFFENSIF --> |
| - | <td class="race-Communs">Communs</td>< | + | <tr class=" |
| - | <td>20 MP</ | + | <td>Communs</td> |
| - | <td>Double malédiction</ | + | <td>Boule de feu</td> |
| + | <td>Sort</ | ||
| + | <td>6 PM</td> | ||
| + | <td>Dégâts de feu + brûlure</ | ||
| + | <td>1</td> | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | <!-- 🛡 DÉFENSIF --> |
| - | <td class="race-Communs">Communs</td>< | + | <tr class=" |
| - | <td>10 MP</ | + | <td>Communs</td> |
| - | < | + | <td>Entraide</td> |
| + | <td>Sort</ | ||
| + | <td>5 PM</td> | ||
| + | <td>Soigne un allié et lui donne un bonus défensif</td> | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | <!-- ☠️ MALÉDICTION --> |
| - | <td class="race-Communs">Communs</td>< | + | <tr class=" |
| - | <td>25 MP</ | + | <td>Communs</td> |
| - | <td>Vulnérabilité (x8)</ | + | <td>Maudit</td> |
| + | <td>Sort</ | ||
| + | <td>6 PM</td> | ||
| + | <td>Réduit les capacités de la cible</ | ||
| + | <td>1</td> | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | </tbody> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | </table> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | </html> |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <!-- ================= RACES ================= --> | ||
| - | <tr class=" | + | <html> |
| - | <td class=" | + | |
| - | <td>3 PM</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | <style> |
| - | <td class=" | + | body { font-family: Arial, sans-serif; margin: 10px; } |
| - | <td>4 PM</ | + | |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | .controls { display: |
| - | <td class=" | + | |
| - | <td>6 PM</ | + | |
| - | < | + | |
| - | </tr> | + | |
| + | #pointsBox { font-weight: | ||
| - | <tr class=" | + | table { width:100%; border-collapse: |
| - | <td class=" | + | th, td { border:1px solid #ccc; padding: |
| - | < | + | th { background:# |
| - | < | + | tr: |
| - | </tr> | + | |
| - | <tr class=" | + | .offensif { background:# |
| - | <td class=" | + | .defensif { background:# |
| - | < | + | .utilitaire { background:# |
| - | < | + | .malediction { background:# |
| - | </tr> | + | |
| - | <tr class=" | + | .lvl { padding:2px 6px; border-radius:4px; } |
| - | <td class=" | + | .lvl-1 { background:# |
| - | <td>4 PM</ | + | .lvl-2 { background:# |
| - | < | + | |
| - | </tr> | + | |
| - | <tr class=" | + | </style> |
| - | <td class=" | + | |
| - | <td>5 PM</ | + | |
| - | <td> Projette une flèche composée d'eau sur l' | + | |
| - | </tr> | + | |
| - | <tr class="Elfe"> | + | <div id="pointsBox"> |
| - | <td class="race-Elfe">Elfe</td>< | + | Points utilisés : <span id="points">0</span> / 15 |
| - | <td>6 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>8 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>4 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>7 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>6 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>8 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>4 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>8 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>4 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>7 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>8 PM</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | </ | + | |
| - | </ | + | |
| </ | </ | ||
| + | <div class=" | ||
| - | <script> | + | <select id=" |
| - | // Script pour le premier tableau | + | <option value="Toutes"> |
| - | const select1 | + | <option value="Communs"> |
| - | const rows1 = document.querySelectorAll("# | + | </ |
| - | select1.addEventListener("change", () => { | + | <select id="typeFilter"> |
| - | const chosenRace = select1.value; | + | < |
| - | rows1.forEach(row | + | <option value="CAC"> |
| - | const isCommun | + | <option value=" |
| - | const isRace | + | <option value="Sort"> |
| - | | + | </select> |
| - | }); | + | |
| - | }); | + | |
| - | </script> | + | |
| - | < | + | <select id="effectFilter"> |
| - | + | <option value=" | |
| - | <!-- ================= TABLEAU 2 : Sorts ================= --> | + | <option value=" |
| - | < | + | <option value=" |
| - | <label for=" | + | <option value=" |
| - | <select id="raceSelect2"> | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| </ | </ | ||
| - | <div class="table-container"> | + | <input type="text" id="search" |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | </ | + | |
| - | <tbody> | + | |
| - | <!-- ===== COMMUNS ===== --> | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | |||
| - | <!-- ===== NAINS ===== --> | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | <tr class=" | ||
| - | |||
| - | <!-- ===== GÉANTS ===== --> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>8 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>8 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <!-- ===== OLYMPIENS ===== --> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>7 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>7 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <!-- ===== HS ===== --> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>6 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <!-- ===== ELFES ===== --> | ||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>7 PM</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | <tr class=" | ||
| - | <td class=" | ||
| - | <td>7 PM + 1 Mvt</ | ||
| - | < | ||
| - | </tr> | ||
| - | |||
| - | </ | ||
| - | </ | ||
| </ | </ | ||
| - | <script> | + | <table id=" |
| - | // Script pour le second tableau | + | |
| - | const select2 = document.getElementById(" | + | |
| - | const rows2 = document.querySelectorAll("# | + | |
| - | + | ||
| - | select2.addEventListener(" | + | |
| - | const chosenRace = select2.value; | + | |
| - | rows2.forEach(row => { | + | |
| - | const isCommun = row.classList.contains(" | + | |
| - | const isRace = row.classList.contains(chosenRace); | + | |
| - | row.style.display = (chosenRace === " | + | |
| - | }); | + | |
| - | }); | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | + | ||
| - | <!-- ================= TABLEAU 3 : Techniques Distance ================= --> | + | |
| - | < | + | |
| - | <label for=" | + | |
| - | < | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | </ | + | |
| - | + | ||
| - | <div class=" | + | |
| - | <table id=" | + | |
| < | < | ||
| <tr> | <tr> | ||
| - | <th>Race</ | + | <th>Choix</th> |
| - | <th>Coût</ | + | <th>Race</th> |
| - | <th>Description</ | + | <th>Nom</th> |
| + | <th>Type</ | ||
| + | <th>Effet</ | ||
| + | <th>Niveau</th> | ||
| </tr> | </tr> | ||
| </ | </ | ||
| + | |||
| < | < | ||
| - | < | + | < |
| - | <tr class=" | + | <tr class=" |
| - | <td class="race-Communs">Communs</td><td>Tir épuisant</ | + | < |
| - | <td>/</ | + | <td>Communs</td> |
| - | <td>Ne fait pas de dégâts. Jet de CT pur. Essouflement(X/ | + | <td>Boule de feu</ |
| + | <td>Sort</td> | ||
| + | <td>Dégâts de feu + brûlure</ | ||
| + | < | ||
| </tr> | </tr> | ||
| - | + | <tr class=" | |
| - | <tr class=" | + | < |
| - | <td class="race-Communs">Communs</td><td>Tir précis | + | <td>Communs</td> |
| - | <td>2 MP</ | + | <td>Entraide</ |
| - | <td>Bonus +4 au toucher, Malus de 3 aux dégâts | + | <td>Sort</td> |
| + | <td>Soigne et protège un allié</ | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | <tr class=" |
| - | <td class="race-Communs">Communs</td><td>Tir violent</ | + | < |
| - | <td>2 MP</ | + | <td>Communs</td> |
| - | < | + | <td>Maudit</ |
| + | <td>Sort</td> | ||
| + | <td>Affaiblit la cible</td> | ||
| + | < | ||
| </tr> | </tr> | ||
| - | <tr class=" | + | </ |
| - | <td class=" | + | |
| - | <td>6 MP</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | <td>4 MP</ | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| </ | </ | ||
| - | </ | ||
| < | < | ||
| - | // Script pour le troisieme tableau | + | const maxPoints |
| - | const select3 | + | |
| - | const rows3 = document.querySelectorAll("# | + | |
| - | select3.addEventListener("change", () => { | + | const raceFilter = document.getElementById("raceFilter"); |
| - | const chosenRace | + | const typeFilter |
| - | rows3.forEach(row => { | + | const effectFilter = document.getElementById(" |
| - | const isCommun | + | const search |
| - | const isRace | + | const rows = document.querySelectorAll("# |
| - | | + | const checkboxes = document.querySelectorAll(".skill"); |
| - | }); | + | const pointsDisplay = document.getElementById(" |
| - | }); | + | |
| - | </ | + | |
| + | function updatePoints(e){ | ||
| + | let total = 0; | ||
| - | <hr> | + | checkboxes.forEach(cb => { |
| + | if(cb.checked) total++; | ||
| + | }); | ||
| - | <!-- ================= TABLEAU 4 : Furtivité ================= --> | + | if(total |
| - | < | + | |
| - | <label for=" | + | |
| - | <select id=" | + | |
| - | | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | </ | + | |
| - | <div class=" | + | pointsDisplay.textContent |
| - | <table id=" | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | </ | + | |
| - | < | + | |
| + | if(total >= maxPoints){ | ||
| + | checkboxes.forEach(cb => { | ||
| + | if(!cb.checked) cb.disabled = true; | ||
| + | }); | ||
| + | } else { | ||
| + | checkboxes.forEach(cb => cb.disabled = false); | ||
| + | } | ||
| + | } | ||
| + | checkboxes.forEach(cb => cb.addEventListener(" | ||
| + | function filter(){ | ||
| + | const term = search.value.toLowerCase(); | ||
| - | < | + | rows.forEach(row=>{ |
| - | <tr class="Communs"> | + | const raceOk = raceFilter.value==="Toutes" |
| - | <td class="race-Communs"> | + | const typeOk = typeFilter.value==="Tous" |
| - | < | + | const effectOk = effectFilter.value===" |
| - | < | + | const textOk = row.innerText.toLowerCase().includes(term); |
| - | </ | + | |
| + | row.style.display = (raceOk && typeOk && effectOk && textOk) ? "" | ||
| + | }); | ||
| + | } | ||
| - | <tr class=" | + | raceFilter.onchange |
| - | <td class=" | + | typeFilter.onchange |
| - | < | + | effectFilter.onchange |
| - | < | + | search.oninput |
| - | </ | + | |
| - | <tr class=" | + | function sortTable(col){ |
| - | <td class=" | + | const tbody = document.querySelector("#table tbody"); |
| - | < | + | const rowsArr |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class="Communs"> | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | + | ||
| - | <tr class=" | + | |
| - | <td class=" | + | |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| - | | + | |
| - | </ | + | |
| - | </div> | + | |
| - | + | rowsArr.forEach(r=>tbody.appendChild(r)); | |
| - | </ | + | } |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | < | + | |
| - | // Script pour le quatrieme tableau | + | |
| - | const select4 = document.getElementById(" | + | |
| - | const rows4 = document.querySelectorAll("# | + | |
| - | + | ||
| - | select4.addEventListener(" | + | |
| - | const chosenRace = select4.value; | + | |
| - | rows3.forEach(row => { | + | |
| - | const isCommun = row.classList.contains(" | + | |
| - | const isRace = row.classList.contains(chosenRace); | + | |
| - | | + | |
| - | | + | |
| - | }); | + | |
| </ | </ | ||
| - | |||
| - | </ | ||
| </ | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | **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 " | ||
| - | > | ||
| - | >Lors de son prochain tour, pour être de nouveau invisible sur la carte du monde, le joueur devra relancer la compétence " | ||
| - | > | ||
| - | >2) Pour éviter que ce soit trop simple de rester furtif, le coût augmente à mesure du nombre d' | ||
| - | > | ||
| - | >3) Utiliser une compétence de discrétion (Discrétion pour le moment) ajoute une charge de l' | ||
| - | > | ||
| - | >4) Pour réinitialiser le coût des compétences de discrétion, | ||
| - | > | ||
| - | >5)Avec la compétence Discrétion, | ||
| - | |||
| - | |||
brouillon3.1776543435.txt.gz · Dernière modification : 2026/04/18 22:17 de nanaki
