Compare commits
3 Commits
406a535c76
...
9.4.6
| Author | SHA1 | Date | |
|---|---|---|---|
| 8862698262 | |||
| 047933a610 | |||
| b489f65618 |
@@ -0,0 +1,89 @@
|
||||
name: Release Creation
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo "💡 The ${{ gitea.repository }} repository will be cloned to the runner."
|
||||
|
||||
- uses: RouxAntoine/checkout@v3.5.4
|
||||
|
||||
# Valider les JSON avant de packager
|
||||
- name: Valider fr.json et module.json
|
||||
run: |
|
||||
python3 -mjson.tool fr.json > /dev/null
|
||||
python3 -mjson.tool module.json > /dev/null
|
||||
|
||||
# Générer modules/loadScripts.js depuis scripts/
|
||||
- name: Build (génération de loadScripts.js)
|
||||
run: node scriptPacker.js
|
||||
|
||||
# Extraire le numéro de version depuis le tag (sans le 'v' initial)
|
||||
- name: Extraire la version depuis le tag
|
||||
id: get_version
|
||||
uses: battila7/get-version-action@v2
|
||||
|
||||
# Mettre à jour version, url, manifest et download dans module.json
|
||||
- name: Substituer les URLs de Manifest et Download
|
||||
id: sub_manifest_link_version
|
||||
uses: microsoft/variable-substitution@v1
|
||||
with:
|
||||
files: 'module.json'
|
||||
env:
|
||||
version: ${{ steps.get_version.outputs.version-without-v }}
|
||||
url: https://www.uberwald.me/gitea/${{ gitea.repository }}
|
||||
manifest: https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/releases/download/latest/module.json
|
||||
download: https://www.uberwald.me/gitea/${{ gitea.repository }}/releases/download/${{ github.event.release.tag_name }}/foundryvtt-wh4-lang-fr-fr.zip
|
||||
|
||||
# Créer le zip avec uniquement les fichiers nécessaires au module Foundry
|
||||
- name: Installer zip
|
||||
run: |
|
||||
apt update -y
|
||||
apt install -y zip
|
||||
|
||||
- name: Créer l'archive foundryvtt-wh4-lang-fr-fr.zip
|
||||
run: >
|
||||
zip -r ./foundryvtt-wh4-lang-fr-fr.zip
|
||||
module.json
|
||||
fr.json
|
||||
wh4_fr.js
|
||||
patch-styles.css
|
||||
README.md
|
||||
LICENSE
|
||||
compendium/
|
||||
modules/
|
||||
packs/
|
||||
icons/
|
||||
images/
|
||||
trade/
|
||||
|
||||
# Publier le zip et le module.json sur la release Gitea
|
||||
- name: setup go
|
||||
uses: https://github.com/actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.1'
|
||||
|
||||
- name: Publier les assets sur la release Gitea
|
||||
id: use-go-action
|
||||
uses: https://gitea.com/actions/release-action@main
|
||||
with:
|
||||
files: |-
|
||||
./foundryvtt-wh4-lang-fr-fr.zip
|
||||
module.json
|
||||
api_key: '${{ secrets.ALLOW_PUSH_RELEASE }}'
|
||||
|
||||
# Déclarer la release sur le portail FoundryVTT
|
||||
- name: Publier sur FoundryVTT
|
||||
uses: https://github.com/djlechuck/foundryvtt-publish-package-action@v1
|
||||
with:
|
||||
token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }}
|
||||
id: 'wh4-fr-translation'
|
||||
version: ${{ github.event.release.tag_name }}
|
||||
manifest: 'https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/releases/download/latest/module.json'
|
||||
notes: 'https://www.uberwald.me/gitea/${{ gitea.repository }}/releases/tag/${{ github.event.release.tag_name }}'
|
||||
compatibility-minimum: '13'
|
||||
compatibility-verified: '13'
|
||||
@@ -0,0 +1,19 @@
|
||||
name: Validation JSON
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: RouxAntoine/checkout@v3.5.4
|
||||
|
||||
- name: Valider fr.json
|
||||
run: python3 -mjson.tool fr.json > /dev/null
|
||||
|
||||
- name: Valider module.json
|
||||
run: python3 -mjson.tool module.json > /dev/null
|
||||
@@ -1,29 +0,0 @@
|
||||
image: python:3-alpine
|
||||
|
||||
before_script:
|
||||
- apk update
|
||||
- apk add zip
|
||||
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
|
||||
test:
|
||||
stage: test
|
||||
script:
|
||||
- python -mjson.tool 'fr.json' > /dev/null
|
||||
- python -mjson.tool 'module.json' > /dev/null
|
||||
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- zip wh4-fr-FR.zip -r *.js *.json *.md compendium lang tables -x ".*"
|
||||
artifacts:
|
||||
name: wh4-fr-FR
|
||||
when: on_success
|
||||
paths:
|
||||
- wh4-fr-FR.zip
|
||||
when: on_success
|
||||
only:
|
||||
- tags
|
||||
- master
|
||||
+2
-2
@@ -119,8 +119,8 @@
|
||||
"folders": []
|
||||
}
|
||||
],
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-4-3.zip",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/releases/download/latest/module.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/releases/download/latest/foundryvtt-wh4-lang-fr-fr.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -14,7 +14,7 @@
|
||||
|
||||
let updateObj = this.actor.toObject();
|
||||
|
||||
let talents = (await Promise.tout([game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents")])).map(i => i.text)
|
||||
let talents = (await Promise.all([game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents"), game.wfrp4e.tables.rollTable("talents")])).map(i => i.text)
|
||||
|
||||
for (let ch in characteristics)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await args.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "Gain de 1 état Sonné"}})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
args.actor.addCondition("stunned")
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effect.name}`});
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("bleeding");
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "GAin d'1 état Sonné"}})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("stunned");
|
||||
}
|
||||
@@ -22,7 +22,7 @@ let Test = await actor.setupSkill('Calme', {
|
||||
fields: {difficulty: 'easy'},
|
||||
characteristic: 'wp',
|
||||
});
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (!Test.succeeded) {
|
||||
Test.result.other.push(`<b>${actor.name}</b> est devenu @Condition[Stunned] par la vue.`);
|
||||
|
||||
@@ -10,12 +10,12 @@ const test = await this.actor.setupSkill(game.i18n.localize("NAME.Résistance"),
|
||||
}
|
||||
});
|
||||
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué) {
|
||||
if (test.failed) {
|
||||
await this.actor.addEffectItems(bloodyFluxUUID, this.effet);
|
||||
} else {
|
||||
const SL = Test.result.SL;
|
||||
const SL = test.result.SL;
|
||||
const heal = 1 + SL;
|
||||
await this.actor.modifyWounds(heal);
|
||||
this.script.message(`Butcher a soigné ${heal} Blessures.`);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// Imbibing this substance grants the user the utilisateur d Creature Trait.
|
||||
const hasutilisateur d = this.actor.has("Insensible à la douleur");
|
||||
if (hasutilisateur d === undefined)
|
||||
// Imbibing this substance grants the user the Painless Creature Trait.
|
||||
const hasPainless = this.actor.has("Insensible à la douleur");
|
||||
if (hasPainless === undefined)
|
||||
{
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.wMwSRDmgiF2IdCJr");
|
||||
let data = item.toObject()
|
||||
this.actor.createEmbeddedDocuments("Item", [data], {fromEffect: this.effect.id})
|
||||
|
||||
this.script.message(
|
||||
this.script.scriptMessage(
|
||||
`<p><strong>${this.actor.prototypeToken.name}</strong> a acquis le Trait de Créature Insensible à la douleur. Cet
|
||||
effet dure une heure, après quoi il se dissipe et l'effet complet
|
||||
de toutes les blessures du buveur s'abat d'un coup.</p>
|
||||
|
||||
@@ -7,9 +7,9 @@ const test = await args.actor.setupSkill(game.i18n.localize("NAME.Résistance"),
|
||||
}
|
||||
});
|
||||
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué) {
|
||||
if (test.failed) {
|
||||
args.actor.addCondition("poisoned");
|
||||
const speaker = ChatMessage.getSpeaker({actor: args.actor});
|
||||
this.script.message(`<p>${speaker.alias} a reçu 1 état @Condition[Poisoned] de Venin d'Araignée.</p><p>Les victimes réduites à 0 blessures et qui souffrent d'un état @Condition[Poisoned] de ces flèches deviennent @Condition[Unconcious], mais ne risquent pas la mort à cause des états @Condition[Poisoned] restants comme ce serait normalement le cas.</p>`);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
if (args.test.result.SL < 0)
|
||||
{
|
||||
this.script.message(`Gain de ${Math.abs(args.test.result.SL)} Points de Corruption`, {whisper : ChatMessage.getWhisperRecipients("GM")})
|
||||
if (args.Test.Échoué && this.actor.type == "character")
|
||||
if (args.test.failed && this.actor.type == "character")
|
||||
{
|
||||
this.actor.update({"system.status.corruption.value" : parseInt(this.actor.status.corruption.value) + Math.abs(args.test.result.SL)})
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ let test = await actor.setupCharacteristic("s", {
|
||||
}
|
||||
});
|
||||
|
||||
await Test.roll();
|
||||
if (Test.succeeded) {
|
||||
let SL = parseInt(Test.result.SL);
|
||||
await test.roll();
|
||||
if (test.succeeded) {
|
||||
let SL = parseInt(test.result.SL);
|
||||
let name = this.effect.name.replace(/\d+/, rating => parseInt(rating) - SL);
|
||||
await this.effect.update({name});
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
let test = await this.actor.setupCharacteristic("s", {appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult"}});
|
||||
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué)
|
||||
if (test.failed)
|
||||
{
|
||||
|
||||
if (Test.isCriticalFumble == "fumble")
|
||||
if (test.isCriticalFumble == "fumble")
|
||||
{
|
||||
return this.script.message(`<strong>${this.actor.name}</strong> meurt alors qu'il est entraîné dans l'Aethyr (à moins qu'il ne dépense un point de Destinée pour éviter cela).`);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ let Test = await actor.setupSkill('Calme', {
|
||||
fields: {difficulty: 'easy'},
|
||||
characteristic: 'wp',
|
||||
});
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (!Test.succeeded) {
|
||||
Test.result.other.push(`<b>${actor.name}</b> est devenu fasciné par la vue et incapable d'effectuer une quelconque action autre que de se déplacer vers la lumière.`);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
if (args.test.characteristicKey == "wp" && args.Test.Échoué && args.Test.result.SL <= -3)
|
||||
if (args.test.characteristicKey == "wp" && args.test.failed && args.test.result.SL <= -3)
|
||||
{
|
||||
this.script.notification("Ajout de A Terre");
|
||||
this.actor.addCondition("prone")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
if (Test.succeeded)
|
||||
await test.roll();
|
||||
if (test.succeeded)
|
||||
{
|
||||
this.script.message("Peut réaliser une Action ou un Déplacement (choisissez-en un)")
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
this.script.scirptMessage(await this.actor.applyBasicDamage(20, {suppressMsg: true});
|
||||
this.script.scriptMessage(await this.actor.applyBasicDamage(20, {suppressMsg: true}));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Dodge"), {fields : {difficulty : "hard"}, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué) {
|
||||
if (test.failed) {
|
||||
this.script.scriptMessage(await this.actor.applyBasicDamage(20, {suppressMsg: true}));
|
||||
this.script.scriptMessage(`${this.actor.name} est victime de @UUID[Compendium.wfrp4e-core.journals.JournalEntry.NS3YGlJQxwTggjRX.JournalEntryPage.WCivInLZrqEtZzF4#drowning-and-suffocation]{Suffocation}`);
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
if (args.test.characteristicKey == "wp")
|
||||
{
|
||||
if (args.Test.Échoué)
|
||||
if (args.test.failed)
|
||||
{
|
||||
this.actor.addSystemEffect("convulsions")
|
||||
this.script.message(`Test de FM échoué, <b>${this.actor.prototypeToken.name}</b> reçoit @Symptom[Convulsions] pour [[1d10]] heures`)
|
||||
|
||||
@@ -9,7 +9,7 @@ if (god)
|
||||
{
|
||||
let prayers = await warhammer.utility.findAllItems("prayer", "Chargement des Prières", true, ["system.type.value", "system.god.value"])
|
||||
let blessings = prayers.filter(p => p.system.god.value.split(",").map(i => i.trim().toLowerCase()).includes(god.toLowerCase()) && p.system.type.value == "blessing")
|
||||
let configBlessings = await Promise.tout((game.wfrp4e.config.godBlessings[god.toLowerCase()] || []).map(fromUuid));
|
||||
let configBlessings = await Promise.all((game.wfrp4e.config.godBlessings[god.toLowerCase()] || []).map(fromUuid));
|
||||
if (god == "Foi Antique")
|
||||
{
|
||||
blessings = await ItemDialog.create(prayers.filter(i => i.system.type.value == "blessing"), 6, {text : "Sélectionnez 6 Bénédictions", title : "Béni"})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.script.message(await game.wfrp4e.tables.formatChatRoll("enrage-beast"))
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
if (this.actor.Species.toLowerCase() != "skaven") {
|
||||
this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - Utilise ${this.effect.name}`, fields: { difficulty: "difficult" } }).then(async Test => {
|
||||
await Test.roll()
|
||||
if (Test.Échoué)
|
||||
await test.roll()
|
||||
if (test.failed)
|
||||
{
|
||||
let toughnessLost = Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
this.actor.update({ "system.characteristics.t.initial": this.actor.characteristics.t.initial - toughnessLost })
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {fields: {difficulty : "average"}, skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
let stuns = Math.max(1, Math.abs(Test.result.SL))
|
||||
let stuns = Math.max(1, Math.abs(test.result.SL))
|
||||
this.actor.addCondition("stunned", stuns)
|
||||
}
|
||||
@@ -5,8 +5,8 @@ if (this.actor.uuid == this.effect.sourceActor.uuid)
|
||||
|
||||
if (this.actor.has("À Sang Froid") && !this.actor.hasSystemEffect("nausea")) {
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Résistance"), {appendTitle : `- ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
|
||||
let myRoll = await new Roll("1d10").roll({allowInteractive : false});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupSkill("Résistance", {fields : {difficulty : "difficult"}, appendTitle : ` - ${this.effect.name}`});
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
await this.actor.addCondition("blinded");
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const test = await this.actor.setupCharacteristic("int", {fields: {difficulty: "easy"}, skipTargets: true, appendTitle : ` - ${this.effect.name}`});
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué) {
|
||||
if (test.failed) {
|
||||
this.actor.addCondition('stunned');
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("ag", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, context: { failure: "Goes Prone" }})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("prone");
|
||||
}
|
||||
@@ -7,9 +7,9 @@ const test = await this.actor.setupSkill(game.i18n.localize("NAME.Résistance"),
|
||||
}
|
||||
});
|
||||
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué) {
|
||||
const SL = Number(Test.result.SL);
|
||||
if (test.failed) {
|
||||
const SL = Number(test.result.SL);
|
||||
this.script.message(`Butcher perd ${SL} dents.`);
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
,args.fields.slBonus++;,args.fields.slBonus++;,args.fields.slBonus++;
|
||||
args.fields.slBonus++;
|
||||
|
||||
@@ -7,8 +7,8 @@ let difficulty = ""
|
||||
difficulty = "veasy"
|
||||
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Résistance"), {context : {failure : this.actor.name + " meurt de la Pourriture"}, fields: {difficulty}, appendTitle : " - Pourriture"})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("dead");
|
||||
}
|
||||
@@ -7,8 +7,8 @@ let difficulty = ""
|
||||
difficulty = "veasy"
|
||||
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Résistance"), {context : {failure : this.actor.name + " meurt de la Pourriture"}, fields: {difficulty}, appendTitle : " - Pourriture"})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("dead");
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupCharacteristic("i", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "easy"}})
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (!Test.succeeded)
|
||||
if (!test.succeeded)
|
||||
{
|
||||
this.actor.addCondition("stunned");
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupCharacteristic("ag", {fields : {difficulty : "hard"}});
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué)
|
||||
if (test.failed)
|
||||
{
|
||||
await this.actor.addCondition("bleeding")
|
||||
await this.actor.addCondition("entangled")
|
||||
|
||||
@@ -9,8 +9,8 @@ if (SL >= 3)
|
||||
|
||||
|
||||
let test = await args.actor.setupCharacteristic("wp", {fields: {difficulty}, skipTargets: true, appendTitle : " - " + this.effect.name, context : {failure: "Reçoit un état Sonné"}})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
args.actor.addCondition("stunned");
|
||||
}
|
||||
@@ -12,7 +12,7 @@ const test = await this.actor.setupCharacteristic("t", {
|
||||
}
|
||||
});
|
||||
|
||||
await Test.roll();
|
||||
if (Test.failure) {
|
||||
await test.roll();
|
||||
if (test.failure) {
|
||||
await this.actor.addCondition("prone");
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupSkill("Résistance", {fields : {difficulty : "difficult", appendTitle : ` - ${this.effect.name}`}});
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
await this.actor.addCondition("blinded");
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
|
||||
let opposedResult = Test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result
|
||||
let opposedResult = test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result
|
||||
|
||||
if (opposedResult?.winner == "attacker")
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupCharacteristic("t", { appendTitle: ` - ${this.effect.name}`, fields: { difficulty: "challenging" } })
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
if (Test.Échoué)
|
||||
if (test.failed)
|
||||
{
|
||||
let ageAdded = Math.ceil(CONFIG.Dice.randomUniform() * 10) + Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
let ws = Math.ceil(CONFIG.Dice.randomUniform() * 10)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if (args.opposedTest.result.differenceSL >= 0 && args.opposedTest.result.differenceSL <= 2 && args.opposedTest.result.winner == "attacker")
|
||||
{
|
||||
this.script.message(`Becomes lodged in the armour or flesh of the opponent. See @UUID[${this.item.uuid}]{${this.item.name}}.`, speaker : {alias : this.item.name}, {blind: true, whisper : ChatMessage.getWhisperRecipients("GM")})
|
||||
this.script.message(`Becomes lodged in the armour or flesh of the opponent. See @UUID[${this.item.uuid}]{${this.item.name}}.`, {speaker : {alias : this.item.name}, blind: true, whisper : ChatMessage.getWhisperRecipients("GM")})
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
let test = await this.actor.setupCharacteristic("wp", {skipTargets: true, appendTitle : ` - ${this.effect.name}`})
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
// Kind of insane but whatever
|
||||
let opposedResult = Test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result
|
||||
let opposedResult = test.opposedMessages[0]?.system.opposedHandler?.resultMessage?.system.opposedTest?.result
|
||||
|
||||
return opposedResult?.winner == "attacker";
|
||||
@@ -1,6 +1,6 @@
|
||||
if (args.test.characteristicKey == "wp")
|
||||
{
|
||||
if (args.Test.Échoué)
|
||||
if (args.test.failed)
|
||||
{
|
||||
let item = await fromUuid("Compendium.wfrp4e-core.items.AGcJl5rHjkyIQBPP")
|
||||
let data = item.toObject();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
let location = this.item.system.location.key
|
||||
let test = await this.actor.setupCharacteristic("dex", {context : {failure : `<strong>${this.effect.name}</strong>: Lâchez l'objet!`}, skipTargets: true, appendTitle : " - " + this.effect.name, fields : {difficulty : "average"}})
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
|
||||
|
||||
if (location && Test.Échoué)
|
||||
if (location && test.failed)
|
||||
{
|
||||
let dropped = this.item.system.weaponsAtLocation;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
if (args.test.characteristicKey == "wp")
|
||||
{
|
||||
if (args.Test.Échoué)
|
||||
if (args.test.failed)
|
||||
{
|
||||
this.actor.createEmbeddedDocuments("ActiveEffect", [game.wfrp4e.config.symptomEffects["malaise"]])
|
||||
this.script.message(`Test de FM échoué, <b>${this.actor.prototypeToken.name}</b> gains @Condition[Malaise] for [[1d10]] hours`, {whisper: ChatMessage.getWhisperRecipients("GM")})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupSkill(game.i18n.localize("NAME.Cool"), {appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "difficult", slBonus : -1 * this.effect.sourceTest.result.SL}})
|
||||
await Test.roll();
|
||||
if (Test.succeeded)
|
||||
await test.roll();
|
||||
if (test.succeeded)
|
||||
{
|
||||
this.script.notification(`Résistance à ${this.effect.name}`);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
if (args.totalWoundLoss > 0)
|
||||
{
|
||||
args.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields: { difficulty: "difficult" } }).then(async Test => {
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
await args.actor.addCondition("poisoned")
|
||||
this.script.message(await args.actor.applyBasicDamage(3, {suppressMsg : true, damageType: game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL }))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "hard"}})
|
||||
await Test.roll();
|
||||
if (Test.Échoué)
|
||||
await test.roll();
|
||||
if (test.failed)
|
||||
{
|
||||
let roll = await new Roll("1d10").roll({allowInteractive : false});
|
||||
roll.toMessage(this.script.getChatData())
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
args.totalWoundLoss = Math.max(0, args.totalWoundLoss - 1)
|
||||
args.modifiers.other.push({label : this.effect.name, value : -1)
|
||||
args.modifiers.other.push({label : this.effect.name, value : -1})
|
||||
@@ -1,8 +1,8 @@
|
||||
let test = await this.actor.setupCharacteristic("t", {skipTargets: true, appendTitle : ` - ${this.effect.name}`, fields : {difficulty : "vhard"}});
|
||||
await Test.roll();
|
||||
await test.roll();
|
||||
CorruptionMessageModel.createCorruptionMessage("minor", this.script.getChatData())
|
||||
|
||||
if (Test.Échoué)
|
||||
if (test.failed)
|
||||
{
|
||||
this.actor.addCondition("unconscious");
|
||||
}
|
||||
Reference in New Issue
Block a user