Files
wfrp-4e-de/compendium/artantares-mutations.macros.json
T
alzerandalzer 1e27be2cb5 Traduction de artantares-mutations.macros.json
Macro "Generate Mutation" traduite (nom + textes d'interface dans le
code, syntaxe JS inchangée).
2026-08-12 12:31:12 +02:00

10 lines
3.3 KiB
JSON

{
"label": "Macros (Mutationen)",
"entries": {
"Generate Mutation": {
"name": "Mutation erzeugen",
"command": "if (!game.wfrp4eMutationRoll) {\n ui.notifications.error(\"Mutations-Wurf-Funktion nicht gefunden. Stelle sicher, dass das Weltskript geladen ist.\");\n return;\n}\n\nconst actors = game.actors.contents;\nconst folders = game.folders.filter(f => f.type === \"Actor\");\n\nif (!actors.length) {\n ui.notifications.warn(\"Keine Akteure zur Auswahl verfügbar.\");\n return;\n}\n\nconst folderOptions = folders.reduce((html, folder) => {\n return html + `<option value='${folder.id}'>${folder.name}</option>`;\n}, \"<option value='all'>Alle Akteure</option>\");\n\nfunction getActorsByFolder(folderId) {\n return actors.filter(actor => folderId === \"all\" || actor.folder?.id === folderId);\n}\n\nfunction updateActorDropdown(html, folderId) {\n const actorSelect = html.find(\"#actor-select\");\n const filteredActors = getActorsByFolder(folderId);\n actorSelect.html(filteredActors.map(actor => `<option value='${actor.id}'>${actor.name}</option>`).join(\"\"));\n}\n\nnew Dialog({\n title: \"Auflösung von Körper und Geist\",\n content: `\n <form>\n <div class=\"form-group\">\n <label for=\"folder-select\">Ordner auswählen:</label>\n <select id=\"folder-select\" name=\"folder\">\n ${folderOptions}\n </select>\n </div>\n <div class=\"form-group\">\n <label for=\"actor-select\">Akteur auswählen:</label>\n <select id=\"actor-select\" name=\"actor\">\n ${actors.map(actor => `<option value='${actor.id}'>${actor.name}</option>`).join(\"\")}\n </select>\n </div>\n <div class=\"form-group\">\n <label>Mutationsart</label>\n <div class=\"form-fields\">\n <select id=\"mutation-type\" name=\"mutation-type\">\n <option value=\"all\">Alle</option>\n <option value=\"khorne\">Khorne</option>\n <option value=\"tzeentch\">Tzeentch</option>\n <option value=\"slaanesh\">Slaanesh</option>\n <option value=\"nurgle\">Nurgle</option>\n <option value=\"necromancy\">Nekromantie</option>\n </select>\n </div>\n </div>\n </form>\n `,\n render: (html) => {\n html.find(\"#folder-select\").change(event => {\n updateActorDropdown(html, event.target.value);\n });\n },\n buttons: {\n roll: {\n label: \"Mutation würfeln\",\n callback: (html) => {\n const selectedActor = game.actors.get(html.find(\"#actor-select\").val());\n const selectedMutationSource = html.find(\"#mutation-type\").val();\n if (selectedActor) {\n game.wfrp4eMutationRoll(selectedActor, selectedMutationSource);\n } else {\n ui.notifications.error(\"Ungültige Akteursauswahl.\");\n }\n }\n },\n cancel: { label: \"Abbrechen\" }\n },\n default: \"roll\"\n}).render(true);"
}
}
}