forked from public/foundryvtt-wh4-lang-fr-fr
Redefine actors for French use
This commit is contained in:
@ -178,7 +178,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
}
|
||||
|
||||
// If the size has been changed since the last known value, update the value
|
||||
data.data.details.size.value = WFRP_Utility.findKey(size, WFRP4E.actorSizes) || "avg"
|
||||
data.data.details.size.value = WFRP_Utility.findKey(size, game.wfrp4e.config.actorSizes) || "avg"
|
||||
|
||||
// Now that we have size, calculate wounds and token size
|
||||
if (data.flags.autoCalcWounds) {
|
||||
@ -191,7 +191,8 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
}
|
||||
|
||||
if (data.flags.autoCalcSize) {
|
||||
let tokenSize = WFRP4E.tokenSizes[data.data.details.size.value]
|
||||
//let tokenSize = WFRP4E.tokenSizes[data.data.details.size.value]
|
||||
let tokenSize = game.wfrp4e.config.tokenSizes[data.data.details.size.value]
|
||||
if (this.isToken) {
|
||||
this.token.update({"height" : tokenSize, "width" : tokenSize });
|
||||
}
|
||||
@ -372,7 +373,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
// Target value is the final value being tested against, after all modifiers and bonuses are added
|
||||
@ -455,7 +456,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
data: {
|
||||
hitLocation: testData.hitLocation,
|
||||
talents: this.data.flags.talentTests,
|
||||
characteristicList: WFRP4E.characteristics,
|
||||
characteristicList: game.wfrp4e.config.characteristics,
|
||||
characteristicToUse: skill.data.characteristic.value,
|
||||
advantage: this.data.data.status.advantage.value || 0,
|
||||
rollMode: options.rollMode
|
||||
@ -465,7 +466,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
let characteristicToUse = html.find('[name="characteristicToUse"]').val();
|
||||
@ -673,7 +674,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
let skillSelected = skillCharList[Number(html.find('[name="skillSelected"]').val())];
|
||||
@ -791,7 +792,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
|
||||
@ -870,7 +871,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
}
|
||||
}
|
||||
else {
|
||||
defaultSelection = channellSkills.indexOf(channellSkills.find(x => x.name.includes(WFRP4E.magicWind[spellLore])));
|
||||
defaultSelection = channellSkills.indexOf(channellSkills.find(x => x.name.includes(game.wfrp4e.config.magicWind[spellLore])));
|
||||
}
|
||||
|
||||
if (spellLore == "witchcraft")
|
||||
@ -911,7 +912,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
testData.extra.malignantInfluence = html.find('[name="malignantInfluence"]').is(':checked');
|
||||
@ -1010,7 +1011,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
|
||||
@ -1066,7 +1067,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
setupTrait(trait, options = {}) {
|
||||
if (!trait.data.rollable.value)
|
||||
return;
|
||||
let title = WFRP4E.characteristics[trait.data.rollable.rollCharacteristic] + ` ${game.i18n.localize("Test")} - ` + trait.name;
|
||||
let title = game.wfrp4e.config.characteristics[trait.data.rollable.rollCharacteristic] + ` ${game.i18n.localize("Test")} - ` + trait.name;
|
||||
let testData = {
|
||||
hitLocation: false,
|
||||
target: this.data.data.characteristics[trait.data.rollable.rollCharacteristic].value,
|
||||
@ -1092,7 +1093,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
data: {
|
||||
hitLocation: testData.hitLocation,
|
||||
talents: this.data.flags.talentTests,
|
||||
characteristicList: WFRP4E.characteristics,
|
||||
characteristicList: game.wfrp4e.config.characteristics,
|
||||
characteristicToUse: trait.data.rollable.rollCharacteristic,
|
||||
advantage: this.data.data.status.advantage.value || 0,
|
||||
testDifficulty: trait.data.rollable.defaultDifficulty
|
||||
@ -1102,7 +1103,7 @@ export default class ActorWfrp4e_fr extends Actor {
|
||||
// Note that this does not execute until DiceWFRP.setupDialog() has finished and the user confirms the dialog
|
||||
cardOptions.rollMode = html.find('[name="rollMode"]').val();
|
||||
testData.testModifier = Number(html.find('[name="testModifier"]').val());
|
||||
testData.testDifficulty = WFRP4E.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.testDifficulty = game.wfrp4e.config.difficultyModifiers[html.find('[name="testDifficulty"]').val()];
|
||||
testData.successBonus = Number(html.find('[name="successBonus"]').val());
|
||||
testData.slBonus = Number(html.find('[name="slBonus"]').val());
|
||||
let characteristicToUse = html.find('[name="characteristicToUse"]').val();
|
||||
@ -1268,10 +1269,10 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
|
||||
let status = testData.income.value.split(' ')
|
||||
|
||||
let dieAmount = WFRP4E.earningValues[WFRP_Utility.findKey(status[0], WFRP4E.statusTiers)][0] // b, s, or g maps to 2d10, 1d10, or 1 respectively (takes the first letter)
|
||||
let dieAmount = game.wfrp4e.config.earningValues[WFRP_Utility.findKey(status[0], game.wfrp4e.config.statusTiers)][0] // b, s, or g maps to 2d10, 1d10, or 1 respectively (takes the first letter)
|
||||
dieAmount = Number(dieAmount) * status[1]; // Multilpy that first letter by your standing (Brass 4 = 8d10 pennies)
|
||||
let moneyEarned;
|
||||
if (WFRP_Utility.findKey(status[0], WFRP4E.statusTiers) != "g") // Don't roll for gold, just use standing value
|
||||
if (WFRP_Utility.findKey(status[0], game.wfrp4e.config.statusTiers) != "g") // Don't roll for gold, just use standing value
|
||||
{
|
||||
dieAmount = dieAmount + "d10";
|
||||
moneyEarned = new Roll(dieAmount).roll().total;
|
||||
@ -1282,7 +1283,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
// After rolling, determined how much, if any, was actually earned
|
||||
if (result.description.includes("Success")) {
|
||||
result.incomeResult = game.i18n.localize("INCOME.YouEarn") + " " + moneyEarned;
|
||||
switch (WFRP_Utility.findKey(status[0], WFRP4E.statusTiers)) {
|
||||
switch (WFRP_Utility.findKey(status[0], game.wfrp4e.config.statusTiers)) {
|
||||
case "b":
|
||||
result.incomeResult += ` ${game.i18n.localize("NAME.BPPlural").toLowerCase()}.`
|
||||
break;
|
||||
@ -1300,7 +1301,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
else if (Number(result.SL) > -6) {
|
||||
moneyEarned /= 2;
|
||||
result.incomeResult = game.i18n.localize("INCOME.YouEarn") + " " + moneyEarned;
|
||||
switch (WFRP_Utility.findKey(status[0], WFRP4E.statusTiers)) {
|
||||
switch (WFRP_Utility.findKey(status[0], game.wfrp4e.config.statusTiers)) {
|
||||
case "b":
|
||||
result.incomeResult += ` ${game.i18n.localize("NAME.BPPlural").toLowerCase()}.`
|
||||
break;
|
||||
@ -1321,7 +1322,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
}
|
||||
// let contextAudio = await WFRP_Audio.MatchContextAudio(WFRP_Audio.FindContext(result))
|
||||
// cardOptions.sound = contextAudio.file || cardOptions.sound
|
||||
result.moneyEarned = moneyEarned + WFRP_Utility.findKey(status[0], WFRP4E.statusTiers);
|
||||
result.moneyEarned = moneyEarned + WFRP_Utility.findKey(status[0], game.wfrp4e.config.statusTiers);
|
||||
if (!options.suppressMessage)
|
||||
DiceWFRP.renderRollCard(cardOptions, result, options.rerenderMessage).then(msg => {
|
||||
OpposedWFRP.handleOpposedTarget(msg)
|
||||
@ -1690,7 +1691,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
{
|
||||
if (loc == "shield")
|
||||
continue
|
||||
let row = WFRP_Tables[actorData.data.details.hitLocationTable.value].rows.find(r => r.result == loc)
|
||||
let row = game.wfrp4e.tables[actorData.data.details.hitLocationTable.value].rows.find(r => r.result == loc)
|
||||
if (row)
|
||||
AP[loc].label = game.i18n.localize(row.description)
|
||||
else
|
||||
@ -2083,9 +2084,9 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
var itemsInside = inContainers.filter(i => i.data.location.value == cont._id);
|
||||
itemsInside.map(function (item) { // Add category of item to be displayed
|
||||
if (item.type == "trapping")
|
||||
item.type = WFRP4E.trappingCategories[item.data.trappingType.value];
|
||||
item.type = game.wfrp4e.config.trappingCategories[item.data.trappingType.value];
|
||||
else
|
||||
item.type = WFRP4E.trappingCategories[item.type];
|
||||
item.type = game.wfrp4e.config.trappingCategories[item.type];
|
||||
})
|
||||
cont["carrying"] = itemsInside.filter(i => i.type != "Container"); // cont.carrying -> items the container is carrying
|
||||
cont["packsInside"] = itemsInside.filter(i => i.type == "Container"); // cont.packsInside -> containers the container is carrying
|
||||
@ -2166,15 +2167,15 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
enc.state = enc.value / enc.max; // state is how many times over you are max encumbrance
|
||||
if (enc.state > 3) {
|
||||
enc["maxEncumbered"] = true
|
||||
enc.penalty = WFRP4E.encumbrancePenalties["maxEncumbered"];
|
||||
enc.penalty = game.wfrp4e.config.encumbrancePenalties["maxEncumbered"];
|
||||
}
|
||||
else if (enc.state > 2) {
|
||||
enc["veryEncumbered"] = true
|
||||
enc.penalty = WFRP4E.encumbrancePenalties["veryEncumbered"];
|
||||
enc.penalty = game.wfrp4e.config.encumbrancePenalties["veryEncumbered"];
|
||||
}
|
||||
else if (enc.state > 1) {
|
||||
enc["encumbered"] = true
|
||||
enc.penalty = WFRP4E.encumbrancePenalties["encumbered"];
|
||||
enc.penalty = game.wfrp4e.config.encumbrancePenalties["encumbered"];
|
||||
}
|
||||
else
|
||||
enc["notEncumbered"] = true;
|
||||
@ -2232,7 +2233,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
else if (skill.data.modifier.value < 0)
|
||||
skill.modified = "negative"
|
||||
}
|
||||
skill.data.characteristic.abrev = WFRP4E.characteristicsAbbrev[skill.data.characteristic.value];
|
||||
skill.data.characteristic.abrev = game.wfrp4e.config.characteristicsAbbrev[skill.data.characteristic.value];
|
||||
skill.data.cost = WFRP_Utility._calculateAdvCost(skill.data.advances.value, "skill", skill.data.advances.costModifier)
|
||||
return skill
|
||||
}
|
||||
@ -2308,9 +2309,9 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
if (!skills) // If a skill list isn't provided, filter all items to find skills
|
||||
skills = actorData.items.filter(i => i.type == "skill");
|
||||
|
||||
weapon.attackType = WFRP4E.groupToType[weapon.data.weaponGroup.value]
|
||||
weapon.data.reach.value = WFRP4E.weaponReaches[weapon.data.reach.value];
|
||||
weapon.data.weaponGroup.value = WFRP4E.weaponGroups[weapon.data.weaponGroup.value] || "basic";
|
||||
weapon.attackType = game.wfrp4e.config.groupToType[weapon.data.weaponGroup.value]
|
||||
weapon.data.reach.value = game.wfrp4e.config.weaponReaches[weapon.data.reach.value];
|
||||
weapon.data.weaponGroup.value = game.wfrp4e.config.weaponGroups[weapon.data.weaponGroup.value] || "basic";
|
||||
|
||||
// Attach the available skills to use to the weapon.
|
||||
weapon.skillToUse = skills.find(x => x.name.toLowerCase().includes(`(${weapon.data.weaponGroup.value.toLowerCase()})`))
|
||||
@ -2726,7 +2727,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
{
|
||||
// Determine if it's looking for the bonus or the value
|
||||
if (formula.includes('bonus')) {
|
||||
formula = formula.replace("bonus de " + WFRP4E.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].bonus);
|
||||
formula = formula.replace("bonus de " + game.wfrp4e.config.characteristics[ch].toLowerCase(), actorData.data.characteristics[ch].bonus);
|
||||
formula = formula.replace(game.wfrp4e.config.characteristics[ch].toLowerCase() + " bonus", actorData.data.characteristics[ch].bonus);
|
||||
}
|
||||
else
|
||||
@ -2921,7 +2922,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
* @param {Object} opposedData Test results, all the information needed to calculate damage
|
||||
* @param {var} damageType enum for what the damage ignores, see config.js
|
||||
*/
|
||||
static applyDamage(victim, opposeData, damageType = WFRP4E.DAMAGE_TYPE.NORMAL) {
|
||||
static applyDamage(victim, opposeData, damageType = game.wfrp4e.config.DAMAGE_TYPE.NORMAL) {
|
||||
if (!opposeData.damage)
|
||||
return `<b>Error</b>: ${game.i18n.localize("CHAT.DamageAppliedError")}`
|
||||
// If no damage value, don't attempt anything
|
||||
@ -2936,13 +2937,13 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
// Start wound loss at the damage value
|
||||
let totalWoundLoss = opposeData.damage.value
|
||||
let newWounds = actor.data.data.status.wounds.value;
|
||||
let applyAP = (damageType == WFRP4E.DAMAGE_TYPE.IGNORE_TB || damageType == WFRP4E.DAMAGE_TYPE.NORMAL)
|
||||
let applyTB = (damageType == WFRP4E.DAMAGE_TYPE.IGNORE_AP || damageType == WFRP4E.DAMAGE_TYPE.NORMAL)
|
||||
let applyAP = (damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_TB || damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)
|
||||
let applyTB = (damageType == game.wfrp4e.config.DAMAGE_TYPE.IGNORE_AP || damageType == game.wfrp4e.config.DAMAGE_TYPE.NORMAL)
|
||||
let AP = {};
|
||||
|
||||
// Start message update string
|
||||
let updateMsg = `<b>${game.i18n.localize("CHAT.DamageApplied")}</b><span class = 'hide-option'>: @TOTAL`;
|
||||
if (damageType != WFRP4E.DAMAGE_TYPE.IGNORE_ALL)
|
||||
if (damageType != game.wfrp4e.config.DAMAGE_TYPE.IGNORE_ALL)
|
||||
updateMsg += " ("
|
||||
|
||||
let weaponProperties
|
||||
@ -3099,7 +3100,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
updateMsg += `<br>${game.i18n.localize("PROPERTY.Impenetrable")} - ${game.i18n.localize("CHAT.CriticalsNullified")}`
|
||||
|
||||
if (hack)
|
||||
updateMsg += `<br>${game.i18n.localize("CHAT.DamageAP")} ${WFRP4E.locations[opposeData.hitloc.value]}`
|
||||
updateMsg += `<br>${game.i18n.localize("CHAT.DamageAP")} ${game.wfrp4e.config.locations[opposeData.hitloc.value]}`
|
||||
|
||||
if (newWounds <= 0)
|
||||
newWounds = 0; // Do not go below 0 wounds
|
||||
@ -3137,11 +3138,11 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
|
||||
// A species may not be entered in the actor, so use some error handling.
|
||||
try {
|
||||
skillList = WFRP4E.speciesSkills[this.data.data.details.species.value];
|
||||
skillList = game.wfrp4e.config.speciesSkills[this.data.data.details.species.value];
|
||||
if (!skillList) {
|
||||
// findKey() will do an inverse lookup of the species key in the species object defined in config.js, and use that if
|
||||
// user-entered species value does not work (which it probably will not)
|
||||
skillList = WFRP4E.speciesSkills[WFRP_Utility.findKey(this.data.data.details.species.value, WFRP4E.species)]
|
||||
skillList = game.wfrp4e.config.speciesSkills[WFRP_Utility.findKey(this.data.data.details.species.value, game.wfrp4e.config.species)]
|
||||
if (!skillList) {
|
||||
throw game.i18n.localize("Error.SpeciesSkills") + " " + this.data.data.details.species.value;
|
||||
}
|
||||
@ -3188,11 +3189,11 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
// A species may not be entered in the actor, so use some error handling.
|
||||
let talentList
|
||||
try {
|
||||
talentList = WFRP4E.speciesTalents[this.data.data.details.species.value];
|
||||
talentList = game.wfrp4e.config.speciesTalents[this.data.data.details.species.value];
|
||||
if (!talentList) {
|
||||
// findKey() will do an inverse lookup of the species key in the species object defined in config.js, and use that if
|
||||
// user-entered species value does not work (which it probably will not)
|
||||
talentList = WFRP4E.speciesTalents[WFRP_Utility.findKey(this.data.data.details.species.value, WFRP4E.species)]
|
||||
talentList = game.wfrp4e.config.speciesTalents[WFRP_Utility.findKey(this.data.data.details.species.value, game.wfrp4e.config.species)]
|
||||
if (!talentList)
|
||||
throw game.i18n.localize("Error.SpeciesTalents") + " " + this.data.data.details.species.value;
|
||||
}
|
||||
@ -3207,7 +3208,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
if (!isNaN(talent)) // If is a number, roll on random talents
|
||||
{
|
||||
for (let i = 0; i < talent; i++) {
|
||||
let result = WFRP_Tables.rollTable("talents")
|
||||
let result = game.wfrp4e.tables.rollTable("talents")
|
||||
await this._advanceTalent(result.name);
|
||||
}
|
||||
continue
|
||||
@ -3375,7 +3376,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
}
|
||||
delete data.preData.roll;
|
||||
delete data.preData.SL;
|
||||
new ActorWfrp4e(data.postData.actor)[`${data.postData.postFunction}`]({testData : data.preData, cardOptions});
|
||||
new ActorWfrp4e_fr(data.postData.actor)[`${data.postData.postFunction}`]({testData : data.preData, cardOptions});
|
||||
|
||||
//We also set fortuneUsedAddSL to force the player to use it on the new roll
|
||||
message.update({
|
||||
@ -3399,7 +3400,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
game.user.targets.forEach(t => t.setTarget(false, { user: game.user, releaseOthers: false, groupSelection: true }));
|
||||
|
||||
cardOptions.fortuneUsedAddSL = true;
|
||||
new ActorWfrp4e(data.postData.actor)[`${data.postData.postFunction}`]({testData : newTestData, cardOptions}, {rerenderMessage : message});
|
||||
new ActorWfrp4e_fr(data.postData.actor)[`${data.postData.postFunction}`]({testData : newTestData, cardOptions}, {rerenderMessage : message});
|
||||
message.update({
|
||||
"flags.data.fortuneUsedAddSL": true
|
||||
});
|
||||
@ -3442,7 +3443,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
}
|
||||
delete message.data.flags.data.preData.roll;
|
||||
delete message.data.flags.data.preData.SL;
|
||||
new ActorWfrp4e(data.postData.actor)[`${data.postData.postFunction}`]({testData : data.preData, cardOptions});
|
||||
new ActorWfrp4e_fr(data.postData.actor)[`${data.postData.postFunction}`]({testData : data.preData, cardOptions});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3564,7 +3565,7 @@ DiceWFRP.renderRollCard() as well as handleOpposedTarget().
|
||||
|
||||
if (failed) {
|
||||
let wpb = this.data.data.characteristics.wp.bonus;
|
||||
let tableText = "Roll on a Corruption Table:<br>" + WFRP4E.corruptionTables.map(t => `@Table[${t}]<br>`).join("")
|
||||
let tableText = "Roll on a Corruption Table:<br>" + game.wfrp4e.config.corruptionTables.map(t => `@Table[${t}]<br>`).join("")
|
||||
ChatMessage.create(WFRP_Utility.chatDataSetup(`
|
||||
<h3>Dissolution of Body and Mind</h3>
|
||||
<p>As corruption ravages your soul, the warping breath of Chaos whispers within, either fanning your flesh into a fresh, new form, or fracturing your psyche with exquisite knowledge it can never unlearn.</p>
|
||||
|
Reference in New Issue
Block a user