simulateur_saison3_1
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 | ||
| simulateur_saison3_1 [2026/10/02 00:39] – nanaki | simulateur_saison3_1 [2026/10/02 08:33] (Version actuelle) – nanaki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | Bonjour, | ||
| + | Voici le simulateur pour la saison 3. | ||
| + | N' | ||
| < | < | ||
| < | < | ||
| <meta charset=" | <meta charset=" | ||
| + | <meta name=" | ||
| < | < | ||
| < | < | ||
| body { | body { | ||
| - | font-family: | + | font-family: |
| background:# | background:# | ||
| color:# | color:# | ||
| Ligne 12: | Ligne 16: | ||
| } | } | ||
| - | h1,h2 { | + | h1,h2 { color: |
| - | | + | h3 { color:# |
| - | } | + | |
| .box { | .box { | ||
| Ligne 24: | Ligne 27: | ||
| select { | select { | ||
| margin:3px; | margin:3px; | ||
| - | max-width:180px; | + | max-width:220px; |
| } | } | ||
| input { | input { | ||
| margin:3px; | margin:3px; | ||
| - | width:60px; | + | width:65px; |
| } | } | ||
| Ligne 43: | Ligne 46: | ||
| padding: | padding: | ||
| white-space: | white-space: | ||
| + | overflow-wrap: | ||
| } | } | ||
| Ligne 50: | Ligne 54: | ||
| } | } | ||
| - | .equipStats { | + | .equipStats { margin-left: |
| - | | + | |
| - | } | + | |
| - | .bonus { | + | .bonus, |
| - | | + | .malus { color:# |
| - | } | + | |
| - | + | ||
| - | .malus { | + | |
| - | | + | |
| - | } | + | |
| - | .special | + | button |
| - | | + | |
| + | padding:7px 10px; | ||
| + | cursor: | ||
| } | } | ||
| </ | </ | ||
| Ligne 181: | Ligne 180: | ||
| </ | </ | ||
| - | <button onclick=" | + | < |
| - | <button onclick=" | + | < |
| - | <button onclick=" | + | < |
| - | <button onclick=" | + | < |
| <pre id=" | <pre id=" | ||
| - | |||
| < | < | ||
| + | "use strict"; | ||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 198: | Ligne 197: | ||
| Elfe:{ | Elfe:{ | ||
| - | a:2, | + | a: |
| - | | + | p: |
| - | | + | fm: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | p:5, | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | fm:8, | + | |
| - | | + | |
| - | | + | |
| }, | }, | ||
| Nain:{ | Nain:{ | ||
| - | a:2, | + | a: |
| - | | + | p: |
| - | | + | fm: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | p:4, | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | fm:10, | + | |
| - | | + | |
| - | | + | |
| }, | }, | ||
| Géant:{ | Géant:{ | ||
| - | a:2, | + | a: |
| - | | + | p: |
| - | | + | fm: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | p:4, | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | fm:6, | + | |
| - | | + | |
| - | | + | |
| }, | }, | ||
| Olympien:{ | Olympien:{ | ||
| - | a:2, | + | a: |
| - | | + | p: |
| - | | + | fm: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | p:4, | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | fm:7, | + | |
| - | | + | |
| - | | + | |
| }, | }, | ||
| HS:{ | HS:{ | ||
| - | a:2, | + | a: |
| - | | + | p: |
| - | | + | fm: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | p:5, | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | fm:9, | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| }; | }; | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| - | ORDRE DES CARACTERISTIQUES | + | |
| ========================================================= */ | ========================================================= */ | ||
| const statOrder = [ | const statOrder = [ | ||
| - | " | + | " |
| - | | + | " |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | " | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| ]; | ]; | ||
| const statLabels = { | const statLabels = { | ||
| - | + | | |
| - | | + | agi:" |
| - | | + | mvt:" |
| - | | + | res:" |
| - | | + | |
| - | | + | |
| - | agi:" | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | mvt:" | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | res:" | + | |
| - | | + | |
| }; | }; | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 336: | Ligne 248: | ||
| const costTable = { | const costTable = { | ||
| - | |||
| a: | a: | ||
| - | |||
| cc: | cc: | ||
| ct: | ct: | ||
| - | |||
| f: | f: | ||
| e: | e: | ||
| - | |||
| agi: | agi: | ||
| - | |||
| pui: | pui: | ||
| res: | res: | ||
| - | |||
| fm: | fm: | ||
| - | |||
| p: | p: | ||
| - | |||
| pv:[4,2,1], | pv:[4,2,1], | ||
| pm:[5,3,1], | pm:[5,3,1], | ||
| - | |||
| mvt: | mvt: | ||
| - | |||
| r: | r: | ||
| rm: | rm: | ||
| }; | }; | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| | | ||
| - | ========================================================= | + | ========================================================= */ |
| - | + | ||
| - | Règle : | + | |
| - | - équipement normal = toutes les races | + | |
| - | - équipement exo = uniquement la race indiquée dans " | + | |
| - | + | ||
| - | Rappel : | + | |
| - | R = r | + | |
| - | Rés = res | + | |
| - | */ | + | |
| const equipments = [ | const equipments = [ | ||
| - | /* ========================= | + | /* COMMUN */ |
| - | COMMUN | + | |
| - | ========================= | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | race:" | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats:{mvt:1} | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | {name:" |
| - | | + | {name:" |
| - | | + | {name:" |
| - | | + | |
| - | | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | | + | {name:" |
| - | | + | |
| - | stats:{fm:1} | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | | + | {name:" |
| - | | + | |
| - | stats:{f:12,ct:1} | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats:{cc:-2,f:-2,feu:true} | + | |
| - | }, | + | |
| - | { | + | /* OLYMPIENS */ |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | name:"Lance", | + | {name:"Lame sainte", |
| - | race:"all", | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | /* ELFES */ |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | name:"Arc", | + | {name:"Baton du Pelerin", |
| - | race:"all", | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | /* NAINS */ |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | race:"all", | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats:{demolition: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | /* GEANTS */ |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | | + | {name:" |
| - | race:"all", | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | /* HS */ |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | name:"Bouclier Parma", | + | {name:"Mains de mana", |
| - | race:"all", | + | {name:" |
| - | slot:" | + | {name:" |
| - | stats: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | /* LUTINS |
| - | name:"Écu brillant", | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | { | + | {name:" |
| - | name:"Armure matelassée", | + | {name:"Anneau de Caprice", |
| - | race:"all", | + | {name:" |
| - | slot:"body", | + | {name:" |
| - | stats: | + | {name:" |
| - | }, | + | {name:" |
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| + | {name:" | ||
| - | { | + | {name:" |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | HS | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | exo:true, | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | + | ||
| - | /* ========================= | + | |
| - | | + | |
| - | ========================= */ | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | name:" | + | |
| - | race:" | + | |
| - | slot:" | + | |
| - | stats: | + | |
| - | }, | + | |
| - | + | ||
| - | { | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } | + | |
| ]; | ]; | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 1155: | Ligne 435: | ||
| const spells = [ | const spells = [ | ||
| - | |||
| {name:" | {name:" | ||
| {name:" | {name:" | ||
| Ligne 1171: | Ligne 450: | ||
| {name:" | {name:" | ||
| {name:" | {name:" | ||
| - | |||
| ]; | ]; | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 1181: | Ligne 458: | ||
| const raceSelect = document.getElementById(" | const raceSelect = document.getElementById(" | ||
| - | for(const r in races){ | + | Object.keys(races).forEach(r=> |
| + | const option=document.createElement(" | ||
| + | option.value=r; | ||
| + | option.textContent=r; | ||
| + | raceSelect.appendChild(option); | ||
| + | }); | ||
| - | const o=document.createElement(" | + | /* AMELIORATIONS */ |
| - | + | ||
| - | o.value=r; | + | |
| - | o.textContent=r; | + | |
| - | + | ||
| - | raceSelect.appendChild(o); | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | /* ========================================================= | + | |
| - | | + | |
| - | ========================================================= | + | |
| const statsDiv=document.getElementById(" | const statsDiv=document.getElementById(" | ||
| statOrder.forEach(stat=> | statOrder.forEach(stat=> | ||
| - | + | | |
| - | | + | |
| - | | + | |
| - | } | + | |
| const line=document.createElement(" | const line=document.createElement(" | ||
| - | |||
| line.className=" | line.className=" | ||
| const label=document.createElement(" | const label=document.createElement(" | ||
| - | + | | |
| - | | + | |
| - | | + | |
| const input=document.createElement(" | const input=document.createElement(" | ||
| - | |||
| input.type=" | input.type=" | ||
| input.id=" | input.id=" | ||
| Ligne 1220: | Ligne 484: | ||
| input.min=0; | input.min=0; | ||
| - | input.addEventListener( | + | input.addEventListener(" |
| - | | + | |
| - | | + | |
| - | ); | + | |
| - | + | ||
| - | line.appendChild(label); | + | |
| - | line.appendChild(input); | + | |
| + | line.append(label, | ||
| statsDiv.appendChild(line); | statsDiv.appendChild(line); | ||
| }); | }); | ||
| - | + | /* PASSIFS */ | |
| - | /* ========================================================= | + | |
| - | PASSIFS | + | |
| - | ========================================================= | + | |
| const skillsDiv=document.getElementById(" | const skillsDiv=document.getElementById(" | ||
| skills.forEach((s, | skills.forEach((s, | ||
| - | |||
| const label=document.createElement(" | const label=document.createElement(" | ||
| - | |||
| const cb=document.createElement(" | const cb=document.createElement(" | ||
| cb.type=" | cb.type=" | ||
| cb.id=" | cb.id=" | ||
| + | cb.addEventListener(" | ||
| - | | + | |
| - | | + | |
| - | | + | |
| ); | ); | ||
| - | | + | skillsDiv.append(label,document.createElement(" |
| - | + | ||
| - | label.appendChild( | + | |
| - | document.createTextNode( | + | |
| - | " " | + | |
| - | ) | + | |
| - | ); | + | |
| - | + | ||
| - | | + | |
| - | skillsDiv.appendChild( | + | |
| - | | + | |
| - | | + | |
| }); | }); | ||
| - | + | /* SORTS */ | |
| - | /* ========================================================= | + | |
| - | SORTS | + | |
| - | ========================================================= | + | |
| const spellsDiv=document.getElementById(" | const spellsDiv=document.getElementById(" | ||
| spells.forEach((s, | spells.forEach((s, | ||
| - | |||
| const label=document.createElement(" | const label=document.createElement(" | ||
| - | |||
| const cb=document.createElement(" | const cb=document.createElement(" | ||
| cb.type=" | cb.type=" | ||
| cb.id=" | cb.id=" | ||
| + | cb.addEventListener(" | ||
| - | | + | |
| - | | + | |
| - | calculate | + | |
| - | ); | + | |
| - | + | ||
| - | label.appendChild(cb); | + | |
| - | + | ||
| - | label.appendChild( | + | |
| document.createTextNode( | document.createTextNode( | ||
| - | " " | + | " " |
| - | | + | |
| ) | ) | ||
| ); | ); | ||
| - | spellsDiv.appendChild(label); | + | spellsDiv.append(label,document.createElement(" |
| - | + | ||
| - | spellsDiv.appendChild( | + | |
| - | | + | |
| - | | + | |
| }); | }); | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| | | ||
| ========================================================= */ | ========================================================= */ | ||
| - | |||
| - | const head=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(" | ||
| const slots = { | const slots = { | ||
| + | head: | ||
| + | cape: | ||
| + | rightHand: | ||
| + | leftHand: | ||
| + | body: | ||
| + | ring: | ||
| + | feet: | ||
| + | }; | ||
| - | | + | const statIds = { |
| - | cape:cape, | + | |
| - | rightHand:rightHand, | + | cape:" |
| - | leftHand:leftHand, | + | rightHand:" |
| - | body:body, | + | leftHand:" |
| - | ring:ring, | + | body:" |
| - | feet:feet | + | ring:" |
| + | feet:" | ||
| }; | }; | ||
| + | /* COMPATIBILITE EXOTIQUE */ | ||
| - | /* ========================================================= | + | function canEquip(item, |
| - | REGLE D' | + | |
| - | ========================================================= | + | |
| - | Normal : | + | if(!item.exo){ |
| - | | + | return true; |
| + | | ||
| - | Exo : | + | const aliases = { |
| - | | + | " |
| - | */ | + | " |
| + | " | ||
| + | " | ||
| + | }; | ||
| - | function canEquip(e,race){ | + | const owner=aliases[item.race]||item.race; |
| - | | + | return |
| - | + | ||
| - | | + | |
| - | } | + | |
| - | + | ||
| - | return true; | + | |
| } | } | ||
| - | + | /* REMPLISSAGE */ | |
| - | /* ========================================================= | + | |
| - | REMPLISSAGE | + | |
| - | ========================================================= | + | |
| function fillEquip(){ | function fillEquip(){ | ||
| const race=raceSelect.value; | const race=raceSelect.value; | ||
| - | |||
| - | const statIds = { | ||
| - | |||
| - | head:" | ||
| - | cape:" | ||
| - | rightHand:" | ||
| - | leftHand:" | ||
| - | body:" | ||
| - | ring:" | ||
| - | feet:" | ||
| - | |||
| - | }; | ||
| - | |||
| for(const key in slots){ | for(const key in slots){ | ||
| const select=slots[key]; | const select=slots[key]; | ||
| - | |||
| select.innerHTML=""; | select.innerHTML=""; | ||
| - | |||
| const empty=document.createElement(" | const empty=document.createElement(" | ||
| - | |||
| empty.value=""; | empty.value=""; | ||
| empty.textContent=" | empty.textContent=" | ||
| - | |||
| select.appendChild(empty); | select.appendChild(empty); | ||
| - | + | | |
| - | /* | + | .filter(e=> |
| - | On récupère uniquement les objets compatibles | + | .filter(e=> |
| - | avec le slot et la race. | + | .sort((a, |
| - | + | a.name.localeCompare( | |
| - | Puis on les trie par ordre alphabétique. | + | b.name, |
| - | + | " | |
| - | | + | {sensitivity:" |
| - | | + | |
| - | É / E | + | |
| - | é / e | + | |
| - | | + | |
| - | */ | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| ) | ) | ||
| - | |||
| - | .filter( | ||
| - | e => canEquip(e, | ||
| - | ) | ||
| - | |||
| - | .sort( | ||
| - | (a,b) => | ||
| - | a.name.localeCompare( | ||
| - | b.name, | ||
| - | " | ||
| - | { | ||
| - | sensitivity:" | ||
| - | } | ||
| - | ) | ||
| - | ); | ||
| - | |||
| - | |||
| - | availableEquipments.forEach(e=> | ||
| - | |||
| - | const o=document.createElement( | ||
| - | " | ||
| ); | ); | ||
| - | o.value= | + | available.forEach(item=>{ |
| - | equipments.indexOf(e); | + | |
| - | | + | |
| - | e.name+ | + | |
| - | | + | |
| - | | + | |
| + | option.textContent=item.name+(item.exo?" | ||
| + | select.appendChild(option); | ||
| }); | }); | ||
| - | |||
| select.onchange=()=> | select.onchange=()=> | ||
| - | |||
| - | displayStats( | ||
| - | select, | ||
| - | statIds[key] | ||
| - | ); | ||
| checkLimit(key); | checkLimit(key); | ||
| + | displayAllEquipStats(); | ||
| calculate(); | calculate(); | ||
| }; | }; | ||
| } | } | ||
| - | |||
| displayAllEquipStats(); | displayAllEquipStats(); | ||
| - | |||
| checkLimit(); | checkLimit(); | ||
| - | |||
| calculate(); | calculate(); | ||
| } | } | ||
| + | /* AFFICHAGE DES BONUS */ | ||
| - | /* ========================================================= | + | const statNames = { |
| - | | + | a:" |
| - | ========================================================= */ | + | cc:" |
| - | + | pv:" | |
| - | const statNames={ | + | rm:" |
| - | + | ||
| - | a:" | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | + | ||
| - | cc:" | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | + | ||
| - | pv:" | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | rm:" | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| esquive:" | esquive:" | ||
| - | |||
| demolition:" | demolition:" | ||
| - | |||
| magique:" | magique:" | ||
| feu:" | feu:" | ||
| }; | }; | ||
| - | |||
| function displayStats(select, | function displayStats(select, | ||
| Ligne 1505: | Ligne 643: | ||
| const el=document.getElementById(id); | const el=document.getElementById(id); | ||
| - | if(!el){ | + | if(!el) return; |
| - | | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | const index=select.value; | + | |
| - | + | ||
| - | + | ||
| - | if(index==="" | + | |
| + | if(select.value==="" | ||
| el.innerHTML=""; | el.innerHTML=""; | ||
| - | |||
| return; | return; | ||
| } | } | ||
| + | const item=equipments[Number(select.value)]; | ||
| - | | + | if(!item){ |
| - | Number(index) | + | |
| - | ]; | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| el.innerHTML=""; | el.innerHTML=""; | ||
| - | |||
| return; | return; | ||
| } | } | ||
| - | |||
| let html=""; | let html=""; | ||
| + | for(const [stat, | ||
| - | for( | + | |
| - | const [stat, | + | |
| - | of Object.entries( | + | |
| - | e.stats || {} | + | |
| - | ) | + | |
| - | ){ | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| if(value===true){ | if(value===true){ | ||
| - | + | | |
| - | | + | |
| - | | + | |
| continue; | continue; | ||
| } | } | ||
| - | + | | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| continue; | continue; | ||
| } | } | ||
| - | |||
| if(value> | if(value> | ||
| - | + | | |
| - | | + | |
| - | | + | |
| }else{ | }else{ | ||
| - | + | | |
| - | | + | |
| - | | + | |
| } | } | ||
| } | } | ||
| - | |||
| el.innerHTML=html; | el.innerHTML=html; | ||
| } | } | ||
| - | |||
| function displayAllEquipStats(){ | function displayAllEquipStats(){ | ||
| - | | + | |
| - | head, | + | displayStats(slots[key],statIds[key]); |
| - | " | + | |
| - | | + | |
| - | + | ||
| - | displayStats( | + | |
| - | | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | | + | |
| - | rightHand, | + | |
| - | " | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | leftHand, | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | displayStats( | + | |
| - | body, | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | displayStats( | + | |
| - | ring, | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | displayStats( | + | |
| - | feet, | + | |
| - | " | + | |
| - | ); | + | |
| } | } | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| - | | + | |
| ========================================================= */ | ========================================================= */ | ||
| - | function checkLimit( | + | function checkLimit(changedSlot=null){ |
| - | | + | |
| - | ){ | + | |
| - | | + | const warn=document.getElementById(" |
| - | + | ||
| - | + | ||
| - | for( | + | |
| - | const key in slots | + | |
| - | ){ | + | |
| - | + | ||
| - | if(key===" | + | |
| - | continue; | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | if( | + | |
| - | slots[key].value !== "" | + | |
| - | ){ | + | |
| - | + | ||
| - | count++; | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | const count=Object.keys(slots) | ||
| + | .filter(key=> | ||
| + | .filter(key=> | ||
| + | .length; | ||
| if(count> | if(count> | ||
| - | if( | + | if(changedSlot&& |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | slots[ | + | |
| - | changedSlot | + | |
| - | ].value=""; | + | |
| + | slots[changedSlot].value=""; | ||
| displayStats( | displayStats( | ||
| slots[changedSlot], | slots[changedSlot], | ||
| - | changedSlot+" | + | |
| ); | ); | ||
| } | } | ||
| - | |||
| - | |||
| - | count--; | ||
| - | |||
| warn.textContent= | warn.textContent= | ||
| - | " | + | " |
| - | | + | return false; |
| + | | ||
| - | | + | |
| - | | + | |
| } | } | ||
| - | |||
| - | |||
| - | /* ========================================================= | ||
| - | RESET DES EQUIPEMENTS | ||
| - | ========================================================= */ | ||
| function resetSlots(){ | function resetSlots(){ | ||
| - | for( | + | for(const key in slots){ |
| - | | + | |
| - | | + | |
| slots[key].value=""; | slots[key].value=""; | ||
| } | } | ||
| - | |||
| displayAllEquipStats(); | displayAllEquipStats(); | ||
| - | |||
| checkLimit(); | checkLimit(); | ||
| } | } | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 1717: | Ligne 740: | ||
| function displayBase(){ | function displayBase(){ | ||
| - | const r= | + | const r=races[raceSelect.value]; |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | + | ||
| - | const baseStats= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| let text=""; | let text=""; | ||
| - | |||
| - | |||
| - | /* | ||
| - | | ||
| - | les améliorations et la fiche finale. | ||
| - | */ | ||
| statOrder.forEach(stat=> | statOrder.forEach(stat=> | ||
| - | if( | + | if(r[stat]!==undefined){ |
| - | | + | |
| - | | + | |
| - | text += | + | text+=(statLabels[stat]||stat)+": |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| }); | }); | ||
| - | + | document.getElementById(" | |
| - | | + | |
| - | | + | |
| } | } | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| - | CALCUL DU COUT | + | COUT |
| ========================================================= */ | ========================================================= */ | ||
| function calcCost(){ | function calcCost(){ | ||
| - | let total = 0; | + | let total=0; |
| for(const stat in costTable){ | for(const stat in costTable){ | ||
| - | const input = document.getElementById(" | + | const input=document.getElementById(" |
| - | if(!input){ | + | if(!input) continue; |
| - | | + | |
| - | } | + | |
| - | const level = Math.max(0, parseInt(input.value) || 0); | + | const level=Math.max(0, |
| - | const costs = costTable[stat]; | + | |
| - | if(level | + | if(!level) continue; |
| - | | + | |
| - | } | + | |
| - | const B = costs[0]; | + | const [B,M1,M2]=costTable[stat]; |
| - | const M1 = costs[1]; | + | |
| - | const M2 = costs[2]; | + | |
| - | for(let n = 1; n <= level; n++){ | + | for(let n=1; |
| let cost; | let cost; | ||
| - | if(n === 1){ | + | if(n===1){ |
| - | cost = B; | + | cost=B; |
| - | } | + | }else if(n===2){ |
| - | | + | cost=B+M1; |
| - | cost = B + M1; | + | }else if(n===3){ |
| - | } | + | cost=B+2*M1; |
| - | | + | }else{ |
| - | cost = B + 2 * M1; | + | cost=B+2*M1+(n-3)*M2; |
| - | } | + | |
| - | | + | |
| - | cost = B + 2 * M1 + (n - 3) * M2; | + | |
| } | } | ||
| - | total += cost; | + | total+=cost; |
| } | } | ||
| } | } | ||
| Ligne 1811: | Ligne 796: | ||
| } | } | ||
| + | function updateCost(){ | ||
| + | document.getElementById(" | ||
| + | "Coût total : " | ||
| + | } | ||
| + | /* ========================================================= | ||
| + | | ||
| + | ========================================================= */ | ||
| - | function | + | function |
| - | document.getElementById( | + | |
| - | | + | |
| - | ).textContent= | + | |
| - | "Coût total : "+ | + | |
| - | calcCost(); | + | |
| - | } | + | |
| + | return cb? | ||
| + | } | ||
| /* ========================================================= | /* ========================================================= | ||
| - | | + | |
| ========================================================= */ | ========================================================= */ | ||
| function calculate(){ | function calculate(){ | ||
| - | const race = races[raceSelect.value]; | + | const race=races[raceSelect.value]; |
| if(!race) return; | if(!race) return; | ||
| Ligne 1837: | Ligne 826: | ||
| displayBase(); | displayBase(); | ||
| - | | + | const char={...race}; |
| - | | + | |
| + | /* Améliorations */ | ||
| - | // Améliorations | ||
| for(const stat in costTable){ | for(const stat in costTable){ | ||
| - | const input = document.getElementById(" | + | const input=document.getElementById(" |
| if(input){ | if(input){ | ||
| - | | + | |
| - | (char[stat] || 0) + | + | |
| - | (parseInt(input.value) || 0); | + | (char[stat]||0)+ |
| + | (parseInt(input.value,10)||0); | ||
| } | } | ||
| } | } | ||
| - | // Équipements | + | /* Equipements */ |
| - | const equipped = []; | + | |
| for(const key in slots){ | for(const key in slots){ | ||
| - | const index = slots[key].value; | + | const value=slots[key].value; |
| - | if(index === "" | + | if(value==="" |
| - | const item = equipments[Number(index)]; | + | const item=equipments[Number(value)]; |
| if(!item) continue; | if(!item) continue; | ||
| - | | + | |
| - | for(const [stat, | + | if(typeof bonus===" |
| - | if(typeof value === " | + | |
| - | | + | |
| } | } | ||
| } | } | ||
| } | } | ||
| - | // Passifs | + | /* Passifs |
| - | const fulgurance = isChecked(0); | + | |
| - | const couverture = isChecked(1); | + | |
| - | const reflexes = isChecked(2); | + | |
| - | const griffes = isChecked(4); | + | |
| - | // Griffes : mains nues ou ceste | + | |
| - | const mainDroite = rightHand.value === "" | + | const couverture=isChecked(1); |
| + | const reflexes=isChecked(2); | ||
| + | const griffes=isChecked(4); | ||
| + | |||
| + | | ||
| + | |||
| + | const mainDroite=rightHand.value==="" | ||
| ? null | ? null | ||
| : equipments[Number(rightHand.value)]; | : equipments[Number(rightHand.value)]; | ||
| - | const mainsNues = mainDroite === null; | + | const griffesActives= |
| - | const cesteEquipee = mainDroite?.name === " | + | |
| - | + | ||
| - | const griffesActives = | + | |
| - | griffes && (mainsNues || cesteEquipee); | + | |
| if(griffesActives){ | if(griffesActives){ | ||
| - | char.f += 3; | + | char.f+=3; |
| } | } | ||
| - | // Sélection des meilleurs | + | /* Sorts : bonus de plus grande valeur absolue */ |
| - | let bestDex = 0; | + | |
| - | let bestProt = 0; | + | |
| - | const spellDetails = []; | + | |
| - | | + | |
| + | let bestProt=0; | ||
| - | | + | |
| - | if(cb && cb.checked){ | + | spells.forEach((spell, |
| - | if(Math.abs(s.dex) > Math.abs(bestDex)){ | + | const cb=document.getElementById(" |
| - | bestDex = s.dex; | + | |
| - | } | + | |
| - | | + | |
| - | bestProt = s.prot; | + | |
| - | } | + | |
| - | spellDetails.push(s.name); | + | if(Math.abs(spell.dex)> |
| + | bestDex=spell.dex; | ||
| } | } | ||
| + | |||
| + | if(Math.abs(spell.prot)> | ||
| + | bestProt=spell.prot; | ||
| + | } | ||
| + | |||
| + | spellDetails.push(spell.name); | ||
| }); | }); | ||
| - | document.getElementById(" | + | document.getElementById(" |
| spellDetails.length | spellDetails.length | ||
| - | ? "Sorts actifs : " + spellDetails.join(", | + | ? "Sorts actifs : " |
| - | " | Bonus Dex : " + bestDex + | + | " | Bonus Dex : " |
| - | " | Protection : " + bestProt | + | " | Protection : " |
| : ""; | : ""; | ||
| - | // Dés | + | /* Dés */ |
| - | const ccDice = char.cc | + | |
| - | const ctDice = char.ct * 2; | + | |
| - | const fmDice = char.fm * 2; | + | |
| - | const agiDice = char.agi * 2; | + | |
| - | // Résultats | + | |
| - | let result = "=== PERSONNAGE ===\n\n"; | + | const ctDice=char.ct*2; |
| + | const fmDice=char.fm*2; | ||
| + | const agiDice=char.agi*2; | ||
| + | |||
| + | | ||
| + | |||
| + | let result=" | ||
| statOrder.forEach(stat=> | statOrder.forEach(stat=> | ||
| - | if(char[stat] !== undefined){ | + | if(char[stat]!==undefined){ |
| - | result += | + | result+= |
| - | (statLabels[stat] || stat) + | + | (statLabels[stat]||stat)+ |
| - | ": " + char[stat] + " | + | ": " |
| } | } | ||
| }); | }); | ||
| Ligne 1947: | Ligne 937: | ||
| if(griffes){ | if(griffes){ | ||
| - | result += griffesActives | + | result+=griffesActives |
| ? " | ? " | ||
| : " | : " | ||
| } | } | ||
| - | result += " | + | result+=" |
| - | // Touchers | + | /* Touchers |
| - | const finalCC = | + | |
| - | ccDice + bestDex + (fulgurance ? 1 : 0); | + | |
| - | const finalCT | + | const finalCC= |
| - | | + | |
| - | const finalFM | + | const finalCT= |
| - | | + | |
| - | | + | |
| - | | + | |
| - | result += "FM : " + finalFM | + | |
| - | | + | result+=" |
| - | | + | result+=" |
| + | result+=" | ||
| - | | + | |
| - | let ctDistance | + | result+="\n=== TIR ===\n\n" |
| - | | + | for(let cases=1; |
| - | ctDistance -= (cases-2)*3; | + | |
| + | let ctDistance=finalCT; | ||
| + | |||
| + | | ||
| + | ctDistance-=(cases-2)*3; | ||
| } | } | ||
| - | result += cases + " case(s) : CT " + ctDistance + " | + | result+=cases+" |
| } | } | ||
| - | // Esquive CAC | + | /* Esquive CAC */ |
| - | const meleeDodge = | + | |
| - | Math.max(ccDice, | + | const meleeDodge= |
| + | Math.max(ccDice, | ||
| + | |||
| + | result+=" | ||
| + | result+=" | ||
| - | | + | |
| - | result += "Esquive | + | |
| - | // Esquive tir | ||
| let evadeStat; | let evadeStat; | ||
| if(couverture){ | if(couverture){ | ||
| - | evadeStat = Math.floor( | + | evadeStat=Math.floor( |
| - | char.cc * 0.85 + char.agi * 0.15 | + | char.cc*0.85+char.agi*0.15 |
| ); | ); | ||
| }else if(reflexes){ | }else if(reflexes){ | ||
| - | evadeStat = Math.floor( | + | evadeStat=Math.floor( |
| - | char.agi * 0.85 + char.cc * 0.15 | + | char.agi*0.85+char.cc*0.15 |
| ); | ); | ||
| }else{ | }else{ | ||
| - | evadeStat = Math.max( | + | evadeStat=Math.max( |
| - | Math.floor(char.cc * 0.75 + char.agi * 0.25), | + | Math.floor(char.cc*0.75+char.agi*0.25), |
| - | Math.floor(char.agi * 0.75 + char.cc * 0.25) | + | Math.floor(char.agi*0.75+char.cc*0.25) |
| ); | ); | ||
| } | } | ||
| - | const fulguranceDodge = | + | const fulguranceDodge= |
| - | fulgurance ? Math.floor(char.mvt / 5) : 0; | + | fulgurance? |
| + | |||
| + | const rangedDodge= | ||
| + | evadeStat*2+bestProt+fulguranceDodge; | ||
| + | |||
| + | result+=" | ||
| + | result+=" | ||
| - | | + | |
| - | evadeStat | + | |
| - | bestProt + | + | |
| - | fulguranceDodge; | + | |
| - | | + | |
| - | result += " | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | result += " | + | |
| - | | + | result+=" |
| - | | + | result+=" |
| - | result += "Jet FM : " + finalFM + " | + | |
| - | for(let lvl=1; lvl<=5; lvl++){ | + | for(let lvl=1; |
| - | const threshold = 6 + 6*lvl; | + | const threshold=6+6*lvl; |
| - | result += | + | result+= |
| - | "Sort niveau " + lvl + | + | "Sort niveau " |
| - | " (seuil " + threshold + ") : " + | + | " (seuil " |
| - | (finalFM >= threshold ? " | + | (finalFM> |
| " | " | ||
| } | } | ||
| - | document.getElementById(" | + | document.getElementById(" |
| } | } | ||
| /* ========================================================= | /* ========================================================= | ||
| | | ||
| + | | ||
| ========================================================= */ | ========================================================= */ | ||
| function calculatePush(){ | function calculatePush(){ | ||
| - | const F= | + | const F=parseInt( |
| - | | + | document.getElementById(" |
| - | document.getElementById( | + | )||0; |
| - | | + | |
| - | | + | |
| - | ) || 0; | + | |
| + | const E=parseInt( | ||
| + | document.getElementById(" | ||
| + | )||0; | ||
| - | const E= | + | const Agi=parseInt( |
| - | | + | document.getElementById(" |
| - | document.getElementById( | + | )||0; |
| - | | + | |
| - | | + | |
| - | ) || 0; | + | |
| + | const PV=parseInt( | ||
| + | document.getElementById(" | ||
| + | )||0; | ||
| - | const Agi= | + | const buff=parseInt( |
| - | | + | document.getElementById(" |
| - | document.getElementById( | + | )||0; |
| - | | + | |
| - | | + | |
| - | ) || 0; | + | |
| + | const debuff=parseInt( | ||
| + | document.getElementById(" | ||
| + | )||0; | ||
| - | const PV= | + | const stab=parseInt( |
| - | | + | document.getElementById(" |
| - | document.getElementById( | + | )||0; |
| - | | + | |
| - | | + | |
| - | ) || 0; | + | |
| + | const finalF=F+buff+debuff+stab; | ||
| - | const buff= | + | const score=finalF+E+Agi; |
| - | parseInt( | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value | + | |
| - | ) || 0; | + | |
| - | + | | |
| - | const debuff= | + | "Force finale : " |
| - | parseInt( | + | "\nEndurance |
| - | | + | "\nAgilité |
| - | | + | "\nPV actuels : " |
| - | | + | "\n\nScore |
| - | ) || 0; | + | |
| - | + | ||
| - | + | ||
| - | const stab= | + | |
| - | parseInt( | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value | + | |
| - | ) || 0; | + | |
| - | + | ||
| - | + | ||
| - | const finalF= | + | |
| - | F+ | + | |
| - | buff+ | + | |
| - | debuff+ | + | |
| - | stab; | + | |
| - | + | ||
| - | + | ||
| - | const score= | + | |
| - | finalF+ | + | |
| - | E+ | + | |
| - | Agi; | + | |
| - | + | ||
| - | + | ||
| - | const result= | + | |
| - | "Force finale : "+ | + | |
| - | | + | |
| - | "\n"+ | + | |
| - | " | + | |
| - | | + | |
| - | "\n"+ | + | |
| - | " | + | |
| - | | + | |
| - | "\n"+ | + | |
| - | " | + | |
| - | | + | |
| - | "\n\n"+ | + | |
| - | " | + | |
| - | | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).textContent= | + | |
| - | result; | + | |
| } | } | ||
| - | + | /* EVENEMENTS POUSSEE */ | |
| - | /* ========================================================= | + | |
| - | EVENEMENTS POUSSEE | + | |
| - | ========================================================= | + | |
| [ | [ | ||
| Ligne 2160: | Ligne 1100: | ||
| ].forEach(id=> | ].forEach(id=> | ||
| - | document.getElementById( | + | |
| - | | + | |
| - | ).addEventListener( | + | |
| - | " | + | |
| - | calculatePush | + | |
| - | | + | |
| - | + | el.addEventListener(" | |
| - | document.getElementById( | + | |
| - | id | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| }); | }); | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 2182: | Ligne 1111: | ||
| function resetAll(){ | function resetAll(){ | ||
| - | |||
| - | /* | ||
| - | Race | ||
| - | */ | ||
| raceSelect.selectedIndex=0; | raceSelect.selectedIndex=0; | ||
| + | statOrder.forEach(stat=> | ||
| - | /* | + | const input=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | statOrder.forEach( | + | |
| - | stat=> | + | input.value=0; |
| - | + | ||
| - | const input= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | + | ||
| - | | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | /* | + | |
| - | | + | |
| - | */ | + | |
| resetSlots(); | resetSlots(); | ||
| + | skills.forEach((s, | ||
| - | /* | + | const cb=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | skills.forEach( | + | |
| - | (s, | + | cb.checked=false; |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | cb.checked=false; | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| + | spells.forEach((s, | ||
| - | /* | + | const cb=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | spells.forEach( | + | |
| - | (s, | + | cb.checked=false; |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | cb.checked=false; | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | /* | + | |
| - | | + | |
| - | */ | + | |
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=10; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=0; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=5; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=5; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=50; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=0; | + | |
| - | + | ||
| - | + | ||
| - | document.getElementById( | + | |
| - | " | + | |
| - | ).value=0; | + | |
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| + | document.getElementById(" | ||
| fillEquip(); | fillEquip(); | ||
| - | |||
| calculate(); | calculate(); | ||
| - | |||
| calculatePush(); | calculatePush(); | ||
| } | } | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| - | | + | |
| ========================================================= */ | ========================================================= */ | ||
| - | function | + | function |
| const data={ | const data={ | ||
| - | + | | |
| - | | + | |
| - | | + | |
| upgrades: | upgrades: | ||
| - | |||
| equipment: | equipment: | ||
| - | |||
| skills:[], | skills:[], | ||
| - | |||
| spells:[] | spells:[] | ||
| - | |||
| }; | }; | ||
| + | statOrder.forEach(stat=> | ||
| - | /* | + | const input=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | statOrder.forEach( | + | |
| - | stat=> | + | data.upgrades[stat]=parseInt(input.value,10)||0; |
| - | + | ||
| - | const input= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| - | + | | |
| - | /* | + | data.equipment[key]=slots[key].value; |
| - | | + | |
| - | */ | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | data.equipment[key]= | + | |
| - | | + | |
| } | } | ||
| + | skills.forEach((s, | ||
| - | /* | + | const cb=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | skills.forEach( | + | |
| - | (s, | + | data.skills.push(i); |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| + | spells.forEach((s, | ||
| - | /* | + | const cb=document.getElementById(" |
| - | | + | |
| - | */ | + | |
| - | spells.forEach( | + | |
| - | (s, | + | data.spells.push(i); |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | } | + | |
| } | } | ||
| - | ); | + | |
| - | + | return | |
| - | const text= | + | |
| - | JSON.stringify( | + | |
| - | | + | |
| - | null, | + | |
| - | 2 | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | prompt( | + | |
| - | " | + | |
| - | text | + | |
| - | ); | + | |
| } | } | ||
| + | function applyBuildData(data){ | ||
| - | /* ========================================================= | + | if(data.race&& |
| - | IMPORT | + | raceSelect.value=data.race; |
| - | ========================================================= */ | + | } |
| - | function importBuild(){ | + | if(data.upgrades){ |
| - | const text= | + | statOrder.forEach(stat=>{ |
| - | prompt( | + | |
| - | " | + | |
| - | ); | + | |
| + | const input=document.getElementById(" | ||
| - | | + | |
| - | | + | input.value=data.upgrades[stat]; |
| + | } | ||
| + | | ||
| } | } | ||
| + | fillEquip(); | ||
| - | | + | |
| - | | + | |
| - | JSON.parse(text); | + | |
| + | if(data.equipment[key]!==undefined){ | ||
| - | /* | + | const wanted=String(data.equipment[key]); |
| - | | + | |
| - | */ | + | |
| - | if( | + | const exists=[...slots[key].options] |
| - | data.race && | + | |
| - | races[data.race] | + | |
| - | ){ | + | |
| - | raceSelect.value= | + | if(exists){ |
| - | | + | slots[key].value=wanted; |
| + | | ||
| + | } | ||
| } | } | ||
| + | } | ||
| + | skills.forEach((s, | ||
| - | | + | |
| - | | + | |
| - | */ | + | |
| - | if(data.upgrades){ | + | if(cb){ |
| + | cb.checked= | ||
| + | Array.isArray(data.skills)&& | ||
| + | data.skills.includes(i); | ||
| + | } | ||
| + | }); | ||
| - | statOrder.forEach( | + | spells.forEach((s,i)=>{ |
| - | stat=>{ | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | | |
| - | | + | cb.checked= |
| - | input && | + | |
| - | data.upgrades[stat] !== | + | |
| - | undefined | + | |
| - | | + | |
| - | + | ||
| - | input.value= | + | |
| - | data.upgrades[stat]; | + | |
| - | } | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| + | }); | ||
| + | /* Corrige les configurations importées dépassant la limite */ | ||
| - | /* | + | let count=0; |
| - | | + | |
| - | */ | + | |
| - | fillEquip(); | + | for(const key of [ |
| + | " | ||
| + | " | ||
| + | ]){ | ||
| + | if(slots[key].value!=="" | ||
| - | if(data.equipment){ | + | count++; |
| - | | + | |
| - | const key in slots | + | slots[key].value="" |
| - | | + | |
| - | + | ||
| - | | + | |
| - | data.equipment[key] !== | + | |
| - | undefined | + | |
| - | ){ | + | |
| - | + | ||
| - | | + | |
| - | data.equipment[key]; | + | |
| - | } | + | |
| } | } | ||
| } | } | ||
| + | } | ||
| + | displayAllEquipStats(); | ||
| + | checkLimit(); | ||
| + | calculate(); | ||
| + | } | ||
| - | /* | + | function exportBuild(){ |
| - | | + | |
| - | */ | + | |
| - | skills.forEach( | + | const text=JSON.stringify(getBuildData(),null,2); |
| - | | + | |
| - | const cb= | + | prompt("Copiez cette configuration :",text); |
| - | document.getElementById( | + | } |
| - | | + | |
| - | | + | |
| + | function importBuild(){ | ||
| - | if(cb){ | + | |
| - | + | ||
| - | cb.checked= | + | |
| - | Array.isArray( | + | |
| - | data.skills | + | |
| - | ) && | + | |
| - | data.skills.includes(i); | + | |
| - | } | + | |
| - | } | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | /* | + | |
| - | | + | |
| - | */ | + | |
| - | + | ||
| - | spells.forEach( | + | |
| - | (s, | + | |
| - | + | ||
| - | | + | |
| - | document.getElementById( | + | |
| - | | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if(cb){ | + | |
| - | + | ||
| - | cb.checked= | + | |
| - | Array.isArray( | + | |
| - | data.spells | + | |
| - | ) && | + | |
| - | data.spells.includes(i); | + | |
| - | } | + | |
| - | } | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | displayAllEquipStats(); | + | |
| - | + | ||
| - | checkLimit(); | + | |
| - | + | ||
| - | calculate(); | + | |
| + | if(!text) return; | ||
| + | try{ | ||
| + | applyBuildData(JSON.parse(text)); | ||
| }catch(e){ | }catch(e){ | ||
| - | + | | |
| - | | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| } | } | ||
| - | |||
| - | |||
| - | /* ========================================================= | ||
| - | LIEN DE PARTAGE | ||
| - | ========================================================= */ | ||
| function copyLink(){ | function copyLink(){ | ||
| - | const data={ | + | const encoded=btoa( |
| - | + | | |
| - | | + | |
| - | raceSelect.value, | + | |
| - | + | ||
| - | upgrades: | + | |
| - | + | ||
| - | equipment: | + | |
| - | + | ||
| - | skills: | + | |
| - | + | ||
| - | spells:[] | + | |
| - | + | ||
| - | }; | + | |
| - | + | ||
| - | + | ||
| - | statOrder.forEach( | + | |
| - | stat=> | + | |
| - | + | ||
| - | const input= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if(input){ | + | |
| - | + | ||
| - | data.upgrades[stat]= | + | |
| - | parseInt( | + | |
| - | input.value | + | |
| - | | + | |
| - | } | + | |
| - | } | + | |
| ); | ); | ||
| - | |||
| - | |||
| - | for( | ||
| - | const key in slots | ||
| - | ){ | ||
| - | |||
| - | data.equipment[key]= | ||
| - | slots[key].value; | ||
| - | } | ||
| - | |||
| - | |||
| - | skills.forEach( | ||
| - | (s,i)=>{ | ||
| - | |||
| - | const cb= | ||
| - | document.getElementById( | ||
| - | " | ||
| - | ); | ||
| - | |||
| - | |||
| - | if( | ||
| - | cb && | ||
| - | cb.checked | ||
| - | ){ | ||
| - | |||
| - | data.skills.push(i); | ||
| - | } | ||
| - | } | ||
| - | ); | ||
| - | |||
| - | |||
| - | spells.forEach( | ||
| - | (s,i)=>{ | ||
| - | |||
| - | const cb= | ||
| - | document.getElementById( | ||
| - | " | ||
| - | ); | ||
| - | |||
| - | |||
| - | if( | ||
| - | cb && | ||
| - | cb.checked | ||
| - | ){ | ||
| - | |||
| - | data.spells.push(i); | ||
| - | } | ||
| - | } | ||
| - | ); | ||
| - | |||
| - | |||
| - | const encoded= | ||
| - | btoa( | ||
| - | encodeURIComponent( | ||
| - | JSON.stringify(data) | ||
| - | ) | ||
| - | ); | ||
| - | |||
| const url= | const url= | ||
| location.origin+ | location.origin+ | ||
| location.pathname+ | location.pathname+ | ||
| - | "? | + | "? |
| - | | + | |
| + | if(navigator.clipboard&& | ||
| - | | + | |
| - | | + | |
| - | ); | + | .catch(()=> |
| + | }else{ | ||
| - | alert( | + | prompt("Copiez ce lien :",url); |
| - | | + | |
| - | | + | |
| } | } | ||
| - | |||
| - | |||
| - | /* ========================================================= | ||
| - | | ||
| - | ========================================================= */ | ||
| function loadFromURL(){ | function loadFromURL(){ | ||
| - | const params= | + | const params=new URLSearchParams(location.search); |
| - | | + | |
| - | | + | |
| - | | + | |
| + | const encoded=params.get(" | ||
| - | | + | if(!encoded) return; |
| - | params.get(" | + | |
| - | + | ||
| - | + | ||
| - | | + | |
| - | | + | |
| - | } | + | |
| try{ | try{ | ||
| - | const data= | + | const data=JSON.parse( |
| - | | + | decodeURIComponent(atob(encoded)) |
| - | decodeURIComponent( | + | |
| - | | + | |
| - | | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if( | + | |
| - | data.race && | + | |
| - | races[data.race] | + | |
| - | ){ | + | |
| - | + | ||
| - | raceSelect.value= | + | |
| - | data.race; | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | if(data.upgrades){ | + | |
| - | + | ||
| - | statOrder.forEach( | + | |
| - | stat=> | + | |
| - | + | ||
| - | const input= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if( | + | |
| - | input && | + | |
| - | data.upgrades[stat] !== | + | |
| - | undefined | + | |
| - | ){ | + | |
| - | + | ||
| - | input.value= | + | |
| - | data.upgrades[stat]; | + | |
| - | } | + | |
| - | } | + | |
| - | ); | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | fillEquip(); | + | |
| - | + | ||
| - | + | ||
| - | if(data.equipment){ | + | |
| - | + | ||
| - | for( | + | |
| - | const key in slots | + | |
| - | ){ | + | |
| - | + | ||
| - | if( | + | |
| - | data.equipment[key] !== | + | |
| - | undefined | + | |
| - | ){ | + | |
| - | + | ||
| - | slots[key].value= | + | |
| - | data.equipment[key]; | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | + | ||
| - | skills.forEach( | + | |
| - | (s, | + | |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if(cb){ | + | |
| - | + | ||
| - | cb.checked= | + | |
| - | Array.isArray( | + | |
| - | data.skills | + | |
| - | ) && | + | |
| - | data.skills.includes(i); | + | |
| - | } | + | |
| - | } | + | |
| ); | ); | ||
| - | + | applyBuildData(data); | |
| - | spells.forEach( | + | |
| - | (s, | + | |
| - | + | ||
| - | const cb= | + | |
| - | document.getElementById( | + | |
| - | " | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | if(cb){ | + | |
| - | + | ||
| - | cb.checked= | + | |
| - | Array.isArray( | + | |
| - | | + | |
| - | ) && | + | |
| - | data.spells.includes(i); | + | |
| - | } | + | |
| - | } | + | |
| - | ); | + | |
| - | + | ||
| - | + | ||
| - | displayAllEquipStats(); | + | |
| - | + | ||
| - | checkLimit(); | + | |
| - | + | ||
| - | calculate(); | + | |
| }catch(e){ | }catch(e){ | ||
| - | console.log( | + | console.log(" |
| - | | + | |
| - | | + | |
| } | } | ||
| } | } | ||
| - | |||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 2850: | Ligne 1357: | ||
| ========================================================= */ | ========================================================= */ | ||
| - | raceSelect.addEventListener( | + | raceSelect.addEventListener(" |
| - | | + | |
| - | | + | |
| - | + | ||
| - | resetSlots(); | + | |
| - | + | ||
| - | fillEquip(); | + | |
| - | + | ||
| - | calculate(); | + | |
| - | } | + | |
| - | ); | + | |
| + | resetSlots(); | ||
| + | fillEquip(); | ||
| + | calculate(); | ||
| + | }); | ||
| /* ========================================================= | /* ========================================================= | ||
| Ligne 2868: | Ligne 1369: | ||
| fillEquip(); | fillEquip(); | ||
| - | |||
| displayBase(); | displayBase(); | ||
| - | |||
| calculate(); | calculate(); | ||
| - | |||
| calculatePush(); | calculatePush(); | ||
| - | |||
| loadFromURL(); | loadFromURL(); | ||
simulateur_saison3_1.1790894361.txt.gz · Dernière modification : 2026/10/02 00:39 de nanaki
