Skip to content

Instantly share code, notes, and snippets.

@jdr0217
Last active December 2, 2023 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jdr0217/45b19ff0c1ef67b6ae853b7c4b351a8a to your computer and use it in GitHub Desktop.
Save jdr0217/45b19ff0c1ef67b6ae853b7c4b351a8a to your computer and use it in GitHub Desktop.
/* -INFORMATION-
Subject: Class
Effect: Adds the Chieftain class by /u/tables-r-us
Sheet: v12.999 (2017-12-19)
Coded by: /u/tables-r-us
Date: 2018-11-21
*/
var iFileName = "Chieftain by /u/tables-r-us (v3.4).js"; // Optional; This is how the file will be named in the sheet if you import it as a file and not copy-paste its content. Only the first occurrence of this variable will be used
SourceList["Chief"] = {
name : "Chieftain v3.4",
abbreviation : "Chief",
group : "Homebrew",
url : "https://drive.google.com/open?id=16tEsn1bxrwpBNUZfIbRxx_X5TJW49uou",
};
ClassList["chieftain"] = {
regExpSearch : /^(?=.*(chieftain|war chief|marshal|commander|warlord)).*$/i,
name : "Chieftain",
source : ["Chief", 1],
primaryAbility : "\n \u2022 Chieftain: Charisma;",
prereqs : "\n \u2022 Chieftain: Constitution 13 and Charisma 13;",
improvements : [0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5],
die : 10,
saves : ["Con", "Cha"],
toolProfs : { // optional; this is an object with arrays with the tool proficiencies gained. Each entry in an array can be its own array of 2 entries. The first entry is the name of the tool and the second entry is either 1) a number if the tool is yet to be chosen, or 2) the 3-letter ability score abbreviation if the tool is to be listed in the skill section and have a bonus calculated
primary : [["Drum"]], // optional; the tool proficiencies gained if the class is the primary class (i.e. taken at 1st level)
},
skills : ["\n\n" + toUni("Chieftain") + ": Choose two from Athletics, Insight, Intimidation, Performance, Persuasion, and Survival"],
armor : [
[true, false, false, true],
[false, false, false, true]
],
weapons : [
[true, true],
[true, true]
],
equipment : "Chieftain starting equipment:\n \u2022 A martial weapon and a shield -or- two martial weapons;\n \u2022 five javelins -or- any simple melee weapon;\n \u2022 An explorers pack and a war drum.\n\nAlternatively, choose 2d4 \xD7 10 gp worth of starting equipment instead of both the class' and the background's starting equipment.",
subclasses : ["Mantle of Authority", ["alpha", "anointed one", "brigadier", "spirit walker", "stormcaller", "warmonger"]],
attacks : [1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
abilitySave : 6,
features : {
"battle cries" : {
name : "Battle Cries",
source : ["Chief", 2],
minlevel : 1,
description : "\n " + "Can be used at anytime, including during my war chant.",
usages : "Cha mod per ",
usagescalc : "event.value = Math.max(1, tDoc.getField(\"Cha Mod\").value);",
recovery : "short rest",
additional : ["30ft, 3 known", "30ft, 3 known", "30ft, 3 known", "30ft, 4 known", "60ft, 4 known", "60ft, 4 known", "60ft, 5 known", "60ft, 5 known", "60ft, 5 known", "90ft, 6 known", "90ft, 6 known", "90ft, 6 known", "90ft, 7 known", "90ft, 7 known", "90ft, 7 known", "120ft, 8 known", "120ft, 8 known", "120ft, 8 known", "120ft, 9 known", "120ft, 9 known"],
extraname : "Battle Cry",
extrachoices : ["Back in Position", "Come at Me", "Eye on the Mark", "Feral Resistance", "Focus on Me", "Holy Blessing", "Not Your Time Yet", "On Your Feet", "Reckless Abandon", "Speed of the Wind", "Stand your Ground", "Turn Tail", "Watch Your Back", "Adrenaline Rush", "Break Their Will", "Concentrate Force", "Confront the Enemy", "Crack of Thunder", "Cull the Weak", "Curse the Wicked", "Go For the Kill", "Jarring Words", "Drop Your Guard", "Shake it Off"],
"back in position" : {
name : "Back in Position",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose a friendly creature within range. That creature can use its reaction to move up to half its speed without provoking opportunity attacks",
action : ["bonus action"]
},
"come at me" : {
name : "Come at Me",
source : ["Chief", 9],
description : "\n " + "As an action, choose one creature within range. The creature must make an Wisdom saving throw or use their reaction to move as close to me as their movement speed allows.",
action : ["action"],
},
"eye on the mark" : {
name : "Eye on the Mark",
source : ["Chief", 9],
description : "\n " + "As a reaction, grant one ally a bonus to their attack roll equal to my Cha Mod.",
action : ["reaction"],
},
"feral resistance" : {
name : "Feral Resistance",
source : ["Chief", 9],
description : "\n " + "As a reaction, grant an ally resistance to the damage of the triggering attack",
action : ["reaction"],
prereqeval : "classes.known.chieftain.subclass === 'alpha'"
},
"focus on me" : {
name : "Focus on Me",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose one creature within range. The target must make a Wisdom saving throw. On a failed save, the target has disadvantage on all attack rolls against targets other than me until the end of my next turn",
action : ["bonus action"],
},
"holy blessing" : {
name : "Holy Blessing",
source : ["Chief", 9],
description : "\n " + "As a bonus action, grant an ally advantage on its first attack roll or ability check it makes before the start of my next turn.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.subclass === 'anointed one'"
},
"not your time yet" : {
name : "Not Your Time Yet",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose one creature within range that is making death saving throws. On their next turn, they make their next death saving throw with adv. They return to 1 hit point if both rolls would be a success.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.subclass === 'spirit walker'"
},
"on your feet" : {
name : "On Your Feet",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose a friendly creature within range of my Voice. That creature gains temporary hit points. If the target is prone, it can use its reaction to stand up.",
action : ["bonus action"],
additional : ["1d4 + 1", "1d4 + 2", "1d4 + 3", "1d4 + 4", "1d4 + 5", "1d4 + 6", "1d4 + 7", "1d4 + 8", "1d4 + 9", "1d4 + 10", "1d4 + 11", "1d4 + 12", "1d4 + 13", "1d4 + 14", "1d4 + 15", "1d4 + 16", "1d4 + 17", "1d4 + 18", "1d4 + 19", "1d4 + 20"]
},
"reckless abandon" : {
name : "Reckless Abandon",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose one ally within range. When they make their first attack on their turn, they can decide to attack recklessly. Doing so gives them advantage on melee weapon attack rolls during this turn, but attack rolls against them have advantage until their next turn",
action : ["bonus action"]
},
"speed of the wind" : {
name : "Speed of the Wind",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose one friendly creature in range. On that creature's next turn, their movement speed is doubled.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.subclass === 'stormcaller'"
},
"stand your ground" : {
name : "Stand your Ground",
source : ["Chief", 9],
description : "\n " + "When an ally suffers an effect that forces movement, I can use a reaction to allow them to use a reaction to refuse to move. Alternatively the target can use its reaction to make an opportunity attack against a creature that enters its reach for the first time on its turn or starts its turn there.",
action : ["reaction"],
prereqeval : "classes.known.chieftain.subclass === 'brigadier'"
},
"turn tail" : {
name : "Turn Tail",
source : ["Chief", 9],
description : "\n " + "As a bonus action, choose one enemy within range. The target must make a wisdom saving throw. On a failed save, they must move their full speed away from me.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.subclass === 'warmonger'"
},
"watch your back" : {
name : "Watch Your Back",
source : ["Chief", 9],
description : "\n " + "When a creature I can see attacks one of my allies within range, I can use my reaction to call out the attack. The target has advantage on the triggering saving throw or the attacker has disadvantage on the triggering attack.",
action : ["reaction"]
},
"adrenaline rush" : {
name : "Adrenaline Rush",
source : ["Chief", 9],
minlevel : 5,
description : "\n " + "As an action, choose 1 friendly creature in range. The target can use its reaction to expend one of it's hit die to regain hit points, gaining a bonus to the total equal to my Charisma Modifier.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "1 hit die + Cha";
if (n < 13) return "2 hit die + Cha";
if (n < 17) return "3 hit die + Cha";
return "4 hit die + Cha";
}),
prereqeval : "classes.known.chieftain.level >= 5"
},
"break their will" : {
name : "Break Their Will",
source : ["Chief", 9],
minlevel : 5,
description : "\n " + "As a bonus action, choose a hostile creature within range. The creature must make a Constitution saving throw or be incapacitated until the start of my next turn.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.level >= 5"
},
"concentrate force" : {
name : "Concentrate Force",
source : ["Chief", 9],
minlevel : 5,
description : "\n " + "As an action, choose one creature withon range and make one attack against it. If I hit, the next creature to attack the target has advantage on the first attack of their turn. If a creature hits with an attack on their turn, the next creature gains advantage on the first attack of their turn. This effect lasts until the start of my next turn.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "";
if (n < 13) return "crit on 1st hit";
if (n < 17) return "crit on 2nd hit";
return "crit on 3rd hit";
}),
prereqeval : "classes.known.chieftain.subclass === 'brigadier' && classes.known.chieftain.level >= 5"
},
"confront the enemy" : {
name : "Confront the Enemy",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an action, choose one creature within range. The target must make a Wisdom saving throw. On a fail, a creature takes 2d10 Force damage and its speed is halved until the start of my next turn. On a success, the creature takes half as much damage and its speed is not reduced.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "2d10";
if (n < 13) return "3d10";
if (n < 17) return "4d10";
return "5d10";
}),
prereqeval : "classes.known.chieftain.subclass === 'spirit walker' && classes.known.chieftain.level >= 5"
},
"crack of thunder" : {
name : "Crack of Thunder",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an action, choose one creature within range. The target must make a Constitution saving throw. On a fail, the creature takes thunder damage and is pushed 10 feet away. On a success, the creature takes half as much damage and isn’t pushed.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "2d10";
if (n < 13) return "3d10";
if (n < 17) return "4d10";
return "5d10";
}),
prereqeval : "classes.known.chieftain.subclass === 'stormcaller' && classes.known.chieftain.level >= 5"
},
"cull the weak" : {
name : "Cull the Weak",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an action, choose one creature within range. The target must make a Wisdom saving throw. The target must make a Wisdom saving throw. On a fail, a creature takes psychic damage and has diadvantage on its next attack roll. On a success, the creature takes half as much damage and doesn't suffer disadvantage.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "2d10";
if (n < 13) return "3d10";
if (n < 17) return "4d10";
return "5d10";
}),
prereqeval : "classes.known.chieftain.subclass === 'warmonger' && classes.known.chieftain.level >= 5"
},
"curse the wicked" : {
name : "Curse the Wicked",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an action, choose one creature within range. The target must make a Wisdom saving throw. On a fail, a creature takes 2d10 radiant damage and the next attack that hits it deals an additional 1d8 radiant damage. On a success, the creature takes half as much damage and takes no additional damage.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "2d10";
if (n < 13) return "3d10";
if (n < 17) return "4d10";
return "5d10";
}),
prereqeval : "classes.known.chieftain.subclass === 'anointed one' && classes.known.chieftain.level >= 5"
},
"go for the kill" : {
name : "Go For the Kill",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an action, choose one hostile creature within range. The next friendly creature in initiative order within reach of the target may use their reaction to make one melee weapon attack against the targeted creature. This attack cannot be used with sneak attack or divine smite.",
action : ["action"],
additional : levels.map(function (n) {
if (n < 5) return "";
if (n < 9) return "1 ally";
if (n < 13) return "2 allies";
if (n < 17) return "3 allies";
return "4 allies";
}),
prereqeval : "classes.known.chieftain.subclass === 'alpha' && classes.known.chieftain.level >= 5"
},
"jarring words" : {
name : "Jarring Words",
source : ["Chief", 10],
minlevel : 5,
description : "\n " + "As an ba, choose one creature in range. The target must make a constitution saving throw. On a failed save they lose concentration and fall prone.",
action : ["bonus action"],
prereqeval : "classes.known.chieftain.level >= 5"
},
"drop your guard" : {
name : "Drop Your Guard",
source : ["Chief", 10],
minlevel : 10,
description : "\n " + "As an action, choose one creature within range. It must succeed on a Wisdom saving throw or be distracted by me. The next time the creature is forced to roll a saving throw, it does so at disadvantage",
action : ["action"],
prereqeval : "classes.known.chieftain.level >= 10"
},
"shake it off" : {
name : "Shake it Off",
source : ["Chief", 10],
minlevel : 10,
description : "\n " + "As an action, I can chosse one creature currently under an effect that requires a saving throw or ability check to end. The target can use it's reaction to make an additional saving throw or ability check adding my cha mod to the roll.",
action : ["action"],
prereqeval : "classes.known.chieftain.level >= 10"
},
},
"war chants" : {
name : "War Chants",
source : ["Chief", 3],
minlevel : 1,
description : "\n " + "Lasts 1 min. If the target is unable to hear me or starts their turn out of range, the effect ends.",
usages : [2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7],
recovery : "long rest",
additional : ["30ft, 1 known", "30ft, 1 known", "30ft, 2 known", "30ft, 2 known", "60ft, 2 known", "60ft, 3 known", "60ft, 3 known", "60ft, 3 known", "60ft, 3 known", "90ft, 4 known", "90ft, 4 known", "90ft, 4 known", "90ft, 4 known", "90ft, 5 known", "90ft, 5 known", "120ft, 5 known", "120ft, 5 known", "120ft, 6 known", "120ft, 6 known", "120ft, 6 known"],
action : ["action", " (start)"],
extraname : "War Chant",
extrachoices : ["Brace Yourself", "Hold the Line", "Off Rhythm", "Battle Cadence", "I am Your Fear", "Quick Movements", "Blessings of Battle", "Call of the Wild", "Indirect Approach", "Join or Die", "Quell the Opposition", "Spiritual Guidance", "Tempest's Fury"],
"brace yourself" : {
name : "Brace Yourself",
source : ["Chief", 10],
description : "\n " + "Choose one friendly creature within range. The creature gains a bonus to saving throws equal to my Charisma modifier.",
},
"hold the line" : {
name : "Hold the Line",
source : ["Chief", 10],
description : "\n " + "Choose one friendly creature within range. The area adjacent to the creature is considered difficult terrain for enemy creatures, and the target gains advantage on any opportunity attacks they make.",
},
"off rhythm" : {
name : "Off Rhythm",
source : ["Chief", 10],
description : "\n " + "Choose one hostile creature within range. At the start of each of its turns, the creature must make a Wisdom saving throw. On a failure, it suffers disadvantage on attack rolls and ability checks until the start next turn. On a success, it suffers no effect.",
},
"battle cadence" : {
name : "Battle Cadence",
source : ["Chief", 10],
minlevel : 6,
description : "\n " + "Choose one friendly creature within range. The target gains advantage on its first attack on each of its turns. If both rolls would hit, they may make one additional attack as a part of their attack action.",
prereqeval : "classes.known.chieftain.level >= 6"
},
"i am your fear" : {
name : "I am Your Fear",
source : ["Chief", 11],
minlevel : 6,
description : "\n " + "Choose one hostile creature within range. The target must make a Wisdom saving throw or be frightened. At the end of each of its turns, the target can make another Wisdom saving throw. On a success, the effect ends on the target. If I have damaged the target in the previous round, it makes the save at disadvantage.",
prereqeval : "classes.known.chieftain.level >= 6"
},
"quick movements" : {
name : "Quick Movements",
source : ["Chief", 11],
minlevel : 6,
description : "\n " + "Choose one friendly creature within range, the targeted creature gains an additional 10 feet to their movement speed and if the target provokes an opportunity attack by moving out of a creature's range, the attack is made with disadvantage.",
prereqeval : "classes.known.chieftain.level >= 6"
},
"blessings of battle" : {
name : "Blessings of Battle",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one friendly creature within range, at the start of each of the target's turns, they regain a number of hit points equal to 1d8 + my Charisma modifier. When the target is hit with a melee attack, the attacking creature must make a Constitution saving throw or be blinded until the end of its next turn.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'anointed one' && classes.known.chieftain.level >= 14"
},
"call of the wild" : {
name : "Call of the Wild",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one friendly creature within range, the target has advantage on Strength and Dexterity checks and saving throws. When the target takes damage from a creature that is within 5 feet of it, the target can use its reaction to make a melee weapon attack against that creature.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'alpha' && classes.known.chieftain.level >= 14"
},
"indirect approach" : {
name : "Indirect Approach",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one enemy creature within range. The target must make a Wisdom saving throw or become distracted by me for its duration. Creatures that attack the target from its opposite side from me have advantage on their attack rolls. The target has disadvantage on any attacks made against creatures positioned behind it.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'brigadier' && classes.known.chieftain.level >= 14"
},
"join or die" : {
name : "Join or Die",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one hostile creature within range. It must succeed on a Wisdom saving throw or be charmed by me for the duration. If I, or creatures that are friendly to me, am fighting it, it has advantage on the saving throw. While the target is charmed, I can issue commands to the creature (no action required), which it does its best to obey. I can specify a simple and general course of action, such as \"Attack that creature,\" \"Run over there,\" or \"Fetch that object.\" If the creature completes the order and doesn’t receive further direction from me, it defends and preserves itself to the best of its ability. Each time the target takes damage, it makes a new Wisdom saving throw against the war chant.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'warmonger' && classes.known.chieftain.level >= 14"
},
"quell the opposition" : {
name : "Quell the Opposition",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one hostile creature withing range. It must succeed on a Wisdom saving throw or become paralyzed for the duration. Each time the target takes damage, it makes a new Wisdom saving throw against the war chant.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.level >= 14"
},
"spiritual guidance" : {
name : "Spiritual Guidance",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one friendly creature within range. The target gains a +2 bonus to AC and they can't be being charmed, frightened, or possessed. If the target is already charmed, frightened, or possessed, the target has advantage on any new saving throw against the relevant effect. Their weapon attacks also deal an additional 1d8 force damage.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'spirit walker' && classes.known.chieftain.level >= 14"
},
"tempest's fury" : {
name : "Tempest's Fury",
source : ["Chief", 11],
minlevel : 14,
description : "\n " + "Choose one hostile creature within range and cause a whirlwind to howl down on top of them. The whirlwind fills the space occupied by the target. A creature must make a Dexterity saving throw the first time on a turn that it enters the whirlwind, including when the whirlwind first appears. A creature takes 4d6 bludgeoning damage on a failed save, or half as much on a success. a creature that fails the saving throw is shrouded by the whirlwind. A grappled creature falls when the war song ends, unless the creature has some means to stay aloft. A grappled creature can use an action to make a Strength or Dexterity check to break free. If successful, the creature is no longer grappled and is hurled 10 feet away.",
additional : "1/long rest",
prereqeval : "classes.known.chieftain.subclass === 'stormcaller' && classes.known.chieftain.level >= 14"
},
},
"unwavering defense" : {
name : "Unwavering Defense",
source : ["Chief", 3],
minlevel : 1,
description : "\n " + "Without armor, my AC is 10 + con mod + cha mod + shield"
},
"fear or respect" : {
name : "Fear or Respect",
source : ["Chief", 3],
minlevel : 2,
description : "\n " + "I gain proficiency and expertise with the Intimidation or Persuasion skills." + "\n " + " At 3rd level, members of my warband have adv. on this ability check while within 10 ft of me.",
skillstxt : "\n\n" + toUni("Chieftain") + ": Gain proficiency in Intimidation or Persuasion. I add double my proficiency bonus for any ability check made with the chosen skill."
},
"warband" : {
name : "Warband",
source : ["Chief", 3],
minlevel : 2,
description : "\n " + "I can induct creatures into my warband. Inducted creatures can comunicate in sign language.",
additional : ["6 creatures", "6 creatures", "6 creatures", "6 creatures", "7 creatures", "7 creatures", "7 creatures", "7 creatures", "8 creatures", "8 creatures", "8 creatures", "8 creatures", "9 creatures", "9 creatures", "9 creatures", "9 creatures", "10 creatures", "10 creatures", "10 creatures", "10 creatures"],
languageProfs : [2,]
},
"subclassfeature3" : {
name : "Mantle of Authority",
source : ["Chief", 3],
minlevel : 3,
description : "\n " + "Choose a Mantle of Authority that reflects the way you lead and put it in the \"Class\" field" + "\n " + "Choose either the Mantle of the Alpha, Anointed One, Brigadier, Spirit Walker, Stormcaller, or Warmonger"
},
"assertive action" : {
name : "Assertive Action",
source : ["Chief", 3],
minlevel : 6,
description : "\n " + "I can use cha mod instead of dex for my initiative rolls" + "\n " + "Battle Cries don't require reactions for my Warband",
addMod : { type : "skill", field : "Init", mod : "Cha-Dex", text : "I can add my Charisma modifier instead of Dexterity to initiative rolls." }
},
"resilience" : {
name : "Resilience",
source : ["Chief", 3],
minlevel : 8,
description : "\n " + "My Con saves negate damage on success and halve it on failure" + "\n " + "I am immune to the frightened condition",
savetxt : { text : ["Immune to frightened" + "\n " + "Con save: fail \u2015 half dmg, success \u2015 no dmg"] }
},
"boisterous attack" : {
name : "Boisterous Attack",
source : ["Chief", 3],
minlevel : 9,
description : "\n " + "When I use my action to use a war chant or battle cry, I can make a weapon attack as a ba.",
action : ["bonus action", " (after war chant or battle cry)"],
},
"fueled by battle" : {
name : "Fueled by Battle",
source : ["Chief", 4],
minlevel : 11,
description : "\n " + "I regain one Battle Cry if I have none when I roll initiative, roll a critical hit, or kill a creature."
},
"onto the next" : {
name : "Onto the Next",
source : ["Chief", 3],
minlevel : 13,
description : "\n " + "If the initial target is out of war chant range, or can't hear me, I can choose a new one",
action : ["Action", " (change target)"]
},
"powerful voice" : {
name : "Powerful Voice",
source : ["Chief", 3],
minlevel : 14,
description : "\n " + "While using my war chant, I can add Cha mod to the damage rolls of my weapon attacks.",
},
"strength of the tribe" : {
name : "Strength of the Tribe",
source : ["Chief", 4],
minlevel : 15,
description : "\n " + "When I initiate my war chant, I gain temp hp when warband members are in range.",
additional : ["2*Warband members"]
},
"tribal ambassador" : {
name : "Tribal Ambassador",
source : ["Chief", 4],
minlevel : 18,
description : "\n " + "Deception, Insight, Intimidation, or Persuasion checks can't be rolled lower than half my cha."
},
"absolute rule" : {
name : "Absolute Rule",
source : ["Chief", 4],
minlevel : 20,
description : "\n " + "I can target 1 extra creature, including myself, when I use my battle cry or war chant feature." + "\n " + "Once per lr, I can target a number of creatures up to my cha mod when I use my battle cry.",
usages : [1],
recovery : "long rest",
},
}
}
ClassSubList["alpha"] = {
regExpSearch : /^(?=.*(mantle of the alpha))|(?=.*(alpha))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(primal|beastial|rabid|howling|animalistic)\b).*$/i,
subname : "Mantle of the Alpha",
fullname : "Alpha",
source : ["Chief", 4],
features : {
"subclassfeature3" : {
name : "Leader of the Pack",
source : ["Chief", 4],
minlevel : 3,
description : "\n " + "I call a CR 1/2 beast by spending 8 hrs and 50 gp; bond with a new one with 8 hrs and 25 gp" + "\n " + "My companion gains several benefits, see the Companion's sheet",
additional : ["", "", "", "+1 HD for companion", "+2 HD for companion", "+3 HD for companion", "+4 HD for companion", "+5 HD for companion", "+6 HD for companion", "+7 HD for companion", "+8 HD for companion", "+9 HD for companion", "+10 HD for companion", "+11 HD for companion", "+12 HD for companion", "+13 HD for companion", "+14 HD for companion", "+15 HD for companion", "+16 HD for companion", "+17 HD for companion"]
},
"subclassfeature7" : {
name : "Howling Attack",
source : ["Chief", 5],
minlevel : 7,
description : "\n " + "When I use my action to use a Battle Cry or War Chant, my companion can attack.",
additional : ["as a reaction"],
},
"subclassfeature10" : {
name : "Primal Connection",
source : ["Chief", 5],
minlevel : 10,
description : "\n " + "I gain one special non attacking ability from my companion",
},
"subclassfeature17" : {
name : "Bloodlust",
source : ["Chief", 5],
minlevel : 17,
description : "\n " + "Me and my companion gain adv. on melee attack rolls and score a critical hit on 19-20.",
additional : ["While attacking the same creature"],
},
}
};
ClassSubList["anointed one"] = {
regExpSearch : /^(?=.*(mantle of the anointed one))|(?=.*(anointed one))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(holy|anointed|divine|zealous)\b).*$/i,
subname : "Mantle of the Anointed One",
fullname : "Anointed One",
source : ["Chief", 5],
features : {
"subclassfeature3" : {
name : "Prophesied Reign",
source : ["Chief", 5],
minlevel : 3,
description : "\n " + "When I roll an ability check, attack roll, or saving throw, I can grant myself advantage.",
usages : [0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
recovery : "long rest",
},
"subclassfeature7" : {
name : "Crusader's Resolve",
source : ["Chief", 5],
minlevel : 7,
description : "\n " + "While below max hp, I gain temp hp equal to my Cha mod at the start of each of my turns.",
additional : ["While using War Chant"],
},
"subclassfeature10" : {
name : "Shepherd of the Tribe",
source : ["Chief", 5],
minlevel : 10,
description : "\n " + "I can end one charm, poison, curse, ability score reduction, or hit point maximum reduction",
additional : ["once per sr"]
},
"subclassfeature17" : {
name : "Divine Right",
source : ["Chief", 5],
minlevel : 17,
description : "\n " + "As a reaction, when a creature I can see in war chant range hits me, I can righteously rebuke" + "\n " + "It takes 10d10 radiant damage that a Wis save can halve",
usages : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
recovery : "long rest",
action : ["reaction", ""]
},
}
},
ClassSubList["brigadier"] = {
regExpSearch : /^(?=.*(mantle of the brigadier))|(?=.*(brigadier))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(trained|skilled|strategist|campaign)\b).*$/i,
subname : "Mantle of the Brigadier",
fullname : "Brigadier",
source : ["Chief", 5],
features : {
"subclassfeature3" : {
name : "Battle Plan",
source : ["Chief", 5],
minlevel : 3,
description : "\n " + "When I roll initiative, I can switch the initiative of two warband members",
},
"subclassfeature3.1" : {
name : "Fighting Style",
source : ["Chief", 5],
minlevel : 3,
description : "\n " + "Choose a Fighting Style for the chieftain using the \"Choose Feature\" button above",
choices : ["Dueling", "Great Weapon Fighting", "Shield Bash", "Two-Weapon Fighting"],
"dueling" : {
name : "Dueling Fighting",
description : "\n " + "+2 to damage rolls when wielding a melee weapon in one hand and no other weapons",
calcChanges : {
atkCalc : ["var areOffHands = function(n){for(var i=1;i<=n;i++){if ((/off.hand.attack/i).test(What('Bonus Action ' + i))) {return true; }; }; }(FieldNumbers.actions); if (!areOffHands && isMeleeWeapon && !isNaturalWeapon && !(/\\b(2|two).?hand(ed)?s?\\b/i).test(theWea.description)) {output.extraDmg += 2; }; ", "When I'm wielding a melee weapon in one hand and no weapon in my other hand, I do +2 damage with that melee weapon. This condition will always be false if the bonus action 'Off-hand Attack' exists."]
}
},
"great weapon fighting" : {
name : "Great Weapon Fighting",
description : "\n " + "Reroll 1 or 2 on damage if wielding two-handed/versatile melee weapon in both hands",
calcChanges : {
atkAdd : ["if (isMeleeWeapon && (/\\b(versatile|(2|two).?hand(ed)?s?)\\b/i).test(theWea.description)) {fields.Description += (fields.Description ? '; ' : '') + 'Re-roll 1 or 2 on damage die' + ((/versatile/i).test(fields.Description) ? ' when two-handed' : ''); }; ", "While wielding a two-handed or versatile melee weapon in two hands, I can re-roll a 1 or 2 on any damage die once."]
}
},
"shield bash" : {
name : "Shield Bash Fighting Style",
source : ["Chief", 5],
description : "\n " + "I deal bludgeoning dmg equal to my Str mod when I succeed at shoving a creature." + "\n " + "I need to be wielding a shield to do this",
},
"two-weapon fighting" : {
name : "Two-Weapon Fighting Style",
description : "\n " + "I can add my ability modifier to the damage of my off-hand attacks",
calcChanges : {
atkCalc : ["if (isOffHand) {output.modToDmg = true; }; ", "When engaging in two-weapon fighting, I can add my ability modifier to the damage of my off-hand attacks."]
}
}
},
"subclassfeature7" : {
name : "Press the Advantage",
source : ["Chief", 6],
minlevel : 7,
description : "\n " + "When a creature dies in range, I can move allies within 5 ft of the creature half thier speed.",
additional : ["While using War Chant"],
action : ["reaction", ""],
},
"subclassfeature10" : {
name : "Change of Tactics",
source : ["Chief", 6],
minlevel : 10,
description : "\n " + " I can switch mine or an ally's fighting style, or a known spells caster's spell.",
additional : ["once per lr"]
},
"subclassfeature17" : {
name : "Always Prepared",
source : ["Chief", 6],
minlevel : 17,
description : "\n " + "Me and my allies within war chant range can't be surprised while I am conscious.",
savetxt : { text : ["adv. on first save after resting"] },
},
}
},
ClassSubList["spirit walker"] = {
regExpSearch : /^(?=.*(mantle of the spirit walker))|(?=.*(spirit walker))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(shaman|spirit walker|ancestral|spiritual|medium)\b).*$/i,
subname : "Mantle of the Spirit Walker",
fullname : "Spirit Walker",
source : ["Chief", 6],
features : {
"subclassfeature3" : {
name : "Call for Aid",
source : ["Chief", 6],
minlevel : 3,
description : "\n " + "The spirit has an AC equal to 10 + my CHA Mod, and HP equal to 3 times my Chieftain level." + "\n " + "I gain proficiency in Religion. I learn the celestial language.",
usages : [0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
recovery : "long rest",
action : ["action", ""],
skillstxt : "\n\n" + toUni("Spirit Walker") + ": Gain proficiency in Religion.",
languageProfs : ["Celestial"],
spellcastingBonus : [{
name : "Call for Aid",
spells : ["augury"],
selection : ["augury"]
}]
},
"subclassfeature7" : {
name : "Warding Words",
source : ["Chief", 6],
minlevel : 7,
description : "\n " + "My allies and I have adv. on saves against being charmed, frightened, poisoned, or possessed",
additional : ["During War Chant"],
savetxt : { text : ["adv. on saves vs charm, poison, and possession during war chant"] },
spellcastingBonus : [{
name : "Warding Words",
spells : ["purify food and drink"],
selection : ["purify food and drink"]
}]
},
"subclassfeature10" : {
name : "Interrogate the Dead",
source : ["Chief", 6],
minlevel : 10,
description : "\n " + "I can cast speak with dead as a ritual, corpses with a cr less than my level can't lie.",
spellcastingBonus : [{
name : "Interrogate the Dead",
spells : ["speak with dead"],
selection : ["speak with dead"]
}]
},
"subclassfeature17" : {
name : "Spirit Step",
source : ["Chief", 7],
minlevel : 17,
description : "\n " + "I can trade places with one of my spirit guides, gaining resistance to the damage.",
additional : ["Dash trhough objects <20ft once per rest"],
action : ["reaction", " (hit by an attack)"]
}
}
},
ClassSubList["stormcaller"] = {
regExpSearch : /^(?=.*(mantle of the stormcaller))|(?=.*(stormcaller))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(wind walker|wind talker|stormcaller|rain bringer)\b).*$/i,
subname : "Mantle of the Stormcaller",
fullname : "Stormcaller",
source : ["Chief", 7],
features : {
"subclassfeature3" : {
name : "Armory of the Storm",
source : ["Chief", 7],
minlevel : 3,
description : "\n " + "I can grant creatures resistance and weapon damage change to cold, lightning or thunder.",
usages : "Cha mod per ",
usagescalc : "event.value = Math.max(1, tDoc.getField(\"Cha Mod\").value);",
recovery : "short rest",
},
"subclassfeature3.1" : {
name : "Windtalker",
source : ["Chief", 7],
minlevel : 3,
description : "\n " + "I learn the primordial language.",
languageProfs : ["Primordial"]
},
"subclassfeature7": {
name: "Wind at Your Back",
source: ["Chief", 7],
minlevel: 7,
description: "\n " + "While using my War Chant, ranged weapon attacks made against me have disadv.",
calcChanges: {
atkAdd: [
"if ((/thrown/i).test(fields.Description) && (/\\d+(\\.\\d+|,\\d+)? ?(f.{0,2}t|m)/i).test(fields.Range)) { var rangeNmbr = fields.Range.match(/\\d+(\\.\\d+|,\\d+)?/g); var notNmbrs = fields.Range.split(RegExp(rangeNmbr.join('|'))); fields.Range = ''; rangeNmbr.forEach(function (dR, idx) { fields.Range += (notNmbrs[idx] ? notNmbrs[idx] : '') + (parseFloat(dR.toString().replace(',', '.') * 2)); }); if (notNmbrs.length > rangeNmbr.length) { fields.Range += notNmbrs[notNmbrs.length - 1]; }; }; ",
"My thrown weapons have their range doubled."
],
},
},
"subclassfeature10" : {
name : "Rainbringer",
source : ["Chief", 7],
minlevel : 10,
description : "\n " + "I can cause the clouds within a 1 mile radius cylinder to rain for one hour, if possible.",
recovery : "short rest"
},
"subclassfeature17" : {
name : "Downpour Ambush",
source : ["Chief", 8],
minlevel : 17,
description : "\n " + "I can call an air or water elemental for aid." + "\n " + "If it starts its turn unable to hear me, it becomes hostile.",
additional : ["10 min"],
usages : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
recovery : "long rest",
action : ["action", ""]
}
}
},
ClassSubList["warmonger"] = {
regExpSearch : /^(?=.*(mantle of the warmonger))|(?=.*(warmonger))|(?=.*(chieftain|war chief|marshal|commander|warlord))(?=.*\b(despotic|savage|ruthless|tyrannical)\b).*$/i,
subname : "Mantle of the Warmonger",
fullname : "Warmonger",
source : ["Chief", 8],
features : {
"subclassfeature3" : {
name : "Prepare for the Onslaught",
source : ["Chief", 8],
minlevel : 3,
description : "\n " + "On rolling init., and not surprised, I can grant temp hp or move to allies in war chant range.",
additional : ["", "", "Temp HP = Cha Mod or 2", "Temp HP = Cha Mod or 2", "Temp HP = Cha Mod or 3", "Temp HP = Cha Mod or 3", "Temp HP = Cha Mod or 4", "Temp HP = Cha Mod or 4", "Temp HP = Cha Mod or 5", "Temp HP = Cha Mod or 5", "Temp HP = Cha Mod or 6", "Temp HP = Cha Mod or 6", "Temp HP = Cha Mod or 7", "Temp HP = Cha Mod or 7", "Temp HP = Cha Mod or 8", "Temp HP = Cha Mod or 8", "Temp HP = Cha Mod or 9", "Temp HP = Cha Mod or 9", "Temp HP = Cha Mod or 10", "Temp HP = Cha Mod or 10"]
},
"subclassfeature7" : {
name : "Let the Blood Flow",
source : ["Chief", 8],
minlevel : 7,
description : "\n " + "When a creature within 5 feet of me takes damage, I can attack it as a reaction.",
additional : ["While using War Chant"],
action : ["reaction", " (enemy damaged during warchant)"]
},
"subclassfeature10" : {
name : "Travel Rhythm",
source : ["Chief", 8],
minlevel : 10,
description : "\n " + "Choose a Travel Rhythm for the warmonger using the \"Choose Feature\" button above",
choices : ["Coxwain's March", "Drums of War", "Verse of the Guerilla"],
"coxwain's march" : {
name : "Coxwain's March",
description : "\n " + "When moving at a fast pace, vehicles are treated as having twice thier normal speed." + "\n " + "After one hour, every creature involved in operating the vehicle must complete a long rest before benefitting from this again.",
},
"drums of war" : {
name : "Drums of War",
description : "\n " + "My party can travel for 12 hours before the forced march rules are applied",
additional : ["-1 exhaustion on sr"]
},
"verse of the guerilla" : {
name : "Verse of the Guerilla",
description : "\n " + "My warband and I are not penalized when traveling through difficult terrain or climbing, running, and/or swimming",
additional : ["#hrs = to lowest Dex Mod"]
},
},
"subclassfeature17" : {
name : "Pile on the Pain",
source : ["Chief", 8],
minlevel : 17,
description : "\n " + "When I use my Let the Blood Flow feature, I can command 1 ally to attack the same enemy."
}
}
},
ArmourList["unwavering defense"] = { //Object name; Note the use of only lower case! Also note the absence of the word "var" and the use of brackets []
regExpSearch : /^unwavering(?=.*defense).*$/i, //Required; regular expression of what to look for (i.e. now it looks for any entry that has the word "protect" followed by the word "me" in it, disregarding capitalization). If this looks to complicated, just write: /protectme/i
name : "Unwavering Defense (Con+Cha)", //Required;
source : ["Chief", 3], //required; the source and the page number. "HB" stands for homebrew. See the "Complete SourceList" for an overview of sources that are already defined. Or define a new source using the "Homebrew Syntax - SourceList.js". // This can be an array of arrays to indicate the things appears in multiple sources. For example, if something appears on page 7 of the Elemental Evil Player's Companion and on page 115 of the Sword Coast Adventure Guide, use the following: [["E", 7], ["S", 115]]
type : "", //Required; the type of the weapon. Options are "medium", "light", "heavy", and ""
ac : 10, //Required; the Armor Class (AC) granted by the Armor
dex : -10, //Optional; the maximum Dexterity modifier that is allowed in combination with this armor. Just remove this entry if the armour doesn't have a maximum Dex mod allowence or if the Dex mod is determined by the armor type (i.e. 2 for Medium and 0 for Heavy). //This entry will always override any maximum that is determined by the type. // If you set this to -10, no Dex mod will be added to the AC, regardless of the value of the Dex mod (so also not negative values)
stealthdis : false, //Required; whether or not the armor gives disadvantage on stealth checks (true or false)
weight : 0, //Optional; the weight in lb. If the armour has no weight, just remove this line. If this line is not present, the item will be ignored when adding armour to the inventory
strReq : 0, //Optional; the Strength score required to be able to wear the armor; the sheet doesn't actually do anything with this information (yet)
invName : "", //Optional; the name as it will be added to the equipment section if selected to do so in the equipment menu. If you omit this, the sheet will use the above defined 'name' when adding this to the equipment section
addMod : true, //Optional; set to true if the armor also allows for the addition of a secondary ability modifier (so in addition to dex), as is the case with the monk's unarmed defense
};
CreatureList["guide"] = {
name : "Guide",
source : ["Chief", 12],
size : 3, //Medium
type : "Humanoid",
subtype : "",
companion : "spiritualaid",
alignment : "Neutral",
ac : "",
Hp : "",
hd : [6, 8], //[#, die]
speed : "35 ft",
scores : [10, 16, 10, 14, 15, 12], //[Str, Dex, Con, Int, Wis, Cha]
saves : ["", "", "", "", "", ""], //[Str, Dex, Con, Int, Wis, Cha]
skills : {
"perception" : 4,
"nature" : 4,
"stealth" : 5,
"survival" : 4
},
senses : "Adv. on Wis (Perception) checks using hearing/sight",
passivePerception : 14,
languages : "Common",
challengeRating : "2",
proficiencyBonus : 2,
attacksAction : 1,
attacks : [{
name : "Shortbow",
ability : 2,
damage : [1, 6, "piercing"], //[#, die, type] "" for die is allowed
range : "Ranged (80/320 ft)",
description : "One target. Hit: 6 (1d6 + 3) piercing damage. "
},
],
traits : [{
name : "Natural Talent",
description : "The guide is considered proficient in a skill when assisting another creature in an ability check. "
},{
name : "Keen Hearing and Sight",
description : "The guide has advantage on Wisdom (Perception) checks that rely on hearing and sight."
}
]
};
CreatureList["healer"] = {
name : "Healer",
source : ["Chief", 12],
size : 3, //Medium
type : "Humanoid",
subtype : "",
companion : "spiritualaid",
alignment : "Neutral",
ac : "",
Hp : "",
hd : [6, 8], //[#, die]
speed : "30 ft",
scores : [10, 10, 12, 13, 18, 13], //[Str, Dex, Con, Int, Wis, Cha]
saves : ["", "", "", "", "", ""], //[Str, Dex, Con, Int, Wis, Cha]
skills : {
"medicine" : 6
},
senses : "",
passivePerception : 14,
languages : "Common",
challengeRating : "2",
proficiencyBonus : 2,
attacksAction : 1,
attacks : [{
name : "Quarter Staff",
ability : 1,
damage : [1, 8, "piercing"], //[#, die, type] "" for die is allowed
range : "melee (5 ft)",
description : "one target. Hit 4 (1d8) bludgeoning damage"
},
],
traits : [{
name : "Innate Spellcasting",
description : "The healer's innate spellcasting ability is wisdom (spell save DC 14). It can innately cast the following spells at their lowest level: At will: spare the dying. 1/day each: cure wounds, healing word, and lesser restoration."
},
]
};
CreatureList["warrior"] = {
name : "Warrior",
source : ["Chief", 12],
size : 3, //Medium
type : "Humanoid",
subtype : "",
companion : "spiritualaid",
alignment : "Neutral",
ac : "",
Hp : "",
hd : [6, 8], //[#, die]
speed : "30 ft",
scores : [16, 12, 17, 19, 11, 9], //[Str, Dex, Con, Int, Wis, Cha]
saves : ["", "", "", "", "", ""], //[Str, Dex, Con, Int, Wis, Cha]
skills : {
},
senses : "",
passivePerception : 10,
languages : "Common",
challengeRating : "2",
proficiencyBonus : 2,
attacksAction : 1,
attacks : [{
name : "Greataxe",
ability : 1,
damage : [1, 12, "slashing"], //[#, die, type] "" for die is allowed
range : "melee (5 ft)",
description : "One target. Hit: 9 (1d12 + 3) piercing damage. "
},
],
traits : [{
name : "Reckless",
description : "At the start of its turn, the warrior can gain advantage on all melee weapon attack rolls during that turn, but attack rolls against it have advantage until the start of its next turn. "
},
]
};
tDoc.getField("AC Misc Mod 1").setAction("Calculate", "event.value = What('Cha Mod');");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment