From 24ad39dc6fed217591370dc49372b8fa3a543a5d Mon Sep 17 00:00:00 2001 From: Michal Tuszowski Date: Thu, 21 Aug 2025 19:51:05 +0000 Subject: [PATCH] Import gk-greyknight-0.1.0.zip do wg-greyknights (2025-08-21T19:51:05Z) --- wg-greyknights/LICENSE | 1 + wg-greyknights/README.txt | 14 + .../foundry/actors/gk-incognito.json | 1510 ++++++++++++++++ .../foundry/actors/gk-power-armour.json | 1524 ++++++++++++++++ .../foundry/actors/gk-terminator.json | 1527 +++++++++++++++++ .../fvtt-Item-ability-aegis-of-titan_v5.json | 6 +- .../fvtt-Item-aegis-power-armour_v2.json | 6 +- .../fvtt-Item-archetype-grey-knight_v5.json | 4 +- ...-gk-armour-integrated-storm-bolter_v2.json | 2 +- .../fvtt-Item-nemesis-force-halberd_v4.json | 2 +- .../fvtt-Item-terminator-aegis-gk_v4.json | 6 +- wg-greyknights/module.json | 26 + wg-greyknights/scripts/auto-loadout.js | 48 + .../scripts/macros/gk-glow-toggle.js | 34 + .../scripts/macros/gk-import-from-module.js | 40 + .../scripts/macros/gk-loadout-manager.js | 64 + 16 files changed, 4801 insertions(+), 13 deletions(-) create mode 100644 wg-greyknights/LICENSE create mode 100644 wg-greyknights/README.txt create mode 100644 wg-greyknights/foundry/actors/gk-incognito.json create mode 100644 wg-greyknights/foundry/actors/gk-power-armour.json create mode 100644 wg-greyknights/foundry/actors/gk-terminator.json create mode 100644 wg-greyknights/scripts/auto-loadout.js create mode 100644 wg-greyknights/scripts/macros/gk-glow-toggle.js create mode 100644 wg-greyknights/scripts/macros/gk-import-from-module.js create mode 100644 wg-greyknights/scripts/macros/gk-loadout-manager.js diff --git a/wg-greyknights/LICENSE b/wg-greyknights/LICENSE new file mode 100644 index 0000000..fc3cb5c --- /dev/null +++ b/wg-greyknights/LICENSE @@ -0,0 +1 @@ +Homebrew content for personal table use. \ No newline at end of file diff --git a/wg-greyknights/README.txt b/wg-greyknights/README.txt new file mode 100644 index 0000000..7b6474e --- /dev/null +++ b/wg-greyknights/README.txt @@ -0,0 +1,14 @@ +# GK Grey Knight (Wrath & Glory) +This module installs homebrew Grey Knight content for the Wrath & Glory system. + +## Contents +- Items: Aegis Power Armour, Terminator Aegis (Grey Knights), Grey Knight Armour Integrated Storm Bolter, Nemesis Force Halberd, Aegis of Titan (Ability), Grey Knight (Archetype). +- Macros (scripts): Import from module, Loadout Manager, Aegis Glow Toggle. +- Preset Actors: GK – Incognito, GK – Power Armour, GK – Terminator (`foundry/actors/*.json`). + +## Install +1. Copy the `gk-greyknight` folder into `{UserData}/Data/modules/` and restart Foundry **or** use a manifest URL that points to `module.json`. +2. Enable **Grey Knight Add-on (Wrath & Glory)** in your World. +3. Go to *Configuration → Module Settings → Grey Knight Tools* to open the helper dialog. +4. Click **Import Items from Module** to populate your Items Directory. +5. Use **Loadout Manager** on a GK actor to switch between Incognito / Power Armour / Terminator. diff --git a/wg-greyknights/foundry/actors/gk-incognito.json b/wg-greyknights/foundry/actors/gk-incognito.json new file mode 100644 index 0000000..159bb63 --- /dev/null +++ b/wg-greyknights/foundry/actors/gk-incognito.json @@ -0,0 +1,1510 @@ +{ + "name": "GK – Incognito (Wrath & Glory)", + "type": "agent", + "img": "modules/wng-core/assets/tokens/adeptus-astartes.webp", + "system": { + "attributes": { + "strength": { + "label": "ATTRIBUTE.STRENGTH", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "toughness": { + "label": "ATTRIBUTE.TOUGHNESS", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "agility": { + "label": "ATTRIBUTE.AGILITY", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "initiative": { + "label": "ATTRIBUTE.INITIATIVE", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "willpower": { + "label": "ATTRIBUTE.WILLPOWER", + "rating": 0, + "base": 6, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intellect": { + "label": "ATTRIBUTE.INTELLECT", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "fellowship": { + "label": "ATTRIBUTE.FELLOWSHIP", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "skills": { + "athletics": { + "label": "SKILL.ATHLETICS", + "attribute": "strength", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "awareness": { + "label": "SKILL.AWARENESS", + "attribute": "intellect", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "ballisticSkill": { + "label": "SKILL.BALLISTIC_SKILL", + "attribute": "agility", + "rating": 1, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "cunning": { + "label": "SKILL.CUNNING", + "attribute": "fellowship", + "rating": 1, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "deception": { + "label": "SKILL.DECEPTION", + "attribute": "fellowship", + "rating": 4, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "insight": { + "label": "SKILL.INSIGHT", + "attribute": "fellowship", + "rating": 2, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intimidation": { + "label": "SKILL.INTIMIDATION", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "investigation": { + "label": "SKILL.INVESTIGATION", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "leadership": { + "label": "SKILL.LEADERSHIP", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "medicae": { + "label": "SKILL.MEDICAE", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "persuasion": { + "label": "SKILL.PERSUASION", + "attribute": "fellowship", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "pilot": { + "label": "SKILL.PILOT", + "attribute": "agility", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "psychicMastery": { + "label": "SKILL.PSYCHIC_MASTERY", + "attribute": "willpower", + "rating": 0, + "base": 4, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "scholar": { + "label": "SKILL.SCHOLAR", + "attribute": "intellect", + "rating": 0, + "base": 2, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "stealth": { + "label": "SKILL.STEALTH", + "attribute": "agility", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "survival": { + "label": "SKILL.SURVIVAL", + "attribute": "willpower", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "tech": { + "label": "SKILL.TECH", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "weaponSkill": { + "label": "SKILL.WEAPON_SKILL", + "attribute": "initiative", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "combat": { + "defence": { + "bonus": 0, + "total": 0 + }, + "resilience": { + "bonus": 0, + "total": 0 + }, + "wounds": { + "value": 13, + "bonus": 0, + "max": 0 + }, + "determination": { + "bonus": 0, + "total": 0, + "attribute": "toughness" + }, + "shock": { + "value": 0, + "bonus": 0, + "max": 0 + }, + "resolve": { + "bonus": 0, + "total": 0 + }, + "conviction": { + "bonus": 0, + "total": 0 + }, + "size": "average", + "speed": 7, + "fly": 0, + "passiveAwareness": { + "bonus": 0, + "total": 0 + }, + "stealth": 0 + }, + "bio": { + "species": "", + "faction": "", + "archetype": "", + "quote": "", + "height": "", + "eye": "", + "hair": "", + "origin": "Aggression and fury fuelled your Aspirant trials. You overcame every challenger with bloody-minded savagery, impressing your betters.", + "accomplishment": "You zealously shouldered a personal responsibility to destroy a particular foe; your chapter has given you leave to continue your grim work.", + "goal": "You uphold the Chapter’s valour, quick to extoll its virtues, never allowing a slight against your battle-brothers to go unanswered.", + "objective": "" + }, + "advances": { + "tier": 4, + "rank": 1 + }, + "experience": { + "current": 0, + "spent": 0, + "total": 400 + }, + "resources": { + "wrath": 2, + "faith": { + "current": 0, + "total": 0 + }, + "wealth": 0, + "influence": 2 + }, + "corruption": { + "current": 0 + }, + "notes": "", + "species": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.bopuSa837xwn9Wf2", + "id": "bopuSa837xwn9Wf2", + "name": "Adeptus Astartes" + }, + "faction": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.AkRz86k0vGqjwhd8", + "id": "AkRz86k0vGqjwhd8", + "name": "Adeptus Astartes" + }, + "archetype": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.K2u0Jig6jcIPAMrt", + "id": "K2u0Jig6jcIPAMrt", + "name": "Astartes Librarian" + }, + "settings": { + "generateMetaCurrencies": true, + "autoCalc": { + "defence": true, + "resilience": true, + "shock": true, + "awareness": true, + "resolve": true, + "determination": true, + "wounds": true, + "conviction": true + } + } + }, + "prototypeToken": { + "name": "Agent", + "displayName": 20, + "actorLink": true, + "width": 1, + "height": 1, + "texture": { + "src": "modules/wng-core/assets/tokens/generic.webp", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": 0, + "displayBars": 20, + "bar1": { + "attribute": "combat.wounds" + }, + "bar2": { + "attribute": "combat.shock" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": true, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": [], + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "items": [ + { + "name": "Grey Knight (Archetype)", + "type": "archetype", + "img": "icons/svg/book.svg", + "effects": [ + { + "_id": "UCAJgAo2eti0Q8fa", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-forsaken": { + "initialization-folder": "Archetypes", + "sort": 0 + }, + "core": {} + }, + "system": { + "tier": 4, + "journal": "DMmW708Q5AQvQfuy", + "species": { + "name": "Adeptus Astartes", + "id": "KpwHo0A92bR7iVMB" + }, + "faction": { + "name": "Adeptus Astartes", + "id": "CN5E9Z5GqfiR1MDn" + }, + "influence": 2, + "cost": 359, + "keywords": [ + "IMPERIUM", + "ADEPTUS ASTARTES", + "GREY KNIGHTS", + "INQUISITION", + "DAEMONHUNTERS", + "ORDO MALLEUS" + ], + "attributes": { + "strength": 5, + "toughness": 5, + "agility": 5, + "initiative": 5, + "willpower": 6, + "intellect": 3, + "fellowship": null + }, + "skills": { + "athletics": 3, + "awareness": 3, + "ballisticSkill": 5, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": 4, + "scholar": 2, + "stealth": 3, + "survival": 1, + "tech": null, + "weaponSkill": 5 + }, + "ability": { + "id": "", + "name": "Aegis of Titan", + "description": "Innate Purity: +1 vs Corruption. Aegis Synergy: +1 vs Corruption while equipped with Aegis armour. Re-roll 1 die on Deny the Witch each round." + }, + "wargear": { + "structure": { + "type": "and", + "groupId": "root", + "id": "root", + "options": [ + { + "type": "option", + "index": 0, + "groupId": "cj0fha0grf41pcv4", + "id": "cj0fha0grf41pcv4" + }, + { + "type": "option", + "index": 1, + "groupId": "a89wca5qifs6kga9", + "id": "a89wca5qifs6kga9" + }, + { + "type": "option", + "index": 2, + "groupId": "7za8qa72jedhuct9", + "id": "7za8qa72jedhuct9" + }, + { + "type": "option", + "index": 3, + "groupId": "q3jc5brs0mr50azx", + "id": "q3jc5brs0mr50azx" + }, + { + "type": "option", + "index": 4, + "groupId": "lz6z45ef5goceln6", + "id": "lz6z45ef5goceln6" + }, + { + "type": "option", + "index": 5, + "groupId": "xuev8a8qyfhywpzn", + "id": "xuev8a8qyfhywpzn" + } + ] + }, + "options": [ + { + "name": "Mk VII Astartes Power Armour", + "type": "item", + "id": "cj0fha0grf41pcv4", + "diff": { + "name": "Mk VII Astartes Power Armour" + }, + "documentId": "7Bp1rDIfKEB2MB9N", + "idType": "id", + "filters": [] + }, + { + "name": "Psychic Hood", + "type": "item", + "id": "a89wca5qifs6kga9", + "diff": { + "name": "Psychic Hood" + }, + "documentId": "qKIlaAhu9RZ63l1N", + "idType": "id", + "filters": [] + }, + { + "name": "Bolt Pistol", + "type": "item", + "id": "7za8qa72jedhuct9", + "diff": { + "name": "Bolt Pistol" + }, + "documentId": "7b2xcPWBB7up65PM", + "idType": "id", + "filters": [] + }, + { + "name": "Force Stave", + "type": "item", + "id": "q3jc5brs0mr50azx", + "diff": { + "name": "Force Stave" + }, + "documentId": "9vfkaU0vc61t7hKO", + "idType": "id", + "filters": [] + }, + { + "name": "Frag Grenades", + "type": "item", + "id": "lz6z45ef5goceln6", + "diff": { + "name": "Frag Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "oDG9YpSKSiSUFLIY", + "idType": "id", + "filters": [] + }, + { + "name": "Krak Grenades", + "type": "item", + "id": "xuev8a8qyfhywpzn", + "diff": { + "name": "Krak Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "SJ8UaYHEMtF71W1M", + "idType": "id", + "filters": [] + } + ], + "freeItems": [ + { + "id": "", + "name": "Nemesis Force Halberd" + }, + { + "id": "", + "name": "Aegis Power Armour" + }, + { + "id": "", + "name": "Grey Knight Armour Integrated Storm Bolter" + }, + { + "id": "", + "name": "Aegis of Titan (Ability)" + }, + { + "id": "", + "name": "Frag Grenade" + }, + { + "id": "", + "name": "Krak Grenade" + }, + { + "id": "", + "name": "Trinket (Chapter Relic Shard)" + } + ] + }, + "suggested": { + "attributes": { + "strength": null, + "toughness": null, + "agility": null, + "initiative": null, + "willpower": null, + "intellect": null, + "fellowship": null + }, + "skills": { + "athletics": null, + "awareness": null, + "ballisticSkill": null, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": null, + "scholar": null, + "stealth": null, + "survival": null, + "tech": null, + "weaponSkill": null + }, + "talents": { + "list": [] + } + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755771384639, + "modifiedTime": 1755771384639, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.TCmE7YmUDUVQ3xoz", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "1OeeoGAdyDN0ZOCB" + }, + { + "name": "Aegis of Titan (Ability)", + "type": "ability", + "img": "icons/svg/aura.svg", + "_id": "GKLSQZgvH7wy5fga", + "effects": [ + { + "_id": "6BN0mFfiXKUetIna", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + }, + { + "_id": "FZ5yhEgFXvwE2IGG", + "name": "Aegis of Titan — Aegis Synergy", + "icon": "icons/svg/upgrade.svg", + "origin": "", + "disabled": true, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "core": {} + }, + "system": { + "description": "Innate purity (+1 vs Corruption). While equipped with Aegis armour, enable Synergy for an additional +1 vs Corruption.", + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS" + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + { + "name": "Nemesis Force Halberd", + "type": "weapon", + "img": "icons/svg/sword.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "uncommon", + "description": "Force Staves are laced with a complex psy-matrix that allows them to act as a psychic battery, storing psychic energy that can be released with brutal efficiency.

Nemesis: vs DAEMON/PSYKER: +1 ED (homebrew). Two‑Handed.

", + "value": 2, + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS, MELEE, FORCE", + "equipped": false, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 4, + "bonus": 0, + "rank": 0, + "ap": { + "base": -1, + "bonus": 0, + "rank": 0 + }, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "melee", + "range": { + "short": 0, + "medium": 0, + "long": 0, + "melee": 2, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 0, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "force" + }, + { + "name": "twoHanded" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779931196, + "modifiedTime": 1755779931196, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.9vfkaU0vc61t7hKO", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "wog0jjVt6MsJft9E" + }, + { + "name": "Grey Knight Armour Integrated Storm Bolter", + "type": "weapon", + "img": "icons/svg/gun.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "rare", + "description": "

Integrated forearm storm bolter. Integrated: does not occupy hands; may fire while wielding two‑handed melee. Treat as Pistol for firing in melee.

", + "value": 4, + "keywords": "BOLT, INTEGRATED, IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS", + "equipped": false, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 10, + "bonus": 0, + "rank": 0, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "ranged", + "range": { + "short": 12, + "medium": 24, + "long": 36, + "melee": 1, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 1, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "pistol" + }, + { + "name": "rapidFire", + "rating": "2" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779945407, + "modifiedTime": 1755779945407, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.Seza6hxnXhHInk8m", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "HcNdlyNC0N47aK74" + }, + { + "name": "Pilgrim Astartes Plate", + "type": "armour", + "img": "modules/wng-core/assets/icons/armour/terminator-armour.webp", + "effects": [ + { + "_id": "7AHrAtkdWpAc4P7Y", + "name": "Pilgrim Disguise Penalties", + "icon": "icons/svg/downgrade.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "changes": [ + { + "key": "system.attributes.agility.bonus", + "mode": 2, + "value": -1, + "priority": 20 + }, + { + "key": "system.skills.stealth.bonus", + "mode": 2, + "value": -1, + "priority": 20 + }, + { + "key": "system.combat.speed", + "mode": 2, + "value": -1, + "priority": 20 + } + ], + "tint": null, + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-core": { + "initialization-folder": "Armour", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "rare", + "description": "

Scavenged Black Templars plate, patched & lightened. Designed for incognito operations.

", + "value": 6, + "keywords": "POWERED, IMPERIUM, ADEPTUS ASTARTES, BLACK TEMPLARS (DISGUISE)", + "equipped": true, + "rating": 4, + "base": 0, + "traits": { + "list": [ + { + "name": "cumbersome" + }, + { + "name": "powered", + "rating": "1" + } + ] + }, + "invulnerable": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779886550, + "modifiedTime": 1755779886550, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.sTGTpOfbIveLcFul", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "9ezJaoYBgiyjj5KS" + }, + { + "_id": "HJzQuyAhjhGDmWGx", + "name": "Frag Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "XbpyISBNDdidYXqC", + "name": "Krak Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "Tn5t5evGNu8BVLfT", + "name": "Trinket (Chapter Relic Shard)", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + } + ], + "effects": [ + { + "name": "Locus of Fury", + "img": "modules/wng-core/assets/icons/talents/talent.webp", + "_id": "cEl52cY8IDHhY2SK", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained", + "radius": "2" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + }, + "filter": "return this.actor.appliedEffects.find(i => i.name == this.effect.name);" + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [ + { + "script": "if (args.weapon?.system.isMelee)\n{\n\targs.result.text[this.effect.id] = {label : this.effect.name, description : \"May reroll 1s\"};\n}", + "label": "Roll Weapon", + "trigger": "rollWeaponTest", + "options": { + "targeter": false, + "deleteEffect": false, + "defending": false + }, + "async": false + } + ], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {}, + "item": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX.Item.77qzfl7j20nrrfzd", + "area": "Scene.sZLjRwaoAx1qxFho.MeasuredTemplate.pg1Nrj3y8GDSgbVa" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": 1, + "startTurn": 1 + }, + "description": "", + "origin": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX", + "tint": "#ffffff", + "transfer": false, + "statuses": [ + "locus-of-fury" + ], + "sort": 0, + "flags": { + "wrath-and-glory": { + "manualEffectKeys": false + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772134410, + "modifiedTime": 1755772134410, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "wounded" + ], + "name": "Wounded", + "img": "systems/wrath-and-glory/assets/icons/effects/wounded.svg", + "system": { + "scriptData": [ + { + "trigger": "dialog", + "script": "args.fields.difficulty += 1", + "label": "+1 DN to all Tests", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "RLF3R4vroOZc4whR", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772178022, + "modifiedTime": 1755772178022, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "prone" + ], + "name": "Prone", + "img": "systems/wrath-and-glory/assets/icons/conditions/prone.svg", + "flags": {}, + "_id": "qKffnfYrusJER2qd", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772194710, + "modifiedTime": 1755772194710, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "dying" + ], + "name": "Dying", + "img": "systems/wrath-and-glory/assets/icons/effects/dying.svg", + "system": { + "scriptData": [ + { + "label": "Extra Wrath Die", + "script": "args.fields.wrath++;", + "trigger": "dialog", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "3JAyyplDcT4eN4vY", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772195017, + "modifiedTime": 1755772195017, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + } + ], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755210527459, + "modifiedTime": 1755779824756, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Actor.7dDQIJwkjh6UI1xY", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "N8qssNC8Zw9yvpHZ" +} \ No newline at end of file diff --git a/wg-greyknights/foundry/actors/gk-power-armour.json b/wg-greyknights/foundry/actors/gk-power-armour.json new file mode 100644 index 0000000..7e4edd8 --- /dev/null +++ b/wg-greyknights/foundry/actors/gk-power-armour.json @@ -0,0 +1,1524 @@ +{ + "name": "GK – Power Armour (Wrath & Glory)", + "type": "agent", + "img": "modules/wng-core/assets/tokens/adeptus-astartes.webp", + "system": { + "attributes": { + "strength": { + "label": "ATTRIBUTE.STRENGTH", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "toughness": { + "label": "ATTRIBUTE.TOUGHNESS", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "agility": { + "label": "ATTRIBUTE.AGILITY", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "initiative": { + "label": "ATTRIBUTE.INITIATIVE", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "willpower": { + "label": "ATTRIBUTE.WILLPOWER", + "rating": 0, + "base": 6, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intellect": { + "label": "ATTRIBUTE.INTELLECT", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "fellowship": { + "label": "ATTRIBUTE.FELLOWSHIP", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "skills": { + "athletics": { + "label": "SKILL.ATHLETICS", + "attribute": "strength", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "awareness": { + "label": "SKILL.AWARENESS", + "attribute": "intellect", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "ballisticSkill": { + "label": "SKILL.BALLISTIC_SKILL", + "attribute": "agility", + "rating": 1, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "cunning": { + "label": "SKILL.CUNNING", + "attribute": "fellowship", + "rating": 1, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "deception": { + "label": "SKILL.DECEPTION", + "attribute": "fellowship", + "rating": 4, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "insight": { + "label": "SKILL.INSIGHT", + "attribute": "fellowship", + "rating": 2, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intimidation": { + "label": "SKILL.INTIMIDATION", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "investigation": { + "label": "SKILL.INVESTIGATION", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "leadership": { + "label": "SKILL.LEADERSHIP", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "medicae": { + "label": "SKILL.MEDICAE", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "persuasion": { + "label": "SKILL.PERSUASION", + "attribute": "fellowship", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "pilot": { + "label": "SKILL.PILOT", + "attribute": "agility", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "psychicMastery": { + "label": "SKILL.PSYCHIC_MASTERY", + "attribute": "willpower", + "rating": 0, + "base": 4, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "scholar": { + "label": "SKILL.SCHOLAR", + "attribute": "intellect", + "rating": 0, + "base": 2, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "stealth": { + "label": "SKILL.STEALTH", + "attribute": "agility", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "survival": { + "label": "SKILL.SURVIVAL", + "attribute": "willpower", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "tech": { + "label": "SKILL.TECH", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "weaponSkill": { + "label": "SKILL.WEAPON_SKILL", + "attribute": "initiative", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "combat": { + "defence": { + "bonus": 0, + "total": 0 + }, + "resilience": { + "bonus": 0, + "total": 0 + }, + "wounds": { + "value": 13, + "bonus": 0, + "max": 0 + }, + "determination": { + "bonus": 0, + "total": 0, + "attribute": "toughness" + }, + "shock": { + "value": 0, + "bonus": 0, + "max": 0 + }, + "resolve": { + "bonus": 0, + "total": 0 + }, + "conviction": { + "bonus": 0, + "total": 0 + }, + "size": "average", + "speed": 7, + "fly": 0, + "passiveAwareness": { + "bonus": 0, + "total": 0 + }, + "stealth": 0 + }, + "bio": { + "species": "", + "faction": "", + "archetype": "", + "quote": "", + "height": "", + "eye": "", + "hair": "", + "origin": "Aggression and fury fuelled your Aspirant trials. You overcame every challenger with bloody-minded savagery, impressing your betters.", + "accomplishment": "You zealously shouldered a personal responsibility to destroy a particular foe; your chapter has given you leave to continue your grim work.", + "goal": "You uphold the Chapter’s valour, quick to extoll its virtues, never allowing a slight against your battle-brothers to go unanswered.", + "objective": "" + }, + "advances": { + "tier": 4, + "rank": 1 + }, + "experience": { + "current": 0, + "spent": 0, + "total": 400 + }, + "resources": { + "wrath": 2, + "faith": { + "current": 0, + "total": 0 + }, + "wealth": 0, + "influence": 2 + }, + "corruption": { + "current": 0 + }, + "notes": "", + "species": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.bopuSa837xwn9Wf2", + "id": "bopuSa837xwn9Wf2", + "name": "Adeptus Astartes" + }, + "faction": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.AkRz86k0vGqjwhd8", + "id": "AkRz86k0vGqjwhd8", + "name": "Adeptus Astartes" + }, + "archetype": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.K2u0Jig6jcIPAMrt", + "id": "K2u0Jig6jcIPAMrt", + "name": "Astartes Librarian" + }, + "settings": { + "generateMetaCurrencies": true, + "autoCalc": { + "defence": true, + "resilience": true, + "shock": true, + "awareness": true, + "resolve": true, + "determination": true, + "wounds": true, + "conviction": true + } + } + }, + "prototypeToken": { + "name": "Agent", + "displayName": 20, + "actorLink": true, + "width": 1, + "height": 1, + "texture": { + "src": "modules/wng-core/assets/tokens/generic.webp", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": 0, + "displayBars": 20, + "bar1": { + "attribute": "combat.wounds" + }, + "bar2": { + "attribute": "combat.shock" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": true, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": [], + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "items": [ + { + "name": "Grey Knight (Archetype)", + "type": "archetype", + "img": "icons/svg/book.svg", + "effects": [ + { + "_id": "PSpcD4WlCBan4Fim", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-forsaken": { + "initialization-folder": "Archetypes", + "sort": 0 + }, + "core": {} + }, + "system": { + "tier": 4, + "journal": "DMmW708Q5AQvQfuy", + "species": { + "name": "Adeptus Astartes", + "id": "KpwHo0A92bR7iVMB" + }, + "faction": { + "name": "Adeptus Astartes", + "id": "CN5E9Z5GqfiR1MDn" + }, + "influence": 2, + "cost": 359, + "keywords": [ + "IMPERIUM", + "ADEPTUS ASTARTES", + "GREY KNIGHTS", + "INQUISITION", + "DAEMONHUNTERS", + "ORDO MALLEUS" + ], + "attributes": { + "strength": 5, + "toughness": 5, + "agility": 5, + "initiative": 5, + "willpower": 6, + "intellect": 3, + "fellowship": null + }, + "skills": { + "athletics": 3, + "awareness": 3, + "ballisticSkill": 5, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": 4, + "scholar": 2, + "stealth": 3, + "survival": 1, + "tech": null, + "weaponSkill": 5 + }, + "ability": { + "id": "", + "name": "Aegis of Titan", + "description": "Innate Purity: +1 vs Corruption. Aegis Synergy: +1 vs Corruption while equipped with Aegis armour. Re-roll 1 die on Deny the Witch each round." + }, + "wargear": { + "structure": { + "type": "and", + "groupId": "root", + "id": "root", + "options": [ + { + "type": "option", + "index": 0, + "groupId": "cj0fha0grf41pcv4", + "id": "cj0fha0grf41pcv4" + }, + { + "type": "option", + "index": 1, + "groupId": "a89wca5qifs6kga9", + "id": "a89wca5qifs6kga9" + }, + { + "type": "option", + "index": 2, + "groupId": "7za8qa72jedhuct9", + "id": "7za8qa72jedhuct9" + }, + { + "type": "option", + "index": 3, + "groupId": "q3jc5brs0mr50azx", + "id": "q3jc5brs0mr50azx" + }, + { + "type": "option", + "index": 4, + "groupId": "lz6z45ef5goceln6", + "id": "lz6z45ef5goceln6" + }, + { + "type": "option", + "index": 5, + "groupId": "xuev8a8qyfhywpzn", + "id": "xuev8a8qyfhywpzn" + } + ] + }, + "options": [ + { + "name": "Mk VII Astartes Power Armour", + "type": "item", + "id": "cj0fha0grf41pcv4", + "diff": { + "name": "Mk VII Astartes Power Armour" + }, + "documentId": "7Bp1rDIfKEB2MB9N", + "idType": "id", + "filters": [] + }, + { + "name": "Psychic Hood", + "type": "item", + "id": "a89wca5qifs6kga9", + "diff": { + "name": "Psychic Hood" + }, + "documentId": "qKIlaAhu9RZ63l1N", + "idType": "id", + "filters": [] + }, + { + "name": "Bolt Pistol", + "type": "item", + "id": "7za8qa72jedhuct9", + "diff": { + "name": "Bolt Pistol" + }, + "documentId": "7b2xcPWBB7up65PM", + "idType": "id", + "filters": [] + }, + { + "name": "Force Stave", + "type": "item", + "id": "q3jc5brs0mr50azx", + "diff": { + "name": "Force Stave" + }, + "documentId": "9vfkaU0vc61t7hKO", + "idType": "id", + "filters": [] + }, + { + "name": "Frag Grenades", + "type": "item", + "id": "lz6z45ef5goceln6", + "diff": { + "name": "Frag Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "oDG9YpSKSiSUFLIY", + "idType": "id", + "filters": [] + }, + { + "name": "Krak Grenades", + "type": "item", + "id": "xuev8a8qyfhywpzn", + "diff": { + "name": "Krak Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "SJ8UaYHEMtF71W1M", + "idType": "id", + "filters": [] + } + ], + "freeItems": [ + { + "id": "", + "name": "Nemesis Force Halberd" + }, + { + "id": "", + "name": "Aegis Power Armour" + }, + { + "id": "", + "name": "Grey Knight Armour Integrated Storm Bolter" + }, + { + "id": "", + "name": "Aegis of Titan (Ability)" + }, + { + "id": "", + "name": "Frag Grenade" + }, + { + "id": "", + "name": "Krak Grenade" + }, + { + "id": "", + "name": "Trinket (Chapter Relic Shard)" + } + ] + }, + "suggested": { + "attributes": { + "strength": null, + "toughness": null, + "agility": null, + "initiative": null, + "willpower": null, + "intellect": null, + "fellowship": null + }, + "skills": { + "athletics": null, + "awareness": null, + "ballisticSkill": null, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": null, + "scholar": null, + "stealth": null, + "survival": null, + "tech": null, + "weaponSkill": null + }, + "talents": { + "list": [] + } + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755771384639, + "modifiedTime": 1755771384639, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.TCmE7YmUDUVQ3xoz", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "dIBKMWx91kuxC75q" + }, + { + "name": "Aegis of Titan (Ability)", + "type": "ability", + "img": "icons/svg/aura.svg", + "_id": "vEJ99phUiKzQZe4D", + "effects": [ + { + "_id": "LmBxbS0gVDershQ2", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + }, + { + "_id": "MgPxyyENWwHiCb0L", + "name": "Aegis of Titan — Aegis Synergy", + "icon": "icons/svg/upgrade.svg", + "origin": "", + "disabled": true, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "core": {} + }, + "system": { + "description": "Innate purity (+1 vs Corruption). While equipped with Aegis armour, enable Synergy for an additional +1 vs Corruption.", + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS" + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + { + "name": "Nemesis Force Halberd", + "type": "weapon", + "img": "icons/svg/sword.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "uncommon", + "description": "Force Staves are laced with a complex psy-matrix that allows them to act as a psychic battery, storing psychic energy that can be released with brutal efficiency.

Nemesis: vs DAEMON/PSYKER: +1 ED (homebrew). Two‑Handed.

", + "value": 2, + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS, MELEE, FORCE", + "equipped": true, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 4, + "bonus": 0, + "rank": 0, + "ap": { + "base": -1, + "bonus": 0, + "rank": 0 + }, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "melee", + "range": { + "short": 0, + "medium": 0, + "long": 0, + "melee": 2, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 0, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "force" + }, + { + "name": "twoHanded" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779931196, + "modifiedTime": 1755779931196, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.9vfkaU0vc61t7hKO", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "cA1XOMXuJsVcE5bJ" + }, + { + "name": "Grey Knight Armour Integrated Storm Bolter", + "type": "weapon", + "img": "icons/svg/gun.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "rare", + "description": "

Integrated forearm storm bolter. Integrated: does not occupy hands; may fire while wielding two‑handed melee. Treat as Pistol for firing in melee.

", + "value": 4, + "keywords": "BOLT, INTEGRATED, IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS", + "equipped": true, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 10, + "bonus": 0, + "rank": 0, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "ranged", + "range": { + "short": 12, + "medium": 24, + "long": 36, + "melee": 1, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 1, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "pistol" + }, + { + "name": "rapidFire", + "rating": "2" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779945407, + "modifiedTime": 1755779945407, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.Seza6hxnXhHInk8m", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "G9mDQXfWiPFffxKf" + }, + { + "name": "Aegis Power Armour", + "type": "armour", + "img": "icons/svg/shield.svg", + "effects": [ + { + "_id": "Fs1wyvBoGNpL5jbu", + "name": "Aegis Wards (Constant)", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.skills.psychicMastery.bonus", + "mode": 2, + "value": 1, + "priority": 20 + }, + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "tint": null, + "transfer": true, + "flags": {} + }, + { + "_id": "8pL8X7ldb71BUDt9", + "name": "Aegis Warding Runes (Toggle)", + "icon": "icons/svg/explosion.svg", + "origin": "", + "disabled": true, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resilience.bonus", + "mode": 2, + "value": 1, + "priority": 20 + }, + { + "key": "system.combat.defence.bonus", + "mode": 2, + "value": -1, + "priority": 20 + } + ], + "tint": null, + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-core": { + "initialization-folder": "Armour", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "veryRare", + "description": "

Grey Knights sanctified power armour with hexagrammic wards and storm bolter forearm mount.

", + "value": 9, + "keywords": "POWERED, IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS", + "equipped": true, + "rating": 5, + "base": 0, + "traits": { + "list": [ + { + "name": "powered", + "rating": "3" + } + ] + }, + "invulnerable": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779886550, + "modifiedTime": 1755779886550, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.sTGTpOfbIveLcFul", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "3x3vvss3lMQj9JAC" + }, + { + "_id": "LvBusSMO6j2l9GBN", + "name": "Frag Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "vjM91rbBXNNZ9lUC", + "name": "Krak Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "RmBzhSRx6hOr5d2F", + "name": "Trinket (Chapter Relic Shard)", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + } + ], + "effects": [ + { + "name": "Locus of Fury", + "img": "modules/wng-core/assets/icons/talents/talent.webp", + "_id": "cEl52cY8IDHhY2SK", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained", + "radius": "2" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + }, + "filter": "return this.actor.appliedEffects.find(i => i.name == this.effect.name);" + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [ + { + "script": "if (args.weapon?.system.isMelee)\n{\n\targs.result.text[this.effect.id] = {label : this.effect.name, description : \"May reroll 1s\"};\n}", + "label": "Roll Weapon", + "trigger": "rollWeaponTest", + "options": { + "targeter": false, + "deleteEffect": false, + "defending": false + }, + "async": false + } + ], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {}, + "item": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX.Item.77qzfl7j20nrrfzd", + "area": "Scene.sZLjRwaoAx1qxFho.MeasuredTemplate.pg1Nrj3y8GDSgbVa" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": 1, + "startTurn": 1 + }, + "description": "", + "origin": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX", + "tint": "#ffffff", + "transfer": false, + "statuses": [ + "locus-of-fury" + ], + "sort": 0, + "flags": { + "wrath-and-glory": { + "manualEffectKeys": false + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772134410, + "modifiedTime": 1755772134410, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "wounded" + ], + "name": "Wounded", + "img": "systems/wrath-and-glory/assets/icons/effects/wounded.svg", + "system": { + "scriptData": [ + { + "trigger": "dialog", + "script": "args.fields.difficulty += 1", + "label": "+1 DN to all Tests", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "RLF3R4vroOZc4whR", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772178022, + "modifiedTime": 1755772178022, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "prone" + ], + "name": "Prone", + "img": "systems/wrath-and-glory/assets/icons/conditions/prone.svg", + "flags": {}, + "_id": "qKffnfYrusJER2qd", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772194710, + "modifiedTime": 1755772194710, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "dying" + ], + "name": "Dying", + "img": "systems/wrath-and-glory/assets/icons/effects/dying.svg", + "system": { + "scriptData": [ + { + "label": "Extra Wrath Die", + "script": "args.fields.wrath++;", + "trigger": "dialog", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "3JAyyplDcT4eN4vY", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772195017, + "modifiedTime": 1755772195017, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + } + ], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755210527459, + "modifiedTime": 1755779824756, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Actor.7dDQIJwkjh6UI1xY", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "KsXTkqySfV74fRGB" +} \ No newline at end of file diff --git a/wg-greyknights/foundry/actors/gk-terminator.json b/wg-greyknights/foundry/actors/gk-terminator.json new file mode 100644 index 0000000..a509ec5 --- /dev/null +++ b/wg-greyknights/foundry/actors/gk-terminator.json @@ -0,0 +1,1527 @@ +{ + "name": "GK – Terminator (Wrath & Glory)", + "type": "agent", + "img": "modules/wng-core/assets/tokens/adeptus-astartes.webp", + "system": { + "attributes": { + "strength": { + "label": "ATTRIBUTE.STRENGTH", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "toughness": { + "label": "ATTRIBUTE.TOUGHNESS", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "agility": { + "label": "ATTRIBUTE.AGILITY", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "initiative": { + "label": "ATTRIBUTE.INITIATIVE", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "willpower": { + "label": "ATTRIBUTE.WILLPOWER", + "rating": 0, + "base": 6, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intellect": { + "label": "ATTRIBUTE.INTELLECT", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "fellowship": { + "label": "ATTRIBUTE.FELLOWSHIP", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "skills": { + "athletics": { + "label": "SKILL.ATHLETICS", + "attribute": "strength", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "awareness": { + "label": "SKILL.AWARENESS", + "attribute": "intellect", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "ballisticSkill": { + "label": "SKILL.BALLISTIC_SKILL", + "attribute": "agility", + "rating": 1, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "cunning": { + "label": "SKILL.CUNNING", + "attribute": "fellowship", + "rating": 1, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "deception": { + "label": "SKILL.DECEPTION", + "attribute": "fellowship", + "rating": 4, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "insight": { + "label": "SKILL.INSIGHT", + "attribute": "fellowship", + "rating": 2, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "intimidation": { + "label": "SKILL.INTIMIDATION", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "investigation": { + "label": "SKILL.INVESTIGATION", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "leadership": { + "label": "SKILL.LEADERSHIP", + "attribute": "willpower", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "medicae": { + "label": "SKILL.MEDICAE", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "persuasion": { + "label": "SKILL.PERSUASION", + "attribute": "fellowship", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "pilot": { + "label": "SKILL.PILOT", + "attribute": "agility", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "psychicMastery": { + "label": "SKILL.PSYCHIC_MASTERY", + "attribute": "willpower", + "rating": 0, + "base": 4, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "scholar": { + "label": "SKILL.SCHOLAR", + "attribute": "intellect", + "rating": 0, + "base": 2, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "stealth": { + "label": "SKILL.STEALTH", + "attribute": "agility", + "rating": 0, + "base": 3, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "survival": { + "label": "SKILL.SURVIVAL", + "attribute": "willpower", + "rating": 0, + "base": 1, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "tech": { + "label": "SKILL.TECH", + "attribute": "intellect", + "rating": 0, + "base": 0, + "bonus": 0, + "cost": 0, + "total": 0 + }, + "weaponSkill": { + "label": "SKILL.WEAPON_SKILL", + "attribute": "initiative", + "rating": 0, + "base": 5, + "bonus": 0, + "cost": 0, + "total": 0 + } + }, + "combat": { + "defence": { + "bonus": 0, + "total": 0 + }, + "resilience": { + "bonus": 0, + "total": 0 + }, + "wounds": { + "value": 13, + "bonus": 0, + "max": 0 + }, + "determination": { + "bonus": 0, + "total": 0, + "attribute": "toughness" + }, + "shock": { + "value": 0, + "bonus": 0, + "max": 0 + }, + "resolve": { + "bonus": 0, + "total": 0 + }, + "conviction": { + "bonus": 0, + "total": 0 + }, + "size": "average", + "speed": 7, + "fly": 0, + "passiveAwareness": { + "bonus": 0, + "total": 0 + }, + "stealth": 0 + }, + "bio": { + "species": "", + "faction": "", + "archetype": "", + "quote": "", + "height": "", + "eye": "", + "hair": "", + "origin": "Aggression and fury fuelled your Aspirant trials. You overcame every challenger with bloody-minded savagery, impressing your betters.", + "accomplishment": "You zealously shouldered a personal responsibility to destroy a particular foe; your chapter has given you leave to continue your grim work.", + "goal": "You uphold the Chapter’s valour, quick to extoll its virtues, never allowing a slight against your battle-brothers to go unanswered.", + "objective": "" + }, + "advances": { + "tier": 4, + "rank": 1 + }, + "experience": { + "current": 0, + "spent": 0, + "total": 400 + }, + "resources": { + "wrath": 2, + "faith": { + "current": 0, + "total": 0 + }, + "wealth": 0, + "influence": 2 + }, + "corruption": { + "current": 0 + }, + "notes": "", + "species": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.bopuSa837xwn9Wf2", + "id": "bopuSa837xwn9Wf2", + "name": "Adeptus Astartes" + }, + "faction": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.AkRz86k0vGqjwhd8", + "id": "AkRz86k0vGqjwhd8", + "name": "Adeptus Astartes" + }, + "archetype": { + "uuid": "Actor.7dDQIJwkjh6UI1xY.Item.K2u0Jig6jcIPAMrt", + "id": "K2u0Jig6jcIPAMrt", + "name": "Astartes Librarian" + }, + "settings": { + "generateMetaCurrencies": true, + "autoCalc": { + "defence": true, + "resilience": true, + "shock": true, + "awareness": true, + "resolve": true, + "determination": true, + "wounds": true, + "conviction": true + } + } + }, + "prototypeToken": { + "name": "Agent", + "displayName": 20, + "actorLink": true, + "width": 1, + "height": 1, + "texture": { + "src": "modules/wng-core/assets/tokens/generic.webp", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "tint": "#ffffff", + "alphaThreshold": 0.75 + }, + "lockRotation": false, + "rotation": 0, + "alpha": 1, + "disposition": 0, + "displayBars": 20, + "bar1": { + "attribute": "combat.wounds" + }, + "bar2": { + "attribute": "combat.shock" + }, + "light": { + "negative": false, + "priority": 0, + "alpha": 0.5, + "angle": 360, + "bright": 0, + "color": null, + "coloration": 1, + "dim": 0, + "attenuation": 0.5, + "luminosity": 0.5, + "saturation": 0, + "contrast": 0, + "shadows": 0, + "animation": { + "type": null, + "speed": 5, + "intensity": 5, + "reverse": false + }, + "darkness": { + "min": 0, + "max": 1 + } + }, + "sight": { + "enabled": true, + "range": 0, + "angle": 360, + "visionMode": "basic", + "color": null, + "attenuation": 0.1, + "brightness": 0, + "saturation": 0, + "contrast": 0 + }, + "detectionModes": [], + "occludable": { + "radius": 0 + }, + "ring": { + "enabled": false, + "colors": { + "ring": null, + "background": null + }, + "effects": 1, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "items": [ + { + "name": "Grey Knight (Archetype)", + "type": "archetype", + "img": "icons/svg/book.svg", + "effects": [ + { + "_id": "fBWPUvO94QWfD9gP", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-forsaken": { + "initialization-folder": "Archetypes", + "sort": 0 + }, + "core": {} + }, + "system": { + "tier": 4, + "journal": "DMmW708Q5AQvQfuy", + "species": { + "name": "Adeptus Astartes", + "id": "KpwHo0A92bR7iVMB" + }, + "faction": { + "name": "Adeptus Astartes", + "id": "CN5E9Z5GqfiR1MDn" + }, + "influence": 2, + "cost": 359, + "keywords": [ + "IMPERIUM", + "ADEPTUS ASTARTES", + "GREY KNIGHTS", + "INQUISITION", + "DAEMONHUNTERS", + "ORDO MALLEUS" + ], + "attributes": { + "strength": 5, + "toughness": 5, + "agility": 5, + "initiative": 5, + "willpower": 6, + "intellect": 3, + "fellowship": null + }, + "skills": { + "athletics": 3, + "awareness": 3, + "ballisticSkill": 5, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": 4, + "scholar": 2, + "stealth": 3, + "survival": 1, + "tech": null, + "weaponSkill": 5 + }, + "ability": { + "id": "", + "name": "Aegis of Titan", + "description": "Innate Purity: +1 vs Corruption. Aegis Synergy: +1 vs Corruption while equipped with Aegis armour. Re-roll 1 die on Deny the Witch each round." + }, + "wargear": { + "structure": { + "type": "and", + "groupId": "root", + "id": "root", + "options": [ + { + "type": "option", + "index": 0, + "groupId": "cj0fha0grf41pcv4", + "id": "cj0fha0grf41pcv4" + }, + { + "type": "option", + "index": 1, + "groupId": "a89wca5qifs6kga9", + "id": "a89wca5qifs6kga9" + }, + { + "type": "option", + "index": 2, + "groupId": "7za8qa72jedhuct9", + "id": "7za8qa72jedhuct9" + }, + { + "type": "option", + "index": 3, + "groupId": "q3jc5brs0mr50azx", + "id": "q3jc5brs0mr50azx" + }, + { + "type": "option", + "index": 4, + "groupId": "lz6z45ef5goceln6", + "id": "lz6z45ef5goceln6" + }, + { + "type": "option", + "index": 5, + "groupId": "xuev8a8qyfhywpzn", + "id": "xuev8a8qyfhywpzn" + } + ] + }, + "options": [ + { + "name": "Mk VII Astartes Power Armour", + "type": "item", + "id": "cj0fha0grf41pcv4", + "diff": { + "name": "Mk VII Astartes Power Armour" + }, + "documentId": "7Bp1rDIfKEB2MB9N", + "idType": "id", + "filters": [] + }, + { + "name": "Psychic Hood", + "type": "item", + "id": "a89wca5qifs6kga9", + "diff": { + "name": "Psychic Hood" + }, + "documentId": "qKIlaAhu9RZ63l1N", + "idType": "id", + "filters": [] + }, + { + "name": "Bolt Pistol", + "type": "item", + "id": "7za8qa72jedhuct9", + "diff": { + "name": "Bolt Pistol" + }, + "documentId": "7b2xcPWBB7up65PM", + "idType": "id", + "filters": [] + }, + { + "name": "Force Stave", + "type": "item", + "id": "q3jc5brs0mr50azx", + "diff": { + "name": "Force Stave" + }, + "documentId": "9vfkaU0vc61t7hKO", + "idType": "id", + "filters": [] + }, + { + "name": "Frag Grenades", + "type": "item", + "id": "lz6z45ef5goceln6", + "diff": { + "name": "Frag Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "oDG9YpSKSiSUFLIY", + "idType": "id", + "filters": [] + }, + { + "name": "Krak Grenades", + "type": "item", + "id": "xuev8a8qyfhywpzn", + "diff": { + "name": "Krak Grenades", + "data": { + "quantity": 3 + } + }, + "documentId": "SJ8UaYHEMtF71W1M", + "idType": "id", + "filters": [] + } + ], + "freeItems": [ + { + "id": "", + "name": "Nemesis Force Halberd" + }, + { + "id": "", + "name": "Aegis Power Armour" + }, + { + "id": "", + "name": "Grey Knight Armour Integrated Storm Bolter" + }, + { + "id": "", + "name": "Aegis of Titan (Ability)" + }, + { + "id": "", + "name": "Frag Grenade" + }, + { + "id": "", + "name": "Krak Grenade" + }, + { + "id": "", + "name": "Trinket (Chapter Relic Shard)" + } + ] + }, + "suggested": { + "attributes": { + "strength": null, + "toughness": null, + "agility": null, + "initiative": null, + "willpower": null, + "intellect": null, + "fellowship": null + }, + "skills": { + "athletics": null, + "awareness": null, + "ballisticSkill": null, + "cunning": null, + "deception": null, + "insight": null, + "intimidation": null, + "investigation": null, + "leadership": null, + "medicae": null, + "persuasion": null, + "pilot": null, + "psychicMastery": null, + "scholar": null, + "stealth": null, + "survival": null, + "tech": null, + "weaponSkill": null + }, + "talents": { + "list": [] + } + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755771384639, + "modifiedTime": 1755771384639, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.TCmE7YmUDUVQ3xoz", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "zpibVBqNq3NZjaxa" + }, + { + "name": "Aegis of Titan (Ability)", + "type": "ability", + "img": "icons/svg/aura.svg", + "_id": "9Gh0cRyzo8y9mpkU", + "effects": [ + { + "_id": "2dLV8WWlti4lWYam", + "name": "Aegis of Titan — Innate Purity", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + }, + { + "_id": "zKc9otfZ6urxV7rX", + "name": "Aegis of Titan — Aegis Synergy", + "icon": "icons/svg/upgrade.svg", + "origin": "", + "disabled": true, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "transfer": true, + "flags": {} + } + ], + "flags": { + "core": {} + }, + "system": { + "description": "Innate purity (+1 vs Corruption). While equipped with Aegis armour, enable Synergy for an additional +1 vs Corruption.", + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS" + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + { + "name": "Nemesis Force Halberd", + "type": "weapon", + "img": "icons/svg/sword.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "uncommon", + "description": "Force Staves are laced with a complex psy-matrix that allows them to act as a psychic battery, storing psychic energy that can be released with brutal efficiency.

Nemesis: vs DAEMON/PSYKER: +1 ED (homebrew). Two‑Handed.

", + "value": 2, + "keywords": "IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS, MELEE, FORCE", + "equipped": true, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 4, + "bonus": 0, + "rank": 0, + "ap": { + "base": -1, + "bonus": 0, + "rank": 0 + }, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "melee", + "range": { + "short": 0, + "medium": 0, + "long": 0, + "melee": 2, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 0, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "force" + }, + { + "name": "twoHanded" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779931196, + "modifiedTime": 1755779931196, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.9vfkaU0vc61t7hKO", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "Q66ABZYqDsgSc9Pc" + }, + { + "name": "Grey Knight Armour Integrated Storm Bolter", + "type": "weapon", + "img": "icons/svg/gun.svg", + "effects": [], + "flags": { + "wng-core": { + "initialization-folder": "Weapons", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "rare", + "description": "

Integrated forearm storm bolter. Integrated: does not occupy hands; may fire while wielding two‑handed melee. Treat as Pistol for firing in melee.

", + "value": 4, + "keywords": "BOLT, INTEGRATED, IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS", + "equipped": true, + "attack": { + "base": 0, + "bonus": 0, + "rank": "none" + }, + "damage": { + "base": 10, + "bonus": 0, + "rank": 0, + "ed": { + "base": 2, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "enabled": false, + "otherDamage": { + "mortal": "0", + "wounds": "0", + "shock": "0" + } + }, + "ed": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "ap": { + "base": 0, + "bonus": 0, + "rank": 0 + }, + "category": "ranged", + "range": { + "short": 12, + "medium": 24, + "long": 36, + "melee": 1, + "thrown": null + }, + "ammo": { + "id": "" + }, + "salvo": 1, + "traits": { + "list": [ + { + "name": "brutal" + }, + { + "name": "pistol" + }, + { + "name": "rapidFire", + "rating": "2" + } + ] + }, + "upgrades": [], + "otherDamage": {}, + "combi": {}, + "twinned": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779945407, + "modifiedTime": 1755779945407, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.Seza6hxnXhHInk8m", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "lBLbj0fFkDPlJBon" + }, + { + "name": "Terminator Aegis (Grey Knights)", + "type": "armour", + "img": "icons/svg/tower.svg", + "effects": [ + { + "_id": "Ty91VXRF6l6S4G1K", + "name": "Aegis Wards (Constant)", + "icon": "icons/svg/aura.svg", + "origin": "", + "disabled": false, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.skills.psychicMastery.bonus", + "mode": 2, + "value": 1, + "priority": 20 + }, + { + "key": "system.combat.resolve.bonus", + "mode": 2, + "value": 1, + "priority": 20 + } + ], + "tint": null, + "transfer": true, + "flags": {} + }, + { + "_id": "Gl4woU0oYBKVQv8w", + "name": "Aegis Warding Runes (Toggle)", + "icon": "icons/svg/explosion.svg", + "origin": "", + "disabled": true, + "duration": { + "startTime": null + }, + "changes": [ + { + "key": "system.combat.resilience.bonus", + "mode": 2, + "value": 1, + "priority": 20 + }, + { + "key": "system.combat.defence.bonus", + "mode": 2, + "value": -1, + "priority": 20 + } + ], + "tint": null, + "transfer": true, + "flags": {} + } + ], + "flags": { + "wng-core": { + "initialization-folder": "Armour", + "sort": 0 + }, + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "artifact", + "description": "

Grey Knights Tactical Dreadnought armour with Aegis wards and storm bolter hard‑mount.

", + "value": 10, + "keywords": "POWERED, IMPERIUM, ADEPTUS ASTARTES, GREY KNIGHTS, INQUISITION, DAEMONHUNTERS, ORDO MALLEUS", + "equipped": true, + "rating": 7, + "base": 0, + "traits": { + "list": [ + { + "name": "cumbersome" + }, + { + "name": "powered", + "rating": "4" + } + ] + }, + "invulnerable": false + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755779886550, + "modifiedTime": 1755779886550, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Item.sTGTpOfbIveLcFul", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "izMez0oUaAms8SPt" + }, + { + "_id": "SGPS0jsS22dlT7LA", + "name": "Frag Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "KDyKAQ06KFHGTS0d", + "name": "Krak Grenade", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + }, + { + "_id": "yNxMHvATQDJHg4W1", + "name": "Trinket (Chapter Relic Shard)", + "type": "gear", + "img": "icons/svg/item-bag.svg", + "effects": [], + "flags": { + "core": {} + }, + "system": { + "quantity": 1, + "rarity": "common", + "description": "", + "value": 0, + "keywords": "" + } + } + ], + "effects": [ + { + "name": "Locus of Fury", + "img": "modules/wng-core/assets/icons/talents/talent.webp", + "_id": "cEl52cY8IDHhY2SK", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained", + "radius": "2" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + }, + "filter": "return this.actor.appliedEffects.find(i => i.name == this.effect.name);" + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [ + { + "script": "if (args.weapon?.system.isMelee)\n{\n\targs.result.text[this.effect.id] = {label : this.effect.name, description : \"May reroll 1s\"};\n}", + "label": "Roll Weapon", + "trigger": "rollWeaponTest", + "options": { + "targeter": false, + "deleteEffect": false, + "defending": false + }, + "async": false + } + ], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {}, + "item": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX.Item.77qzfl7j20nrrfzd", + "area": "Scene.sZLjRwaoAx1qxFho.MeasuredTemplate.pg1Nrj3y8GDSgbVa" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": 1, + "startTurn": 1 + }, + "description": "", + "origin": "Scene.sZLjRwaoAx1qxFho.Token.x6mbo4zBaPPX7hr1.Actor.pOLQxCgUHAAEhfGX", + "tint": "#ffffff", + "transfer": false, + "statuses": [ + "locus-of-fury" + ], + "sort": 0, + "flags": { + "wrath-and-glory": { + "manualEffectKeys": false + } + }, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772134410, + "modifiedTime": 1755772134410, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "wounded" + ], + "name": "Wounded", + "img": "systems/wrath-and-glory/assets/icons/effects/wounded.svg", + "system": { + "scriptData": [ + { + "trigger": "dialog", + "script": "args.fields.difficulty += 1", + "label": "+1 DN to all Tests", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "RLF3R4vroOZc4whR", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772178022, + "modifiedTime": 1755772178022, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "prone" + ], + "name": "Prone", + "img": "systems/wrath-and-glory/assets/icons/conditions/prone.svg", + "flags": {}, + "_id": "qKffnfYrusJER2qd", + "type": "base", + "system": { + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "scriptData": [], + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772194710, + "modifiedTime": 1755772194710, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + }, + { + "statuses": [ + "dying" + ], + "name": "Dying", + "img": "systems/wrath-and-glory/assets/icons/effects/dying.svg", + "system": { + "scriptData": [ + { + "label": "Extra Wrath Die", + "script": "args.fields.wrath++;", + "trigger": "dialog", + "options": { + "activateScript": "return true;", + "targeter": false, + "defending": false, + "deleteEffect": false + }, + "async": false + } + ], + "transferData": { + "type": "document", + "originalType": "document", + "documentType": "Actor", + "avoidTest": { + "value": "none", + "opposed": false, + "prevention": true, + "reversed": false + }, + "testIndependent": false, + "equipTransfer": false, + "selfOnly": false, + "prompt": false, + "area": { + "templateData": { + "borderColor": null, + "fillColor": null, + "texture": null + }, + "keep": false, + "aura": { + "transferred": false, + "render": false + }, + "duration": "sustained" + }, + "zone": { + "type": "zone", + "transferred": false, + "traits": {}, + "skipImmediateOnPlacement": false, + "keep": false + } + }, + "itemTargetData": { + "ids": [], + "allItems": false + }, + "zone": { + "type": "zone", + "traits": {}, + "skipImmediateOnPlacement": false + }, + "sourceData": { + "test": {} + } + }, + "flags": {}, + "_id": "3JAyyplDcT4eN4vY", + "type": "base", + "changes": [], + "disabled": false, + "duration": { + "startTime": 1293836976000, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "sort": 0, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755772195017, + "modifiedTime": 1755772195017, + "lastModifiedBy": "8fThFXcxV83JCCcX" + } + } + ], + "folder": null, + "flags": {}, + "_stats": { + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1", + "createdTime": 1755210527459, + "modifiedTime": 1755779824756, + "lastModifiedBy": "8fThFXcxV83JCCcX", + "exportSource": { + "worldId": "gilead-wandg", + "uuid": "Actor.7dDQIJwkjh6UI1xY", + "coreVersion": "13.347", + "systemId": "wrath-and-glory", + "systemVersion": "7.1.1" + } + }, + "_id": "nPCczxKWvnq36tXF" +} \ No newline at end of file diff --git a/wg-greyknights/foundry/fvtt-Item-ability-aegis-of-titan_v5.json b/wg-greyknights/foundry/fvtt-Item-ability-aegis-of-titan_v5.json index a3534c2..b7833aa 100644 --- a/wg-greyknights/foundry/fvtt-Item-ability-aegis-of-titan_v5.json +++ b/wg-greyknights/foundry/fvtt-Item-ability-aegis-of-titan_v5.json @@ -2,10 +2,10 @@ "name": "Aegis of Titan (Ability)", "type": "ability", "img": "icons/svg/aura.svg", - "_id": "DaEMUDPe8wmrWz70", + "_id": "3SQI68UqiAewIU1y", "effects": [ { - "_id": "WD4ApIMZ3pnaPDtl", + "_id": "5suMwN6MqzHdEg4V", "name": "Aegis of Titan — Innate Purity", "icon": "icons/svg/aura.svg", "origin": "", @@ -25,7 +25,7 @@ "flags": {} }, { - "_id": "OybEJ8Tl1hRkI5zJ", + "_id": "Bp0mJSit3PToM3N3", "name": "Aegis of Titan — Aegis Synergy", "icon": "icons/svg/upgrade.svg", "origin": "", diff --git a/wg-greyknights/foundry/fvtt-Item-aegis-power-armour_v2.json b/wg-greyknights/foundry/fvtt-Item-aegis-power-armour_v2.json index 3d921a7..6d269b7 100644 --- a/wg-greyknights/foundry/fvtt-Item-aegis-power-armour_v2.json +++ b/wg-greyknights/foundry/fvtt-Item-aegis-power-armour_v2.json @@ -4,7 +4,7 @@ "img": "icons/svg/shield.svg", "effects": [ { - "_id": "25aqxUBwyQtSAdxb", + "_id": "WzCZif9l1GFukRaE", "name": "Aegis Wards (Constant)", "icon": "icons/svg/aura.svg", "origin": "", @@ -31,7 +31,7 @@ "flags": {} }, { - "_id": "LfRNsXknme6JLgSC", + "_id": "D27fn83cJnvlfpC4", "name": "Aegis Warding Runes (Toggle)", "icon": "icons/svg/explosion.svg", "origin": "", @@ -100,5 +100,5 @@ } }, "folder": "K59Lb8PvaCmIrviu", - "_id": "11NZTwYXPlHBlnXC" + "_id": "pTSF0G0Cvx4PzPXI" } \ No newline at end of file diff --git a/wg-greyknights/foundry/fvtt-Item-archetype-grey-knight_v5.json b/wg-greyknights/foundry/fvtt-Item-archetype-grey-knight_v5.json index 1a1bcee..51ad6d2 100644 --- a/wg-greyknights/foundry/fvtt-Item-archetype-grey-knight_v5.json +++ b/wg-greyknights/foundry/fvtt-Item-archetype-grey-knight_v5.json @@ -4,7 +4,7 @@ "img": "icons/svg/book.svg", "effects": [ { - "_id": "uMkkBfS2rRXluXA6", + "_id": "T0IpNmU0xjFwmcwr", "name": "Aegis of Titan — Innate Purity", "icon": "icons/svg/aura.svg", "origin": "", @@ -286,5 +286,5 @@ } }, "folder": "DEb55m6iVZ0NUOxA", - "_id": "qSv5JzFRjTYdw1zI" + "_id": "AhWvgUliU6XV5GFT" } \ No newline at end of file diff --git a/wg-greyknights/foundry/fvtt-Item-gk-armour-integrated-storm-bolter_v2.json b/wg-greyknights/foundry/fvtt-Item-gk-armour-integrated-storm-bolter_v2.json index 5231ed4..6f700e2 100644 --- a/wg-greyknights/foundry/fvtt-Item-gk-armour-integrated-storm-bolter_v2.json +++ b/wg-greyknights/foundry/fvtt-Item-gk-armour-integrated-storm-bolter_v2.json @@ -100,5 +100,5 @@ } }, "folder": "85dkcvhBYli5TJrZ", - "_id": "SDFwequVtp6WsCFj" + "_id": "1R3iq7EsPdCYkMiU" } \ No newline at end of file diff --git a/wg-greyknights/foundry/fvtt-Item-nemesis-force-halberd_v4.json b/wg-greyknights/foundry/fvtt-Item-nemesis-force-halberd_v4.json index e9bb82a..f3b34e6 100644 --- a/wg-greyknights/foundry/fvtt-Item-nemesis-force-halberd_v4.json +++ b/wg-greyknights/foundry/fvtt-Item-nemesis-force-halberd_v4.json @@ -99,5 +99,5 @@ } }, "folder": "85dkcvhBYli5TJrZ", - "_id": "NX6bWADcIa03iGCK" + "_id": "O68u3VzArlrZwwFb" } \ No newline at end of file diff --git a/wg-greyknights/foundry/fvtt-Item-terminator-aegis-gk_v4.json b/wg-greyknights/foundry/fvtt-Item-terminator-aegis-gk_v4.json index 3143458..03e60a9 100644 --- a/wg-greyknights/foundry/fvtt-Item-terminator-aegis-gk_v4.json +++ b/wg-greyknights/foundry/fvtt-Item-terminator-aegis-gk_v4.json @@ -4,7 +4,7 @@ "img": "icons/svg/tower.svg", "effects": [ { - "_id": "OvE7cPAtNLDdEj6j", + "_id": "0f6j24Bb5F9IltEj", "name": "Aegis Wards (Constant)", "icon": "icons/svg/aura.svg", "origin": "", @@ -31,7 +31,7 @@ "flags": {} }, { - "_id": "RXHERg7YjunnEQ8h", + "_id": "fABPJslze9yrrlcc", "name": "Aegis Warding Runes (Toggle)", "icon": "icons/svg/explosion.svg", "origin": "", @@ -103,5 +103,5 @@ } }, "folder": "K59Lb8PvaCmIrviu", - "_id": "9XTvCiJElW4LJij9" + "_id": "vq0e5MD7FXcEqQFi" } \ No newline at end of file diff --git a/wg-greyknights/module.json b/wg-greyknights/module.json index e69de29..b0636fb 100644 --- a/wg-greyknights/module.json +++ b/wg-greyknights/module.json @@ -0,0 +1,26 @@ +{ + "id": "gk-greyknight", + "title": "Grey Knight Add-on (Wrath & Glory)", + "description": "Homebrew Grey Knights kit for Wrath & Glory: archetype, Aegis armours, integrated storm bolter, Nemesis halberd, ability, macros, and preset actors.", + "version": "0.1.0", + "compatibility": { + "minimum": "13", + "verified": "13" + }, + "authors": [ + { + "name": "User & Assistant" + } + ], + "systems": [ + "wrath-and-glory" + ], + "esmodules": [ + "scripts/auto-loadout.js" + ], + "readme": "README.txt", + "license": "LICENSE", + "url": "https://example.com/gk-greyknight", + "manifest": "https://example.com/gk-greyknight/module.json", + "download": "https://example.com/gk-greyknight/gk-greyknight-0.1.0.zip" +} \ No newline at end of file diff --git a/wg-greyknights/scripts/auto-loadout.js b/wg-greyknights/scripts/auto-loadout.js new file mode 100644 index 0000000..3fa31cc --- /dev/null +++ b/wg-greyknights/scripts/auto-loadout.js @@ -0,0 +1,48 @@ +// gk-greyknight — auto hooks + small tools menu +Hooks.once("ready", () => { + // Hook: when our Archetype is added, open Loadout Manager + if (!window._gkAutoLoadoutHook) { + window._gkAutoLoadoutHook = Hooks.on("createItem", async (item, opts, userId) => { + try { + if (item?.type !== "archetype") return; + if (item?.name !== "Grey Knight (Archetype)") return; + const actor = item.parent; + if (!actor || game.userId !== userId) return; + const code = await (await fetch("/modules/gk-greyknight/scripts/macros/gk-loadout-manager.js")).text(); + (0, eval)(code); + } catch (e) { console.error("gk-greyknight auto-loadout error", e); } + }); + } + + game.settings.registerMenu("gk-greyknight", "tools", { + name: "Grey Knight Tools", + label: "Open Tools", + icon: "fas fa-shield-alt", + type: class extends FormApplication { + async _updateObject(event, formData) {} + static get defaultOptions(){ return foundry.utils.mergeObject(super.defaultOptions, { id:"gk-tools", title:"Grey Knight Tools", template: null}); } + async render(...args){ + new Dialog({ + title: "Grey Knight Tools", + content: `

Quick actions for GK content.

`, + buttons: { + import: {label:"Import Items from Module", icon:"", callback: async ()=>{ + const code = await (await fetch("/modules/gk-greyknight/scripts/macros/gk-import-from-module.js")).text(); + (0, eval)(code); + }}, + loadout: {label:"Open Loadout Manager", icon:"", callback: async ()=>{ + const code = await (await fetch("/modules/gk-greyknight/scripts/macros/gk-loadout-manager.js")).text(); + (0, eval)(code); + }}, + glow: {label:"Toggle Aegis Glow", icon:"", callback: async ()=>{ + const code = await (await fetch("/modules/gk-greyknight/scripts/macros/gk-glow-toggle.js")).text(); + (0, eval)(code); + }} + }, + default: "import" + }).render(true); + } + }, + restricted: true + }); +}); \ No newline at end of file diff --git a/wg-greyknights/scripts/macros/gk-glow-toggle.js b/wg-greyknights/scripts/macros/gk-glow-toggle.js new file mode 100644 index 0000000..197a035 --- /dev/null +++ b/wg-greyknights/scripts/macros/gk-glow-toggle.js @@ -0,0 +1,34 @@ +// GK – Aegis Glow Toggle (module) +(async () => { + const tok = canvas.tokens.controlled[0] ?? null; + const actor = tok?.actor ?? game.user.character; + const token = tok ?? canvas.tokens.placeables.find(t => t.actor?.id === actor?.id); + if (!actor || !token) return ui.notifications.warn("Wybierz token lub przypisz postać do użytkownika."); + + const aegisArm = actor.items.find(i => ["armour","armor"].includes(i.type) && /Aegis/.test(i.name)); + if (!aegisArm) return ui.notifications.warn("Nie znaleziono Aegis armour na postaci."); + const eff = aegisArm.effects.find(e => e.name?.toLowerCase().startsWith("aegis warding runes")); + if (!eff) return ui.notifications.warn("Nie znaleziono efektu toggle na Aegis armour."); + const wasDisabled = eff.disabled ?? true; + await eff.update({ disabled: !wasDisabled }); + + const FLAG_SCOPE = "wng-gk"; const FLAG_KEY = "prevLight"; + const setGlowOn = async () => { + const prev = token.document.getFlag(FLAG_SCOPE, FLAG_KEY); + if (!prev) await token.document.setFlag(FLAG_SCOPE, FLAG_KEY, foundry.utils.deepClone(token.document.light)); + await token.document.update({ + light: { color:"#66ccff", coloration:2, alpha:0.7, dim:16, bright:0, angle:360, + luminosity:0.5, attenuation:0.35, saturation:0, contrast:0, shadows:0, + animation:{ type:"pulse", speed:3, intensity:4, reverse:false } } + }); + await canvas.perception.update({ lighting: { refresh: true } }); + }; + const setGlowOff = async () => { + const prev = token.document.getFlag(FLAG_SCOPE, FLAG_KEY); + if (prev) { await token.document.update({ light: prev }); await token.document.unsetFlag(FLAG_SCOPE, FLAG_KEY); } + else { await token.document.update({ light: { dim:0, bright:0, color:null } }); } + await canvas.perception.update({ lighting: { refresh: true } }); + }; + if (wasDisabled) { await setGlowOn(); ChatMessage.create({ content: `Aegis: Warding Runes ENGAGED. (Akcja)` }); } + else { await setGlowOff(); ChatMessage.create({ content: `Aegis: Warding Runes DISENGAGED.` }); } +})(); \ No newline at end of file diff --git a/wg-greyknights/scripts/macros/gk-import-from-module.js b/wg-greyknights/scripts/macros/gk-import-from-module.js new file mode 100644 index 0000000..ac4d699 --- /dev/null +++ b/wg-greyknights/scripts/macros/gk-import-from-module.js @@ -0,0 +1,40 @@ +// GK – Import Items From Module into Items Directory +(async () => { + const FILES = [ + "fvtt-Item-archetype-grey-knight_v5.json", + "fvtt-Item-ability-aegis-of-titan_v5.json", + "fvtt-Item-nemesis-force-halberd_v4.json", + "fvtt-Item-gk-armour-integrated-storm-bolter_v2.json", + "fvtt-Item-aegis-power-armour_v2.json", + "fvtt-Item-terminator-aegis-gk_v4.json" + ]; + const MODULE_ID = "gk-greyknight"; + const base = `modules/${MODULE_ID}/foundry`; + + const ensureFolder = async (name, color="#4b6eaf") => { + let f = game.folders.find(x => x.type === "Item" && x.name === name); + if (!f) f = await Folder.create({name, type:"Item", color}); + return f; + }; + const worldFolder = await ensureFolder("Grey Knight Pack", "#4b6eaf"); + + const fetchJSON = async (path) => { + const res = await fetch(`/${path}`); + if (!res.ok) throw new Error(`Nie mogę pobrać: ${path} (HTTP ${res.status})`); + return await res.json(); + }; + + let created = 0, updated = 0; + for (const fn of FILES) { + const full = `${base}/${fn}`; + try { + const data = await fetchJSON(full); + if (data._id) delete data._id; + data.folder = worldFolder.id; + const existing = game.items.getName(data.name); + if (existing) { await existing.update(data); updated++; } + else { await Item.create(data); created++; } + } catch (e) { console.error("Import err", full, e); ui.notifications.warn(`Błąd importu: ${fn}`); } + } + ui.notifications.info(`GK Module Import: utworzono ${created}, zaktualizowano ${updated}.`); +})(); \ No newline at end of file diff --git a/wg-greyknights/scripts/macros/gk-loadout-manager.js b/wg-greyknights/scripts/macros/gk-loadout-manager.js new file mode 100644 index 0000000..600b541 --- /dev/null +++ b/wg-greyknights/scripts/macros/gk-loadout-manager.js @@ -0,0 +1,64 @@ +// GK – Loadout Manager (module) +(async () => { + const NAMES = { + archetype: "Grey Knight (Archetype)", + ability: "Aegis of Titan (Ability)", + nemesis: "Nemesis Force Halberd", + storm: "Grey Knight Armour Integrated Storm Bolter", + aegis: "Aegis Power Armour", + term: "Terminator Aegis (Grey Knights)" + }; + const FOLDER = "Grey Knight Pack"; + + const actor = canvas.tokens.controlled[0]?.actor ?? game.user.character; + if (!actor) return ui.notifications.warn("Zaznacz token albo przypisz postać."); + + const mode = await Dialog.prompt({ + title: "Grey Knight – Loadout Manager", + content: `

Wybierz lub zmień loadout:

+
+
+ `, + label: "OK", + callback: html => html.find('input[name="m"]:checked').val() + }); + if (!mode) return; + + const findWorldItem = (name) => { + const inFolder = game.items.filter(i => i.name === name && i.folder?.name === FOLDER); + if (inFolder.length) return inFolder[0]; + return game.items.getName(name) ?? null; + }; + const ensureOnActor = async (name) => { + const have = actor.items.getName(name); + if (have) return have; + const worldIt = findWorldItem(name); + if (!worldIt) { ui.notifications.warn(`Brak w Items Directory: ${name} — użyj importera modułu.`); return null; } + const created = await actor.createEmbeddedDocuments("Item", [worldIt.toObject()]); + return created[0]; + }; + + for (const key of Object.keys(NAMES)) await ensureOnActor(NAMES[key]); + + const setEquipped = async (name, on) => { const it = actor.items.getName(name); if (it) await it.update({"system.equipped": !!on}); }; + await setEquipped(NAMES.aegis, false); + await setEquipped(NAMES.term, false); + await setEquipped(NAMES.storm, false); + await setEquipped(NAMES.nemesis, false); + + if (mode === "war") { + await setEquipped(NAMES.aegis, true); + await setEquipped(NAMES.storm, true); + await setEquipped(NAMES.nemesis, true); + } else if (mode === "term") { + await setEquipped(NAMES.term, true); + await setEquipped(NAMES.storm, true); + await setEquipped(NAMES.nemesis, true); + } + + const anyAegisEquipped = !!actor.items.find(i => ["armour","armor"].includes(i.type) && /Aegis/.test(i.name) && i.system?.equipped); + const abilItem = actor.items.getName(NAMES.ability); + if (abilItem) for (const ef of abilItem.effects ?? []) if (ef.name?.includes("Aegis Synergy")) await ef.update({ disabled: !anyAegisEquipped }); + + ui.notifications.info(`Loadout ustawiony: ${mode.toUpperCase()}.`); +})(); \ No newline at end of file