diff --git a/css/parts/tray.css b/css/parts/tray.css index e316e6e6..47a02447 100644 --- a/css/parts/tray.css +++ b/css/parts/tray.css @@ -2,7 +2,7 @@ flex: 0; padding: 5px; margin: 3px; - background: url("/systems/vtm5e/assets/images/background-green-marble.webp"), #153b23; + background: url("systems/vtm5e/assets/images/background-green-marble.webp"), #153b23; background-size: cover; border: 2px solid #1e5e35; border-radius: 5px 5px 0 0; diff --git a/css/wod5e.css b/css/wod5e.css index b7c44ea9..49e8d460 100644 --- a/css/wod5e.css +++ b/css/wod5e.css @@ -612,7 +612,7 @@ h3.item-name.chat-portrait-text-size-name-generic { } .dice-tray { - background: url("/systems/vtm5e/assets/images/background-black-marble.jpg"), #000; + background: url("systems/vtm5e/assets/images/background-black-marble.jpg"), #000; border: 2px solid #000; } diff --git a/lang/fr/core-fr.json b/lang/fr/core-fr.json index 23b58997..a8869984 100644 --- a/lang/fr/core-fr.json +++ b/lang/fr/core-fr.json @@ -44,28 +44,28 @@ }, "Bonus": { - "_NewSpecialty": "", - "_AddNewSpecialty": "", - "_NewBonus": "", - "_AddNewBonus": "", - "_Active": "", - "_ActiveWhen": "", - "_Always": "", - "_Never": "", - "_IfEquals": "", + "NewSpecialty": "Nouvelle spécialité", + "AddNewSpecialty": "Ajouter nouvelle spécialité", + "NewBonus": "Nouveau bonus", + "AddNewBonus": "Ajouter nouveau bonus", + "Active": "Actif", + "ActiveWhen": "Activé quand", + "Always": "Toujours", + "Never": "Jamais", + "IfEquals": "Seulement si", "_Path": "", "_PathsSeparatedBySemicolons": "", - "_DisplayWhenInactive": "", - "_Unless": "", + "DisplayWhenInactive": "Montrer quand inactif", + "Unless": "Minimum", "_PathToCheck": "", - "_ValueToCheck": "" + "ValueToCheck": "Valeur vérifiée" }, "SPC": { - "Label": "Personnage d'histoire", + "Label": "Antagoniste", "GeneralDifficulty": "Difficulté générale", - "StandardDicePools": "Piscines de dés standard", - "ExceptionalDicePools": "Piscines de dés exceptionnelles", + "StandardDicePools": "Groupement de dés standard", + "ExceptionalDicePools": "Groupement de dés exceptionnelles", "Physical": "Physique", "Mental": "Mental", "Social": "Social", @@ -81,7 +81,7 @@ }, "Tabs": { - "_Members": "", + "Members": "Membres", "Stats": "Stats", "Features": "Atouts", "Description": "Description", @@ -184,7 +184,7 @@ "RollingWillpower": "Jet de Volonté", "Rolling": "Jet", "RollWillpower": "Test la volonté", - "WillpowerReroll": "Relance du test de Volonté", + "WillpowerReroll": "Relance de la Volonté", "WillpowerFullTitle": "Compteur de volonté au max", "WillpowerFull": "La volonté est entièrement endommagée, impossible de l'endommager davantage.", "WillpowerDamage": "Dégâts de volonté", diff --git a/lang/fr/vampire-fr.json b/lang/fr/vampire-fr.json index 69e8d02c..88f55351 100644 --- a/lang/fr/vampire-fr.json +++ b/lang/fr/vampire-fr.json @@ -11,15 +11,15 @@ "Clan": "Clan", "Generation": "Génération", - "_Chasse": "", - "_Lien": "", - "_Portillon": "", - "_HuntingDifficulty": "", + "Chasse": "Viandis", + "Lien": "Servage", + "Portillon": "Rempart", + "HuntingDifficulty": "Difficulté de la chasse", "VampireDice": "Dé de Vampire", "HungerDice": "Dé de Soif", "Humanity": "Humanité", - "Predator": "Prédateur", + "Predator": "Prédation", "Hunger": "Soif", "HungerFull1": "Soif au max", "HungerFull2": "Déjà à la soif maximale, impossible de l'endommager davantage.", @@ -85,9 +85,9 @@ "Sire": "Sire", "ClanBane": "Fléau de clan", "Amalgam": "Amalgame", - "RollRouse": "Test la Exaltation", - "RollFrenzy": "Test à la frénésie", - "RollRemorse": "Test à la Remords", + "RollRouse": "Test d'Exaltation", + "RollFrenzy": "Test de frénésie", + "RollRemorse": "Test de Remords", "MessyCritical": "Triomphe Brutal", "BestialFailure": "Échec Bestial", "PossibleBestialFailure": "Potentiel Échec Bestial", diff --git a/module/actor/hunter-actor-sheet.js b/module/actor/hunter-actor-sheet.js index e3659147..267b3ef0 100644 --- a/module/actor/hunter-actor-sheet.js +++ b/module/actor/hunter-actor-sheet.js @@ -189,7 +189,7 @@ export class HunterActorSheet extends WoDActor { if (header.dataset.edge) { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => 'perk' in obj) - const img = itemFromList.perk.img ? itemFromList.perk.img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList.perk.img ? itemFromList.perk.img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Prepare the item object. const itemData = { @@ -231,7 +231,7 @@ export class HunterActorSheet extends WoDActor { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => 'perk' in obj) - const img = itemFromList.perk.img ? itemFromList.perk.img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList.perk.img ? itemFromList.perk.img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Prepare the item object. const itemData = { diff --git a/module/actor/werewolf-actor-sheet.js b/module/actor/werewolf-actor-sheet.js index c6226917..f3e560f2 100644 --- a/module/actor/werewolf-actor-sheet.js +++ b/module/actor/werewolf-actor-sheet.js @@ -259,7 +259,7 @@ export class WerewolfActorSheet extends WoDActor { if (header.dataset.gift) { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => 'gift' in obj) - const img = itemFromList.gift.img ? itemFromList.gift.img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList.gift.img ? itemFromList.gift.img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Prepare the item object. const itemData = { @@ -301,7 +301,7 @@ export class WerewolfActorSheet extends WoDActor { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => 'gift' in obj) - const img = itemFromList.gift.img ? itemFromList.gift.img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList.gift.img ? itemFromList.gift.img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Prepare the item object. const itemData = { @@ -351,7 +351,7 @@ export class WerewolfActorSheet extends WoDActor { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => 'gift' in obj) - const img = itemFromList.gift.img ? itemFromList.gift.img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList.gift.img ? itemFromList.gift.img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Prepare the item object. const itemData = { diff --git a/module/actor/wod-v5-sheet.js b/module/actor/wod-v5-sheet.js index d11feceb..9b50066a 100644 --- a/module/actor/wod-v5-sheet.js +++ b/module/actor/wod-v5-sheet.js @@ -345,7 +345,7 @@ export class WoDActor extends ActorSheet { // Get the image for the item, if one is available from the item definitions const itemFromList = WOD5E.ItemTypes.getList().find(obj => type in obj) - const img = itemFromList[type].img ? itemFromList[type].img : '/systems/vtm5e/assets/icons/items/item-default.svg' + const img = itemFromList[type].img ? itemFromList[type].img : 'systems/vtm5e/assets/icons/items/item-default.svg' // Initialize a default name. const name = await WOD5E.api.generateLabelAndLocalize({ string: prelocalizeString }) diff --git a/module/api/wod5e-api.js b/module/api/wod5e-api.js index 19bbde42..a37ba1de 100644 --- a/module/api/wod5e-api.js +++ b/module/api/wod5e-api.js @@ -141,7 +141,8 @@ export class wod5eAPI { renown, attributesList, skillsList, - hungerValue: system === 'vampire' ? actor.system.hunger.value : 0 + hungerValue: system === 'vampire' && actor.type !== 'ghoul' && actor.type !== 'spc' ? actor.system.hunger.value : 0, + actorType: actor.type } // Render the template const content = await renderTemplate(dialogTemplate, dialogData) @@ -300,7 +301,7 @@ export class wod5eAPI { // Define the actor's gamesystem, defaulting to "mortal" if it's not in the systems list const system = WOD5E.Systems.getList().find(obj => actor.system.gamesystem in obj) ? actor.system.gamesystem : 'mortal' - if (system === 'vampire' && actor.type !== 'ghoul') { + if (system === 'vampire' && actor.type !== 'ghoul' && actor.type !== 'spc') { // Define actor's hunger dice, ensuring it can't go below 0 const hungerDice = Math.max(actorData.hunger.value, 0) diff --git a/module/def/itemtypes.js b/module/def/itemtypes.js index 942e6d16..15401779 100644 --- a/module/def/itemtypes.js +++ b/module/def/itemtypes.js @@ -32,32 +32,32 @@ export class ItemTypes { static feature = { label: 'WOD5E.Items.Feature', - img: '/systems/vtm5e/assets/icons/items/feature.svg' + img: 'systems/vtm5e/assets/icons/items/feature.svg' } static power = { label: 'WOD5E.VTM.Discipline', - img: '/systems/vtm5e/assets/icons/items/discipline.png' + img: 'systems/vtm5e/assets/icons/items/discipline.png' } static boon = { label: 'WOD5E.Items.Boon', - img: '/systems/vtm5e/assets/icons/items/boon.svg' + img: 'systems/vtm5e/assets/icons/items/boon.svg' } static customRoll = { label: 'WOD5E.Items.CustomRoll', - img: '/systems/vtm5e/assets/icons/items/custom-roll.png' + img: 'systems/vtm5e/assets/icons/items/custom-roll.png' } static perk = { label: 'WOD5E.HTR.Edge', - img: '/systems/vtm5e/assets/icons/items/edge.png' + img: 'systems/vtm5e/assets/icons/items/edge.png' } static gift = { label: 'WOD5E.WTA.Gift', - img: '/systems/vtm5e/assets/icons/items/gift.png' + img: 'systems/vtm5e/assets/icons/items/gift.png' } } diff --git a/module/dice/icons.js b/module/dice/icons.js index fe7f09ea..a4445e07 100644 --- a/module/dice/icons.js +++ b/module/dice/icons.js @@ -1,8 +1,8 @@ // Static locations of various sets of icons -const mortalDiceLocation = '/systems/vtm5e/assets/icons/dice/mortal/' -const vampireDiceLocation = '/systems/vtm5e/assets/icons/dice/vampire/' -const werewolfDiceLocation = '/systems/vtm5e/assets/icons/dice/werewolf/' -const hunterDiceLocation = '/systems/vtm5e/assets/icons/dice/hunter/' +const mortalDiceLocation = 'systems/vtm5e/assets/icons/dice/mortal/' +const vampireDiceLocation = 'systems/vtm5e/assets/icons/dice/vampire/' +const werewolfDiceLocation = 'systems/vtm5e/assets/icons/dice/werewolf/' +const hunterDiceLocation = 'systems/vtm5e/assets/icons/dice/hunter/' // Baseline dice variables and icon filenames const normalDiceFaces = { diff --git a/module/item/item.js b/module/item/item.js index db489d00..06bdeb3c 100644 --- a/module/item/item.js +++ b/module/item/item.js @@ -75,7 +75,7 @@ export class ItemInfo extends Item { if (!data.name) data.name = game.i18n.format('DOCUMENT.New', { type: itemTypes[data.type] }) // Generate a default image depending on the item type const itemFromList = WOD5E.ItemTypes.getList().find(obj => data.type in obj) - data.img = itemFromList[data.type].img ? itemFromList[data.type].img : '/systems/vtm5e/assets/icons/items/item-default.svg' + data.img = itemFromList[data.type].img ? itemFromList[data.type].img : 'systems/vtm5e/assets/icons/items/item-default.svg' // If folder isn't given, delete the field if (!data.folder) delete data.folder // Choose the default item type if there's only one diff --git a/module/scripts/migration/migrate-item-images.js b/module/scripts/migration/migrate-item-images.js index ab7abafa..3a5916c3 100644 --- a/module/scripts/migration/migrate-item-images.js +++ b/module/scripts/migration/migrate-item-images.js @@ -16,14 +16,14 @@ export const MigrateItemImages = async function () { for (const item of actorItems) { // Check if there are any instances of /systems/vtm5e/assets/icons/powers/ in the actor data - if (countInstances(item.img, '/systems/vtm5e/assets/icons/powers/') > 0) { + if (countInstances(item.img, 'systems/vtm5e/assets/icons/powers/') > 0) { hasFixedItems = true // Create a new object with the updated 'img' property const updatedItem = { _id: item._id, // Preserve the original _id ...item.toObject(), - img: item.img.replace(/\/systems\/vtm5e\/assets\/icons\/powers\//, '/systems/vtm5e/assets/icons/items/') + img: item.img.replace(/\/systems\/vtm5e\/assets\/icons\/powers\//, 'systems/vtm5e/assets/icons/items/') } // Push the updated item to the array diff --git a/system.json b/system.json index 6cbc8874..543a573b 100644 --- a/system.json +++ b/system.json @@ -2,10 +2,10 @@ "id": "vtm5e", "title": "World of Darkness 5e", "description": "World of Darkness 5e system for Foundry VTT", - "version": "4.3.0", + "version": "4.3.2", "compatibility": { "minimum": "11", - "verified": "12.324", + "verified": "12.325", "maximum": "" }, "authors": [ @@ -291,8 +291,8 @@ "url": "https://github.com/Rayji96/foundry-V5", "bugs": "https://github.com/Rayji96/foundry-V5/issues", "background": "systems/vtm5e/assets/images/wodcity.jpg", - "manifest": "https://github.com/Rayji96/foundry-V5/releases/download/4.3.0/system.json", - "download": "https://github.com/Rayji96/foundry-V5/releases/download/4.3.0/vtm5e-4.3.0.zip", + "manifest": "https://github.com/Rayji96/foundry-V5/releases/download/4.3.2/system.json", + "download": "https://github.com/Rayji96/foundry-V5/releases/download/4.3.2/vtm5e-4.3.2.zip", "flags": { "hotReload": { "extensions": ["css", "hbs", "json"], diff --git a/templates/ui/hunter-roll-dialog.hbs b/templates/ui/hunter-roll-dialog.hbs index b3c06429..87ec6bdc 100644 --- a/templates/ui/hunter-roll-dialog.hbs +++ b/templates/ui/hunter-roll-dialog.hbs @@ -11,7 +11,7 @@ {{#unless disableBasicDice}}
- +
@@ -23,7 +23,7 @@ {{#unless disableAdvancedDice}}
- +
@@ -34,4 +34,4 @@ {{/unless}}
{{> "systems/vtm5e/templates/ui/parts/roll-dialog-base.hbs"}} - \ No newline at end of file + diff --git a/templates/ui/mortal-roll-dialog.hbs b/templates/ui/mortal-roll-dialog.hbs index 0befe13b..a3e92632 100644 --- a/templates/ui/mortal-roll-dialog.hbs +++ b/templates/ui/mortal-roll-dialog.hbs @@ -5,7 +5,7 @@
- +
@@ -15,4 +15,4 @@
{{> "systems/vtm5e/templates/ui/parts/roll-dialog-base.hbs"}} - \ No newline at end of file + diff --git a/templates/ui/select-dice-dialog.hbs b/templates/ui/select-dice-dialog.hbs index 4133dc15..026b1aa6 100644 --- a/templates/ui/select-dice-dialog.hbs +++ b/templates/ui/select-dice-dialog.hbs @@ -69,13 +69,16 @@
{{/if}} - {{#ifnoteq hungerValue 5}} -
-
{{localize "WOD5E.VTM.BloodSurge"}}
-
- -
-
+ + {{#ifnoteq actorType 'ghoul'}} + {{#ifnoteq hungerValue 5}} +
+
{{localize "WOD5E.VTM.BloodSurge"}}
+
+ +
+
+ {{/ifnoteq}} {{/ifnoteq}}
{{/ifeq}} diff --git a/templates/ui/tray.hbs b/templates/ui/tray.hbs index 3bd33b7b..207ff345 100644 --- a/templates/ui/tray.hbs +++ b/templates/ui/tray.hbs @@ -25,7 +25,7 @@ {{/if}}
{{text value=pool1Selection}}
@@ -76,4 +76,4 @@ {{localize 'WOD5E.VTM.Remorse'}}
- \ No newline at end of file + diff --git a/templates/ui/vampire-roll-dialog.hbs b/templates/ui/vampire-roll-dialog.hbs index 5d317e62..df40d286 100644 --- a/templates/ui/vampire-roll-dialog.hbs +++ b/templates/ui/vampire-roll-dialog.hbs @@ -11,7 +11,7 @@ {{#unless disableBasicDice}}
- +
@@ -23,7 +23,7 @@ {{#unless disableAdvancedDice}}
- +
@@ -34,4 +34,4 @@ {{/unless}}
{{> "systems/vtm5e/templates/ui/parts/roll-dialog-base.hbs"}} - \ No newline at end of file + diff --git a/templates/ui/werewolf-roll-dialog.hbs b/templates/ui/werewolf-roll-dialog.hbs index 7d75df71..20f8a96f 100644 --- a/templates/ui/werewolf-roll-dialog.hbs +++ b/templates/ui/werewolf-roll-dialog.hbs @@ -11,7 +11,7 @@ {{#unless disableBasicDice}}
- +
@@ -23,7 +23,7 @@ {{#unless disableAdvancedDice}}
- +
@@ -34,4 +34,4 @@ {{/unless}}
{{> "systems/vtm5e/templates/ui/parts/roll-dialog-base.hbs"}} - \ No newline at end of file +