Vorlage:Charactersheet

Aus Meddlerde

Character Sheet

{{{name}}}

Class: {{{class}}} Level: {{{level}}}
Race: {{{race}}} Background: {{{background}}}
Armor Class: {{{armorClass}}} Hit Points: {{{hitPoints}}}
Strength: {{{strength}}} ({{{strengthBonus}}}) Dexterity: {{{dexterity}}} ({{{dexterityBonus}}})
Constitution: {{{constitution}}} ({{{constitutionBonus}}}) Intelligence: {{{intelligence}}} ({{{intelligenceBonus}}})
Wisdom: {{{wisdom}}} ({{{wisdomBonus}}}) Charisma: {{{charisma}}} ({{{charismaBonus}}})

Saving Throws

Strength: Dexterity:
Constitution: Intelligence:
Wisdom: Charisma:

Skills

Acrobatics: Animal Handling: Arcana:
Athletics: Deception: History:
Insight: Intimidation: Investigation:
Medicine: Nature: Perception:
Performance: Persuasion: Religion:
Sleight of Hand: Stealth: Survival:

<script> function calculateBonus(stat) {

   return Math.floor((stat - 10) / 2);

}

function calculateSkill(baseBonus, proficiencyBonus, isProficient, isExpert) {

   let skillBonus = baseBonus;
   if (isProficient) skillBonus += proficiencyBonus;
   if (isExpert) skillBonus += proficiencyBonus;
   return skillBonus;

}

document.addEventListener("DOMContentLoaded", function() {

   const level = parseInt("{{{level}}}");
   const proficiencyBonus = Math.floor((level - 1) / 4) + 2;
   const stats = {
       strength: parseInt("{{{strength}}}"),
       dexterity: parseInt("{{{dexterity}}}"),
       constitution: parseInt("{{{constitution}}}"),
       intelligence: parseInt("{{{intelligence}}}"),
       wisdom: parseInt("{{{wisdom}}}"),
       charisma: parseInt("{{{charisma}}}")
   };
   const bonuses = {
       strength: calculateBonus(stats.strength),
       dexterity: calculateBonus(stats.dexterity),
       constitution: calculateBonus(stats.constitution),
       intelligence: calculateBonus(stats.intelligence),
       wisdom: calculateBonus(stats.wisdom),
       charisma: calculateBonus(stats.charisma)
   };
   const savingThrows = {
       strength: calculateSkill(bonuses.strength, proficiencyBonus, true, false),
       dexterity: calculateSkill(bonuses.dexterity, proficiencyBonus, true, false),
       constitution: calculateSkill(bonuses.constitution, proficiencyBonus, true, false),
       intelligence: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       wisdom: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false),
       charisma: calculateSkill(bonuses.charisma, proficiencyBonus, false, false)
   };
   document.getElementById("strengthSave").textContent = savingThrows.strength;
   document.getElementById("dexteritySave").textContent = savingThrows.dexterity;
   document.getElementById("constitutionSave").textContent = savingThrows.constitution;
   document.getElementById("intelligenceSave").textContent = savingThrows.intelligence;
   document.getElementById("wisdomSave").textContent = savingThrows.wisdom;
   document.getElementById("charismaSave").textContent = savingThrows.charisma;
   const skills = {
       acrobatics: calculateSkill(bonuses.dexterity, proficiencyBonus, true, false),
       animalHandling: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false),
       arcana: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       athletics: calculateSkill(bonuses.strength, proficiencyBonus, true, false),
       deception: calculateSkill(bonuses.charisma, proficiencyBonus, false, false),
       history: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       insight: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false),
       intimidation: calculateSkill(bonuses.charisma, proficiencyBonus, false, false),
       investigation: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       medicine: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false),
       nature: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       perception: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false),
       performance: calculateSkill(bonuses.charisma, proficiencyBonus, false, false),
       persuasion: calculateSkill(bonuses.charisma, proficiencyBonus, false, false),
       religion: calculateSkill(bonuses.intelligence, proficiencyBonus, false, false),
       sleightOfHand: calculateSkill(bonuses.dexterity, proficiencyBonus, false, false),
       stealth: calculateSkill(bonuses.dexterity, proficiencyBonus, false, false),
       survival: calculateSkill(bonuses.wisdom, proficiencyBonus, false, false)
   };
   document.getElementById("acrobatics").textContent = skills.acrobatics;
   document.getElementById("animalHandling").textContent = skills.animalHandling;
   document.getElementById("arcana").textContent = skills.arcana;
   document.getElementById("athletics").textContent = skills.athletics;
   document.getElementById("deception").textContent = skills.deception;
   document.getElementById("history").textContent = skills.history;
   document.getElementById("insight").textContent = skills.insight;
   document.getElementById("intimidation").textContent = skills.intimidation;
   document.getElementById("investigation").textContent = skills.investigation;
   document.getElementById("medicine").textContent = skills.medicine;
   document.getElementById("nature").textContent = skills.nature;
   document.getElementById("perception").textContent = skills.perception;
   document.getElementById("performance").textContent = skills.performance;
   document.getElementById("persuasion").textContent = skills.persuasion;
   document.getElementById("religion").textContent = skills.religion;
   document.getElementById("sleightOfHand").textContent = skills.sleightOfHand;
   document.getElementById("stealth").textContent = skills.stealth;
   document.getElementById("survival").textContent = skills.survival;

}); </script>