From 38ca3b3a42c789f93fb5083705beac4e412f70ee Mon Sep 17 00:00:00 2001 From: Todd Mitchell Date: Tue, 1 Dec 2020 17:55:52 -0500 Subject: [PATCH] Updated Sheet for new 7.4 rules Update *Druid skills *Enchanter Skills *Remove archane penalty from armour *Add Hunter *Weapon base damage *Weapon damage calculation *armor durability - N/A *update fighter damage calc *fix stat modifier and damage descriptions *general text and form improvements --- Beacon/beacon.css | 4 + Beacon/beacon.html | 189 +++++++++++++++++++++++++-------------------- 2 files changed, 108 insertions(+), 85 deletions(-) diff --git a/Beacon/beacon.css b/Beacon/beacon.css index 2905a415c8..ee47e7221d 100644 --- a/Beacon/beacon.css +++ b/Beacon/beacon.css @@ -765,6 +765,10 @@ div[data-groupname^="repeating_spellbook"] .repitem, vertical-align: middle; text-align: center; } + +.charsheet input.sheet-highlight { + background-color: #ccffff; +} /* Header section */ diff --git a/Beacon/beacon.html b/Beacon/beacon.html index bb8845049d..592e55962a 100644 --- a/Beacon/beacon.html +++ b/Beacon/beacon.html @@ -76,7 +76,7 @@
 
-

.
+

.
Damage
@@ -111,34 +111,34 @@
Strength
-
-
+
+
-
+
Dexterity
-
-
+
+
-
+
Mind
-
-
+
+
-
+
Charisma
-
-
+
+
-
+
 
@@ -150,6 +150,7 @@

Skills

+
 
 
Base
Mod
@@ -157,40 +158,46 @@
+
 
Physical
-
+
-
+
+
 
Subterfuge
-
+
-
+
+
 
Knowledge
-
+
-
+
+
 
Communication
-
+
-
+
+
 
Survival
-
+
-
+
+
 
Crafting
-
+
-
+
 
@@ -213,10 +220,10 @@
Equipped?
Weapon
Type
-
Magic or Bonus
-
To Hit Bonus
-
Damage
-
Dmg Bonus
+
Base Damage
+
Magic or Bonus
+
To Hit Bonus
+
Dmg Bonus
Durability
@@ -224,7 +231,7 @@
-
+
-
-
-
-
+
+
+
+ +
-
+
+
-
-
+

AC (worn armor)
-
 
-

Arcane Magic Penalty
 

Dexerity Penalty
@@ -380,7 +387,6 @@

Magic Attack = (level +MIND bonus) vs. target DC (usually 10).
Spells that allow a save the target must match the Difficulty Class (DC) of 15 + Caster Level

 
Spell Fatigue
-

Arcane Magic Penalty

Spell Book

@@ -784,9 +790,9 @@ + -
@@ -808,18 +814,10 @@
Base HP
-
-
-
 
-
-
-
Race Starting
-
-
-
Class Starting
-
-
-
Class Progression
+
+
Bonus HP
+
+
@@ -854,35 +852,59 @@

Modify Base Skills

+
 
Skill
Base
+
 
Physical
+
 
Subterfuge
+
 
Knowledge
+
 
Communication
+
 
Survival
+
 
Crafting
-
+ +
+
+
 
+
+
+
Race Starting
+
+
+
+
Class Starting
+
+
+
+
Class Progression
+
+
+

Rules available at: https://beacond20.blogspot.com/p/get-beacon.html

@@ -959,11 +981,11 @@ on("change:Race sheet:opened", function() { var ACB = "0"; //race sets HD switch (v.Race) { - case "Dwarf" : HD = "d8"; specials="Dark sight and direction finding, cannot swim."; skills="Starts with +2 Strength and +1 Crafting."; racespeed=50; break; + case "Dwarf" : HD = "d8"; specials="Dark sight, direction finding, larger die for initiative. Cannot swim."; skills="Starts with +2 Strength and +1 Crafting. Dark sight, direction finding, larger die for initiative. Cannot swim."; racespeed=50; break; case "Human" : HD = "d8"; specials="Found everywhere. Adaptable"; skills="Starts with +1 point in 4 different skills."; break; - case "Elf" : HD = "d6"; specials="Excellent night vision, immune to charm and sleep effects."; skills="+1 to Mind, Charisma, Knowledge and Survival."; racespeed=70; break; - case "Halfling" : HD = "d6"; ACB = "1"; specials="Small, quick and nimble"; skills="AC Bonus, +1 Dex & Subterfuge. +1 to any skill."; break; - case "Beastman" : HD = "d10"; specials = "Cannot cast arcane spells, use scrolls."; skills="Starts with -2 Charisma, +2 Survival."; break; + case "Elf" : HD = "d6"; specials="Excellent night vision, immune to charm and sleep effects."; skills="+1 to Mind, Charisma, Knowledge and Survival. Night vision, immune to charm and sleep effects."; racespeed=70; break; + case "Halfling" : HD = "d6"; ACB = "1"; specials="Small, quick and nimble."; skills="AC Bonus, +1 Dex & Subterfuge. +1 to any skill."; break; + case "Beastman" : HD = "d10"; specials = "Cannot cast arcane spells or scrolls, +1 spell cost."; skills="Starts with -2 Charisma, +2 Survival. Cannot cast arcane spells or scrolls, +1 spell cost."; break; case "Other" : HD = "?"; specials = "See Notes."; skills="See Notes."; break; } setAttrs({RaceHD : HD, RaceSpecials : specials, raceACbonus : ACB, raceProg : skills, Speed : racespeed}); @@ -983,43 +1005,42 @@ on("change:Class change:Level sheet:opened", function() { var skills = ""; switch (v.Class) { - case "Fighter" : attack=level; damage=Math.floor(level/3)+1; numAttacks=Math.floor(level/5)+1; skills1="Starts with +3 Physical."; skills2="+1 Physical at 3/6/9/12."; break; - case "Cleric" : attack=Math.floor(level/2); numAttacks=Math.floor(level/10)+1; skills1="Starts with +3 Communication."; skills2="+1 Communication at 4/8/12."; break; - case "Rogue" : attack=Math.floor(level/2); numAttacks=Math.floor(level/10)+1; skills1="Split 3 points between Subterfuge and Survival."; skills2="+1 Subterfuge or Survival at 3/6/9/12."; break; - case "Non-classed" : attack=Math.floor(level/2); numAttacks=Math.floor(level/10)+1; skills1="Starts with 4 points in at least 2 Skills."; skills2="+1 any skill at 2/4/6/8/10/12."; break; - case "Mage" : attack=Math.floor(level/3); skills1="Starts with +3 Knowledge."; skills2="+1 Knowledge at 4/8/12."; break; - case "Druid" : attack=Math.floor(level/3); skills1="Starts with +1 Knowledge, +2 Survival."; skills2="+1 Knowledge or Surival at 4/8/12."; break; - case "Enchanter" : attack=Math.floor(level/3); skills1="Starts with +1 Communication, +2 Subterfuge."; skills2="+1 Communication or Subterfuge at 4/8/12."; break; + case "Fighter" : attack=level; damage=Math.floor((1+level)/2); numAttacks=Math.floor(level/5)+1; skills1="Fighters start with +3 Physical and +1 to attack and damage and 1 Bonus HP."; skills2="+1 Physical at levels 3/6/9/12. +1 attack, +1 Bonus HP every level. +1 damage every 2 levels."; break; + case "Cleric" : attack=Math.floor(level/2); numAttacks=Math.floor(level/10)+1; skills1="The Cleric starts with +3 points in Communication. They cast Divine magic."; skills2="+1 Communication at levels 4/8/12."; break; + case "Rogue" : attack=Math.floor(level/2); numAttacks=Math.floor(level/10)+1; skills1="Rogues start with +2 points Subterfuge and +1 in any other skill."; skills2="+1 any skill at levels 2/4/6/8/10/12."; break; + case "Hunter" : attack=Math.floor((level)/2)+1; numAttacks=Math.floor(level/8)+1; skills1="The Hunter starts with +2 points in Survival,+1 Physical and +1 to attack."; skills2="+1 Survival at levels 3/6/9/12. +1 attack every 2 levels."; break; + case "Mage" : attack=Math.floor(level/3); skills1="Mages start with +3 Knowledge. They cast Arcane magic."; skills2="+1 Knowledge at levels 4/8/12."; break; + case "Druid" : attack=Math.floor(level/2); skills1="The Druid starts with +1 Communication and +2 Survival. They cast Divine magic."; skills2="+1 Communication or Surival at levels 3/6/9/12."; break; + case "Enchanter" : attack=Math.floor(level/3); skills1="Enchanter starts with +2 Communication and +1 Subterfuge. They cast Arcane magic."; skills2="+1 Communication or Subterfuge at levels 4/8/12."; break; } setAttrs({ATK : attack, DAM : damage, numATK : numAttacks, classStart: skills1, classProg : skills2}); - }); + }) }); //calc fields on melee weapons on("sheet:opened remove:repeating_meleeweapon change:repeating_meleeweapon:meleeEquip change:repeating_meleeweapon:meleeWeaponsize change:repeating_meleeweapon:meleeMagic change:dexPenalty change:dexBonus change:strCurrent change:ATK change:DAM change:Class", function() { getAttrs(["repeating_meleeweapon_meleeWeaponsize","repeating_meleeweapon_meleeMagic","strCurrent","strBonus","dexBonus","ATK","DAM","Class"], function(v) { - var Dam = "d6"; - var DamBonus = parseInt(0); + var Dam = 3; + //var DamBonus = parseInt(0); var STRBonus = parseInt(v.strBonus)||0; var DEXBonus = parseInt(v.dexBonus)||0; var magicBonus= parseInt(v.repeating_meleeweapon_meleeMagic)||0; var Attack = parseInt(v.ATK)||0; var Damage = parseInt(v.DAM)||0; - //var calcHitbonus = Attack + DEXBonus + magicBonus; if (v.repeating_meleeweapon_meleeWeaponsize == "light-rogue") {calcHitbonus = Attack + DEXBonus + magicBonus;} else {calcHitbonus = Attack + STRBonus + magicBonus;} - if (v.repeating_meleeweapon_meleeWeaponsize == "heavy-2hand") {DamBonus = STRBonus+1;} - else {DamBonus = Math.floor(STRBonus);} - - if (v.repeating_meleeweapon_meleeWeaponsize == "heavy" || v.repeating_meleeweapon_meleeWeaponsize == "heavy-2hand") {Dam = "d8";} - else {Dam = "d6";} - + switch (v.repeating_meleeweapon_meleeWeaponsize) { + case "heavy-2hand" : Dam = 5; break; + case "heavy" : Dam = 4; break; + default: Dam = 3; + } + var calcDambonus = Damage + STRBonus + magicBonus; setAttrs({ repeating_meleeweapon_meleeDam : Dam, repeating_meleeweapon_meleeToHit : calcHitbonus, - repeating_meleeweapon_meleeDamBonus : Damage + DamBonus + magicBonus + repeating_meleeweapon_meleeDamBonus : calcDambonus }); }); }); @@ -1028,7 +1049,7 @@ on("sheet:opened remove:repeating_meleeweapon change:repeating_meleeweapon:melee on("sheet:opened remove:repeating_rangedweapon change:repeating_rangedweapon:rangedequip change:repeating_rangedweapon:rangedWeaponsize change:repeating_rangedweapon:rangedDistance change:dexBonus change:repeating_rangedweapon:rangedWeaponType change:repeating_rangedweapon:rangedMagic change:strCurrent change:ATK change:DAM change:Class", function() { getAttrs(["repeating_rangedweapon_rangedWeaponsize","repeating_rangedweapon_rangedWeaponType","repeating_rangedweapon_rangedDistance","strCurrent","repeating_rangedweapon_rangedMagic","strBonus","dexBonus","ATK","DAM","Class"], function(v) { - var Dam = "d6"; + var Dam = 3; var DamBonus = parseInt(0); var maxrange = parseInt(3); var DEXBonus = parseInt(v.dexBonus)||0; @@ -1039,8 +1060,8 @@ on("sheet:opened remove:repeating_rangedweapon change:repeating_rangedweapon:ran if (v.repeating_rangedweapon_rangedWeaponType == "missile") {maxrange=5*range;} else {maxrange=3*range;} - if (v.repeating_rangedweapon_rangedWeaponsize == "heavy") {Dam = "d8";} - else {Dam = "d6";} + if (v.repeating_rangedweapon_rangedWeaponsize == "heavy") {Dam = 4;} + else {Dam = 3;} var calcHitbonus = Attack + DEXBonus + magicBonus; var calcDambonus = Damage + DamBonus + magicBonus; @@ -1091,7 +1112,7 @@ on("sheet:opened remove:repeating_armor change:repeating_armor:armorType change: }); }); - getAttrs(["acCalc","armorCheck","armorSpeedTotal","dexPenalty","dexBonus","raceACbonus","Class"], function(values) { + getAttrs(["acCalc","armorSpeedTotal","dexPenalty","dexBonus","raceACbonus","Class"], function(values) { var baseAc = parseInt(10); var raceBonus = parseInt(values.raceACbonus)||0; @@ -1103,7 +1124,6 @@ on("sheet:opened remove:repeating_armor change:repeating_armor:armorType change: setAttrs({ acCalc: startAc, - armorCheck: parseInt(0), dexPenalty: parseInt(0), armorSpeedTotal: parseInt(0) }); @@ -1111,7 +1131,7 @@ on("sheet:opened remove:repeating_armor change:repeating_armor:armorType change: TAS.repeating("armor") .attrs("acCalc", "armorCheck", "armorSpeedTotal","dexPenalty") - .fields("armorAcBase","armorMagicBonus","armorCheck","armorSpeed","armorActive","armorDexPen") + .fields("armorAcBase","armorMagicBonus","armorSpeed","armorActive","armorDexPen") .map(function(row, attrSet, id, rowSet) { var speed = parseInt(row.armorSpeed)||0; @@ -1123,7 +1143,6 @@ on("sheet:opened remove:repeating_armor change:repeating_armor:armorType change: if ((checkArmor) == true) { console.log("1"); attrSet.acCalc += acBase + acBonus; - attrSet.armorCheck += acBase; attrSet.armorSpeedTotal += speed; attrSet.dexPenalty += dexPenalty; console.log("Current Worn AC="+ attrSet.acCalc);