Skip to content

Commit bfaf593

Browse files
committed
Daily Update
1 parent 7705f18 commit bfaf593

19 files changed

+114
-74
lines changed

lang/en.json

+14-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"ACTOR.TypeCharmage": "Mage Character",
2+
"ACTOR.TypeCharmage": "Mage Player",
33
"ACTOR.TypeNpcmage": "Mage NPC",
44
"ACTOR.TypeNpcsleeper": "Sleeper NPC",
55
"ITEM.TypeAbility": "Ability",
@@ -416,9 +416,10 @@
416416
"1": "🖱️ Right : Remove Quintessence",
417417
"2": "🖱️ Left : Remove Paradox"
418418
},
419+
"moveup": "Move Upwards",
419420
"name": "Name of the Trait or Item",
420-
"nonEditable": "Non-editable.",
421-
"openJE": "Open/edit this Journal Entry.",
421+
"nonEditable": "Non-editable",
422+
"openJE": "Open/edit this Journal Entry",
422423
"openPersonalJE": "Open/edit Personnal Journal Entry for this character",
423424
"quantityMinus": "Descrease quantity",
424425
"quantityPlus": "Increase quantity",
@@ -436,21 +437,21 @@
436437
"vulgarWitness": "Vulgar effect with Witnesses"
437438
},
438439
"throwModeOnes": {
439-
"0": "1's don't do anything particular.",
440-
"1": "Each '1' deducts a success.",
441-
"2": "Risk of Critical Failure."
440+
"0": "1's don't do anything particular",
441+
"1": "Each '1' deducts a success",
442+
"2": "Risk of Critical Failure"
442443
},
443444
"throwModeTens": {
444-
"0": "10's don't do anything particular.",
445-
"3": "Each '10' adds an extra success."
445+
"0": "10's don't do anything particular",
446+
"3": "Each '10' adds an extra success"
446447
},
447448
"toggleCloseOnRoll": "Toggle 'Close on roll'",
448449
"toggleResetOnRoll": "Toggle 'Reset on roll'",
449450
"toggleEditMode": "Toggle 'edition mode'/'display mode'",
450-
"toggleEquiped": "Toggle equiped/unequiped",
451+
"toggleEquipped": "Toggle equipped/unequipped",
451452
"unlockToEdit": "Switch to 'edition mode'(🔓) in order to edit this field",
452453
"untrained": "Untrained!",
453-
"useAlternateDesc": "⚠ Will attempt to load alternative trait descriptions suffixed with given tag.",
454+
"useAlternateDesc": "⚠ Will attempt to load alternative trait descriptions suffixed with given tag",
454455
"useSpecialty": "Use Specialty",
455456
"value0to5": "A value 'usually' between 0 and 5",
456457
"wounds": {
@@ -483,7 +484,7 @@
483484
"displayDesc": "Pers. description",
484485
"effectLevel": "Effect Level",
485486
"equipable": "Equipable",
486-
"equiped": "Equiped",
487+
"equipped": "Equipped",
487488
"extra": "Extra",
488489
"faction": "Faction",
489490
"feedback": "Backlash",
@@ -604,6 +605,7 @@
604605
"missingParadigm": "Seems like this actor doesn't have a Paradigm!",
605606
"nan": "'{value}' is not a number !",
606607
"newParadigm": "CSS modifications from the paradigm will only be enforced after a refresh (F5).",
608+
"noActorInWorld": "You need at least one actor in this world in order to do that!",
607609
"noSingleTokenSelected": "1 (and only 1) Token must be selected!",
608610
"noJournal": "No Journal Linked!",
609611
"notImplemented": "Feature not yet implemented!" ,
@@ -718,7 +720,7 @@
718720
"flavor": "⚠ Warning ⚠",
719721
"header": "<p>New version : {sysVersion}</p>",
720722
"warning": "<p>⚠ This system is still in beta, at your disposal for testing purposes only!</p><p>Don't use it if you're not ready to start your world, actors and items from scratch with each update!!!</p>",
721-
"changelogURL" : "<p><a href='https://github.com/CarterDC/mage-fr/wiki'>change log</a></p>",
723+
"changelogURL" : "<p><a href='https://github.com/CarterDC/mage-fr/releases/latest'>change log</a></p>",
722724
"clickMe": "Click Me!"
723725
},
724726
"welcomeMessage": {

lang/fr.json

+42-40
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"ACTOR.TypeCharmage": "Perso Mage",
2+
"ACTOR.TypeCharmage": "Joueur Mage",
33
"ACTOR.TypeNpcmage": "PNJ Mage",
44
"ACTOR.TypeNpcsleeper": "PNJ Dormeur",
55
"ITEM.TypeAbility": "Capacité",
@@ -393,65 +393,66 @@
393393
},
394394
"hints": {
395395
"add": "Ajouter",
396-
"addDice": "Ajouter un Dé.",
397-
"aeToggleDisabled": "Activer/désactiver l'Active Effect.",
396+
"addDice": "Ajouter un Dé",
397+
"aeToggleDisabled": "Activer/désactiver l'Active Effect",
398398
"aliasFrequency": "Fréquence d'apparition d'un alias",
399-
"canDropJE": "Saisissez une valeur ou bien glissez/déposez un Journal.",
400-
"compendiumEdit": "Éditable uniquement via Compendium.",
401-
"createJE": "Créer un journal pour ce perso.",
399+
"canDropJE": "Saisissez une valeur ou bien glissez/déposez un Journal",
400+
"compendiumEdit": "Éditable uniquement via Compendium",
401+
"createJE": "Créer un journal pour ce perso",
402402
"date": "Une date approximative ?",
403-
"diceButton": "click pour lancer les traits séléctionnés (shift+click pour lancer rapide).",
404-
"dicePool": "Si le groupement de dé tombe à 0, le jet sera impossible.",
403+
"diceButton": "click pour lancer les traits séléctionnés (shift+click pour lancer rapide)",
404+
"dicePool": "Si le groupement de dé tombe à 0, le jet sera impossible",
405405
"displayDescription": "Apparait souvent en info-bulle ou en 'linkant' dans le chat",
406-
"displayName": "Apparaît automatiquement à la place du nom d'origine.",
406+
"displayName": "Apparaît automatiquement à la place du nom d'origine",
407407
"edit": "Éditer",
408-
"extra": "Inutile et indispensable.",
408+
"extra": "Inutile et indispensable",
409409
"imgClick": "Cliquer pour choisir une image",
410-
"itemEffect": "Limité à 1 ActiveEffect par item. ⚠ Modifiable uniquement hors d'un actor.",
411-
"lexiconPath": "Un chemin relatif tel que défini dans le fichier de localisation.",
412-
"lexiconValue": "Nouvelle traduction/paradigme pour le chemin ci-dessus.",
410+
"itemEffect": "Limité à 1 ActiveEffect par item. ⚠ Modifiable uniquement hors d'un actor",
411+
"lexiconPath": "Un chemin relatif tel que défini dans le fichier de localisation",
412+
"lexiconValue": "Nouvelle traduction/paradigme pour le chemin ci-dessus",
413413
"magepower": {
414-
"0": "🖱️ Gauche : Ajouter Quintessence, 🖱️ Droite : Ajouter Paradoxe.",
415-
"1": "🖱️ Droite : Retirer Quintessence.",
416-
"2": "🖱️ Gauche : Retirer Paradoxe."
414+
"0": "🖱️ Gauche : Ajouter Quintessence, 🖱️ Droite : Ajouter Paradoxe",
415+
"1": "🖱️ Droite : Retirer Quintessence",
416+
"2": "🖱️ Gauche : Retirer Paradoxe"
417417
},
418+
"moveup": "Déplacer vers le haut",
418419
"name": "Nom du trait ou de l'objet",
419-
"nonEditable": "Non-éditable.",
420-
"openJE": "Voir/Éditer ce journal.",
421-
"openPersonalJE": "Voir/Éditer le journal de ce perso.",
420+
"nonEditable": "Non-éditable",
421+
"openJE": "Voir/Éditer ce journal",
422+
"openPersonalJE": "Voir/Éditer le journal de ce perso",
422423
"quantityMinus": "Diminuer la quantité",
423424
"quantityPlus": "Augmenter la quantité",
424425
"remove": "Supprimer",
425-
"removeDice": "Supprimer un Dé.",
426-
"removeFromThrow": "Supprimer pour ce jet.",
427-
"specialty": "Utilisé uniquement à partir du rang 4.",
426+
"removeDice": "Supprimer un Dé",
427+
"removeFromThrow": "Supprimer pour ce jet",
428+
"specialty": "Utilisé uniquement à partir du rang 4",
428429
"switch": "Intervertir",
429-
"systemDescription": "A éditer de préférence en mode HTML pour bien voir les tags.",
430-
"systemName": "Sert de référence, éditable par un GM.",
430+
"systemDescription": "A éditer de préférence en mode HTML pour bien voir les tags",
431+
"systemName": "Sert de référence, éditable par un GM",
431432
"difficulty": "Les bonus/malus ne devraient pas excéder -3/3, sinon il vaut mieux ajuster le seuil de succès",
432433
"difficultyCue": {
433-
"coincidental": "Effet coincidental.",
434-
"vulgar": "Effet vulgaire.",
435-
"vulgarWitness": "Effet vulgaire avec témoins."
434+
"coincidental": "Effet coincidental",
435+
"vulgar": "Effet vulgaire",
436+
"vulgarWitness": "Effet vulgaire avec témoins"
436437
},
437438
"throwModeOnes": {
438-
"0": "Les '1' ne font rien de spécial.",
439-
"1": "Chaque '1' retire un succès.",
440-
"2": "Risque d'Échec Critique."
439+
"0": "Les '1' ne font rien de spécial",
440+
"1": "Chaque '1' retire un succès",
441+
"2": "Risque d'Échec Critique"
441442
},
442443
"throwModeTens": {
443-
"0": "Les '10' ne font rien de spécial.",
444-
"3": "Chaque '10' rajoute un succès supplémentaire."
444+
"0": "Les '10' ne font rien de spécial",
445+
"3": "Chaque '10' rajoute un succès supplémentaire"
445446
},
446447
"toggleCloseOnRoll": "Basculer 'Fermer au lancer'",
447448
"toggleResetOnRoll": "Basculer 'Reset au lancer'",
448-
"toggleEditMode": "Basculer 'mode édition'/'mode affichage'.",
449-
"toggleEquiped": "Basculer équipé/déséquipé.",
450-
"unlockToEdit": "Basculez en 'mode édition'(🔓) pour remplir ce champ.",
449+
"toggleEditMode": "Basculer 'mode édition'/'mode affichage'",
450+
"toggleEquipped": "Basculer équipé/déséquipé",
451+
"unlockToEdit": "Basculez en 'mode édition'(🔓) pour remplir ce champ",
451452
"untrained": "Non Entrainé !",
452-
"useAlternateDesc": "⚠ Essaiera de charger des descriptions alternatives utilisant le suffixe fourni.",
453-
"useSpecialty": "Utiliser la spécialité.",
454-
"value0to5": "Une valeur 'généralement' entre 0 et 5.",
453+
"useAlternateDesc": "⚠ Essaiera de charger des descriptions alternatives utilisant le suffixe fourni",
454+
"useSpecialty": "Utiliser la spécialité",
455+
"value0to5": "Une valeur 'généralement' entre 0 et 5",
455456
"wounds": {
456457
"1": "Blessure étourdissante",
457458
"2": "Blessure létale",
@@ -482,7 +483,7 @@
482483
"displayDesc": "Description perso.",
483484
"effectLevel": "Niveau de l'effet",
484485
"equipable": "Équipable",
485-
"equiped": "Équipé",
486+
"equipped": "Équipé",
486487
"extra": "Extra",
487488
"faction": "Faction",
488489
"feedback": "Contre-Coup",
@@ -603,6 +604,7 @@
603604
"missingParadigm": "Il semblerait que ce personnage n'ait pas de paradigme !",
604605
"nan": "'{value}' n'est pas un nombre !",
605606
"newParadigm": "Les modifications de CSS dûes au paradigme ne seront visibles qu'après un refresh (F5).",
607+
"noActorInWorld": "Vous devez avoir au moins 1 acteur dans ce monde pour faire celà !",
606608
"noSingleTokenSelected": "1 token (et un seul) doit être sélectionné !",
607609
"noJournal": "Aucun lien vers un Journal !",
608610
"notImplemented": "Fonctionnalité non-implémentée encore !" ,
@@ -718,7 +720,7 @@
718720
"flavor": "⚠ Avertissement ⚠",
719721
"header": "<p>Changement de version : {sysVersion}</p>",
720722
"warning": "<p>⚠ Ce système est encore en version beta, mis à disposition uniquement pour des tests !</p><p>Ne l'utiliser que si vous êtes prêts à refaire votre monde, actors et items à chaque mise à jour !!!</p>",
721-
"changelogURL" : "<p><a href='https://github.com/CarterDC/mage-fr/wiki'>change log</a></p>",
723+
"changelogURL" : "<p><a href='https://github.com/CarterDC/mage-fr/releases/latest'>change log</a></p>",
722724
"clickMe": "Cliquez moi !"
723725
},
724726
"welcomeMessage": {

module/apps/sheets/m20e-actor-sheet.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export default class M20eActorSheet extends ActorSheet {
107107
//gear & other possessions
108108
sheetData.items.equipables = sheetData.items.filter((itemData) => itemData.data.isEquipable === true);
109109
sheetData.items.miscs = sheetData.items.filter((itemData) => ( itemData.type === 'misc' && itemData.data.isEquipable === false ));
110-
//todo : sort equipables according to type and isEquiped ?
110+
//todo : sort equipables according to type and isEquipped ?
111111
//todo : sort misc according to isConsumable ?
112112

113113
//other usefull data

module/apps/sheets/m20e-ae-sheet.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ export default class M20eAeSheet extends DocumentSheet {
263263
//In this instance 'item' is a change entry in the changes array for this ActiveEffect
264264
async addItem(buttonElem) {
265265
if ( Object.keys(CONFIG.M20E.stats).length === 0 ) {
266-
ui.notifications.warn('M20E.notifications.noActorInWorld');
266+
ui.notifications.warn(game.i18n.localize('M20E.notifications.noActorInWorld'));
267267
return;
268268
}
269269
const changes = duplicate(this.effect.data.changes);

module/apps/sheets/m20e-item-sheet-rollable.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export default class M20eRollableSheet extends M20eItemSheet {
8585
*/
8686
async addItem(buttonElem) {
8787
if ( Object.keys(CONFIG.M20E.stats).length === 0 ) {
88-
ui.notifications.warn('M20E.notifications.noActorInWorld');
88+
ui.notifications.warn(game.i18n.localize('M20E.notifications.noActorInWorld'));
8989
return;
9090
}
9191
this.item.addThrow();

module/apps/sheets/m20e-item-sheet.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export default class M20eItemSheet extends ItemSheet {
6060
const itemData = sheetData.data;
6161
sheetData.data = itemData.data; //shorthand for convenience to avoid 'data.data' all the time
6262

63+
6364
sheetData.showEffectField = !this.item.isOwned || this.item.effects.size;
6465
sheetData.hasEffect = this.item.effects.size;
6566

@@ -75,7 +76,8 @@ export default class M20eItemSheet extends ItemSheet {
7576
/** @override */
7677
activateListeners(html) {
7778
//disable buttons/inputs given their 'protection status'
78-
if ( this.item.data.isProtectedType && !game.user.isGM ) {
79+
const isProtected = this.item.data.isProtectedType && this.actor.data.data.creationDone;
80+
if ( isProtected && !game.user.isGM ) {
7981
this._protectElements(html);
8082
}
8183

module/chat-helpers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ async function sameThrow(liElem, options = {}) {
219219
const itemId = throwData.data.throwOwnerId;
220220
if ( itemId ) {
221221
if ( userActor.id !== rollActor.id || !rollActor.isOwner ) {
222-
ui.notifications.warn('M20E.notifications.notTheItemOwner');
222+
ui.notifications.warn(game.i18n.localize('M20E.notifications.notTheItemOwner'));
223223
return;
224224
}
225225
const item = rollActor.getItemFromId(throwData.data.throwOwnerId);

module/dice-helpers.js

+2
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ export class M20eRoll extends Roll {
140140
value: data.difficultyBase
141141
}, ...diffTooltips];
142142
}
143+
//attempts to extract success mods if any
144+
part.data = {...part.data, ...this.getNumericTerms()};
143145
} else {
144146
//attempts to extract success mods if any
145147
part.data = {...part.data, ...this.getNumericTerms()};

module/documents/m20e-actor.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ export default class M20eActor extends Actor {
206206
/* -------------------------------------------- */
207207

208208
/**
209-
* Disables effect if it originates from an equipable item that's not equiped.
209+
* Disables effect if it originates from an equipable item that's not equipped.
210210
* @param {ActiveEffect} effect
211211
*/
212212
manageLinkedEffect(effect) {
@@ -216,7 +216,7 @@ export default class M20eActor extends Actor {
216216
const item = this.items.get(origins[3])
217217
if ( !item ) { return; }
218218

219-
if ( item.isUnequiped ) {//only works on equipable items
219+
if ( item.isUnequipped ) {//only works on equipable items
220220
effect.data.disabled = true;
221221
}
222222
}
@@ -727,7 +727,7 @@ export default class M20eActor extends Actor {
727727
name: game.i18n.localize(`M20E.${path}`),
728728
displayName: this.getLexiconEntry(path),
729729
value: this._getStat(path, 'value'),
730-
specialty: foundry.utils.getProperty(this.data.data, `${path}.specialty`)
730+
specialty: foundry.utils.getProperty(this.data.data, `${path}.specialty`) ?? null
731731
};
732732
}
733733
}

module/documents/m20e-item-rote.js

+4
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ export default class M20eRoteItem extends M20eRollableItem {
4141
}
4242
}
4343

44+
_isActuallyRollable(actor) {
45+
return this.data.data.throws[0].isAbleToThrow(actor);
46+
}
47+
4448
//get that's displayed on the actorsheet
4549
getMiniFlavor() {
4650
if ( !this.actor ) { return null; }

module/documents/m20e-item.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,9 @@ export default class M20eItem extends Item {
186186
const itemData = this.data;
187187
return {
188188
name: itemData.name,
189-
displayName: itemData.displayName,
189+
displayName: itemData.data.displayName ?? null,
190190
value: this.actor._getStat(path, 'value'),
191-
specialty: itemData.specialty
191+
specialty: itemData.data.specialty ?? null
192192
};
193193
}
194194

@@ -271,10 +271,10 @@ export default class M20eItem extends Item {
271271
}
272272

273273
/**
274-
* To be considered unequiped, item needs to be an equipable first !
274+
* To be considered unequipped, item needs to be an equipable first !
275275
*/
276-
get isUnequiped() {
277-
return this.isEquipable && this.data.data.equiped === false;
276+
get isUnequipped() {
277+
return this.isEquipable && this.data.data.equipped === false;
278278
}
279279
}
280280

styles/less/dialog.less

+10
Original file line numberDiff line numberDiff line change
@@ -246,5 +246,15 @@
246246
font-size: 18px;
247247
}
248248
}
249+
.disabledInput{
250+
border: none;
251+
color: #4b4a44;
252+
background: rgba(0, 0, 0, 0.05);
253+
border-radius: 3px;
254+
padding: 1px 3px;
255+
flex: 0 0;
256+
font-weight: normal;
257+
line-height: 26px;
258+
}
249259

250260
}

styles/m20e.css

+10
Original file line numberDiff line numberDiff line change
@@ -1597,6 +1597,16 @@ li.chat-message .card .card-footer .item-img {
15971597
font-weight: bold;
15981598
font-size: 18px;
15991599
}
1600+
.m20e.dialog .disabledInput {
1601+
border: none;
1602+
color: #4b4a44;
1603+
background: rgba(0, 0, 0, 0.05);
1604+
border-radius: 3px;
1605+
padding: 1px 3px;
1606+
flex: 0 0;
1607+
font-weight: normal;
1608+
line-height: 26px;
1609+
}
16001610
body {
16011611
position: fixed;
16021612
}

system.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"discord": "Carter_DC#1097"
1010
}
1111
],
12-
"version": "0.22.59",
12+
"version": "0.22.61",
1313
"templateVersion": "1",
1414
"minimumCoreVersion": "0.8.3",
1515
"compatibleCoreVersion": "0.8.9",

0 commit comments

Comments
 (0)