Import wng-daemonhunters-0.6.4.2.zip do wg-greyknights (2025-08-22T17:26:07Z)

This commit is contained in:
2025-08-22 17:26:07 +00:00
parent e164cb6ed4
commit 45b2d0d3b7
3 changed files with 21 additions and 17 deletions
+2 -1
View File
@@ -1,7 +1,8 @@
{ {
"id": "wng-daemonhunters", "id": "wng-daemonhunters",
"title": "Wrath & Glory: Daemonhunters (Grey Knights)", "title": "Wrath & Glory: Daemonhunters (Grey Knights)",
"version": "0.6.4.1", "description": "Grey Knights add-on for Wrath & Glory. Restored GK Archetype in compendium; GK items; Aegis/Brotherhood abilities; Sanctic powers; single-dialog autoload.",
"version": "0.6.4.2",
"compatibility": { "compatibility": {
"minimum": "11", "minimum": "11",
"verified": "13" "verified": "13"
File diff suppressed because one or more lines are too long
+9 -9
View File
@@ -1,4 +1,4 @@
// WNG-Daemonhunters 0.6.4.1single dialog GK autoload (no clashes) // WNG-Daemonhunters 0.6.4.2GK autoload (single dialog, restored Archetype in pack)
Hooks.once('ready', () => console.log("WNG-Daemonhunters | Auto-loadout ready")); Hooks.once('ready', () => console.log("WNG-Daemonhunters | Auto-loadout ready"));
async function addFromPackByName(actor, packKey, name, equip=false) { async function addFromPackByName(actor, packKey, name, equip=false) {
@@ -27,14 +27,14 @@ Hooks.on('createItem', async (item, options, userId) => {
const actor = item.parent; const actor = item.parent;
if (!actor || item.type !== 'archetype' || item.name !== 'Grey Knight') return; if (!actor || item.type !== 'archetype' || item.name !== 'Grey Knight') return;
if (game.userId !== userId) return; if (game.userId !== userId) return;
if (actor.getFlag('wng-daemonhunters','gkLoaded')) return; // prevent double-run if (actor.getFlag('wng-daemonhunters','gkLoaded')) return;
const content = `<p>Select initial loadout for <strong>Grey Knight</strong>:</p> const content = `<p>Select initial loadout for <strong>Grey Knight</strong>:</p>
<div class="form-group"><label>Loadout</label> <div class="form-group"><label>Loadout</label>
<select id="gk-loadout"> <select id="gk-loadout">
<option value="incog">Incognito — Pilgrim Astartes Plate + Astartes Combat Knife + Bolt Pistol</option> <option value="incog">Incognito — Pilgrim Astartes Plate (Disguise Armour) + Astartes Combat Knife + Bolt Pistol</option>
<option value="power" selected>WarPlate — Aegis Power Armour + Nemesis Force Halberd + Integrated Storm Bolter</option> <option value="power" selected>WarPlate — Aegis Power Armour + Nemesis Force Halberd + Grey Knight Armour Integrated Storm Bolter</option>
<option value="termi">Terminator — Terminator Aegis + Nemesis Force Halberd + Integrated Storm Bolter</option> <option value="termi">Terminator — Terminator Aegis (Grey Knights) + Nemesis Force Halberd + Grey Knight Armour Integrated Storm Bolter</option>
</select> </select>
</div>`; </div>`;
@@ -46,23 +46,23 @@ Hooks.on('createItem', async (item, options, userId) => {
const choice = html.find('#gk-loadout').val(); const choice = html.find('#gk-loadout').val();
const PACK = "wng-daemonhunters.daemonhunters"; const PACK = "wng-daemonhunters.daemonhunters";
// Base abilities always // Core abilities
await addFromPackByName(actor, PACK, "Aegis of Titan"); await addFromPackByName(actor, PACK, "Aegis of Titan");
await addFromPackByName(actor, PACK, "Brotherhood of Psykers"); await addFromPackByName(actor, PACK, "Brotherhood of Psykers");
await addFromPackByName(actor, PACK, "Might of Heroes"); await addFromPackByName(actor, PACK, "Might of Heroes");
if (choice === 'incog') { if (choice === 'incog') {
await addFromPackByName(actor, PACK, "Pilgrim Astartes Power Armour", true); await addFromPackByName(actor, PACK, "Pilgrim Astartes Plate (Disguise Armour)", true);
await addFromUuid(actor, "Compendium.wng-core.items.Item.4QVBQYWXXLyvFWkj", true); // Knife await addFromUuid(actor, "Compendium.wng-core.items.Item.4QVBQYWXXLyvFWkj", true); // Knife
await addFromUuid(actor, "Compendium.wng-core.items.Item.7b2xcPWBB7up65PM", true); // Bolt Pistol await addFromUuid(actor, "Compendium.wng-core.items.Item.7b2xcPWBB7up65PM", true); // Bolt Pistol
} else if (choice === 'power') { } else if (choice === 'power') {
await addFromPackByName(actor, PACK, "Aegis Power Armour", true); await addFromPackByName(actor, PACK, "Aegis Power Armour", true);
await addFromPackByName(actor, PACK, "Grey Knight Armour Integrated Storm Bolter", true);
await addFromPackByName(actor, PACK, "Nemesis Force Halberd", true); await addFromPackByName(actor, PACK, "Nemesis Force Halberd", true);
await addFromPackByName(actor, PACK, "Grey Knight Armour Integrated Storm Bolter", true);
} else if (choice === 'termi') { } else if (choice === 'termi') {
await addFromPackByName(actor, PACK, "Terminator Aegis (Grey Knights)", true); await addFromPackByName(actor, PACK, "Terminator Aegis (Grey Knights)", true);
await addFromPackByName(actor, PACK, "Grey Knight Armour Integrated Storm Bolter", true);
await addFromPackByName(actor, PACK, "Nemesis Force Halberd", true); await addFromPackByName(actor, PACK, "Nemesis Force Halberd", true);
await addFromPackByName(actor, PACK, "Grey Knight Armour Integrated Storm Bolter", true);
} }
await actor.setFlag('wng-daemonhunters','gkLoaded', true); await actor.setFlag('wng-daemonhunters','gkLoaded', true);