Outils pour utilisateurs

Outils du site


simulateur00

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
simulateur00 [2026/10/08 13:48] – créée nanakisimulateur00 [2026/10/08 21:34] (Version actuelle) – nanaki
Ligne 1: Ligne 1:
-Bonjour, 
-Voici le simulateur pour la saison 3. \\ 
-N'hésitez pas à remonter des problèmes si il y a.\\ 
-Le bouton import et export ne fonctionnent plus très bien, utiliser le bouton lien pour le moment. 
- 
 <html> <html>
 <head> <head>
Ligne 56: Ligne 51:
 } }
  
-.equipStats { margin-left:5px; }+.equipStats { 
 +    margin-left:5px; 
 +}
  
-.bonus,.special { color:#00ff00; } +.bonus,.special { 
-.malus { color:#ff3333; }+    color:#00ff00; 
 +} 
 + 
 +.malus { 
 +    color:#ff3333; 
 +} 
 + 
 +/* Magie interdite : rouge uniquement dans les bonus/malus */ 
 +.forbiddenMagic { 
 +    color:#ff3333; 
 +    font-weight:bold; 
 +}
  
 button { button {
Ligne 256: Ligne 264:
     e:[120,55,30],     e:[120,55,30],
     agi:[95,45,25],     agi:[95,45,25],
-    pui:[110,55,35], +    pui:[120,55,30], 
-    res:[110,55,35],+    res:[120,55,30],
     fm:[100,50,30],     fm:[100,50,30],
     p:[110,85,78],     p:[110,85,78],
Ligne 278: Ligne 286:
 {name:"Gladius",race:"all",slot:"rightHand",stats:{cc:1}}, {name:"Gladius",race:"all",slot:"rightHand",stats:{cc:1}},
 {name:"Sceptre",race:"all",slot:"rightHand",stats:{fm:1}}, {name:"Sceptre",race:"all",slot:"rightHand",stats:{fm:1}},
-{name:"Fustibale",race:"all",slot:"rightHand",stats:{ct:1,cc:-2}}, +{ 
-{name:"Arbalète de poing",race:"all",slot:"rightHand",stats:{f:12,ct:1}}, +    name:"Fustibale", 
-{name:"Torche",race:"all",slot:"rightHand",stats:{cc:-2,f:-2,feu:true}}, +    race:"all", 
-{name:"Lance barbelée",race:"all",slot:"rightHand",stats:{ct:1,f:1,cc:-1}}, +    slot:"rightHand", 
-{name:"Lance",race:"all",slot:"rightHand",stats:{ct:1,cc:-1}}, +    stats:{ct:1,cc:-2} 
-{name:"Rapière",race:"all",slot:"rightHand",stats:{cc:2,f:-1}}, +}, 
-{name:"Arc",race:"all",slot:"rightHand",stats:{ct:1,cc:-1}}, +{ 
-{name:"Arc long",race:"all",slot:"rightHand",stats:{ct:2,f:-1,cc:-2}}, +    name:"Arbalète de poing", 
-{name:"Bélier",race:"all",slot:"rightHand",stats:{demolition:10,cc:-2}}, +    race:"all", 
-{name:"Pioche",race:"all",slot:"rightHand",stats:{demolition:5}},+    slot:"rightHand", 
 +    stats:{f:12,ct:1} 
 +}, 
 +{ 
 +    name:"Torche", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{cc:-2,f:-2,feu:true} 
 +}, 
 +{ 
 +    name:"Lance barbelée", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{ct:1,f:1,cc:-1} 
 +}, 
 +{ 
 +    name:"Lance", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{ct:1,cc:-1} 
 +}, 
 +{ 
 +    name:"Rapière", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{cc:2,f:-1} 
 +}, 
 +{ 
 +    name:"Arc", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{ct:1,cc:-1} 
 +}, 
 +{ 
 +    name:"Arc long", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{ct:2,f:-1,cc:-2} 
 +}, 
 +{ 
 +    name:"Bélier", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{demolition:10,cc:-2} 
 +}, 
 +{ 
 +    name:"Pioche", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{demolition:5} 
 +},
 { {
     name:"Catalyseur magique",     name:"Catalyseur magique",
Ligne 295: Ligne 353:
 }, },
  
-{name:"Targe",race:"all",slot:"leftHand",stats:{cc:1,agi:-1}}, +{ 
-{name:"Bouclier Parma",race:"all",slot:"leftHand",stats:{e:1,agi:-1}}, +    name:"Targe", 
-{name:"Écu brillant",race:"all",slot:"leftHand",stats:{res:1,agi:-1}},+    race:"all", 
 +    slot:"leftHand", 
 +    stats:{cc:1,agi:-1} 
 +}, 
 +{ 
 +    name:"Bouclier Parma", 
 +    race:"all", 
 +    slot:"leftHand", 
 +    stats:{e:1,agi:-1} 
 +}, 
 +{ 
 +    name:"Écu brillant", 
 +    race:"all", 
 +    slot:"leftHand", 
 +    stats:{res:1,agi:-1} 
 +},
  
-{name:"Armure matelassée",race:"all",slot:"body",stats:{e:1,agi:-1}}, +{ 
-{name:"Toge d'apprenti",race:"all",slot:"body",stats:{res:1,agi:-1}}, +    name:"Armure matelassée", 
-{name:"Ceinture",race:"all",slot:"body",stats:{r:1}},+    race:"all", 
 +    slot:"body", 
 +    stats:{e:1,agi:-1} 
 +}, 
 +{ 
 +    name:"Toge d'apprenti", 
 +    race:"all", 
 +    slot:"body", 
 +    stats:{res:1,agi:-1} 
 +}, 
 +{ 
 +    name:"Ceinture", 
 +    race:"all", 
 +    slot:"body", 
 +    stats:{r:1} 
 +},
  
-{name:"Cape de chasse",race:"all",slot:"cape",stats:{ct:1}},+{ 
 +    name:"Cape de chasse", 
 +    race:"all", 
 +    slot:"cape", 
 +    stats:{ct:1} 
 +},
  
-{name:"Couronne d'adonis",race:"all",slot:"head",stats:{rm:1}}, +{ 
-{name:"Visière",race:"all",slot:"head",stats:{p:1,cc:-1,fm:-1}}, +    name:"Couronne d'adonis", 
-{name:"Collier tressé",race:"all",slot:"head",stats:{pv:5,pm:5}},+    race:"all", 
 +    slot:"head", 
 +    stats:{rm:1} 
 +}, 
 +{ 
 +    name:"Visière", 
 +    race:"all", 
 +    slot:"head", 
 +    stats:{p:1,cc:-1,fm:-1} 
 +}, 
 +{ 
 +    name:"Collier tressé", 
 +    race:"all", 
 +    slot:"head", 
 +    stats:{pv:5,pm:5} 
 +},
  
-{name:"Bottes de marche",race:"all",slot:"feet",stats:{mvt:1}}, +{ 
-{name:"Sceptre de mage",race:"all",slot:"rightHand",stats:{pui:1,fm:1}}, +    name:"Bottes de marche", 
-{name:"Sarbacane",race:"all",slot:"rightHand",stats:{ct:1,f:10,cc:-1}}, +    race:"all", 
-{name:"Pierre Noire",race:"all",slot:"rightHand",stats:{f:1,cc:-1}},+    slot:"feet", 
 +    stats:{mvt:1} 
 +}, 
 +{ 
 +    name:"Sceptre de mage", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{pui:1,fm:1} 
 +}, 
 +{ 
 +    name:"Sarbacane", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{ct:1,f:10,cc:-1} 
 +}, 
 +{ 
 +    name:"Pierre Noire", 
 +    race:"all", 
 +    slot:"rightHand", 
 +    stats:{f:1,cc:-1} 
 +},
  
 /* OLYMPIENS */ /* OLYMPIENS */
  
-{name:"Spatha",race:"Olympien",slot:"rightHand",stats:{cc:1,f:1}},+{ 
 +    name:"Spatha", 
 +    race:"Olympien", 
 +    slot:"rightHand", 
 +    stats:{cc:1,f:1} 
 +},
 { {
     name:"Lame sainte",     name:"Lame sainte",
Ligne 323: Ligne 456:
     stats:{cc:1,pui:1,fPui:true}     stats:{cc:1,pui:1,fPui:true}
 }, },
-{name:"Pilum",race:"Olympien",slot:"rightHand",stats:{f:1,mvt:1,cc:-1}}, +{ 
-{name:"Sceptre de puissance",race:"Olympien",slot:"rightHand",stats:{pui:1,pm:8}}, +    name:"Pilum", 
-{name:"Gastraphète",race:"Olympien",slot:"rightHand",stats:{f:15,ct:-2,cc:-1}}, +    race:"Olympien", 
-{name:"Bouclier Ancile",race:"Olympien",slot:"leftHand",stats:{e:1,pv:5}}, +    slot:"rightHand", 
-{name:"Armure Hoplitique",race:"Olympien",slot:"body",stats:{e:1,res:1}}, +    stats:{f:1,mvt:1,cc:-1} 
-{name:"Lorica",race:"Olympien",exo:true,slot:"body",stats:{e:1,res:1}}, +}, 
-{name:"Cape de dueliste",race:"Olympien",slot:"cape",stats:{cc:2,f:-1}}, +{ 
-{name:"Diadème",race:"Olympien",slot:"head",stats:{r:1,rm:2}}, +    name:"Sceptre de puissance", 
-{name:"Tiare d'Oracle",race:"Olympien",slot:"head",stats:{fm:1,p:1}}, +    race:"Olympien", 
-{name:"Cnémides",race:"Olympien",slot:"feet",stats:{mvt:1,rm:1,r:1}},+    slot:"rightHand", 
 +    stats:{pui:1,pm:8} 
 +}, 
 +{ 
 +    name:"Gastraphète", 
 +    race:"Olympien", 
 +    slot:"rightHand", 
 +    stats:{f:15,ct:-2,cc:-1} 
 +}, 
 +{ 
 +    name:"Bouclier Ancile", 
 +    race:"Olympien", 
 +    slot:"leftHand", 
 +    stats:{e:1,pv:5} 
 +}, 
 +{ 
 +    name:"Armure Hoplitique", 
 +    race:"Olympien", 
 +    slot:"body", 
 +    stats:{e:1,res:1} 
 +}, 
 +{ 
 +    name:"Lorica", 
 +    race:"Olympien", 
 +    exo:true, 
 +    slot:"body", 
 +    stats:{e:1,res:1} 
 +}, 
 +{ 
 +    name:"Cape de dueliste", 
 +    race:"Olympien", 
 +    slot:"cape", 
 +    stats:{cc:2,f:-1} 
 +}, 
 +{ 
 +    name:"Diadème", 
 +    race:"Olympien", 
 +    slot:"head", 
 +    stats:{r:1,rm:2} 
 +}, 
 +{ 
 +    name:"Tiare d'Oracle", 
 +    race:"Olympien", 
 +    slot:"head", 
 +    stats:{fm:1,p:1} 
 +}, 
 +{ 
 +    name:"Cnémides", 
 +    race:"Olympien", 
 +    slot:"feet", 
 +    stats:{mvt:1,rm:1,r:1} 
 +},
  
 /* ELFES */ /* ELFES */
  
-{name:"Lance de garde Sylvestre",race:"Elfe",slot:"rightHand",stats:{cc:1,f:1}}, +{ 
-{name:"Baton du Pelerin",race:"Elfe",slot:"rightHand",stats:{mvt:1,fm:1}}, +    name:"Lance de garde Sylvestre", 
-{name:"Charybde",race:"Elfe",slot:"rightHand",stats:{pui:2,e:-1}},+    race:"Elfe", 
 +    slot:"rightHand", 
 +    stats:{cc:1,f:1} 
 +}, 
 +{ 
 +    name:"Baton du Pelerin", 
 +    race:"Elfe", 
 +    slot:"rightHand", 
 +    stats:{mvt:1,fm:1} 
 +}, 
 +{ 
 +    name:"Charybde", 
 +    race:"Elfe", 
 +    slot:"rightHand", 
 +    stats:{pui:2,e:-1} 
 +},
 { {
     name:"Arc Ensorcelé",     name:"Arc Ensorcelé",
Ligne 345: Ligne 544:
     stats:{ct:1,rm:2,cc:-1,fPui:true}     stats:{ct:1,rm:2,cc:-1,fPui:true}
 }, },
-{name:"Arc Elfique",race:"Elfe",exo:true,slot:"rightHand",stats:{ct:1,f:1,mvt:1,cc:-2}}, +{ 
-{name:"Targe renforcée",race:"Elfe",slot:"leftHand",stats:{e:1,cc:1}}, +    name:"Arc Elfique", 
-{name:"Cuirasse",race:"Elfe",slot:"body",stats:{res:1,r:2}}, +    race:"Elfe", 
-{name:"Armure de garde Sylvestre",race:"Elfe",exo:true,slot:"body",stats:{res:2,pm:-10}}, +    exo:true, 
-{name:"Cape de feuillages",race:"Elfe",slot:"cape",stats:{fm:1,pv:5}}, +    slot:"rightHand", 
-{name:"Marque Forestière",race:"Elfe",slot:"head",stats:{pm:10,r:1}}, +    stats:{ct:1,f:1,mvt:1,cc:-2} 
-{name:"Capuche du chasseur",race:"Elfe",slot:"head",stats:{ct:1,r:1,rm:1}}, +}, 
-{name:"Bottes Tâlroval",race:"Elfe",slot:"feet",stats:{mvt:2}},+{ 
 +    name:"Targe renforcée", 
 +    race:"Elfe", 
 +    slot:"leftHand", 
 +    stats:{e:1,cc:1} 
 +}, 
 +{ 
 +    name:"Cuirasse", 
 +    race:"Elfe", 
 +    slot:"body", 
 +    stats:{res:1,r:2} 
 +}, 
 +{ 
 +    name:"Armure de garde Sylvestre", 
 +    race:"Elfe", 
 +    exo:true, 
 +    slot:"body", 
 +    stats:{res:2,pm:-10} 
 +}, 
 +{ 
 +    name:"Cape de feuillages", 
 +    race:"Elfe", 
 +    slot:"cape", 
 +    stats:{fm:1,pv:5} 
 +}, 
 +{ 
 +    name:"Marque Forestière", 
 +    race:"Elfe", 
 +    slot:"head", 
 +    stats:{pm:10,r:1} 
 +}, 
 +{ 
 +    name:"Capuche du chasseur", 
 +    race:"Elfe", 
 +    slot:"head", 
 +    stats:{ct:1,r:1,rm:1} 
 +}, 
 +{ 
 +    name:"Bottes Tâlroval", 
 +    race:"Elfe", 
 +    slot:"feet", 
 +    stats:{mvt:2} 
 +},
  
 /* NAINS */ /* NAINS */
  
-{name:"Labrys",race:"Nain",slot:"rightHand",stats:{cc:1,f:1}}, +{ 
-{name:"Hache runique",race:"Nain",slot:"rightHand",stats:{cc:1,fm:1}},+    name:"Labrys", 
 +    race:"Nain", 
 +    slot:"rightHand", 
 +    stats:{cc:1,f:1} 
 +}, 
 +{ 
 +    name:"Hache runique", 
 +    race:"Nain", 
 +    slot:"rightHand", 
 +    stats:{cc:1,fm:1} 
 +},
 { {
     name:"Marteau runique",     name:"Marteau runique",
Ligne 364: Ligne 615:
     stats:{fPui:true,pui:2}     stats:{fPui:true,pui:2}
 }, },
-{name:"Baton d'archimage",race:"Nain",slot:"rightHand",stats:{fm:1,pm:10}}, +{ 
-{name:"Marteau de guerre",race:"Nain",slot:"rightHand",stats:{f:2,cc:-1}}, +    name:"Baton d'archimage", 
-{name:"Bouclier Miroir",race:"Nain",slot:"leftHand",stats:{res:1,pv:5}}, +    race:"Nain", 
-{name:"Armure runique",race:"Nain",slot:"body",stats:{e:1,pm:8}}, +    slot:"rightHand", 
-{name:"Cotte de mailles",race:"Nain",exo:true,slot:"body",stats:{e:2,esquive:-4}}, +    stats:{fm:1,pm:10} 
-{name:"Cape dorée",race:"Nain",exo:true,slot:"cape",stats:{res:1,mvt:1}}, +}, 
-{name:"Casque grossissant",race:"Nain",slot:"head",stats:{ct:2,p:-1}}, +{ 
-{name:"Casque de guerre",race:"Nain",slot:"head",stats:{pv:5,r:1,pm:5,rm:1}}, +    name:"Marteau de guerre", 
-{name:"Solerets",race:"Nain",slot:"feet",stats:{mvt:1,pm:5,pv:5}},+    race:"Nain", 
 +    slot:"rightHand", 
 +    stats:{f:2,cc:-1} 
 +}, 
 +{ 
 +    name:"Bouclier Miroir", 
 +    race:"Nain", 
 +    slot:"leftHand", 
 +    stats:{res:1,pv:5} 
 +}, 
 +{ 
 +    name:"Armure runique", 
 +    race:"Nain", 
 +    slot:"body", 
 +    stats:{e:1,pm:8} 
 +}, 
 +{ 
 +    name:"Cotte de mailles", 
 +    race:"Nain", 
 +    exo:true, 
 +    slot:"body", 
 +    stats:{e:2,esquive:-4} 
 +}, 
 +{ 
 +    name:"Cape dorée", 
 +    race:"Nain", 
 +    exo:true, 
 +    slot:"cape", 
 +    stats:{res:1,mvt:1} 
 +}, 
 +{ 
 +    name:"Casque grossissant", 
 +    race:"Nain", 
 +    slot:"head", 
 +    stats:{ct:2,p:-1} 
 +}, 
 +{ 
 +    name:"Casque de guerre", 
 +    race:"Nain", 
 +    slot:"head", 
 +    stats:{pv:5,r:1,pm:5,rm:1} 
 +}, 
 +{ 
 +    name:"Solerets", 
 +    race:"Nain", 
 +    slot:"feet", 
 +    stats:{mvt:1,pm:5,pv:5} 
 +},
  
 /* GEANTS */ /* GEANTS */
  
-{name:"Masse d'arme",race:"Géant",slot:"rightHand",stats:{cc:1,f:1}}, +{ 
-{name:"Hallebarde de pierre",race:"Géant",slot:"rightHand",stats:{f:1,mvt:1}}, +    name:"Masse d'arme", 
-{name:"Javelot lourd",race:"Géant",slot:"rightHand",stats:{f:2,ct:-1,cc:-1}},+    race:"Géant", 
 +    slot:"rightHand", 
 +    stats:{cc:1,f:1} 
 +}, 
 +{ 
 +    name:"Hallebarde de pierre", 
 +    race:"Géant", 
 +    slot:"rightHand", 
 +    stats:{f:1,mvt:1} 
 +}, 
 +{ 
 +    name:"Javelot lourd", 
 +    race:"Géant", 
 +    slot:"rightHand", 
 +    stats:{f:2,ct:-1,cc:-1} 
 +},
 { {
     name:"Pierre en fusion",     name:"Pierre en fusion",
Ligne 385: Ligne 698:
     stats:{fPui:true,ct:-2,feu:true}     stats:{fPui:true,ct:-2,feu:true}
 }, },
-{name:"Baton de shaman",race:"Géant",exo:true,slot:"rightHand",stats:{fm:2}}, +{ 
-{name:"Bouclier Clipeus",race:"Géant",slot:"leftHand",stats:{e:1,pv:10}}, +    name:"Baton de shaman", 
-{name:"Peau de granit manifiée",race:"Géant",slot:"body",stats:{res:1,rm:2,esquive:-2}}, +    race:"Géant", 
-{name:"Broigne",race:"Géant",exo:true,slot:"body",stats:{res:2,fm:-1}}, +    exo:true, 
-{name:"Cape de l'arpenteur",race:"Géant",slot:"cape",stats:{cc:1,ct:1}}, +    slot:"rightHand", 
-{name:"Fétiche de shaman",race:"Géant",slot:"head",stats:{r:2,pm:5}}, +    stats:{fm:2} 
-{name:"Coiffe de rage",race:"Géant",slot:"head",stats:{cc:1,pv:5,r:1}}, +}, 
-{name:"Bottes incandescentes",race:"Géant",slot:"feet",stats:{mvt:1,r:1,pv:5}},+{ 
 +    name:"Bouclier Clipeus", 
 +    race:"Géant", 
 +    slot:"leftHand", 
 +    stats:{e:1,pv:10} 
 +}, 
 +{ 
 +    name:"Peau de granit manifiée", 
 +    race:"Géant", 
 +    slot:"body", 
 +    stats:{res:1,rm:2,esquive:-2} 
 +}, 
 +{ 
 +    name:"Broigne", 
 +    race:"Géant", 
 +    exo:true, 
 +    slot:"body", 
 +    stats:{res:2,fm:-1} 
 +}, 
 +{ 
 +    name:"Cape de l'arpenteur", 
 +    race:"Géant", 
 +    slot:"cape", 
 +    stats:{cc:1,ct:1} 
 +}, 
 +{ 
 +    name:"Fétiche de shaman", 
 +    race:"Géant", 
 +    slot:"head", 
 +    stats:{r:2,pm:5} 
 +}, 
 +{ 
 +    name:"Coiffe de rage", 
 +    race:"Géant", 
 +    slot:"head", 
 +    stats:{cc:1,pv:5,r:1} 
 +}, 
 +{ 
 +    name:"Bottes incandescentes", 
 +    race:"Géant", 
 +    slot:"feet", 
 +    stats:{mvt:1,r:1,pv:5} 
 +},
  
 /* HS */ /* HS */
  
-{name:"Ceste",race:"HS",slot:"rightHand",stats:{f:1,cc:1}},+{ 
 +    name:"Ceste", 
 +    race:"HS", 
 +    slot:"rightHand", 
 +    stats:{f:1,cc:1} 
 +},
 { {
     name:"Mains de mana",     name:"Mains de mana",
Ligne 403: Ligne 763:
     stats:{fPui:true,cc:2}     stats:{fPui:true,cc:2}
 }, },
-{name:"Baton de Sage",race:"HS",slot:"rightHand",stats:{pui:1,agi:1}}, +{ 
-{name:"Orbe de mana",race:"HS",slot:"rightHand",stats:{pui:2,fm:-1}}, +    name:"Baton de Sage", 
-{name:"Bouclier en lianes",race:"HS",slot:"leftHand",stats:{res:1,agi:1}}, +    race:"HS", 
-{name:"Manteau de feuillage",race:"HS",slot:"body",stats:{e:1,agi:1}}, +    slot:"rightHand", 
-{name:"Armure de fourrure",race:"HS",exo:true,slot:"body",stats:{e:2,rm:-3}}, +    stats:{pui:1,agi:1} 
-{name:"Cape de mage",race:"HS",slot:"cape",stats:{fm:1,rm:1}}, +}, 
-{name:"Collier d'apaisement",race:"HS",slot:"head",stats:{pv:10,pm:5}}, +{ 
-{name:"Coiffe de rapace",race:"HS",slot:"head",stats:{ct:1,p:1}}, +    name:"Orbe de mana", 
-{name:"Bottes griffues",race:"HS",exo:true,slot:"feet",stats:{cc:1,f:1,pv:5}}, +    race:"HS", 
-{name:"Bottes de voleur",race:"HS",slot:"feet",stats:{mvt:1,agi:1}},+    slot:"rightHand", 
 +    stats:{pui:2,fm:-1} 
 +}, 
 +{ 
 +    name:"Bouclier en lianes", 
 +    race:"HS", 
 +    slot:"leftHand", 
 +    stats:{res:1,agi:1} 
 +}, 
 +{ 
 +    name:"Manteau de feuillage", 
 +    race:"HS", 
 +    slot:"body", 
 +    stats:{e:1,agi:1} 
 +}, 
 +{ 
 +    name:"Armure de fourrure", 
 +    race:"HS", 
 +    exo:true, 
 +    slot:"body", 
 +    stats:{e:2,rm:-3} 
 +}, 
 +{ 
 +    name:"Cape de mage", 
 +    race:"HS", 
 +    slot:"cape", 
 +    stats:{fm:1,rm:1} 
 +}, 
 +{ 
 +    name:"Collier d'apaisement", 
 +    race:"HS", 
 +    slot:"head", 
 +    stats:{pv:10,pm:5} 
 +}, 
 +{ 
 +    name:"Coiffe de rapace", 
 +    race:"HS", 
 +    slot:"head", 
 +    stats:{ct:1,p:1} 
 +}, 
 +{ 
 +    name:"Bottes griffues", 
 +    race:"HS", 
 +    exo:true, 
 +    slot:"feet", 
 +    stats:{cc:1,f:1,pv:5} 
 +}, 
 +{ 
 +    name:"Bottes de voleur", 
 +    race:"HS", 
 +    slot:"feet", 
 +    stats:{mvt:1,agi:1} 
 +},
  
 /* LUTINS : ANNEAUX */ /* LUTINS : ANNEAUX */
  
-{name:"Anneau d'Horizon",race:"Lutin",slot:"ring",stats:{p:1}}, +{ 
-{name:"Anneau de Caprice",race:"Lutin",slot:"ring",stats:{fm:1}}, +    name:"Anneau d'Horizon", 
-{name:"Anneau de Puissance",race:"Lutin",slot:"ring",stats:{pui:1}}, +    race:"Lutin", 
-{name:"Anneau de Férocité",race:"Lutin",slot:"ring",stats:{f:1}}, +    slot:"ring", 
-{name:"Anneau de Résistance",race:"Lutin",slot:"ring",stats:{res:1}}, +    stats:{p:1} 
-{name:"Anneau d'Équilibre",race:"Lutin",slot:"ring",stats:{pv:5,pm:5}}, +}, 
-{name:"Anneau de Finesse",race:"Lutin",slot:"ring",stats:{cc:1}}, +{ 
-{name:"Anneau de Prétention",race:"Lutin",slot:"ring",stats:{ct:1}}, +    name:"Anneau de Caprice", 
-{name:"Anneau de Tenacité",race:"Lutin",slot:"ring",stats:{e:1}}, +    race:"Lutin", 
-{name:"Anneau de Souplesse",race:"Lutin",slot:"ring",stats:{agi:1}},+    slot:"ring", 
 +    stats:{fm:1} 
 +}, 
 +{ 
 +    name:"Anneau de Puissance", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{pui:1} 
 +}, 
 +{ 
 +    name:"Anneau de Férocité", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{f:1} 
 +}, 
 +{ 
 +    name:"Anneau de Résistance", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{res:1} 
 +}, 
 +{ 
 +    name:"Anneau d'Équilibre", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{pv:5,pm:5} 
 +}, 
 +{ 
 +    name:"Anneau de Finesse", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{cc:1} 
 +}, 
 +{ 
 +    name:"Anneau de Prétention", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{ct:1} 
 +}, 
 +{ 
 +    name:"Anneau de Tenacité", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{e:1} 
 +}, 
 +{ 
 +    name:"Anneau de Souplesse", 
 +    race:"Lutin", 
 +    slot:"ring", 
 +    stats:{agi:1} 
 +},
  
-{name:"Bottes de 7 lieux",race:"Lutin",exo:true,slot:"feet",stats:{mvt:3}}+{ 
 +    name:"Bottes de 7 lieux", 
 +    race:"Lutin", 
 +    exo:true, 
 +    slot:"feet", 
 +    stats:{mvt:3} 
 +}
  
 ]; ];
 +
 +/* =========================================================
 +   MAGIE INTERDITE
 +   Affichée uniquement après les bonus/malus de l'objet.
 +========================================================= */
 +
 +const magieInterdite = new Set([
 +    "Lance barbelée", "Rapière", "Bélier", "Pioche",
 +    "Catalyseur magique", "Bouclier Parma", "Écu brillant",
 +    "Armure matelassée", "Toge d'apprenti", "Pierre Noire",
 +    "Spatha", "Pilum", "Gastraphète", "Armure Hoplitique",
 +    "Cape de dueliste", "Lance de garde Sylvestre", "Arc Elfique",
 +    "Targe renforcée", "Armure de garde Sylvestre", "Bottes Tâlroval",
 +    "Labrys", "Marteau runique", "Marteau de guerre", "Cotte de mailles",
 +    "Cape dorée", "Casque grossissant", "Casque de guerre",
 +    "Masse d'arme", "Hallebarde de pierre", "Javelot lourd",
 +    "Pierre en fusion", "Bouclier Clipeus", "Broigne", "Cape de l'arpenteur",
 +    "Ceste", "Bouclier en lianes", "Armure de fourrure"
 +]);
  
 /* ========================================================= /* =========================================================
Ligne 454: Ligne 941:
     {     {
         name:"Griffes",         name:"Griffes",
-        desc:"+3 F à mains nues, avec une ceste ou des mains de mana"+        desc:"+3 dégâts à mains nues, avec une ceste ou des mains de mana"
     },     },
     {     {
Ligne 640: Ligne 1127:
  
             option.value=String(equipments.indexOf(item));             option.value=String(equipments.indexOf(item));
-            option.textContent=item.name+(item.exo?" (exo)":"");+ 
 +            /* Le titre reste uniquement le nom de l'objet */ 
 +            option.textContent= 
 +                item.name+ 
 +                (item.exo?" (exo)":"");
  
             select.appendChild(option);             select.appendChild(option);
Ligne 664: Ligne 1155:
     cc:"CC",ct:"CT",fm:"FM",mvt:"Mvt",     cc:"CC",ct:"CT",fm:"FM",mvt:"Mvt",
     pv:"PV",pm:"PM",r:"R",res:"Rés",     pv:"PV",pm:"PM",r:"R",res:"Rés",
-    rm:"RM",p:"P",pui:"Pui", Fpui:"F=Pui",+    rm:"RM",p:"P",pui:"Pui",fPui:"F=Pui",
     esquive:"Esquive",     esquive:"Esquive",
     demolition:"Démolition",     demolition:"Démolition",
Ligne 690: Ligne 1181:
  
     let html="";     let html="";
 +
 +    /* Bonus et malus */
  
     for(const [stat,value] of Object.entries(item.stats||{})){     for(const [stat,value] of Object.entries(item.stats||{})){
Ligne 709: Ligne 1202:
             html+=`<span class="malus">${value} ${name}</span> `;             html+=`<span class="malus">${value} ${name}</span> `;
         }         }
 +    }
 +
 +    /* Magie interdite : toujours après les bonus/malus */
 +    if(magieInterdite.has(item.name)){
 +        html += `<span class="forbiddenMagic">Magie interdite</span> `;
     }     }
  
Ligne 801: Ligne 1299:
         if(!input) continue;         if(!input) continue;
  
-        const level=Math.max(0,parseInt(input.value,10)||0);+        const level=Math.max( 
 +            0, 
 +            parseInt(input.value,10)||0 
 +        );
  
         if(!level) continue;         if(!level) continue;
Ligne 875: Ligne 1376:
  
     /* Equipements */     /* Equipements */
 +
 +    let forcePui=false;
  
     for(const key in slots){     for(const key in slots){
Ligne 888: Ligne 1391:
         for(const [stat,bonus] of Object.entries(item.stats||{})){         for(const [stat,bonus] of Object.entries(item.stats||{})){
  
-            if(typeof bonus==="number"){+            if(stat==="fPui" && bonus===true){ 
 +                forcePui=true; 
 +                continue; 
 +            }
  
 +            if(typeof bonus==="number"){
                 char[stat]=(char[stat]||0)+bonus;                 char[stat]=(char[stat]||0)+bonus;
             }             }
         }         }
 +    }
 +
 +    /* F=Pui */
 +
 +    if(forcePui){
 +        char.f=char.pui;
     }     }
  
Ligne 902: Ligne 1415:
     const griffes=isChecked(4);     const griffes=isChecked(4);
  
-    /* Griffes : mains nues ou Ceste */+    /* Griffes : mains nues, Ceste ou Mains de mana */
  
     const mainDroite=rightHand.value===""     const mainDroite=rightHand.value===""
Ligne 909: Ligne 1422:
  
     const griffesActives=     const griffesActives=
-        griffes&&(!mainDroite|| +        griffes&&( 
- mainDroite.name==="Ceste" +            !mainDroite|| 
- mainDroite.name==="Main de mana" +            mainDroite.name==="Ceste"|| 
- );+            mainDroite.name==="Mains de mana" 
 +        );
  
     if(griffesActives){     if(griffesActives){
Ligne 974: Ligne 1488:
         result+=griffesActives         result+=griffesActives
             ? "\nGriffes : +3 F appliqué."             ? "\nGriffes : +3 F appliqué."
-            : "\nGriffes : inactif (arme autre que ceste).";+            : "\nGriffes : inactif (arme autre que ceste ou mains de mana).";
     }     }
  
Ligne 1006: Ligne 1520:
         }         }
  
-        result+=cases+" case(s) : CT "+ctDistance+"\n";+        result+= 
 +            cases+ 
 +            " case(s) : CT "+ 
 +            ctDistance+ 
 +            "\n";
     }     }
  
Ligne 1036: Ligne 1554:
  
         evadeStat=Math.max(         evadeStat=Math.max(
-            Math.floor(char.cc*0.75+char.agi*0.25), +            Math.floor( 
-            Math.floor(char.agi*0.75+char.cc*0.25)+                char.cc*0.75+ 
 +                char.agi*0.25 
 +            ), 
 +            Math.floor( 
 +                char.agi*0.75+ 
 +                char.cc*0.25 
 +            )
         );         );
     }     }
  
     const fulguranceDodge=     const fulguranceDodge=
-        fulgurance?Math.floor(char.mvt/5):0;+        fulgurance? 
 +        Math.floor(char.mvt/5): 
 +        0;
  
     const rangedDodge=     const rangedDodge=
-        evadeStat*2+bestProt+fulguranceDodge;+        evadeStat*2+ 
 +        bestProt+ 
 +        fulguranceDodge;
  
     result+="\n=== ESQUIVE TIR ===\n\n";     result+="\n=== ESQUIVE TIR ===\n\n";
Ligne 1052: Ligne 1580:
     /* Esquive FM */     /* Esquive FM */
  
-    const fmDodge=fmDice+bestProt;+    const fmDodge= 
 +        fmDice+ 
 +        bestProt;
  
     result+="\n=== ESQUIVE FM ===\n\n";     result+="\n=== ESQUIVE FM ===\n\n";
Ligne 1067: Ligne 1597:
  
         result+=         result+=
-            "Sort niveau "+lvl+ +            "Sort niveau "+ 
-            " (seuil "+threshold+") : "+ +            lvl+ 
-            (finalFM>=threshold?"Réussi":"Échec")++            " (seuil "+ 
 +            threshold+ 
 +            ") : "+ 
 +            ( 
 +                finalFM>=threshold 
 +                ?"Réussi" 
 +                :"Échec" 
 +            )+
             "\n";             "\n";
     }     }
Ligne 1084: Ligne 1621:
  
     const F=parseInt(     const F=parseInt(
-        document.getElementById("pushF").value,10+        document.getElementById("pushF").value, 
 +        10
     )||0;     )||0;
  
     const E=parseInt(     const E=parseInt(
-        document.getElementById("pushE").value,10+        document.getElementById("pushE").value, 
 +        10
     )||0;     )||0;
  
     const Agi=parseInt(     const Agi=parseInt(
-        document.getElementById("pushAgi").value,10+        document.getElementById("pushAgi").value, 
 +        10
     )||0;     )||0;
  
     const PV=parseInt(     const PV=parseInt(
-        document.getElementById("pushPV").value,10+        document.getElementById("pushPV").value, 
 +        10
     )||0;     )||0;
  
     const buff=parseInt(     const buff=parseInt(
-        document.getElementById("pushBuff").value,10+        document.getElementById("pushBuff").value, 
 +        10
     )||0;     )||0;
  
     const debuff=parseInt(     const debuff=parseInt(
-        document.getElementById("pushDebuff").value,10+        document.getElementById("pushDebuff").value, 
 +        10
     )||0;     )||0;
  
     const stab=parseInt(     const stab=parseInt(
-        document.getElementById("pushStab").value,10+        document.getElementById("pushStab").value, 
 +        10
     )||0;     )||0;
  
-    const finalF=F+buff+debuff+stab;+    const finalF= 
 +        F+ 
 +        buff+ 
 +        debuff+ 
 +        stab;
  
-    const score=finalF+E+Agi;+    const score= 
 +        finalF+ 
 +        E+ 
 +        Agi;
  
     document.getElementById("pushResult").textContent=     document.getElementById("pushResult").textContent=
Ligne 1210: Ligne 1761:
  
         if(input){         if(input){
-            data.upgrades[stat]=parseInt(input.value,10)||0;+            data.upgrades[stat]= 
 +                parseInt(input.value,10)||0;
         }         }
     });     });
Ligne 1251: Ligne 1803:
             const input=document.getElementById("up_"+stat);             const input=document.getElementById("up_"+stat);
  
-            if(input&&data.upgrades[stat]!==undefined){+            if( 
 +                input&& 
 +                data.upgrades[stat]!==undefined 
 +            ){
                 input.value=data.upgrades[stat];                 input.value=data.upgrades[stat];
             }             }
Ligne 1265: Ligne 1820:
             if(data.equipment[key]!==undefined){             if(data.equipment[key]!==undefined){
  
-                const wanted=String(data.equipment[key]);+                const wanted= 
 +                    String(data.equipment[key]);
  
-                const exists=[...slots[key].options] +                const exists= 
-                    .some(option=>option.value===wanted);+                    [...slots[key].options] 
 +                    .some( 
 +                        option=> 
 +                            option.value===wanted 
 +                    );
  
                 if(exists){                 if(exists){
Ligne 1304: Ligne 1864:
  
     for(const key of [     for(const key of [
-        "head","cape","rightHand", +        "head", 
-        "leftHand","body","feet"+        "cape", 
 +        "rightHand", 
 +        "leftHand", 
 +        "body", 
 +        "feet"
     ]){     ]){
  
Ligne 1326: Ligne 1890:
  
     const encoded=btoa(     const encoded=btoa(
-        encodeURIComponent(JSON.stringify(getBuildData()))+        encodeURIComponent( 
 +            JSON.stringify(getBuildData()) 
 +        )
     );     );
  
-    prompt("Copiez ce code de configuration :",encoded);+    prompt( 
 +        "Copiez ce code de configuration :", 
 +        encoded 
 +    );
 } }
  
 function importBuild(){ function importBuild(){
  
-    const text=prompt("Collez le code de configuration :");+    const text= 
 +        prompt( 
 +            "Collez le code de configuration :" 
 +        );
  
     if(!text) return;     if(!text) return;
Ligne 1341: Ligne 1913:
  
         const data=JSON.parse(         const data=JSON.parse(
-            decodeURIComponent(atob(text.trim()))+            decodeURIComponent( 
 +                atob(text.trim()) 
 +            )
         );         );
  
Ligne 1356: Ligne 1930:
  
     const encoded=btoa(     const encoded=btoa(
-        encodeURIComponent(JSON.stringify(getBuildData()))+        encodeURIComponent( 
 +            JSON.stringify(getBuildData()) 
 +        )
     );     );
  
Ligne 1362: Ligne 1938:
         location.origin+         location.origin+
         location.pathname+         location.pathname+
-        "?id=simulateur&build="+encoded;+        "?id=simulateur&build="+ 
 +        encoded;
  
-    if(navigator.clipboard&&navigator.clipboard.writeText){+    if( 
 +        navigator.clipboard&& 
 +        navigator.clipboard.writeText 
 +    ){
  
         navigator.clipboard.writeText(url)         navigator.clipboard.writeText(url)
-            .then(()=>alert("Lien copié dans le presse-papiers.")) +            .then( 
-            .catch(()=>prompt("Copiez ce lien :",url));+                ()=> 
 +                    alert( 
 +                        "Lien copié dans le presse-papiers." 
 +                    ) 
 +            ) 
 +            .catch( 
 +                ()=> 
 +                    prompt( 
 +                        "Copiez ce lien :", 
 +                        url 
 +                    ) 
 +            );
  
     }else{     }else{
  
-        prompt("Copiez ce lien :",url);+        prompt( 
 +            "Copiez ce lien :", 
 +            url 
 +        );
     }     }
 } }
- 
  
 function loadFromURL(){ function loadFromURL(){
  
-    const params=new URLSearchParams(location.search);+    const params= 
 +        new URLSearchParams(location.search);
  
-    const encoded=params.get("build");+    const encoded= 
 +        params.get("build");
  
     if(!encoded) return;     if(!encoded) return;
Ligne 1388: Ligne 1983:
  
         const data=JSON.parse(         const data=JSON.parse(
-            decodeURIComponent(atob(encoded))+            decodeURIComponent( 
 +                atob(encoded) 
 +            )
         );         );
  
Ligne 1395: Ligne 1992:
     }catch(e){     }catch(e){
  
-        console.error("Erreur lors du chargement du build :",e); +        console.error( 
-        alert("Impossible de charger la configuration depuis le lien.");+            "Erreur lors du chargement du build :", 
 +            e 
 +        );
  
 +        alert(
 +            "Impossible de charger la configuration depuis le lien."
 +        );
     }     }
 } }
simulateur00.1791460119.txt.gz · Dernière modification : 2026/10/08 13:48 de nanaki