Skip to content

Instantly share code, notes, and snippets.

@BaldarSilveraxe
Created November 27, 2013 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save BaldarSilveraxe/7673900 to your computer and use it in GitHub Desktop.
Save BaldarSilveraxe/7673900 to your computer and use it in GitHub Desktop.
Roll20 API fumble and crit tables
//FumbleTables
roll20API.processAPI_FGM = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s movements put them off balance. They take a -1 penalty to \
their armor class for the next round.";
fumble[1] = "Fumbler’s movements put them severely off balance. They lose Dexterity \
and Shield bonuses to AC for the next round. If losing these bonuses does not \
reduce the fumbler’s AC by -2 (or more), then they still must take a -2 penalty.";
fumble[2] = "Fumbler trips, and falls prone. They lose Dexterity and Shield bonuses \
to AC for the current round and the next round. If losing these bonuses does not \
reduce the fumbler’s AC by -3 (or more), then they still must take a -3 penalty. \
Act last next round.";
fumble[3] = "Fumbler trips, falls prone, and strikes their head. Stunned for 1d4 \
rounds. (If fumbler is wearing a helmet, then they are not stunned, but their \
helmet is knocked off).";
fumble[4] = "Fumbler’s opponent takes advantage of the poor footwork and moves behind \
the fumbler. The opponent gains an additional attack of opportunity, this attack \
and any remain attacks the opponent has are at normal rear attack bonuses. If the \
opponent is a thief, back-stab would apply to all attacks.";
fumble[5] = "Fumbler’s attack is wide leaving fumble open and off-guard. This provokes \
an attack of opportunity from all creatures that threaten the fumbler.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_FGR = function() {
var fumble = new Array();
fumble[0] = "Fumbler is so fixated on positioning to take the shot, that the fumbler \
loses footing and slips and falls.They lose Dexterity and Shield bonuses to AC for \
the next round. If losing these bonuses does not reduce the fumbler’s AC by -2 (or \
more), then they still must take a -2 penalty.";
fumble[1] = "Fumbler is so fixated on positioning to take the shot, that the fumbler \
loses footing. Make a Dexterity check or fall prone. Failing the fumbler provokes \
an attack of opportunity from all enemies who threaten fumbler.";
fumble[2] = "Fumbler is so fixated on positioning to take the shot, that the fumbler \
loses footing. Fumbler trips, falls prone, and strikes their head. Stunned for 1d4 \
rounds. (If fumbler is wearing a helmet, then they are not stunned, but their \
helmet is knocked off).";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_FGS = function() {
var fumble = new Array();
fumble[0] = "Fumbler is so fixated on positioning to take a stealth attack, that the \
fumbler loses footing and slips into the victim. Completely breaking all stealth \
and the victim gains an additional attack of opportunity.";
fumble[1] = "Fumbler is so fixated on positioning to take a stealth attack, that the \
fumbler loses footing. Fumbler trips, falls prone, and strikes their head. Stunned \
for 1d4 rounds. This completely breaks all stealth and the victim gains an \
additional attack of opportunity.";
fumble[2] = "Fumbler is so fixated on positioning to take a stealth attack, that the \
fumbler loses footing. Make a DEX check or fall prone. Failing the fumbler \
provokes an attack of opportunity from all enemies who threaten fumbler. This \
completely breaks all stealth.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_DPM = function() {
var fumble = new Array();
fumble[0] = "Fumble ineptly, loosening grip on weapon. Make a Dexterity check to \
recover your control or forfeit your next attack. You provoke an attack of \
opportunity from all enemies who threaten you.";
fumble[1] = "Fumbler’s attack is utterly mistimed. The opponent may take a free \
attempt to disarm, without provoking an attack of opportunity.";
fumble[2] = "Fumbler’s opponent parries the attack and disarms the fumbler.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_DPR = function() {
var fumble = new Array();
fumble[0] = "Fumbler is so fixated on positioning to take the shot, that the \
fumbler actually drops weapon ammo or if a thrown weapon ineptly, lose grip \
on weapon. Make a Dexterity check to recover your control or forfeit your \
next attack.";
fumble[1] = "Fumbles, juggles and drops ammunition (or thrown weapon.) In this \
spectacle of incompetence fumbler becomes flat-footed. Forfeits remaining actions \
and provokes an attack of opportunity from any enemies that threaten the fumbler.";
fumble[2] = "Fumbler mishandled weapon, sending their aim awry. Attempting to recover \
control of their weapon causes the fumbler to forfeit any remaining actions and \
provoke an attack of opportunity from any enemies that threaten the fumbler.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_DPS = function() {
var fumble = new Array();
fumble[0] = "An attempt to silently grandstand with flare (i.e. twirling a dagger) \
goes badly. Fumbler’s weapon drops noisily, completely breaking all stealth.";
fumble[1] = "Victim makes a sudden unexpected movement and inadvertently disarms \
fumbler. Fumbler’s weapon drops noisily, completely breaking all stealth.";
fumble[2] = "An attempt to silently grandstand with flare (i.e. twirling a dagger) \
goes badly. Fumbler’s weapon drops noisily, completely breaking all stealth Or the \
DM can choose to have the weapon only unexpectedly appear (stealth checks may \
apply.)";
fumble[3] = "Victim makes a sudden unexpected movement and inadvertently disarms \
fumbler. Fumbler’s weapon drops noisily, completely breaking all stealth. Or the DM \
can choose to have the weapon only unexpectedly appear (stealth checks may apply.)";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_SIM = function() {
var fumble = new Array();
fumble[0] = "A forceful pop in fumbler’s shoulder is heard. Fumber takes 1d8 points \
of damage.";
fumble[1] = "A forceful pop in fumbler’s shoulder is heard. Fumber takes 1d8 points \
of damage. The opponent may take a free attempt to disarm, without provoking an \
attack of opportunity.";
fumble[2] = "A forceful pop in fumbler’s shoulder is heard. Fumber takes 1d8 points \
of damage. The opponent may take a free attempt to disarm, without provoking an \
attack of opportunity. Fumbler is at -2 to hit for all reaming combat rounds \
for this encounter.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_EGA = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s opponent has control over the fumbler’s weapon arm (arm lock.) \
Inflicts 1 point of damage plus Strength bonus (if the attacker desires), while \
continued holds cause cumulatively 1 more point of damage for each round they are \
held. Strength check to break and no other action can be taken until the arm \
lock is broken.";
fumble[1] = "Fumbler’s opponent has control over the fumbler’s shield arm (arm lock.) \
Inflicts 1 point of damage plus Strength bonus (if the attacker desires), while \
continued holds cause cumulatively 1 more point of damage for each round they are \
held. Strength check to break and no other action can be taken until the arm lock \
is broken. This provokes an attack of opportunity from all creatures that threaten \
the fumbler.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble]
};
roll20API.processAPI_EGU = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s opponent gets fumbler in a headlock Inflicts 1 point of damage \
plus Strength bonus (if the attacker desires), while continued holds cause \
cumulatively 1 more point of damage for each round they are held. Strength check to \
break and no other action can be taken until the arm lock is broken. Fumbler will \
be choked out in 2-5 rounds.";
fumble[1] = "Fumbler’s opponent gets fumbler in a headlock Inflicts 1 point of damage \
plus Strength bonus (if the attacker desires), while continued holds cause \
cumulatively 1 more point of damage for each round they are held. Strength check to \
break and no other action can be taken until the arm lock is broken. Fumbler will be \
choked out in 2-5 rounds. This provokes an attack of opportunity from all creatures \
that threaten the fumbler.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_TWM = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s movements put them off balance and results in fumbler twisting \
their ankle. Fumbler is slowed for 2d4 rounds. Make a Dexterity check or fall prone.";
fumble[1] = "Fumbler’s attacks results in fumbler twisting their wrist. Fumbler is at \
-2 to hit for all remaining combat rounds for this encounter.";
fumble[2] = "Fumbler’s movements put them straining their neck. Fumbler’s AC by -2 for \
all reaming combat rounds for this encounter.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_TWR = function() {
var fumble = new Array();
fumble[0] = "Fumbler is so fixated on positioning to take the shot, that the fumbler \
twists their ankle. Fumbler is slowed for 2d4 rounds. Make a Dexterity check or \
fall prone.";
fumble[1] = "Fumbler’s attacks results in fumbler twisting their wrist. Fumbler is \
at -2 to hit for all remaining combat rounds for this encounter.";
fumble[2] = "Fumbler’s movements put them straining their neck. Fumbler’s AC by -2 for \
all reaming combat rounds for this encounter.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_TWS = function() {
var fumble = new Array();
fumble[0] = "Fumbler is so fixated on positioning to take a stealth attack, that the \
fumbler twists their ankle. Fumbler is slowed for 2d4 rounds. Make a Dexterity \
check or fall prone. This completely breaks all stealth.";
fumble[1] = "Fumbler’s attacks results in fumbler twisting their wrist. Fumbler is \
at -2 to hit for all remaining combat rounds for this encounter. This completely \
breaks all stealth.";
fumble[2] = "Fumbler’s movements put them straining their neck. Fumbler’s AC by -2 \
for all reaming combat rounds for this encounter. This completely breaks all stealth.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_SDM = function() {
var fumble = new Array();
fumble[0] = "Fumbler has grit in their eye and are at -1 to hit for 1d4 rounds.";
fumble[1] = "Random fluid gets in eyes. All opponents concealed (50% miss) and \
lose dexterity bonus to AC for 1d6 rounds.";
fumble[2] = "Fumbler’s bad miss results in a loss of situational awareness (risk \
of tripping over, into or off something.) Make a Dexterity check or fall into \
an environmental feature, off of elevated terrain or prone.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_SDR = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s attention is unfocused by a glint of light, a sudden sound, \
or a random thought at -1 to hit for 1d4 rounds with a ranged weapon.";
fumble[1] = "Fumbler has grit in their eye and are at -2 to hit for 1d4 rounds.";
fumble[2] = "Fumbler’s bad miss results in a loss of situational awareness (risk \
of tripping over, into or off something.) Make a Dexterity check or fall into \
an environmental feature, off of elevated terrain or prone.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_SDS = function() {
var fumble = new Array();
fumble[0] = "Lighting conditions change (vapor, smoke or steam) or fumbler kick up \
dust/dirt or knocks and object over. This completely breaks all stealth.";
fumble[1] = "Fumbler has grit in their eye and are at -2 to hit for 1d4 rounds.";
fumble[2] = "Fumbler’s bad miss results in a loss of situational awareness (risk of \
tripping over, into or off something.) Make a Dexterity check or fall into an \
environmental feature, off of elevated terrain or prone. This completely breaks \
all stealth.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_WMM = function() {
var fumble = new Array();
fumble[0] = "Helm twists blinding fumbler until their next action. If no helm fumbler \
is knocked in the head and is stunned, losing their next action.";
fumble[1] = "Shield grip slips, fumbler loses shield bonus. If no shield fumbler is \
knocked is knocked prone.";
fumble[1] = "Backpack slips, fumbler is -2 to attack for the next round. If no backpack \
fumbler’s movements put them severely off balance. They lose Dexterity and Shield bonuses \
to AC for the next round. If losing these bonuses does not reduce the fumbler’s AC by -2 \
(or more), then they still must take a -2 penalty.";
fumble[1] = "On extremely valuable item falls free (DMs option.) If no valuable items \
fumbler’s movements put them severely off balance. They lose Dexterity and Shield bonuses \
to AC for the next round. If losing these bonuses does not reduce the fumbler’s AC by -2 \
(or more), then they still must take a -2 penalty.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_WMR = function() {
var fumble = new Array();
fumble[0] = "Quiver or ammo container falls and ammo scatters randomly. It will take \
2-5 rounds or fire rate is reduced greatly and no specific ammo can be selected. If no \
ammo container, backpack slips, fumbler is -2 to attack for the next round. If no \
backpack fumbler’s movements put them severely off balance. Fumbler loses Dexterity \
for the next round. In either case, this provokes an attack of opportunity from all \
creatures that threaten the fumbler at +3 to hit.";
fumble[1] = "On extremely valuable item falls free (DMs option.) If no valuable item \
fumbler’s movements put them severely off balance. Fumbler loses Dexterity for the next \
round. In either case, this provokes an attack of opportunity from all creatures that \
threaten the fumbler at a +3 to hit. This completely breaks all stealth.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_WMS = function() {
var fumble = new Array();
fumble[0] = "On extremely valuable item falls free (DMs option.) If no valuable item \
fumbler’s movements put them severely off balance. Fumbler lose Dexterity for the next \
round. In either case, this provokes an attack of opportunity from all creatures that \
threaten the fumbler at a +3 to hit. This completely breaks all stealth.";
fumble[1] = "If a cloak is being used it snags on a random environmental object. If no \
cloak, some other item or object carried snags. Fumbler lose Dexterity for the next \
round. In either case, this provokes an attack of opportunity from all creatures that \
threaten the fumbler at a +3 to hit. This completely breaks all stealth.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_LWF = function() {
var fumble = new Array();
fumble[0] = "Fumbler’s thrown weapon is caught by an enemy or fails to return if magical \
(path obstructed in firmly wedged in an environmental feature. If this is not possible, \
a forceful pop in fumbler’s shoulder is heard. Fumber takes 1d8 points of damage. The \
opponent may take a free attempt to disarm, without provoking an attack of opportunity. \
Fumbler is at -2 to hit for all reaming combat rounds for this encounter.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_FFM = function() {
var fumble = new Array();
fumble[0] = "Fumbler hits an adjacent companion for half damage. Determine randomly a \
companion within the threat zone who is to be hit.Roll damage and half the result.";
fumble[1] = "Fumbler hits adjacent companion for half damage. Determine randomly a \
companion within the threat zone who is to be hit.Roll damage and full result.";
fumble[2] = "Fumbler disrupts friendly caster or You hit an adjacent companion for \
half damage. Determine randomly a companion within the threat zone who is to be hit. \
Roll damage and full result.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_FFR = function() {
var fumble = new Array();
fumble[0] = "Fumbler hits an adjacent companion for half damage. Determine randomly a \
companion within the threat zone who is to be hit.Roll damage and half the result.";
fumble[1] = "Fumbler hits adjacent companion for half damage. Determine randomly a \
companion within the threat zone who is to be hit.Roll damage and full result.";
fumble[2] = "Fumbler disrupts friendly caster or You hit an adjacent companion for \
half damage. Determine randomly a companion within the threat zone who is to be hit. \
Roll damage and full result.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_DTS = function() {
var fumble = new Array();
fumble[0] = "Any foe capable of detecting fumbler (magic or otherwise) does so on a hutch \
based on some clumsy action on fumbler’s part. Or fumbler is so fixated on \
positioning to take a stealth attack, that the fumbler loses footing and slips into \
the victim. Completely breaking all stealth and the victim gains an additional attack \
of opportunity.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_WBM = function() {
var fumble = new Array();
fumble[0] = "Fumbler so bungled the attack that is leaves their weapon low and \
vulnerable. The opponent may take a free attempt to sunder the weapon, without \
provoking an attack of opportunity. If the weapon is magical, the opponent may \
take a free attempt to disarm, without provoking an attack of opportunity.";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
roll20API.processAPI_WBR = function() {
var fumble = new Array();
fumble[0] = "Bow string breaks or if that is not possible, then fumbler \
mishandled weapon, sending their aim ";
var rndfumble = Math.floor(Math.random() * fumble.length);
roll20API.fumbleResultTemp = fumble[rndfumble];
};
//CritTables
roll20API.processAPI_Crit = function() {
var percentRollCrit = Math.floor(Math.random() * 100) + 1;
var edgedWeapon = [
{Range: "'1', '2', '3', '4', '5', '6', '7', '8', '9'", Result: "double damage"},
{Range: "'10', '11', '12', '13', '14', '15', '16', '17', '18', '19'", Result: "double damage"},
{Range: "'20', '21', '22', '23', '24', '25', '26', '27', '28', '29'", Result: "double damage"},
{Range: "'30', '31'", Result: "double damage"},
{Range: "'32', '33', '34', '35', '36', '37', '38', '39'", Result: "triple damage"},
{Range: "'40', '41', '42', '43', '44', '45', '46', '47', '48', '49'", Result: "triple damage"},
{Range: "'50', '51', '52', '53', '54', '55', '56', '57', '58', '59'", Result: "triple damage"},
{Range: "'60', '61', '62'", Result: "triple damage"},
{Range: "'63'", Result: "shield destroyed (double damage if no shield)"},
{Range: "'64'", Result: "shield destroyed (triple damage if no shield)"},
{Range: "'65'", Result: "helm removed (lose ear, stunned 1-6 rounds if no helm)"},
{Range: "'66'", Result: "helm removed (lose ear, stunned 1-6 rounds)"},
{Range: "'67'", Result: "voicebox punctured, no talking (no effect if helmed)"},
{Range: "'68', '69'", Result: "ear removed (no effect if helmed)"},
{Range: "'70'", Result: "ear removed (helm removed if helmed)"},
{Range: "'71', '72'", Result: "eye removed (no effect if helmed)"},
{Range: "'73'", Result: "eye removed"},
{Range: "'74'", Result: "knee split; movement halved"},
{Range: "'75'", Result: "knee split; no movement"},
{Range: "'76'", Result: "fingers removed; dexterity reduced 1-5 pts."},
{Range: "'77'", Result: "leg removed at ankle"},
{Range: "'78'", Result: "leg removed at knee"},
{Range: "'79'", Result: "leg removed at hip"},
{Range: "'80'", Result: "shield arm removed at wrist (no effect if shield)"},
{Range: "'81'", Result: "shield arm removed at elbow (no effect if shield)"},
{Range: "'82'", Result: "shield arm removed at elbow (no effect if shield)"},
{Range: "'83'", Result: "shield arm removed at wrist"},
{Range: "'84'", Result: "shield arm removed at elbow"},
{Range: "'85'", Result: "shield arm removed at shoulder"},
{Range: "'86'", Result: "weapon arm removed at wrist"},
{Range: "'87'", Result: "weapon arm removed at elbow"},
{Range: "'88'", Result: "weapon arm removed at shoulder"},
{Range: "'89'", Result: "abdominal injuries; carrying capacity halved"},
{Range: "'90'", Result: "chest injuries; carrying capacity halved"},
{Range: "'91'", Result: "abdominal injuries; death in 1-6 days"},
{Range: "'92'", Result: "chest injuries; death in 1-4 days"},
{Range: "'93'", Result: "abdominal injuries; death in 2-12 turns"},
{Range: "'94'", Result: "chest injuries; death in 2-8 turns"},
{Range: "'95'", Result: "abdominal injuries; immediate death"},
{Range: "'96'", Result: "chest injuries; immediate death"},
{Range: "'97'", Result: "throat cut; immediate death (no effect if helmed)"},
{Range: "'98'", Result: "throat cut; immediate death"},
{Range: "'99'", Result: "decapitated; immediate death (no effect if helmed)"},
{Range: "'100'", Result: "decapitated; immediate death"}
];
var bluntWeapon = [
{Range: "'1', '2', '3', '4', '5', '6', '7', '8', '9'", Result: "double damage"},
{Range: "'10', '11', '12', '13', '14', '15', '16', '17', '18', '19'", Result: "double damage"},
{Range: "'20', '21', '22', '23', '24', '25', '26', '27', '28', '29'", Result: "double damage"},
{Range: "'30', '31'", Result: "double damage"},
{Range: "'32', '33', '34', '35', '36', '37', '38', '39'", Result: "triple damage"},
{Range: "'40', '41', '42', '43', '44', '45', '46', '47', '48', '49'", Result: "triple damage"},
{Range: "'50', '51', '52', '53', '54', '55', '56', '57', '58', '59'", Result: "triple damage"},
{Range: "'60', '61', '62', '63', '64'", Result: "triple damage"},
{Range: "'65', '66'", Result: "shield broken (double damage if no shield)"},
{Range: "'67', '68'", Result: "shield broken (triple damage if no shield)"},
{Range: "'69', '70'", Result: "shield arm struck (no shield defense for 1-6 rounds)"},
{Range: "'71', '72'", Result: "shield arm broken; lose shield"},
{Range: "'73', '74'", Result: "weapon arm struck; hit probability -2"},
{Range: "'75', '76'", Result: "weapon arm struck; hit probability -4"},
{Range: "'77', '78'", Result: "weapon arm broken; no attacks"},
{Range: "'79', '80'", Result: "hand struck; dexterity down 1-5 points until healed"},
{Range: "'81', '82'", Result: "hand struck; dexterity down 1-5 points"},
{Range: "'83', '84'", Result: "chest struck; stunned 1-6 rounds"},
{Range: "'85', '86'", Result: "chest struck; ribs broken, lungs punctured; no movement"},
{Range: "'87', '88'", Result: "chest struck; ribs broken, heart punctured; death."},
{Range: "'89', '90'", Result: "leg struck; fall to ground"},
{Range: "'91', '92'", Result: "leg struck; movement halved"},
{Range: "'93', '94'", Result: "leg broken; no movement"},
{Range: "'95'", Result: "head struck; lose 1-6 pts intelligence (no effect if helmed)"},
{Range: "'96'", Result: "head struck; lose 1-6 pts intelligence"},
{Range: "'97'", Result: "head struck; lose 2-12 pts intelligence (no effect if helmed)"},
{Range: "'98'", Result: "head struck; lose 2-12 pts intelligence"},
{Range: "'99'", Result: "skull crushed; dead (no effect if helmed)"},
{Range: "'100'", Result: "skull crushed; dead."}
];
var piercingWeapon = [
{Range: "'1', '2', '3', '4', '5', '6', '7', '8', '9'", Result: "double damage"},
{Range: "'10', '11', '12', '13', '14', '15', '16', '17', '18', '19'", Result: "double damage"},
{Range: "'20', '21', '22', '23', '24', '25', '26', '27', '28', '29'", Result: "double damage"},
{Range: "'30', '31', '32', '33', '34'", Result: "double damage"},
{Range: "'35', '36', '37', '38', '39', '40', '41', '42', '43'", Result: "triple damage"},
{Range: "'44', '45', '46', '47', '48', '49', '50', '51', '52', '53'", Result: "triple damage"},
{Range: "'54', '55', '56', '57', '58', '59', '60', '61', '62', '63'", Result: "triple damage"},
{Range: "'64', '65', '66', '67', '68', '69', '70'", Result: "triple damage"},
{Range: "'71', '72'", Result: "shield arm struck (double damage if shield)"},
{Range: "'73', '74'", Result: "shield arm struck (triple damage if no shield)"},
{Range: "'75', '76'", Result: "weapon arm struck; hit probability -2"},
{Range: "'77', '78'", Result: "weapon arm struck; hit probability -4"},
{Range: "'79', '80'", Result: "weapon arm struck; no attacks"},
{Range: "'81', '82'", Result: "struck in abdomen; death in 1-6 days"},
{Range: "'83', '84'", Result: "struck in chest; death in 1-4 days"},
{Range: "'85', '86'", Result: "struck in abdomen; death in 2-12 turns"},
{Range: "'87', '88'", Result: "struck in chest; death in 2-8 turns"},
{Range: "'89', '90'", Result: "struck in abdomen; immediate death"},
{Range: "'91', '92'", Result: "struck in chest; immediate death"},
{Range: "'93'", Result: "blinded in eye (no effect if helmed)"},
{Range: "'93'", Result: "blinded in eye"},
{Range: "'95'", Result: "larynx punctured (no effect if helmed)"},
{Range: "'96'", Result: "larynx punctured"},
{Range: "'97'", Result: "struck in head; lose 1-6 pts intelligence (no effect if helmed)"},
{Range: "'98'", Result: "struck in head; lose 1-6 pts intelligence"},
{Range: "'99'", Result: "struck in head; immediate death (no effect if helmed)"},
{Range: "'100'", Result: "struck in head; immediate death"}
];
var versusAnimal = [
{Range: "'1', '2', '3', '4', '5', '6', '7', '8', '9'", Result: "double damage"},
{Range: "'10', '11', '12', '13', '14', '15', '16', '17', '18', '19'", Result: "double damage"},
{Range: "'20', '21', '22', '23', '24', '25', '26', '27', '28', '29'", Result: "double damage"},
{Range: "'30', '31', '32', '33', '34', '35', '36', '37', '38','39'", Result: "triple damage"},
{Range: "'40', '41', '42', '43', '44', '45', '46', '47', '48', '49'", Result: "triple damage"},
{Range: "'50', '51', '52', '53', '54', '55', '56', '57', '58'", Result: "triple damage"},
{Range: "'59', '60'", Result: "limb removed at body; speed halved"},
{Range: "'61', '62'", Result: "limb removed at midpoint; speed halved"},
{Range: "'63', '64'", Result: "limb removed at midpoint; hit probability -2"},
{Range: "'65', '66'", Result: "limb removed at body; hit probability -4"},
{Range: "'67', '68'", Result: "limb removed at midpoint; speed halved, hit prob. -2"},
{Range: "'69', '70'", Result: "limb removed at body; speed halved, hit probability -4"},
{Range: "'71', '72'", Result: "throat cut: immediate death"},
{Range: "'73', '74'", Result: "decapitated"},
{Range: "'75', '76'", Result: "abdominal injuries; immediate death"},
{Range: "'77', '78'", Result: "abdominal injuries; death in 2-12 turns"},
{Range: "'79', '80'", Result: "abdominal injuries; death in 1-6 days"},
{Range: "'81', '82'", Result: "chest injuries; immediate death"},
{Range: "'83', '84'", Result: "chest injuries; death in 2-8 turns"},
{Range: "'85', '86'", Result: "chest injuries; death in 1-4 days"},
{Range: "'87', '88', '89', '90'", Result: "snout struck; immediate retreat"},
{Range: "'91', '92', '93', '94'", Result: "snout struck; hit probability -2 for 1-4 rounds"},
{Range: "'95', '96', '97', '98'", Result: "snout struck; hit probability -4 for 1-4 rounds"},
{Range: "'99'", Result: "head struck; stunned for 1-6 rounds"},
{Range: "'100'", Result: "head struck: immediate death"}
];
//Lookup on Tables
var edgedWeaponRoll = "'" + percentRollCrit.toString() + "'";
_.each(edgedWeapon, function(loopedgedWeapon) {
if(loopedgedWeapon.Range.indexOf(edgedWeaponRoll) !== -1){
roll20API.edgedWeaponResult = loopedgedWeapon.Result
};
});
//Lookup on Tables
var piercingWeaponRoll = "'" + percentRollCrit.toString() + "'";
_.each(piercingWeapon, function(looppiercingWeapon) {
if(looppiercingWeapon.Range.indexOf(piercingWeaponRoll) !== -1){
roll20API.piercingWeaponResult = looppiercingWeapon.Result
};
});
//Lookup on Tables
var bluntWeaponRoll = "'" + percentRollCrit.toString() + "'";
_.each(bluntWeapon, function(loopbluntWeapon) {
if(loopbluntWeapon.Range.indexOf(bluntWeaponRoll) !== -1){
roll20API.bluntWeaponResult = loopbluntWeapon.Result
};
});
//Lookup on Tables
var versusAnimalRoll = "'" + percentRollCrit.toString() + "'";
_.each(versusAnimal, function(loopversusAnimal) {
if(loopversusAnimal.Range.indexOf(versusAnimalRoll) !== -1){
roll20API.versusAnimalResult = loopversusAnimal.Result
};
});
};
@M-Schultz
Copy link

how do I add this to my roll 20 API?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment