brouillon10
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 | ||
| brouillon10 [2026/04/29 02:02] – nanaki | brouillon10 [2026/04/29 13:54] (Version actuelle) – nanaki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | |||
| < | < | ||
| < | < | ||
| Ligne 10: | Ligne 11: | ||
| select, | select, | ||
| button { padding: | button { padding: | ||
| - | .error { color:red; } | ||
| </ | </ | ||
| </ | </ | ||
| Ligne 16: | Ligne 16: | ||
| < | < | ||
| - | < | + | < |
| <div class=" | <div class=" | ||
| - | Race : | + | Race |
| <select id=" | <select id=" | ||
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | Stats : | + | Stats |
| <div id=" | <div id=" | ||
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | Équipement | + | Équipement< |
| - | < | + | Tête <select id=" |
| - | < | + | Cou <select id=" |
| - | < | + | Dos <select id=" |
| - | < | + | Main droite <select id=" |
| - | < | + | Main gauche <select id=" |
| - | < | + | Corps <select id=" |
| - | < | + | Anneau <select id=" |
| - | < | + | Pieds <select id=" |
| </ | </ | ||
| <div class=" | <div class=" | ||
| - | Compétences | + | Compétences |
| <div id=" | <div id=" | ||
| </ | </ | ||
| Ligne 47: | Ligne 47: | ||
| <button onclick=" | <button onclick=" | ||
| <button onclick=" | <button onclick=" | ||
| - | |||
| - | <div id=" | ||
| <pre id=" | <pre id=" | ||
| Ligne 54: | Ligne 52: | ||
| < | < | ||
| - | // ================= DATA ================= | + | // ===== DATA ===== |
| - | + | ||
| - | // races | + | |
| const races = { | const races = { | ||
| Elfe: | Elfe: | ||
| - | Nain: | + | Nain: |
| - | Géant: | + | |
| - | Olympien: | + | |
| - | HS: | + | |
| }; | }; | ||
| - | // coûts | ||
| const costTable = { | const costTable = { | ||
| - | cc:[100,50,30], ct:[110,50,30], f: | + | cc: |
| - | agi: | + | pv:[4,2,1], mvt: |
| - | fm: | + | |
| }; | }; | ||
| - | // équipements (exemples + structure) | ||
| const equipments = [ | const equipments = [ | ||
| - | + | {name:" | |
| - | /* ================= COMMUNS ================= */ | + | {name:" |
| - | + | {name:" | |
| - | {name:" | + | {name:" |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= ELFES ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= NAINS ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= GÉANTS ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= HS ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= OLYMPIENS ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | + | ||
| - | /* ================= ANNEAUX ================= */ | + | |
| - | + | ||
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| - | {name:" | + | |
| ]; | ]; | ||
| - | // compétences | + | const skills |
| - | const skillsList | + | |
| - | " | + | |
| - | " | + | |
| - | "Arme infusée"," | + | |
| - | " | + | |
| - | ]; | + | |
| - | + | ||
| - | // ================= DOM ================= | + | |
| + | // ===== DOM ===== | ||
| const raceSelect = document.getElementById(" | const raceSelect = document.getElementById(" | ||
| const statsDiv = document.getElementById(" | const statsDiv = document.getElementById(" | ||
| const skillsDiv = document.getElementById(" | const skillsDiv = document.getElementById(" | ||
| - | const errorDiv = document.getElementById(" | ||
| - | const slots = { | + | const head = document.getElementById(" |
| - | head:document.getElementById(" | + | const neck = document.getElementById(" |
| - | neck:document.getElementById(" | + | const cape = document.getElementById(" |
| - | cape:document.getElementById(" | + | const rightHand |
| - | rightHand:document.getElementById(" | + | const leftHand |
| - | leftHand:document.getElementById(" | + | const body = document.getElementById(" |
| - | body:document.getElementById(" | + | const ring = document.getElementById(" |
| - | ring:document.getElementById(" | + | const feet = document.getElementById(" |
| - | feet:document.getElementById(" | + | |
| - | }; | + | |
| - | // ================= INIT ================= | + | // ===== INIT ===== |
| - | // races | + | // race |
| for(let r in races){ | for(let r in races){ | ||
| raceSelect.innerHTML += `< | raceSelect.innerHTML += `< | ||
| Ligne 203: | Ligne 95: | ||
| // stats | // stats | ||
| for(let s in costTable){ | for(let s in costTable){ | ||
| - | statsDiv.innerHTML += `${s.toUpperCase()} <input type=" | + | statsDiv.innerHTML += `${s} <input type=" |
| } | } | ||
| // skills | // skills | ||
| - | skillsList.forEach(s=> | + | skills.forEach(s=> |
| skillsDiv.innerHTML += `< | skillsDiv.innerHTML += `< | ||
| }); | }); | ||
| - | // reset slots | + | // slots reset |
| function resetSlots(){ | function resetSlots(){ | ||
| - | Object.values(slots).forEach(sel=> | + | [head, |
| - | sel.innerHTML = `<option value=""> | + | sel.innerHTML = `<option value=""> |
| }); | }); | ||
| } | } | ||
| // remplir équipements | // remplir équipements | ||
| - | function | + | function |
| let r = raceSelect.value; | let r = raceSelect.value; | ||
| - | equipments.forEach((item,i)=>{ | + | equipments.forEach((e,i)=>{ |
| - | if(item.race!==" | + | if(e.race!==" |
| - | if(item.slot===" | + | if(e.slot===" |
| - | slots.rightHand.innerHTML += `<option value=" | + | if(e.slot===" |
| - | + | if(e.slot===" | |
| - | if(item.slot===" | + | |
| - | slots.leftHand.innerHTML += `<option value=" | + | |
| - | + | ||
| - | if(item.slot===" | + | |
| - | slots.body.innerHTML += `<option value=" | + | |
| - | + | ||
| - | if(item.slot===" | + | |
| - | slots.neck.innerHTML += `<option value=" | + | |
| - | + | ||
| - | if(item.slot===" | + | |
| - | slots.cape.innerHTML += `<option value=" | + | |
| - | + | ||
| - | if(item.slot===" | + | |
| - | slots.ring.innerHTML += `<option value=" | + | |
| - | + | ||
| - | if(item.slot===" | + | |
| - | slots.feet.innerHTML += `<option value=" | + | |
| }); | }); | ||
| } | } | ||
| + | // update | ||
| raceSelect.addEventListener(" | raceSelect.addEventListener(" | ||
| resetSlots(); | resetSlots(); | ||
| - | populateEquip(); | + | fillEquip(); |
| }); | }); | ||
| resetSlots(); | resetSlots(); | ||
| - | populateEquip(); | + | fillEquip(); |
| // 2 mains | // 2 mains | ||
| - | slots.rightHand.addEventListener(" | + | rightHand.addEventListener(" |
| - | let val = slots.rightHand.value; | + | let v = rightHand.value; |
| - | + | if(v==="" | |
| - | if(val==="" | + | |
| - | + | ||
| - | let item = equipments[val]; | + | |
| + | let item = equipments[v]; | ||
| if(item.slot===" | if(item.slot===" | ||
| - | slots.leftHand.value=""; | + | leftHand.value=""; |
| - | slots.leftHand.disabled=true; | + | leftHand.disabled=true; |
| }else{ | }else{ | ||
| - | slots.leftHand.disabled=false; | + | leftHand.disabled=false; |
| } | } | ||
| }); | }); | ||
| - | // ================= CALCUL ================= | + | // ===== CALCUL ===== |
| function calculate(){ | function calculate(){ | ||
| - | |||
| - | errorDiv.innerText=""; | ||
| let char = {...races[raceSelect.value]}; | let char = {...races[raceSelect.value]}; | ||
| - | let totalPi | + | let total = 0; |
| - | let itemCount = 0; | + | |
| - | let magicBlocked = false; | + | |
| // stats | // stats | ||
| Ligne 290: | Ligne 159: | ||
| // equip | // equip | ||
| - | for(let key in slots){ | + | [rightHand, |
| - | let sel = slots[key]; | + | if(sel.value==="" |
| - | + | let e = equipments[sel.value]; | |
| - | if(sel.value==="" | + | for(let stat in e.stats){ |
| - | + | char[stat]=(char[stat]||0)+e.stats[stat]; | |
| - | let item = equipments[sel.value]; | + | |
| - | + | ||
| - | if(item.slot !== " | + | |
| - | + | ||
| - | if(item.magicBlock) magicBlocked=true; | + | |
| - | + | ||
| - | for(let stat in item.stats){ | + | |
| - | char[stat]=(char[stat]||0)+item.stats[stat]; | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | // règles | + | |
| - | if(itemCount > 3){ | + | |
| - | errorDiv.innerText=" | + | |
| - | return; | + | |
| - | } | + | |
| - | + | ||
| - | // compétences | + | |
| - | let sk = document.querySelectorAll(" | + | |
| - | + | ||
| - | if(sk.length > 15){ | + | |
| - | errorDiv.innerText=" | + | |
| - | return; | + | |
| } | } | ||
| + | }); | ||
| // affichage | // affichage | ||
| - | let txt = "=== STATS ===\n"; | + | result.innerText |
| - | + | ||
| - | for(let k in char){ | + | |
| - | txt += k.toUpperCase()+" | + | |
| } | } | ||
| - | txt += " | + | // ===== EXPORT ===== |
| - | txt += " | + | |
| - | + | ||
| - | document.getElementById(" | + | |
| - | } | + | |
| - | + | ||
| - | // ================= EXPORT ================= | + | |
| function exportWiki(){ | function exportWiki(){ | ||
| - | let txt = "==== Build ====\n\n"; | + | let txt=" |
| - | txt += "Race : " | + | txt+=" |
| - | + | ||
| - | txt += "=== Équipement ===\n"; | + | |
| - | + | ||
| - | for(let k in slots){ | + | |
| - | let sel = slots[k]; | + | |
| - | if(sel.value==="" | + | |
| - | txt += " | + | |
| - | } | + | |
| - | + | ||
| - | txt += "\n=== Compétences ===\n"; | + | |
| document.querySelectorAll(" | document.querySelectorAll(" | ||
| - | txt += " | + | txt+=" |
| }); | }); | ||
| - | document.getElementById(" | + | result.innerText=txt; |
| } | } | ||
brouillon10.1777420958.txt.gz · Dernière modification : 2026/04/29 02:02 de nanaki
