brouillon8
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 | ||
| brouillon8 [2026/04/28 18:37] – nanaki | brouillon8 [2026/04/28 19:04] (Version actuelle) – nanaki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | essai | + | Essai 3 |
| < | < | ||
| < | < | ||
| <meta charset=" | <meta charset=" | ||
| - | < | + | < |
| < | < | ||
| - | body { | + | body { font-family: |
| - | | + | h1,h2 { color: |
| - | | + | .box { border:1px solid gold; padding: |
| - | | + | select, |
| - | | + | button { padding: |
| - | } | + | |
| - | h2 { | + | |
| - | | + | |
| - | } | + | |
| - | select, input { | + | |
| - | margin: 5px; | + | |
| - | } | + | |
| - | .box { | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } | + | |
| </ | </ | ||
| </ | </ | ||
| Ligne 29: | Ligne 17: | ||
| < | < | ||
| - | <h1>🧝 Simulateur | + | < |
| <div class=" | <div class=" | ||
| - | <h2>Race</h2> | + | Race |
| - | <select id=" | + | <select id=" |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | <option value=" | + | |
| - | </ | + | |
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | <h2>Stats à ajouter</ | + | Stats |
| - | CC: <input type=" | + | <div id="stats">< |
| - | F: <input type=" | + | |
| - | E: <input type=" | + | |
| - | Agi: <input type=" | + | |
| - | M: <input type=" | + | |
| - | PV: <input type=" | + | |
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | <h2>Équipement (max 4)</h2> | + | Équipement<br> |
| - | <label><input type="checkbox" | + | Tête <select id=" |
| - | <label>< | + | Cou <select id="neck"></ |
| - | <label>< | + | Dos <select id="cape"></ |
| - | <label>< | + | Main droite |
| + | Main gauche <select id="leftHand"></ | ||
| + | Corps <select id="body"></ | ||
| + | Anneau | ||
| + | Pieds <select id=" | ||
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | <h2>Compétences | + | Compétences |
| - | <input type="checkbox"> | + | <div id="skills">< |
| - | <input type=" | + | |
| - | <input type=" | + | |
| - | <input type=" | + | |
| - | <input type=" | + | |
| </ | </ | ||
| - | <button onclick=" | + | <button onclick=" |
| + | <button onclick=" | ||
| - | <div class=" | ||
| - | < | ||
| <pre id=" | <pre id=" | ||
| - | </ | ||
| < | < | ||
| + | |||
| + | // ===== DATA ===== | ||
| const races = { | const races = { | ||
| - | elfe: {cc:9, f:9, e:4, agi: | + | Elfe:{cc:9,ct:10, |
| - | nain: {cc:11, f:11, e:6, agi: | + | Nain:{cc:11,ct:8, |
| - | geant: {cc:9, f:12, e:4, agi: | + | Géant:{cc:9,ct:10, |
| - | | + | Olympien:{cc:10,ct:9, |
| - | hs: {cc:8, f:7, e:3, agi: | + | HS:{cc:8,ct:9, |
| }; | }; | ||
| - | function calcul() { | ||
| - | let race = document.getElementById(" | + | const costTable |
| - | let base = {...races[race]}; | + | cc:[100,50,30], f: |
| + | pv:[4,2,1], mvt: | ||
| + | }; | ||
| - | base.cc += parseInt(document.getElementById(" | + | const equipments = [ |
| - | base.f += parseInt(document.getElementById(" | + | {name:" |
| - | base.e += parseInt(document.getElementById(" | + | {name:" |
| - | base.agi += parseInt(document.getElementById("agi" | + | {name:" |
| - | base.m += parseInt(document.getElementById("m" | + | {name:" |
| - | base.pv += parseInt(document.getElementById(" | + | ]; |
| + | |||
| + | const skills | ||
| + | |||
| + | // ===== DOM ===== | ||
| + | const raceSelect = document.getElementById(" | ||
| + | const statsDiv = document.getElementById(" | ||
| + | const skillsDiv = document.getElementById(" | ||
| + | |||
| + | const head = document.getElementById(" | ||
| + | const neck = document.getElementById(" | ||
| + | const cape = document.getElementById(" | ||
| + | const rightHand = document.getElementById(" | ||
| + | const leftHand = document.getElementById(" | ||
| + | const body = document.getElementById(" | ||
| + | const ring = document.getElementById(" | ||
| + | const feet = document.getElementById(" | ||
| + | |||
| + | // ===== INIT ===== | ||
| + | |||
| + | // race | ||
| + | for(let r in races){ | ||
| + | raceSelect.innerHTML | ||
| + | } | ||
| + | |||
| + | // stats | ||
| + | for(let s in costTable){ | ||
| + | statsDiv.innerHTML += `${s} <input type=" | ||
| + | } | ||
| + | |||
| + | // skills | ||
| + | skills.forEach(s=>{ | ||
| + | skillsDiv.innerHTML += `< | ||
| + | }); | ||
| + | |||
| + | // slots reset | ||
| + | function resetSlots(){ | ||
| + | [head, | ||
| + | sel.innerHTML = `< | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | // remplir équipements | ||
| + | function fillEquip(){ | ||
| + | let r = raceSelect.value; | ||
| + | |||
| + | equipments.forEach((e, | ||
| + | if(e.race!==" | ||
| + | |||
| + | if(e.slot==="weapon" | ||
| + | if(e.slot===" | ||
| + | if(e.slot===" | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | // update | ||
| + | raceSelect.addEventListener(" | ||
| + | resetSlots(); | ||
| + | fillEquip(); | ||
| + | }); | ||
| + | |||
| + | resetSlots(); | ||
| + | fillEquip(); | ||
| + | |||
| + | // 2 mains | ||
| + | rightHand.addEventListener(" | ||
| + | let v = rightHand.value; | ||
| + | if(v==="" | ||
| + | |||
| + | let item = equipments[v]; | ||
| + | if(item.slot===" | ||
| + | leftHand.value=""; | ||
| + | leftHand.disabled=true; | ||
| + | }else{ | ||
| + | leftHand.disabled=false; | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | // ===== CALCUL ===== | ||
| + | function calculate(){ | ||
| + | |||
| + | let char = {...races[raceSelect.value]}; | ||
| + | let total = 0; | ||
| + | |||
| + | // stats | ||
| + | for(let s in costTable){ | ||
| + | let v = parseInt(document.getElementById(s).value)||0; | ||
| + | char[s]+=v; | ||
| + | } | ||
| + | |||
| + | // equip | ||
| + | [rightHand, | ||
| + | if(sel.value==="" | ||
| + | let e = equipments[sel.value]; | ||
| + | for(let stat in e.stats){ | ||
| + | char[stat]=(char[stat]||0)+e.stats[stat]; | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | // affichage | ||
| + | result.innerText = JSON.stringify(char, | ||
| + | } | ||
| - | let equip = document.querySelectorAll(' | + | // ===== EXPORT ===== |
| - | + | function exportWiki(){ | |
| - | if (equip.length > 4) { | + | |
| - | alert(" | + | |
| - | return; | + | |
| - | } | + | |
| - | equip.forEach(e | + | let txt="=== Build ===\n"; |
| - | if (e.value | + | txt+="Race: "+raceSelect.value+"\n\n"; |
| - | if (e.value | + | |
| - | if (e.value === "e2") base.e | + | |
| - | if (e.value | + | |
| - | }); | + | |
| - | let result = ` | + | document.querySelectorAll(" |
| - | CC : ${base.cc} | + | txt+=" |
| - | F : ${base.f} | + | }); |
| - | E : ${base.e} | + | |
| - | Agi : ${base.agi} | + | |
| - | M : ${base.m} | + | |
| - | PV : ${base.pv} | + | |
| - | `; | + | |
| - | document.getElementById(" | + | result.innerText=txt; |
| } | } | ||
brouillon8.1777394239.txt.gz · Dernière modification : 2026/04/28 18:37 de nanaki
