{ "folder": "SwEjiVLbnXT2x9Lz", "name": "Strange Patterns", "type": "feature", "_id": "6YsfFjmCGuFYVhT4", "img": "icons/magic/symbols/rune-sigil-black-pink.webp", "system": { "description": "
Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress.
You can change this number when you take a long rest.
", "resource": { "type": "diceValue", "value": 1, "max": "1", "icon": "fa-solid fa-hashtag", "dieFaces": "d12" }, "actions": { "RkqPzF1bdWzPPMml": { "type": "healing", "_id": "RkqPzF1bdWzPPMml", "systemPath": "actions", "description": "Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress.
You can change this number when you take a long rest.
", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, "max": "", "recovery": null, "consumeOnSuccess": false }, "damage": { "parts": { "stress": { "value": { "custom": { "enabled": true, "formula": "1" }, "multiplier": "prof", "flatMultiplier": 1, "dice": "d6", "bonus": null }, "applyTo": "stress", "base": false, "resultBased": false, "valueAlt": { "multiplier": "prof", "flatMultiplier": 1, "dice": "d6", "bonus": null, "custom": { "enabled": false } }, "type": [] } }, "includeBase": false }, "target": { "type": "any", "amount": null }, "effects": [], "roll": { "type": null, "trait": null, "difficulty": null, "bonus": null, "advState": "neutral", "diceRolling": { "multiplier": "prof", "flatMultiplier": 1, "dice": "d6", "compare": null, "treshold": null }, "useDefault": false }, "name": "Clear Stress", "img": "icons/magic/symbols/rune-sigil-black-pink.webp", "range": "", "triggers": [ { "trigger": "dualityRoll", "triggeringActorType": "self", "command": "/* Ignore if it's a TagTeam roll */\nconst tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);\nif (tagTeam.members[actor.id]) return;\n\n/* Check if there's a Strange Pattern match */\nconst dice = [roll.dFear.total, roll.dHope.total];\nconst resource = this.parent.resource?.diceStates ? Object.values(this.parent.resource.diceStates).map(x => x.value)[0] : null;\nconst nrMatches = dice.filter(x => x === resource).length;\n\nif (!nrMatches) return;\n\n/* Create a dialog to choose Hope or Stress - or to cancel*/\nconst content = `\n