Outils pour utilisateurs

Outils du site


brouillon7

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
brouillon7 [2026/05/04 18:45] nanakibrouillon7 [2026/05/04 21:25] (Version actuelle) nanaki
Ligne 1: Ligne 1:
-Sauvegarde+Voici un simulateur en version beta, n'hésitez pas à faire vos remarques sur le discord ou le forum.
  
  
Ligne 430: Ligne 430:
  
 // ===== CALCUL ===== // ===== CALCUL =====
 +
 function calculate(){ function calculate(){
 +
 +let activeSpells = [...document.querySelectorAll(".spell:checked")];
 +
 +let bestDex = 0;
 +let bestProt = 0;
 +
 +activeSpells.forEach(s=>{
 +let d = +s.dataset.dex;
 +let p = +s.dataset.prot;
 +
 +if(Math.abs(d) > Math.abs(bestDex)) bestDex = d;
 +if(Math.abs(p) > Math.abs(bestProt)) bestProt = p;
 +});
  
 let char={...races[raceSelect.value]}; let char={...races[raceSelect.value]};
Ligne 448: Ligne 462:
 } }
 }); });
 +
 +// ===== DÉS =====
 +let ccDice = char.cc * 2;
 +let ctDice = char.ct * 2;
 +let fmDice = char.fm * 2;
 +
 +// ===== VALEURS FINALES =====
 +let finalCC = ccDice + bestDex;
 +let finalCT = ctDice + bestDex;
 +let finalFM = fmDice + bestDex;
 +
 +// ===== CT DISTANCE =====
 +function getCTDistance(baseCT, distance){
 +if(distance <= 2) return baseCT;
 +return baseCT - (distance - 2) * 3;
 +}
 +
 +let ct1 = getCTDistance(finalCT,1);
 +let ct2 = getCTDistance(finalCT,2);
 +let ct3 = getCTDistance(finalCT,3);
 +let ct4 = getCTDistance(finalCT,4);
 +
 +
  
 // ===== ESQUIVE ===== // ===== ESQUIVE =====
-let esquive=Math.round(char.agi*0.75+char.cc*0.25);+let checked [...document.querySelectorAll(".skill:checked")].map(e=>e.dataset.name);
  
-let checked=[...document.querySelectorAll(".skill:checked")].map(e=>e.dataset.name);+// CAC jet CC direct 
 +let esquiveCAC finalCC;
  
-if(checked.includes("Réflexes fulgurants")) +// ===== ESQUIVE TIR =====
-esquive=Math.round(char.agi*0.85+char.cc*0.15);+
  
-if(checked.includes("Couverture")+// calcul des 2 formules en dés 
-esquive=Math.round(char.cc*0.85+char.agi*0.15);+let esquiveA = Math.floor(char.cc * 0.75 + char.agi * 0.25); 
 +let esquiveB = Math.floor(char.cc * 0.25 + char.agi * 0.75);
  
 +// choix du meilleur
 +let esquiveStat = Math.max(esquiveA, esquiveB);
 +
 +// ===== PASSIFS =====
 +
 +// remplace complètement le calcul si passif spécifique
 +if(checked.includes("Réflexes fulgurants")){
 +    esquiveStat = Math.floor(char.agi * 0.85 + char.cc * 0.15);
 +}
 +
 +if(checked.includes("Couverture")){
 +    esquiveStat = Math.floor(char.cc * 0.85 + char.agi * 0.15);
 +}
 +
 +// conversion en jet
 +let esquive = esquiveStat * 2;
 +
 +// bonus
 if(checked.includes("Fulgurance")) if(checked.includes("Fulgurance"))
-esquive+=1;+    esquive += 1;
  
 // bonus protection // bonus protection
 esquive += bestProt; esquive += bestProt;
  
-// bonus protection + 
-esquive += bestProt;+// ===== ESQUIVE MAGIQUE ===== 
 +let esquiveFM Math.floor(finalFM + bestProt); 
  
 // ===== MAGIE ===== // ===== MAGIE =====
-//let jetFM = char.fm * 2; +let jetFM = finalFM;
-let jetFM = char.fm * 2 + bestDex ;+
  
 let sorts = ""; let sorts = "";
Ligne 484: Ligne 541:
 document.getElementById("spellBonus").innerText = document.getElementById("spellBonus").innerText =
 "Bonus actifs → Dex: "+bestDex+" | Protection: "+bestProt; "Bonus actifs → Dex: "+bestDex+" | Protection: "+bestProt;
 +
 result.textContent = result.textContent =
 "===== STATS =====\n"+ "===== STATS =====\n"+
 JSON.stringify(char,null,2)+ JSON.stringify(char,null,2)+
  
-"\n\n⚔ CC : "+char.cc+" ("+(char.cc+bestDex)+")"+"\n\n⚔ CC : jet moyen "+ccDice+"  ("+finalCC+")"
-"\n🎯 CT : "+char.ct+" ("+(char.ct+bestDex)+")"+"\n🎯 CT : jet moyen "+ctDice+"  ("+finalCT+")"
-"\n✨ FM : "+char.fm+" ("+(char.fm+bestDex)+")"+"\n✨ FM : jet moyen "+fmDice+"  ("+finalFM+")"+ 
-"\n🛡 Esquive : "+esquive++ 
 +"\n\n🛡 Esquive CAC : "+esquiveCAC+ 
 +"\n🏹 Esquive tir : "+esquive
 +"\n✨ Esquive FM : "+esquiveFM+ 
 +"\n🏹 Esquive tir : "+esquive+" ("+esquiveStat+" dés)" 
 + 
 +"\n\n🎯 CT distances :"+ 
 +"\n1 case : "+ct1+ 
 +"\n2 cases : "+ct2+ 
 +"\n3 cases : "+ct3+ 
 +"\n4 cases : "+ct4+
  
 "\n\n===== MAGIE =====\n"+ "\n\n===== MAGIE =====\n"+
-"Jet FM (x2) : "+jetFM+"\n\n"++"Jet FM : "+jetFM+"\n\n"+
 sorts; sorts;
 } }
 +
  
 // ===== AUTO ===== // ===== AUTO =====
Ligne 520: Ligne 589:
  
 // ===== SORTS ACTIFS ===== // ===== SORTS ACTIFS =====
-let activeSpells = [...document.querySelectorAll(".spell:checked")]; 
  
-let bestDex = 0; 
-let bestProt = 0; 
- 
-activeSpells.forEach(s=>{ 
-let d = +s.dataset.dex; 
-let p = +s.dataset.prot; 
- 
-if(Math.abs(d) > Math.abs(bestDex)) bestDex = d; 
-if(Math.abs(p) > Math.abs(bestProt)) bestProt = p; 
-}); 
  
 // ===== RESET ===== // ===== RESET =====
brouillon7.1777913112.txt.gz · Dernière modification : 2026/05/04 18:45 de nanaki