From e73931d0329e72087d4ba58148f4e9985a4714eb Mon Sep 17 00:00:00 2001 From: sladecraven Date: Sun, 14 Aug 2022 10:10:26 +0200 Subject: [PATCH] Melee fight --- modules/crucible-actor.js | 76 +++++++- modules/crucible-roll-dialog.js | 2 +- modules/crucible-utility.js | 208 +++++++++++++++++++--- packs/rolltables.db | 14 +- system.json | 4 +- template.json | 2 +- templates/actor-sheet.html | 170 ++---------------- templates/chat-attack-defense-result.html | 73 ++++++++ templates/chat-generic-result.html | 6 +- templates/roll-dialog-generic.html | 2 +- 10 files changed, 360 insertions(+), 197 deletions(-) create mode 100644 templates/chat-attack-defense-result.html diff --git a/modules/crucible-actor.js b/modules/crucible-actor.js index 75359cf..6d67b7d 100644 --- a/modules/crucible-actor.js +++ b/modules/crucible-actor.js @@ -325,6 +325,25 @@ export class CrucibleActor extends Actor { } + /* -------------------------------------------- */ + async rollArmor( rollData) { + let armor = this.getEquippedArmor() + if (armor) { + + } + return { armor: "none"} + } + + /* -------------------------------------------- */ + async incDecHP( formula ) { + let dmgRoll = new Roll(formula).roll( {async: false}) + await CrucibleUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode")) + let hp = duplicate(this.data.data.secondary.hp) + hp.value = Number(hp.value) + Number(dmgRoll.total) + this.update( {'data.secondary.hp': hp }) + return Number(dmgRoll.total) + } + /* -------------------------------------------- */ getAbility(abilKey) { return this.data.data.abilities[abilKey]; @@ -590,20 +609,71 @@ export class CrucibleActor extends Actor { let rollData = this.getCommonRollData() rollData.mode = "shield" rollData.shield = shield + rollData.useshield = true rollData.img = shield.img this.startRoll(rollData) } } /* -------------------------------------------- */ - rollArmorDie() { + async rollArmorDie(rollData = undefined) { let armor = this.getEquippedArmor() if (armor) { armor = duplicate(armor) + let reduce = 0 + let multiply = 1 + let disadvantage = false + let advantage = false + let messages = ["Armor applied"] + + if (rollData) { + if (CrucibleUtility.isArmorLight(armor) && CrucibleUtility.isWeaponPenetrating(rollData.attackRollData.weapon) ) { + return { armorIgnored: true, nbSuccess: 0, messages: ["Armor ignored : Penetrating weapons ignore Light Armors."] } + } + if (CrucibleUtility.isWeaponPenetrating(rollData.attackRollData.weapon) ) { + messages.push("Armor reduced by 1 (Penetrating weapon)") + reduce = 1 + } + if (CrucibleUtility.isWeaponLight(rollData.attackRollData.weapon) ) { + messages.push("Armor with advantage (Light weapon)") + advantage = true + } + if (CrucibleUtility.isWeaponHeavy(rollData.attackRollData.weapon) ) { + messages.push("Armor with disadvantage (Heavy weapon)") + disadvantage = true + } + if (CrucibleUtility.isWeaponHack(rollData.attackRollData.weapon) ) { + messages.push("Armor reduced by 1 (Hack weapon)") + reduce = 1 + } + if (CrucibleUtility.isWeaponUndamaging(rollData.attackRollData.weapon) ) { + messages.push("Armor multiplied by 2 (Undamaging weapon)") + multiply = 2 + } + } let diceColor = armor.data.absorprionroll - let rollTable = CrucibleUtility.getRollTableFromDiceColor( diceColor) - + let armorResult = await CrucibleUtility.getRollTableFromDiceColor( diceColor, false ) + let armorValue = (Number(armorResult.data.text) - reduce) * multiply + if ( advantage || disadvantage) { + let armorResult2 = await CrucibleUtility.getRollTableFromDiceColor( diceColor, false ) + let armorValue2 = (Number(armorResult2.data.text) - reduce) * multiply + if ( advantage) { + armorValue = (armorValue2 > armorValue) ? armorValue2 : armorValue + messages.push(`Armor advantage - Roll 1 = ${armorValue} - Roll 2 = ${armorValue2}`) + } + if ( disadvantage) { + armorValue = (armorValue2 < armorValue) ? armorValue2 : armorValue + messages.push(`Armor disadvantage - Roll 1 = ${armorValue} - Roll 2 = ${armorValue2}`) + } + } + armorResult.armorValue = armorValue + if ( !rollData) { + ChatMessage.create( { content: "Armor result : " + armorValue } ) + } + messages.push( "Armor result : " + armorValue) + return { armorIgnored: false, nbSuccess: armorValue, messages: messages } } + return { armorIgnored: true, nbSuccess: 0, messages: ["No armor equipped."] } } /* -------------------------------------------- */ diff --git a/modules/crucible-roll-dialog.js b/modules/crucible-roll-dialog.js index 8c26219..4919812 100644 --- a/modules/crucible-roll-dialog.js +++ b/modules/crucible-roll-dialog.js @@ -68,7 +68,7 @@ export class CrucibleRollDialog extends Dialog { this.rollData.rollAdvantage = event.currentTarget.value }) html.find('#useshield').change((event) => { - this.rollData.useShield = event.currentTarget.checked + this.rollData.useshield = event.currentTarget.checked }) } diff --git a/modules/crucible-utility.js b/modules/crucible-utility.js index 0f389a2..edc339b 100644 --- a/modules/crucible-utility.js +++ b/modules/crucible-utility.js @@ -18,9 +18,9 @@ export class CrucibleUtility { /* -------------------------------------------- */ static async init() { Hooks.on('renderChatLog', (log, html, data) => CrucibleUtility.chatListeners(html)); - Hooks.on("dropCanvasData", (canvas, data) => { + /*Hooks.on("dropCanvasData", (canvas, data) => { CrucibleUtility.dropItemOnToken(canvas, data) - }); + });*/ this.rollDataStore = {} this.defenderStore = {} @@ -51,7 +51,12 @@ export class CrucibleUtility { }) } - + /*-------------------------------------------- */ + static upperFirst(text) { + if (typeof text !== 'string') return text + return text.charAt(0).toUpperCase() + text.slice(1) + } + /*-------------------------------------------- */ static getSkills() { return duplicate(this.skills) @@ -90,18 +95,87 @@ export class CrucibleUtility { } /* -------------------------------------------- */ - static async getRollTableFromDiceColor(diceColor) { + static isArmorLight(armor) { + if (armor && (armor.data.armortype.includes("light") || armor.data.armortype.includes("clothes"))) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponPenetrating(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("penetrating")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponLight(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("light")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponHeavy(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("heavy")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponHack(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("hack")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponUndamaging(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("undamaging")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponDangerous(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("dangerous")) { + return true + } + return false + } + /* -------------------------------------------- */ + static isWeaponDeadly(weapon) { + if (weapon && weapon.data.qualities.toLowerCase().includes("deadly")) { + return true + } + return false + } + + /* -------------------------------------------- */ + static async getRollTableFromDiceColor(diceColor, displayChat = true) { let rollTableName = __color2RollTable[diceColor] if (rollTableName) { const pack = game.packs.get("fvtt-crucible-rpg.rolltables") const index = await pack.getIndex() const entry = index.find(e => e.name === rollTableName) let table = await pack.getDocument(entry._id) - const draw = await table.draw({ displayChat: true, rollMode: "gmroll" }) + const draw = await table.draw({ displayChat: displayChat, rollMode: "gmroll" }) return draw.results.length > 0 ? draw.results[0] : undefined } } + /* -------------------------------------------- */ + static async getCritical(level, weapon) { + const pack = game.packs.get("fvtt-crucible-rpg.rolltables") + + let tableName = "Crit " + level + " (" + this.upperFirst(weapon.data.damage) + ")" + const index = await pack.getIndex() + const entry = index.find(e => e.name === tableName) + let table = await pack.getDocument(entry._id) + const draw = await table.draw({ displayChat: false, rollMode: "gmroll" }) + return draw.results.length > 0 ? draw.results[0] : undefined + } + /* -------------------------------------------- */ static async chatListeners(html) { @@ -110,12 +184,12 @@ export class CrucibleUtility { }) html.on("click", '.roll-defense-melee', event => { let rollId = $(event.currentTarget).data("roll-id") - let rollData = CrucibleUtility.getRollData( rollId ) + let rollData = CrucibleUtility.getRollData(rollId) rollData.defenseWeaponId = $(event.currentTarget).data("defense-weapon-id") - let actor = game.canvas.tokens.get(rollData.defenderTokenId).actor - if (actor && (game.user.isGM || actor.isOwner) ) { - actor.rollDefenseMelee(rollData ) - } + let actor = game.canvas.tokens.get(rollData.defenderTokenId).actor + if (actor && (game.user.isGM || actor.isOwner)) { + actor.rollDefenseMelee(rollData) + } }) } @@ -197,12 +271,12 @@ export class CrucibleUtility { /* -------------------------------------------- */ static getTarget() { - if (game.user.targets && game.user.targets.size == 1) { + if (game.user.targets) { for (let target of game.user.targets) { - return target; + return target } } - return undefined; + return undefined } /* -------------------------------------------- */ @@ -245,15 +319,102 @@ export class CrucibleUtility { } /* -------------------------------------------- */ - getSuccessResult(sum){ - ui.notifications.warn("Not implemented up to now !") + static getSuccessResult(rollData) { + if (rollData.sumSuccess <= -3) { + return { result: "miss", fumble: true, attackerHPLoss: "2d3", hpLossType: "melee" } + } + if (rollData.sumSuccess == -2) { + return { result: "miss", dangerous_fumble: true, attackerHPLoss: "1d3", hpLossType: "melee" } + } + if (rollData.sumSuccess == -1) { + return { result: "miss" } + } + if (rollData.sumSuccess == 0) { + if (rollData.attackRollData.weapon.data.isranged) { + return { result: "target_space", aoe: true } + } else { + return { result: "clash", hack_vs_shields: true } + } + } + if (rollData.sumSuccess == 1) { + return { result: "hit", defenderDamage: "1", entangle: true, knockback: true } + } + if (rollData.sumSuccess == 2) { + return { result: "hit", defenderDamage: "2", critical_1: true, entangle: true, knockback: true, penetrating_impale: true, hack_armors: true } + } + if (rollData.sumSuccess >= 3) { + return { result: "hit", defenderDamage: "3", critical_2: true, entangle: true, knockback: true, penetrating_impale: true, hack_armors: true } + } } /* -------------------------------------------- */ - static async processAttackDefense( rollData) { - if ( rollData.attackRollData) { + static async getFumble(weapon) { + const pack = game.packs.get("fvtt-crucible-rpg.rolltables") + const index = await pack.getIndex() + let entry + + if (weapon.isranged) { + entry = index.find(e => e.name === "Fumble! (ranged)") + } + if (!weapon.isranged) { + entry = index.find(e => e.name === "Fumble! (melee)") + } + let table = await pack.getDocument(entry._id) + const draw = await table.draw({ displayChat: false, rollMode: "gmroll" }) + return draw.results.length > 0 ? draw.results[0] : undefined + } + + /* -------------------------------------------- */ + static async processSuccessResult(rollData) { + if (game.user.isGM) { // Only GM process this + let result = rollData.successDetails + let attacker = game.actors.get(rollData.actorId) + let defender = game.canvas.tokens.get(rollData.attackRollData.defenderTokenId).actor + + if (attacker && result.attackerHPLoss) { + result.attackerHPLossValue = await attacker.incDecHP("-" + result.attackerHPLoss) + } + if (attacker && defender && result.defenderDamage) { + let dmgDice = (rollData.attackRollData.weapon.data.isranged) ? "d6" : "d8" + result.damageWeaponFormula = result.defenderDamage + dmgDice + result.defenderHPLossValue = await defender.incDecHP("-" + result.damageWeaponFormula) + } + if (result.fumble || (result.dangerous_fumble && CrucibleUtility.isWeaponDangerous(rollData.attackRollData.weapon))) { + result.fumbleDetails = await this.getFumble(rollData.weapon) + } + if (result.critical_1 || result.critical_2) { + let isDeadly = CrucibleUtility.isWeaponDeadly(rollData.attackRollData.weapon) + result.critical = await this.getCritical((result.critical_1) ? "I" : "II", rollData.attackRollData.weapon ) + result.criticalText = result.critical.data.text + } + this.createChatWithRollMode(rollData.alias, { + content: await renderTemplate(`systems/fvtt-crucible-rpg/templates/chat-attack-defense-result.html`, rollData) + }) + console.log("Results processed", rollData) + } + } + + /* -------------------------------------------- */ + static async processAttackDefense(rollData) { + if (rollData.attackRollData) { + //console.log("Defender token, ", rollData, rollData.defenderTokenId) + let defender = game.canvas.tokens.get(rollData.attackRollData.defenderTokenId).actor let sumSuccess = rollData.attackRollData.nbSuccess - rollData.nbSuccess - this.getSuccessResult(sumSuccess) + if (sumSuccess > 0) { + let armorResult = await defender.rollArmorDie(rollData) + rollData.armorResult = armorResult + sumSuccess += rollData.armorResult.nbSuccess + if (sumSuccess < 0) { // Never below 0 + sumSuccess = 0 + } + } + rollData.sumSuccess = sumSuccess + rollData.successDetails = this.getSuccessResult(rollData) + if (game.user.isGM) { + this.processSuccessResult(rollData) + } else { + game.socket.emit("system.fvtt-crucible-rpg", { msg: "msg_gm_process_attack_defense", data: rollData }); + } } } @@ -263,6 +424,9 @@ export class CrucibleUtility { if (msg.name == "msg_update_roll") { this.updateRollData(msg.data) } + if (msg.name == "msg_gm_process_attack_defense") { + this.processSuccessResult(msg.data) + } if (msg.name == "msg_gm_item_drop" && game.user.isGM) { let actor = game.actors.get(msg.data.actorId) let item @@ -412,7 +576,7 @@ export class CrucibleUtility { } // shield => 14 - if (rollData.useShield && rollData.shield) { + if (rollData.useshield && rollData.shield) { diceFormula += "+ 1" + String(rollData.shield.data.shielddie) + "cs>=5" } else { diceFormula += " + 0d6cs>=5" @@ -429,8 +593,9 @@ export class CrucibleUtility { rollData.roll = myRoll rollData.nbSuccess = myRoll.total if (rollData.rollAdvantage != "none") { - + rollData.rollOrder = 1 + rollData.rollType = (rollData.rollAdvantage == "roll-advantage") ? "Advantage": "Disadvantage" this.createChatWithRollMode(rollData.alias, { content: await renderTemplate(`systems/fvtt-crucible-rpg/templates/chat-generic-result.html`, rollData) }) @@ -457,6 +622,7 @@ export class CrucibleUtility { } rollData.rollOrder = 3 } + rollData.nbSuccess = Math.max(0, rollData.nbSuccess) rollData.isFirstRollAdvantage = false // Manage exp @@ -522,7 +688,7 @@ export class CrucibleUtility { chatGM.whisper = this.getUsers(user => user.isGM); chatGM.content = "Blinde message of " + game.user.name + "
" + chatOptions.content; console.log("blindMessageToGM", chatGM); - game.socket.emit("system.fvtt-crucible-rgp", { msg: "msg_gm_chat_message", data: chatGM }); + game.socket.emit("system.fvtt-crucible-rpg", { msg: "msg_gm_chat_message", data: chatGM }); } diff --git a/packs/rolltables.db b/packs/rolltables.db index 7ea89e5..78d497c 100644 --- a/packs/rolltables.db +++ b/packs/rolltables.db @@ -1,18 +1,18 @@ -{"_id":"1YN6eBoYgTm03bCc","name":"Black Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Black%20Armor%20Die.webp","description":"Black Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result due to Armor Absorption","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2 to the Result due to Armor Absorption","weight":2,"range":[4,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":5},{"_id":"uQuzZKkVjfI74N3u","type":0,"text":"-3 to the Result due to Armor Absorption","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} -{"_id":"4vlOcHEQFn2EPv4K","name":"Blue Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Blue%20Armor%20Die.webp","description":"Blue Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":3,"range":[1,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":3},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result due to Armor Absorption","weight":2,"range":[4,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":5},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2 to the Result due to Armor Absorption","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"1YN6eBoYgTm03bCc","name":"Black Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Black%20Armor%20Die.webp","description":"Black Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3,"collection":null,"resultId":null},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2","weight":2,"range":[4,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":5,"collection":null,"resultId":null},{"_id":"uQuzZKkVjfI74N3u","type":0,"text":"-3","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"4vlOcHEQFn2EPv4K","name":"Blue Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Blue%20Armor%20Die.webp","description":"Blue Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":3,"range":[1,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":3,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":2,"range":[4,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":5,"collection":null,"resultId":null},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"5sBSrHJjmK7bAZzZ","name":"Crit II (Slashing)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20II.webp","description":"Crit II table (Slashing)","results":[{"_id":"pAe3KMQukSeJ2EXF","type":0,"text":"Low Sweeping Blow knocks opponent off their feet. Foe is Prone and Staggered for their next Action.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"YDYfJ2jALueoFj0o","type":0,"text":"Savage Attack: Inflict an additional 1d10 damage.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"cAWgAiywUGf5Ojs0","type":0,"text":"Surgically Precise Strike: Inflict and additional 1d12 damage.","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"gkEdWCAwENviXdlp","type":0,"text":"Precision Strike to the eye (1-3 left, 4-6 right): Foe's eye is slashed and ruined, foe permanently blind in the affected eye. Apply the Prone, Persistent Disadvantage and Persistent Stagger conditions. Foe must make a Fort Save [3] else Incapacitated.","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"Y9cItQ9rrHYjNPjd","type":0,"text":"Nose destroyed: Foe's nose is severed. Apply the Bleed 2 and Persistent Stagger conditions. Foe must make a Fort Save [3] or Incapacitated.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"n1OJXDvDrT0g1v3R","type":0,"text":"Precision Strike to mouth: Foe's face is sliced open and foe cannot speak or cast spells. Apply the Bleed 2 and Persistent Silence conditions and foe is Staggered for their next Action. Foe must make a Fort save [3] or Incapacitated.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"bM1TdOb7sSXw7Aiw","type":0,"text":"Precision Strike to hand (1-3 left, 4-6 right): 1d4 fingers are severed from the affected hand. Apply the Bleed 2 condition. Foe is Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"Wra98k2JRvLkr3aO","type":0,"text":"Wicked Blow to forearm (1-3 left, 4-6 right): Forearm tendons are sliced and arm is unusable until healed. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[9,9],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":9},{"_id":"djVo5K7qRUlur3O7","type":0,"text":"Devastating Strike to shoulder (1-3 left, 4-6 right): Foe's shoulder is laid open and the arm is unusable until healed. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed; drops item held on struck side which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[10,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":10,"rangeH":10},{"_id":"we2Dw3dERN0GsL9M","type":0,"text":"Devastating Strike to elbow (1-3 left, 4-6 right): Foe's arm is severed at the elbow. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"O6fCEnMRZgHTEdRC","type":0,"text":"Powerful Strike hammers foe to his knees: Make another attack with Advantage.","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"aTuz7Vl1paVot9W7","type":0,"text":"Brutal Strike to torso: Foe's chest or back is lacerated. Apply the Bleed 2, Persistent Disadvantage and Persistent Stagger conditions.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"dDe6OwtU6vADBTdh","type":0,"text":"Tremendous Blow to abdomen: Foe's gut is laid open and they are partially disemboweled. Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [3] or is Incapacitated.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"L6Lv7ZpOwQo4mCI6","type":0,"text":"Foe's groin is horribly lacerated. Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [2] or is Incapacitated and unable to ever reproduce.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"n6qtmXq5Y1swALN5","type":0,"text":"Foe's thigh is lacerated (1-3 left, 4-6 right). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions..","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"okxkuEwb4C3At7DC","type":0,"text":"Foe's leg is severed at the knee (1-3 left, 4-6 right). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"RTnhkCzx2ePsB84L","type":0,"text":"Foe's foot is severed at the ankle (1-3 right, 4-6 left). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"2zTovS3qG0QradN9","type":0,"text":"What the Crit? Foe's skull is impaled. Death is instantaneous.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"AK0YjZHWf9wDiVd6","name":"Crit I (Slashing)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20I.webp","description":"Critical Hit I Table (Slashing)","results":[{"_id":"eH9hlVNpPryxBaH2","type":0,"text":"You Trip your opponent who falls Prone at your feet.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"uAMkXpnhOEyFcJj4","type":0,"text":"Your blow causes your foe to lurch out of position, Immediately make another attack identical to the one you just completed.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"RudExEqB2I0KpzBY","type":0,"text":"Opportunistic Strike: Inflict an additional 1d6 damage","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"NOdugTgxB3BKKET8","type":0,"text":"Precision Strike: Inflict an additional 1d8 damage","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"go5DrtQFEJMug0RH","type":0,"text":"Slashing blow to the head results in a bloody scalp wound. Apply the Persistent Stagger condition.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"9ZxhXSLHkS14FgHm","type":0,"text":"Nose cut off leaving a bloody mess. Apply the Persistent Stagger condition.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"pGIHXeygg6JeHtDK","type":0,"text":"Nasty but non-fatal strike to the throat leave foe unable to speak. Apply Persistent Silence condition.","weight":1,"range":[7,7],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":7},{"_id":"4fdV6H2mKAVH9BPI","type":0,"text":"Hard strike to the hand / forearm (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":3,"range":[8,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":8,"rangeH":10},{"_id":"cLnx0ZCIgn7h00km","type":0,"text":"Hard slashing strike to shoulder (1-3 left, 4-6 right). Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"zdMBxuqwEnhpojck","type":0,"text":"Hard strike to elbow (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"RogA4whrFHYjlWdi","type":0,"text":"Deep cut to the back or chest. Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"Oec8evJIQeIr47Oz","type":0,"text":"Deep abdominal gash - Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"65MAg63JUJUBW5Xl","type":0,"text":"Hit in the groin. Apply the Persistent Stagger condition and foe must make a Fort [2] Save or double up in pain and fall Prone.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"tECEpz4Kv6Hnv2Fu","type":0,"text":"Slashed across the knee (1-3 left, 4-6 right). Apply the Bleed 1 and Persistent Slow conditions and foe is Staggered their next Action.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"loWbNnDpYAT1mK8H","type":0,"text":"Slashing wound to the leg (1-3 left, 4-6 right). Apply the Bleed 1 and Slow conditions.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"cOQIU6nrBTY5mVqN","type":0,"text":"Slashing wound to the ankle (1-3 left, 4-6 right). Apply the Bleed 1 and Persistent Slow conditions, and foe is Staggered their next Action.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"WZQtYlH3a0TMwm4A","type":0,"text":"What the Crit? Draw from the Crit II deck.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"E8fQjKvEV9au4rdr","name":"Crit I (Piercing)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20I.webp","description":"Critical Hit I Table (Piercing)","results":[{"_id":"eH9hlVNpPryxBaH2","type":0,"text":"You Trip your opponent who falls Prone at your feet.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"uAMkXpnhOEyFcJj4","type":0,"text":"Your blow causes your foe to lurch out of position, Immediately make another attack identical to the one you just completed.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"RudExEqB2I0KpzBY","type":0,"text":"Opportunistic Strike: Inflict an additional 1d6 damage","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"NOdugTgxB3BKKET8","type":0,"text":"Precision Strike: Inflict an additional 1d8 damage","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"go5DrtQFEJMug0RH","type":0,"text":"Stunning blow to the head: Jab to the face leaves a small bleeding wound. Apply the Persistent Stagger condition.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"9ZxhXSLHkS14FgHm","type":0,"text":"Nose sliced open. Apply Persistent Stagger condition.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"pGIHXeygg6JeHtDK","type":0,"text":"Nasty but non-fatal strike to the throat leave foe unable to speak. Apply Persistent Silence condition.","weight":1,"range":[7,7],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":7},{"_id":"4fdV6H2mKAVH9BPI","type":0,"text":"Hard strike to the hand / forearm (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":3,"range":[8,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":8,"rangeH":10},{"_id":"cLnx0ZCIgn7h00km","type":0,"text":"Hard strike to shoulder - nasty puncture wound (1-3 left, 4-6 right). Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"zdMBxuqwEnhpojck","type":0,"text":"Hard strike to elbow (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"RogA4whrFHYjlWdi","type":0,"text":"Solid blow to Torso - stabbed in the back or chest. Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"Oec8evJIQeIr47Oz","type":0,"text":"Stabbed in the gut - Apply the Bleed 1 condition and foe is Staggered their next Action.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"65MAg63JUJUBW5Xl","type":0,"text":"Hit in the groin. Apply the Persistent Stagger condition and foe must make a Fort [2] Save or double up in pain and fall Prone.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"tECEpz4Kv6Hnv2Fu","type":0,"text":"Stabbed in the knee (1-3 left, 4-6 right). Apply the Bleed 1 and Persistent Slow conditions and foe is Staggered their next Action.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"loWbNnDpYAT1mK8H","type":0,"text":"Puncture wound to the leg (1-3 left, 4-6 right). Apply the Bleed 1 and Slow conditions.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"cOQIU6nrBTY5mVqN","type":0,"text":"Puncture wound to the ankle (1-3 left, 4-6 right). Apply the Bleed 1 and Persistent Slow conditions, and foe is Staggered their next Action.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"WZQtYlH3a0TMwm4A","type":0,"text":"What the Crit? Draw from the Crit II deck.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"IkTxPc3gkgEvcuGt","name":"Fumble! (ranged)","img":"systems/fvtt-crucible-rpg/images/icons/fumble/Fumble!.webp","description":"Fumble Table (Ranged)","results":[{"_id":"PS4BB1fz2mPZqqwo","type":0,"text":"Ranged Fumble: You miss wildly. If shooting into a melee randomize everyone in your front arc and randomly hit one; otherwise you are Staggered for your next Action.","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"Lao6LxnvzCS4xM3Y","type":0,"text":"Ranged Fumble: You miss wildly. If shooting into a melee randomize everyone in your front arc and randomly hit one; otherwise you are Staggered for your next Action","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4},{"_id":"cCFqFpxvERwrPAWL","type":0,"text":"Ranged Fumble: Your weapon is damaged. It can be repaired with 10 minutes work but it is useless for now.","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6},{"_id":"uaWHX2HEaFQ51Ifz","type":0,"text":"Ranged Fumble: You become entangled with a friend / foe / furniture / brush and lose your next Action.","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"VXYs6zLMFPAXqL4k","type":0,"text":"Ranged Fumble: You drop your weapon and it bounced into an adjacent space (1- left, 2-3 behind, 4-5 in front, 60 - right)","weight":2,"range":[9,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":10},{"_id":"hCZFoL9jr4892TOX","type":0,"text":"Ranged Fumble: You stumble and open yourself up to an immediate attack from one adjacent foe; if none you lose your next Action.","weight":2,"range":[11,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":12},{"_id":"MAUfMJLIwsk0gXJy","type":0,"text":"Ranged Fumble: You miss wildly. If shooting into a melee randomize everyone in your front arc and randomly hit one; otherwise you are Staggered for your next Action","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"XiXSlBDskCkw1pgn","type":0,"text":"Ranged Fumble: You somehow hit yourself for 1d6 damage.","weight":2,"range":[15,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":16},{"_id":"qUGV14H9WP4fL8zE","type":0,"text":"Ranged Fumble: You accidentally smash your weapon into a solid, unyielding object or surface and ruin it (1 in 6): else expert repair is required at 33% of replacement cost before it can be used again.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"ru6BNvA3FK2HUFRS","type":0,"text":"Ranged Fumble: Faulty footwork. The next attack against you this or next Action Round is made with Advantage.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"UCilTc3G0Zhi0i9x","type":0,"text":"Ranged Fumble: Trip and Fall. You trip and fall Prone. If you are adjacent to any allies, pick one and take them down with you. Klutz.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"sc93LS7dCrKy7vIn","type":0,"text":"Ranged Fumble: Self rack. You manage to strike yourself in the groin. Bend over in pain - Staggered, Disadvantage on your next Action","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} -{"_id":"MAsxtlKAwDXZY4mY","name":"Purple Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Purple%20Armor%20Die.webp","description":"Purple Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result due to Armor Absorption","weight":3,"range":[3,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":5},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2 to the Result due to Armor Absorption","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} -{"_id":"O755mzf2ik2PYHIy","name":"Red Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Red%20Armor%20Die.webp","description":"Red Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result due to Armor Absorption","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2 to the Result due to Armor Absorption","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"MAsxtlKAwDXZY4mY","name":"Purple Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Purple%20Armor%20Die.webp","description":"Purple Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":3,"range":[3,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":5,"collection":null,"resultId":null},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"O755mzf2ik2PYHIy","name":"Red Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Red%20Armor%20Die.webp","description":"Red Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4,"collection":null,"resultId":null},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"TgcJamwIp6bhhSfQ","name":"Crit II (Bludgeoning)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20II.webp","description":"Crit II table (Bludgeoning)","results":[{"_id":"pAe3KMQukSeJ2EXF","type":0,"text":"Low Sweeping Blow knocks opponent off their feet. Foe is Prone and Staggered for their next Action.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"YDYfJ2jALueoFj0o","type":0,"text":"Savage Attack: Inflict an additional 1d10 damage.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"cAWgAiywUGf5Ojs0","type":0,"text":"Surgically Precise Strike: Inflict and additional 1d12 damage.","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"gkEdWCAwENviXdlp","type":0,"text":"Precision Strike to the eye (1-3 left, 4-6 right): Eye socket crushed and permanently blinded in the affected eye. Apply the Prone, Persistent Disadvantage and Persistent Stagger conditions. Foe must make a Fort Save [3] else Incapacitated.","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"Y9cItQ9rrHYjNPjd","type":0,"text":"Nose destroyed: Center of face partially caved in. Apply the Prone and Persistent Stagger conditions. Foe must make a Fort Save [3] or Incapacitated.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"n1OJXDvDrT0g1v3R","type":0,"text":"Precision Strike to mouth: Broken Jaw, Foe cannot speak or cast spells. Apply the Prone and Persistent Silence conditions and foe is Staggered for their next Action. Foe must make a Fort save [3] or Incapacitated.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"bM1TdOb7sSXw7Aiw","type":0,"text":"Precision Strike to hand (1-3 left, 4-6 right): Hand crushed and unusable until healed. Foe Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"Wra98k2JRvLkr3aO","type":0,"text":"Wicked Blow to forearm (1-3 left, 4-6 right): Fractured bone, arm unusable until healed. Apply the Persistent Stagger condition and Foe Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[9,9],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":9},{"_id":"djVo5K7qRUlur3O7","type":0,"text":"Devastating Strike to shoulder (1-3 left, 4-6 right): Fractured bone, arm unusable until healed. Apply the Persistent Stagger condition and Foe Knocked sideways and Disarmed; drops item held on struck side which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[10,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":10,"rangeH":10},{"_id":"we2Dw3dERN0GsL9M","type":0,"text":"Devastating Strike to elbow (1-3 left, 4-6 right): Arm broken and unusable until healed. Apply the Persistent Stagger condition and Foe Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"O6fCEnMRZgHTEdRC","type":0,"text":"Powerful Strike hammers foe to his knees: Make another attack with Advantage.","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"aTuz7Vl1paVot9W7","type":0,"text":"Brutal Strike to torso: Foe's ribs are cracked and broken. Foe is Knocked back and apply the Bleed 1, Persistent Disadvantage and Persistent Stagger conditions.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"dDe6OwtU6vADBTdh","type":0,"text":"Tremendous Blow to abdomen: Foe's bowels empty and internal organs are damaged. Foe is Knocked back and apply the Bleed 1, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [3] or is Incapacitated.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"L6Lv7ZpOwQo4mCI6","type":0,"text":"Groin Shot: Foe's pelvis is fractured. Apply the Prone, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [2] or is Incapacitated and unable to ever reproduce.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"n6qtmXq5Y1swALN5","type":0,"text":"Blow to thigh: Foe's leg is fractured (1-3 left, 4-6 right). Apply the Prone, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions..","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"okxkuEwb4C3At7DC","type":0,"text":"Precision Strike to knee. Foe's knee is fractured (1-3 left, 4-6 right). Apply the Prone, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"RTnhkCzx2ePsB84L","type":0,"text":"Brutal Blow to ankle: Foe's ankle is fractured (1-3 left, 4-6 right). Apply the Prone, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"2zTovS3qG0QradN9","type":0,"text":"What the Crit? Foe's skull is crushed. Death is instantaneous.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"Ud9FchQpZxnFv9ac","name":"Fumble! (melee)","img":"systems/fvtt-crucible-rpg/images/icons/fumble/Fumble!.webp","description":"Fumble Table (Melee)","results":[{"_id":"PS4BB1fz2mPZqqwo","type":0,"text":"Melee Fumble: You miss wildly and end up Prone at your opponent's feet","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"Lao6LxnvzCS4xM3Y","type":0,"text":"Melee Fumble: Your incompetent blow rebounds and you hit yourself for 1d6 hit points.","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4},{"_id":"cCFqFpxvERwrPAWL","type":0,"text":"Melee Fumble: Your main hand weapon is damaged. It can be repaired with 10 minutes work but it is useless for now.","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6},{"_id":"uaWHX2HEaFQ51Ifz","type":0,"text":"Melee Fumble: You become entangled with a friend / foe / furniture / brush and lose your next Action.","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"VXYs6zLMFPAXqL4k","type":0,"text":"Melee Fumble: You drop your weapon and it bounced into an adjacent space (1- left, 2-3 behind, 4-5 in front, 60 - right)","weight":2,"range":[9,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":10},{"_id":"hCZFoL9jr4892TOX","type":0,"text":"Melee Fumble: You stumble and open yourself up to an immediate attack from one adjacent foe; if none the Staggered next Action.","weight":2,"range":[11,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":12},{"_id":"MAUfMJLIwsk0gXJy","type":0,"text":"Melee Fumble: You inadvertently swing at a random adjacent ally; if none then fall Prone at your opponent's feet.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"XiXSlBDskCkw1pgn","type":0,"text":"Melee Fumble: You somehow hit yourself for 1d6 damage.","weight":2,"range":[15,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":16},{"_id":"qUGV14H9WP4fL8zE","type":0,"text":"Melee Fumble: You accidentally smash your weapon into a solid, unyielding object or surface and ruin it (1 in 6): else expert repair is required at 33% of replacement cost before it can be used again.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"ru6BNvA3FK2HUFRS","type":0,"text":"Melee Fumble: Faulty footwork. The next attack against you this or next Action Round is made with Advantage.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"UCilTc3G0Zhi0i9x","type":0,"text":"Melee Fumble: Trip and Fall. You trip and fall Prone. If you are adjacent to any allies, pick one and take them down with you. Klutz.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"sc93LS7dCrKy7vIn","type":0,"text":"Melee Fumble: Self rack. You manage to strike yourself in the groin. Bend over in pain - Staggered, Disadvantage on your next Action","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"WGp6vZ9d45uSaGZP","name":"Fumble! (spell misfire)","img":"systems/fvtt-crucible-rpg/images/icons/fumble/Fumble!.webp","description":"Fumble Table (Spell Misfire)","results":[{"_id":"PS4BB1fz2mPZqqwo","type":0,"text":"Spell Misfire: Your spell implodes. You and anyone adjacent to you take 1d6 damage.","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"Lao6LxnvzCS4xM3Y","type":0,"text":"Spell Misfire: Your spell implodes and you take 1d6 damage","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4},{"_id":"cCFqFpxvERwrPAWL","type":0,"text":"Spell Misfire: You lose your place in the casing sequence. Spell fizzles and Effort is wasted.","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6},{"_id":"uaWHX2HEaFQ51Ifz","type":0,"text":"Spell Misfire: You become entangled with a friend / foe / furniture / brush and lose your next Action.","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"VXYs6zLMFPAXqL4k","type":0,"text":"Spell Misfire: You fumble and drop your casting focus and bounces into an adjacent space. (1 left, 2-3 behind, 4-5 in front, 6 right)","weight":2,"range":[9,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":10},{"_id":"hCZFoL9jr4892TOX","type":0,"text":"Spell Misfire: You stumble and your spell wildly misfires affecting a random ally instead of the intended target.","weight":2,"range":[11,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":12},{"_id":"MAUfMJLIwsk0gXJy","type":0,"text":"Spell Misfire: You miss wildly. If casting into a melee randomize everyone in your front arc and hit one randomly; else you miss and are Staggered for your next Action.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"XiXSlBDskCkw1pgn","type":0,"text":"Spell Misfire: You lose you balance and you spell affects you instead of the target.","weight":2,"range":[15,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":16},{"_id":"qUGV14H9WP4fL8zE","type":0,"text":"Spell Misfire: You accidentally smash your hand into a solid, unyielding object or surface and break it. Take 1d6 damage and Disadvantage with any Skill using your hand until healed.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"ru6BNvA3FK2HUFRS","type":0,"text":"Spell Misfire: Faulty footwork. The next attack against you this or next Action Round is made with Advantage.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"UCilTc3G0Zhi0i9x","type":0,"text":"Spell Misfire: Trip and Fall. You trip and fall Prone. If you are adjacent to any allies, pick one and take them down with you. Klutz.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"sc93LS7dCrKy7vIn","type":0,"text":"Spell Misfire: Self rack. You manage to strike yourself in the groin. Bend over in pain - Staggered, Disadvantage on your next Action","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} -{"_id":"YI3IENwzFXzyLapn","name":"Black & Green Armor Dice","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Black%20%26%20Green%20Armor%20Dice.webp","description":"Black & Green Armor Dice","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":6,"range":[1,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":6},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result due to Armor Absorption","weight":9,"range":[7,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":15},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2 to the Result due to Armor Absorption","weight":9,"range":[16,24],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":24},{"_id":"uQuzZKkVjfI74N3u","type":0,"text":"-3 to the Result due to Armor Absorption","weight":9,"range":[25,33],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":25,"rangeH":33},{"_id":"CLgl3BjsDVJqj7cy","type":0,"text":"-4 to the Result due to Armor Absorption","weight":3,"range":[34,36],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":34,"rangeH":36}],"formula":"1d36","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"YI3IENwzFXzyLapn","name":"Black & Green Armor Dice","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Black%20%26%20Green%20Armor%20Dice.webp","description":"Black & Green Armor Dice","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":6,"range":[1,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":6,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":9,"range":[7,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":15,"collection":null,"resultId":null},{"_id":"vYm8bIfL3AXl75G0","type":0,"text":"-2","weight":9,"range":[16,24],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":24,"collection":null,"resultId":null},{"_id":"uQuzZKkVjfI74N3u","type":0,"text":"-3","weight":9,"range":[25,33],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":25,"rangeH":33,"collection":null,"resultId":null},{"_id":"CLgl3BjsDVJqj7cy","type":0,"text":"-4","weight":3,"range":[34,36],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":34,"rangeH":36,"collection":null,"resultId":null}],"formula":"1d36","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"name":"TRICKS & TRAPS","img":"systems/fvtt-crucible-rpg/images/icons/class_powers/Tricks%20%26%20Traps.webp","description":"A random table created from the contents of the TRICKS & TRAPS Folder.","results":[{"text":"Breathe Fire","type":1,"collection":"Item","resultId":"R60vRmxh0lchdle0","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Breathe%20Fire.webp","weight":1,"range":[1,1],"drawn":false,"_id":"78hrdunu4kok4u6p","flags":{},"rangeL":1,"rangeH":1},{"text":"Caltrops","type":1,"collection":"Item","resultId":"osbzs3tctUQVX32k","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Caltrops.webp","weight":1,"range":[2,2],"drawn":false,"_id":"twvcz3p426gcr1je","flags":{},"rangeL":2,"rangeH":2},{"text":"Fire Flask","type":1,"collection":"Item","resultId":"OqUXNqrDe7TiivMe","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Fire%20Flask.webp","weight":1,"range":[3,3],"drawn":false,"_id":"ujwqfq7xeerm0p6q","flags":{},"rangeL":3,"rangeH":3},{"text":"Flash Bang","type":1,"collection":"Item","resultId":"4KAVPZKeN521SbSK","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Flash%20Bang.webp","weight":1,"range":[4,4],"drawn":false,"_id":"27tv5al0vsywnqj3","flags":{},"rangeL":4,"rangeH":4},{"text":"Grease","type":1,"collection":"Item","resultId":"cDXYSLi8WQWtlJrb","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Grease.webp","weight":1,"range":[5,5],"drawn":false,"_id":"uls1y875osmzd46i","flags":{},"rangeL":5,"rangeH":5},{"text":"Shimmer Dust","type":1,"collection":"Item","resultId":"nFgaX5YY84wkgeaD","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Shimmer%20Dust.webp","weight":1,"range":[6,6],"drawn":false,"_id":"wwvjxa5kcljytalc","flags":{},"rangeL":6,"rangeH":6},{"text":"Smoke Screen","type":1,"collection":"Item","resultId":"b66t8oq9oJWq270i","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Smoke%20Screen.webp","weight":1,"range":[7,7],"drawn":false,"_id":"uuh4rp7k7yklrzxj","flags":{},"rangeL":7,"rangeH":7},{"text":"Sneezing Powder","type":1,"collection":"Item","resultId":"N9qkqj6Fhab9f6VY","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Sneezing%20Powder.webp","weight":1,"range":[8,8],"drawn":false,"_id":"t7i34e52lheobt2l","flags":{},"rangeL":8,"rangeH":8},{"text":"Web Snare","type":1,"collection":"Item","resultId":"fRfG0zolCcqa0bFJ","img":"systems/fvtt-crucible-rpg/images/icons/tricks_traps/Web%20Snare.webp","weight":1,"range":[9,9],"drawn":false,"_id":"2dxz47endjeyjrkp","flags":{},"rangeL":9,"rangeH":9}],"formula":"1d9","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{"core":{"sourceId":"RollTable.h9clsNOyuVdI52C5"}},"_id":"bb1TAlLgmEDEt8Uo"} -{"_id":"hAcN4IFq9blHyH0L","name":"White Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/White%20Armor%20Die.webp","description":"White Armor Die","results":[{"_id":"kHx7jePCbUDFgSzp","type":0,"text":"No change to the Result","weight":4,"range":[1,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":4},{"_id":"dvOLzCuJ1EfcLQf4","type":0,"text":"-1 to the Result","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} -{"_id":"kzct0BfEQulczo3l","name":"Green Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Green%20Armor%20Die.webp","description":"Green Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"No change to the Result","weight":3,"range":[1,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":3},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1 to the Result","weight":3,"range":[4,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":6}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"hAcN4IFq9blHyH0L","name":"White Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/White%20Armor%20Die.webp","description":"White Armor Die","results":[{"_id":"kHx7jePCbUDFgSzp","type":0,"text":"0","weight":4,"range":[1,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":4,"collection":null,"resultId":null},{"_id":"dvOLzCuJ1EfcLQf4","type":0,"text":"-1","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} +{"_id":"kzct0BfEQulczo3l","name":"Green Armor Die","img":"systems/fvtt-crucible-rpg/images/icons/armor_dice/Green%20Armor%20Die.webp","description":"Green Armor Die","results":[{"_id":"HNGr9ZKbAfFdMOtU","type":0,"text":"0","weight":3,"range":[1,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":3,"collection":null,"resultId":null},{"_id":"LyRxGrQFvbzYKYmp","type":0,"text":"-1","weight":3,"range":[4,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":6,"collection":null,"resultId":null}],"formula":"1d6","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"qmSawd6kyUeVcnnc","name":"Fumble! (melee - natural weapons)","img":"systems/fvtt-crucible-rpg/images/icons/fumble/Fumble!.webp","description":"Fumble Table (Melee - Natural Weapons)","results":[{"_id":"PS4BB1fz2mPZqqwo","type":0,"text":"Natural Weapon Fumble: You miss wildly and end up Prone at your opponent's feet","weight":2,"range":[1,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":2},{"_id":"Lao6LxnvzCS4xM3Y","type":0,"text":"Natural Weapon Fumble: You hit yourself for 1d6 hit points.","weight":2,"range":[3,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":4},{"_id":"cCFqFpxvERwrPAWL","type":0,"text":"Natural Weapon Fumble: Your claw or beak becomes stuck or entangled for this Round and the next Round before you can free yourself. Apply Entangled condition.","weight":2,"range":[5,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":6},{"_id":"uaWHX2HEaFQ51Ifz","type":0,"text":"Natural Weapon Fumble: You become entangled with a friend / foe / furniture / brush and lose your next Action.","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"VXYs6zLMFPAXqL4k","type":0,"text":"Natural Weapon Fumble: You become entangled with a friend / foe / furniture / brush and lose your next Action","weight":2,"range":[9,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":10},{"_id":"hCZFoL9jr4892TOX","type":0,"text":"Natural Weapon Fumble: You stumble and open yourself up to an immediate attack from one adjacent foe; if none the Staggered next Action.","weight":2,"range":[11,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":12},{"_id":"MAUfMJLIwsk0gXJy","type":0,"text":"Natural Weapon Fumble: You inadvertently swing at a random adjacent ally; if none then fall Prone at your opponent's feet.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"XiXSlBDskCkw1pgn","type":0,"text":"Natural Weapon Fumble: You somehow hit yourself for 1d6 damage.","weight":2,"range":[15,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":16},{"_id":"qUGV14H9WP4fL8zE","type":0,"text":"Natural Weapon Fumble: You accidentally smash your claw or beak into a solid, unyielding object or surface. Take 1d6 damage and Disadvantage with it until healed.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"ru6BNvA3FK2HUFRS","type":0,"text":"Natural Weapon Fumble: Faulty footwork. The next attack against you this or next Action Round is made with Advantage.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"UCilTc3G0Zhi0i9x","type":0,"text":"Natural Weapon Fumble: Trip and Fall. You trip and fall Prone. If you are adjacent to any allies, pick one and take them down with you. Klutz.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"sc93LS7dCrKy7vIn","type":0,"text":"Natural Weapon Fumble: Self rack. You manage to strike yourself in the groin. Bend over in pain - Staggered, Disadvantage on your next Action","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"sXH0HOY3CIDLjmRg","name":"Crit I (Blugeoning)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20I.webp","description":"Critical Hit I Table (Bludgeoning)","results":[{"_id":"eH9hlVNpPryxBaH2","type":0,"text":"You Trip your opponent who falls Prone at your feet.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"uAMkXpnhOEyFcJj4","type":0,"text":"Your blow causes your foe to lurch out of position, Immediately make another attack identical to the one you just completed.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"RudExEqB2I0KpzBY","type":0,"text":"Opportunistic Strike: Inflict an additional 1d6 damage","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"NOdugTgxB3BKKET8","type":0,"text":"Precision Strike: Inflict an additional 1d8 damage","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"go5DrtQFEJMug0RH","type":0,"text":"Stunning blow to the head: Deep, painful bruise to eye or jaw. Apply the Persistent Stagger condition.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"9ZxhXSLHkS14FgHm","type":0,"text":"Broken nose. Apply Persistent Stagger condition.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"pGIHXeygg6JeHtDK","type":0,"text":"Nasty but non-fatal strike to the throat leave foe unable to speak. Apply Persistent Silence condition.","weight":1,"range":[7,7],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":7},{"_id":"4fdV6H2mKAVH9BPI","type":0,"text":"Hard strike to the hand / forearm (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":3,"range":[8,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":8,"rangeH":10},{"_id":"cLnx0ZCIgn7h00km","type":0,"text":"Hard strike to shoulder - deep bruise (1-3 left, 4-6 right). Foe Knocked sideways and Staggered their next Action.","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"zdMBxuqwEnhpojck","type":0,"text":"Hard strike to elbow (1-3 left, 4-6 right). Foe Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"RogA4whrFHYjlWdi","type":0,"text":"Solid blow to Torso - deep bruise to back or chest. Foe Knocked back one space and Staggered their next Action.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"Oec8evJIQeIr47Oz","type":0,"text":"Shot to the gut - deep bruise to abdomen. Foe empties bowels, is Knocked back one space and is Staggered their next Action.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"65MAg63JUJUBW5Xl","type":0,"text":"Hit in the groin. Apply the Persistent Stagger condition and foe must make a Fort [2] Save or double up in pain and fall Prone.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"tECEpz4Kv6Hnv2Fu","type":0,"text":"Kneecapped - deeply bruised (1-3 left, 4-6 right). Foe falls Prone, apply the Persistent Slow condition and they are Staggered their next Action.","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"loWbNnDpYAT1mK8H","type":0,"text":"Hard strike to leg - deeply bruised (1-3 left, 4-6 right). Foe falls Prone and apply the Slow condition.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"cOQIU6nrBTY5mVqN","type":0,"text":"Smashed ankle. deeply bruised (1-3 left, 4-6 right). Foe falls Prone, apply the Persistent Slow conditions, and they are Staggered their next Action.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"WZQtYlH3a0TMwm4A","type":0,"text":"What the Crit? Draw from the Crit II deck.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} {"_id":"vEk68fA0Bzorb3zn","name":"Crit II (Piercing)","img":"systems/fvtt-crucible-rpg/images/icons/crit/Crit%20II.webp","description":"Crit II table (Piercing)","results":[{"_id":"pAe3KMQukSeJ2EXF","type":0,"text":"Low Sweeping Blow knocks opponent off their feet. Foe is Prone and Staggered for their next Action.","weight":1,"range":[1,1],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":1,"rangeH":1},{"_id":"YDYfJ2jALueoFj0o","type":0,"text":"Savage Attack: Inflict an additional 1d10 damage.","weight":1,"range":[2,2],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":2,"rangeH":2},{"_id":"cAWgAiywUGf5Ojs0","type":0,"text":"Surgically Precise Strike: Inflict and additional 1d12 damage.","weight":1,"range":[3,3],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":3,"rangeH":3},{"_id":"gkEdWCAwENviXdlp","type":0,"text":"Precision Strike to the eye (1-3 left, 4-6 right): Eye is impaled and ruined, foe permanently blind in the affected eye. Apply the Prone, Persistent Disadvantage and Persistent Stagger conditions. Foe must make a Fort Save [3] else Incapacitated.","weight":1,"range":[4,4],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":4,"rangeH":4},{"_id":"Y9cItQ9rrHYjNPjd","type":0,"text":"Nose destroyed: Foe's nose is torn off. Apply the Bleed 2 and Persistent Stagger conditions. Foe must make a Fort Save [3] or Incapacitated.","weight":1,"range":[5,5],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":5,"rangeH":5},{"_id":"n1OJXDvDrT0g1v3R","type":0,"text":"Precision Strike to mouth: Both cheeks pierced and torn open, foe cannot speak or cast spells. Apply the Bleed 2 and Persistent Silence conditions and foe is Staggered for their next Action. Foe must make a Fort save [3] or Incapacitated.","weight":1,"range":[6,6],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":6,"rangeH":6},{"_id":"bM1TdOb7sSXw7Aiw","type":0,"text":"Precision Strike to hand (1-3 left, 4-6 right): Hand is impaled, torn, and unusable until healed. Apply the Bleed 2 condition. Foe is Disarmed and drops item held in struck hand which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":2,"range":[7,8],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":7,"rangeH":8},{"_id":"Wra98k2JRvLkr3aO","type":0,"text":"Wicked Blow to forearm (1-3 left, 4-6 right): Forearm is punctured and torn, arm unusable until healed. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[9,9],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":9,"rangeH":9},{"_id":"djVo5K7qRUlur3O7","type":0,"text":"Devastating Strike to shoulder (1-3 left, 4-6 right): Joint is punctured and arm unusable until healed. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed; drops item held on struck side which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[10,10],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":10,"rangeH":10},{"_id":"we2Dw3dERN0GsL9M","type":0,"text":"Devastating Strike to elbow (1-3 left, 4-6 right): Joint is punctured and arm is unusable until healed. Apply the Bleed 2 and Persistent Stagger conditions. Foe is Disarmed and drops item held in struck arm which bounces away into the adjacent space (1-2 left, 3-4 behind, 5-6 right).","weight":1,"range":[11,11],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":11,"rangeH":11},{"_id":"O6fCEnMRZgHTEdRC","type":0,"text":"Powerful Strike hammers foe to his knees: Make another attack with Advantage.","weight":1,"range":[12,12],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":12,"rangeH":12},{"_id":"aTuz7Vl1paVot9W7","type":0,"text":"Brutal Strike to torso: Foe's chest or back is punctured. Apply the Bleed 2, Persistent Disadvantage and Persistent Stagger conditions.","weight":2,"range":[13,14],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":13,"rangeH":14},{"_id":"dDe6OwtU6vADBTdh","type":0,"text":"Tremendous Blow to abdomen: Foe is 'run through'. Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [3] or is Incapacitated.","weight":1,"range":[15,15],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":15,"rangeH":15},{"_id":"L6Lv7ZpOwQo4mCI6","type":0,"text":"Foe's groin is impaled. Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions. Foe must make a Fort Save [2] or is Incapacitated and unable to ever reproduce.","weight":1,"range":[16,16],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":16,"rangeH":16},{"_id":"n6qtmXq5Y1swALN5","type":0,"text":"Foe's thigh is impaled (1-3 left, 4-6 right). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions..","weight":1,"range":[17,17],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":17,"rangeH":17},{"_id":"okxkuEwb4C3At7DC","type":0,"text":"Foe's knee is impaled (1-3 left, 4-6 right). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[18,18],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":18,"rangeH":18},{"_id":"RTnhkCzx2ePsB84L","type":0,"text":"Foe's ankle is impaled (1-3 right, 4-6 left). Apply the Bleed 2, Persistent Disadvantage, Persistent Slow, and Persistent Stagger conditions.","weight":1,"range":[19,19],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":19,"rangeH":19},{"_id":"2zTovS3qG0QradN9","type":0,"text":"What the Crit? Foe's skull is impaled. Death is instantaneous.","weight":1,"range":[20,20],"drawn":false,"flags":{},"img":"icons/svg/d20-black.svg","rangeL":20,"rangeH":20}],"formula":"1d20","replacement":true,"displayRoll":true,"folder":null,"sort":0,"permission":{"default":0,"Up3b6rNa3VKAFQC3":3},"flags":{}} diff --git a/system.json b/system.json index 8aa7b89..3bb8099 100644 --- a/system.json +++ b/system.json @@ -218,11 +218,11 @@ "styles": [ "styles/simple.css" ], - "templateVersion": 14, + "templateVersion": 16, "title": "Crucible RPG", "manifest": "https://www.uberwald.me/gitea/public/fvtt-crucible-rpg/raw/master/system.json", "download": "https://www.uberwald.me/gitea/public/fvtt-crucible-rpg/archive/fvtt-crucible-rpg-v0.1.26.zip", "url": "https://www.uberwald.me/gitea/public/fvtt-crucible-rpg", - "version": "0.1.26", + "version": "0.1.29", "background" : "./images/ui/crucible_welcome_page.webp" } diff --git a/template.json b/template.json index 45e8c88..697a6e9 100644 --- a/template.json +++ b/template.json @@ -6,7 +6,7 @@ "biodata": { "class": "", "age": 0, - "size": "", + "size": 0, "weight": "", "hair": "", "sex": "", diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 970a805..fc28675 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -453,9 +453,17 @@
-
- -
- -
- -
- - - -

Catchphrase :

- - -

Background :

diff --git a/templates/chat-attack-defense-result.html b/templates/chat-attack-defense-result.html new file mode 100644 index 0000000..7868953 --- /dev/null +++ b/templates/chat-attack-defense-result.html @@ -0,0 +1,73 @@ +
+ {{#if actorImg}} + {{alias}} + {{/if}} +

{{alias}}

+
+ +
+ + {{#if img}} +
+ {{name}} +
+ {{/if}} + +
+
+ +
+ +
+ + diff --git a/templates/chat-generic-result.html b/templates/chat-generic-result.html index 46f77cd..29edb43 100644 --- a/templates/chat-generic-result.html +++ b/templates/chat-generic-result.html @@ -19,10 +19,10 @@