diff --git a/fonts/MailartRubberstamp-Regular.otf b/fonts/MailartRubberstamp-Regular.otf
new file mode 100644
index 0000000..612dd27
Binary files /dev/null and b/fonts/MailartRubberstamp-Regular.otf differ
diff --git a/fonts/rivanna.regular.otf b/fonts/rivanna.regular.otf
deleted file mode 100644
index 513a471..0000000
Binary files a/fonts/rivanna.regular.otf and /dev/null differ
diff --git a/fonts/rivanna.ttf b/fonts/rivanna.ttf
deleted file mode 100644
index a2bd67e..0000000
Binary files a/fonts/rivanna.ttf and /dev/null differ
diff --git a/modules/actors/ecryme-actor-sheet.js b/modules/actors/ecryme-actor-sheet.js
index a152e69..91cdb69 100644
--- a/modules/actors/ecryme-actor-sheet.js
+++ b/modules/actors/ecryme-actor-sheet.js
@@ -35,15 +35,10 @@ export class EcrymeActorSheet extends ActorSheet {
cssClass: this.isEditable ? "editable" : "locked",
system: duplicate(this.object.system),
limited: this.object.limited,
- armes: duplicate(this.actor.getArmes()),
- tarots: duplicate(this.actor.getTarots()),
- tarotsCache: duplicate(this.actor.getHiddenTarots()),
+ weapons: duplicate(this.actor.getWeapons()),
archetype: duplicate(this.actor.getArchetype()),
equipements: duplicate(this.actor.getEquipements()),
subActors: duplicate(this.actor.getSubActors()),
- phyMalus: this.actor.getPhysiqueMalus(),
- elementsbio: this.actor.getElementsBio(),
- sorts: this.actor.getSorts(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipementlibre, { async: true }),
@@ -109,20 +104,11 @@ export class EcrymeActorSheet extends ActorSheet {
this.actor.incDecQuantity( li.data("item-id"), +1 );
} );
- html.find('.ammo-minus').click(event => {
- const li = $(event.currentTarget).parents(".item")
- this.actor.incDecAmmo( li.data("item-id"), -1 );
- } );
- html.find('.ammo-plus').click(event => {
- const li = $(event.currentTarget).parents(".item")
- this.actor.incDecAmmo( li.data("item-id"), +1 )
- } );
-
- html.find('.roll-attribut').click((event) => {
+ html.find('.roll-skill').click((event) => {
let attrKey = $(event.currentTarget).data("attr-key")
this.actor.rollAttribut(attrKey)
});
- html.find('.roll-arme').click((event) => {
+ html.find('.roll-weapon').click((event) => {
const armeId = $(event.currentTarget).data("arme-id")
this.actor.rollArme(armeId)
});
@@ -131,17 +117,11 @@ export class EcrymeActorSheet extends ActorSheet {
this.options.editScore = !this.options.editScore;
this.render(true);
});
- html.find('.item-link a').click((event) => {
- const itemId = $(event.currentTarget).data("item-id");
- const item = this.actor.getOwnedItem(itemId);
- item.sheet.render(true);
- });
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
});
-
html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name");
let value = Number(ev.currentTarget.value);
diff --git a/modules/actors/ecryme-actor.js b/modules/actors/ecryme-actor.js
index db1de74..a498eb5 100644
--- a/modules/actors/ecryme-actor.js
+++ b/modules/actors/ecryme-actor.js
@@ -75,22 +75,12 @@ export class EcrymeActor extends Actor {
super._preUpdate(changed, options, user);
}
- /*_onUpdateEmbeddedDocuments( embeddedName, ...args ) {
- this.rebuildSkills()
- super._onUpdateEmbeddedDocuments(embeddedName, ...args)
- }*/
-
/* -------------------------------------------- */
getMoneys() {
let comp = this.items.filter(item => item.type == 'money');
EcrymeUtility.sortArrayObjectsByName(comp)
return comp;
}
- getSorts() {
- let comp = this.items.filter(item => item.type == 'sortilege');
- EcrymeUtility.sortArrayObjectsByName(comp)
- return comp;
- }
getArchetype() {
let comp = duplicate(this.items.find(item => item.type == 'archetype') || {name: "Pas d'archetype"})
if (comp && comp.system) {
@@ -100,26 +90,8 @@ export class EcrymeActor extends Actor {
return comp;
}
/* -------------------------------------------- */
- getElementsBio() {
- let comp = duplicate(this.items.filter(item => item.type == 'elementbio') || [])
- EcrymeUtility.sortArrayObjectsByName(comp)
- return comp;
- }
- /* -------------------------------------------- */
- getTarots() {
- let comp = duplicate(this.items.filter(item => item.type == 'tarot' && !item.system.isgm) || [])
- EcrymeUtility.sortArrayObjectsByName(comp)
- return comp;
- }
- /* -------------------------------------------- */
- getHiddenTarots() {
- let comp = duplicate(this.items.filter(item => item.type == 'tarot' && item.system.isgm) || [])
- EcrymeUtility.sortArrayObjectsByName(comp)
- return comp;
- }
- /* -------------------------------------------- */
- getArmes() {
- let comp = duplicate(this.items.filter(item => item.type == 'arme') || [])
+ getWeapons() {
+ let comp = duplicate(this.items.filter(item => item.type == 'weapon') || [])
EcrymeUtility.sortArrayObjectsByName(comp)
return comp;
}
@@ -155,17 +127,6 @@ export class EcrymeActor extends Actor {
}
}
- /* -------------------------------------------- */
- compareName(a, b) {
- if (a.name < b.name) {
- return -1;
- }
- if (a.name > b.name) {
- return 1;
- }
- return 0;
- }
-
/* ------------------------------------------- */
getEquipements() {
return this.items.filter(item => item.type == 'equipement')
@@ -272,29 +233,7 @@ export class EcrymeActor extends Actor {
await this.createEmbeddedDocuments('Item', [newItem]);
}
}
- /* -------------------------------------------- */
- incDecFluide(value) {
- let fluide = this.system.fluide + value
- this.update( {'system.fluide': fluide} )
- }
- incDecDestin(value) {
- let destin = this.system.pointdestin + value
- this.update( {'system.pointdestin': destin} )
- }
- incDecMPMB(value) {
- let mpmb = this.system.mpmb + value
- this.update( {'system.mpmb': mpmb} )
- }
- incDecMPMN(value) {
- let mpmn = this.system.mpmn + value
- this.update( {'system.mpmn': mpmn} )
- }
- /* -------------------------------------------- */
- incDecAttr(attrKey, value) {
- let attr = duplicate(this.system.attributs[attrKey])
- attr.value += value
- this.update( { [`system.attributs.${attrKey}`]: attr})
- }
+
/* -------------------------------------------- */
async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.items.get(objetId)
@@ -305,81 +244,48 @@ export class EcrymeActor extends Actor {
}
}
}
- /* -------------------------------------------- */
- async incDecAmmo(objetId, incDec = 0) {
- let objetQ = this.items.get(objetId)
- if (objetQ) {
- let newQ = objetQ.system.ammocurrent + incDec;
- if (newQ >= 0 && newQ <= objetQ.system.ammomax) {
- const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.ammocurrent': newQ }]); // pdates one EmbeddedEntity
- }
- }
- }
- /* -------------------------------------------- */
- getAtttributImage( attrKey) {
- return `systems/fvtt-ecryme/images/icons/${attrKey}.webp`
- }
- /* -------------------------------------------- */
- incDecDestin( value) {
- let newValue = Math.max( this.system.pointdestin + value, 0)
- this.update( {'system.pointdestin': newValue})
- }
-
/* -------------------------------------------- */
getCommonRollData() {
-
let rollData = EcrymeUtility.getBasicRollData()
rollData.alias = this.name
rollData.actorImg = this.img
rollData.actorId = this.id
rollData.img = this.img
- rollData.phyMalus = this.getPhysiqueMalus()
- rollData.elementsbio = this.getElementsBio()
- rollData.destin = this.system.pointdestin
rollData.isReroll = false
- rollData.confrontationDegre = 0
- rollData.confrontationModif = 0
console.log("ROLLDATA", rollData)
return rollData
}
- /* -------------------------------------------- */
- getPhysiqueMalus() {
- if ( this.system.attributs.constitution.value <= 8) {
- return -(9 - this.system.attributs.constitution.value)
- }
- return 0
- }
/* -------------------------------------------- */
- rollAttribut(attrKey) {
- let attr = this.system.attributs[attrKey]
+ rollSkill(attrKey, skillKey) {
+ let skill = this.system.skills[attrKey].skilllist[skillKey]
let rollData = this.getCommonRollData()
- rollData.attr = duplicate(attr)
- rollData.mode = "attribut"
- rollData.title = attr.label
- rollData.img = this.getAtttributImage(attrKey)
+ rollData.skill = duplicate(skill)
+ rollData.mode = "skill"
+ rollData.title = game.i18n.localize(skill.name)
+ rollData.img = skill.img
this.startRoll(rollData)
}
/* -------------------------------------------- */
- rollArme(weaponId) {
- let arme = this.items.get(weaponId)
- if (arme) {
- arme = duplicate(arme)
+ rollWeapon(weaponId) {
+ let weapon = this.items.get(weaponId)
+ if (weapon) {
+ weapon = duplicate(weapon)
let rollData = this.getCommonRollData()
- if (arme.system.armetype == "mainsnues" || arme.system.armetype == "epee") {
+ if (weapon.system.armetype == "mainsnues" || weapon.system.armetype == "epee") {
rollData.attr = { label: "(Physique+Habilité)/2", value: Math.floor( (this.getPhysiqueMalus()+this.system.attributs.physique.value+this.system.attributs.habilite.value) / 2) }
} else {
rollData.attr = duplicate(this.system.attributs.habilite)
}
- rollData.mode = "arme"
- rollData.arme = arme
- rollData.img = arme.img
- rollData.title = arme.name
+ rollData.mode = "weapon"
+ rollData.weapon = weapon
+ rollData.img = weapon.img
+ rollData.title = weapon.name
this.startRoll(rollData)
} else {
ui.notifications.warn("Impossible de trouver l'arme concernée ")
diff --git a/modules/actors/ecryme-npc-sheet.js b/modules/actors/ecryme-npc-sheet.js
deleted file mode 100644
index 4542dcb..0000000
--- a/modules/actors/ecryme-npc-sheet.js
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * Extend the basic ActorSheet with some very simple modifications
- * @extends {ActorSheet}
- */
-
-import { EcrymeUtility } from "./common/ecryme-utility.js";
-
-/* -------------------------------------------- */
-export class EcrymeNPCSheet extends ActorSheet {
-
- /** @override */
- static get defaultOptions() {
-
- return mergeObject(super.defaultOptions, {
- classes: ["Ecryme", "sheet", "actor"],
- template: "systems/fvtt-ecryme/templates/npc-sheet.html",
- width: 640,
- height: 720,
- tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
- dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
- editScore: true
- });
- }
-
- /* -------------------------------------------- */
- async getData() {
- const objectData = this.object.system
- let actorData = duplicate(objectData)
-
- let formData = {
- title: this.title,
- id: this.actor.id,
- type: this.actor.type,
- img: this.actor.img,
- name: this.actor.name,
- editable: this.isEditable,
- cssClass: this.isEditable ? "editable" : "locked",
- data: actorData,
- limited: this.object.limited,
- skills: this.actor.getSkills( ),
- weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
- armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
- shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
- spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getLore())),
- equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
- equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
- equippedArmor: this.actor.getEquippedArmor(),
- equippedShield: this.actor.getEquippedShield(),
- subActors: duplicate(this.actor.getSubActors()),
- moneys: duplicate(this.actor.getMoneys()),
- encCapacity: this.actor.getEncumbranceCapacity(),
- saveRolls: this.actor.getSaveRoll(),
- conditions: this.actor.getConditions(),
- containersTree: this.actor.containersTree,
- encCurrent: this.actor.encCurrent,
- options: this.options,
- owner: this.document.isOwner,
- editScore: this.options.editScore,
- isGM: game.user.isGM
- }
- this.formData = formData;
-
- console.log("PC : ", formData, this.object);
- return formData;
- }
-
- /* -------------------------------------------- */
- /** @override */
- activateListeners(html) {
- super.activateListeners(html);
-
- // Everything below here is only needed if the sheet is editable
- if (!this.options.editable) return;
-
- html.bind("keydown", function(e) { // Ignore Enter in actores sheet
- if (e.keyCode === 13) return false;
- });
-
- // Update Inventory Item
- html.find('.item-edit').click(ev => {
- const li = $(ev.currentTarget).parents(".item")
- let itemId = li.data("item-id")
- const item = this.actor.items.get( itemId );
- item.sheet.render(true);
- });
- // Delete Inventory Item
- html.find('.item-delete').click(ev => {
- const li = $(ev.currentTarget).parents(".item")
- EcrymeUtility.confirmDelete(this, li)
- })
- html.find('.item-add').click(ev => {
- let dataType = $(ev.currentTarget).data("type")
- this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true })
- })
-
- html.find('.equip-activate').click(ev => {
- const li = $(ev.currentTarget).parents(".item")
- let itemId = li.data("item-id")
- this.actor.equipActivate( itemId)
- });
- html.find('.equip-deactivate').click(ev => {
- const li = $(ev.currentTarget).parents(".item")
- let itemId = li.data("item-id")
- this.actor.equipDeactivate( itemId)
- });
-
- html.find('.subactor-edit').click(ev => {
- const li = $(ev.currentTarget).parents(".item");
- let actorId = li.data("actor-id");
- let actor = game.actors.get( actorId );
- actor.sheet.render(true);
- });
-
- html.find('.subactor-delete').click(ev => {
- const li = $(ev.currentTarget).parents(".item");
- let actorId = li.data("actor-id");
- this.actor.delSubActor(actorId);
- });
- html.find('.quantity-minus').click(event => {
- const li = $(event.currentTarget).parents(".item");
- this.actor.incDecQuantity( li.data("item-id"), -1 );
- } );
- html.find('.quantity-plus').click(event => {
- const li = $(event.currentTarget).parents(".item");
- this.actor.incDecQuantity( li.data("item-id"), +1 );
- } );
-
- html.find('.ammo-minus').click(event => {
- const li = $(event.currentTarget).parents(".item")
- this.actor.incDecAmmo( li.data("item-id"), -1 );
- } );
- html.find('.ammo-plus').click(event => {
- const li = $(event.currentTarget).parents(".item")
- this.actor.incDecAmmo( li.data("item-id"), +1 )
- } );
-
- html.find('.roll-ability').click((event) => {
- const abilityKey = $(event.currentTarget).data("ability-key");
- this.actor.rollAbility(abilityKey);
- });
- html.find('.roll-skill').click((event) => {
- const li = $(event.currentTarget).parents(".item")
- const skillId = li.data("item-id")
- this.actor.rollSkill(skillId)
- });
-
- html.find('.roll-weapon').click((event) => {
- const li = $(event.currentTarget).parents(".item");
- const skillId = li.data("item-id")
- this.actor.rollWeapon(skillId)
- });
- html.find('.roll-armor-die').click((event) => {
- this.actor.rollArmorDie()
- });
- html.find('.roll-shield-die').click((event) => {
- this.actor.rollShieldDie()
- });
- html.find('.roll-target-die').click((event) => {
- this.actor.rollDefenseRanged()
- });
-
- html.find('.roll-save').click((event) => {
- const saveKey = $(event.currentTarget).data("save-key")
- this.actor.rollSave(saveKey)
- });
-
-
- html.find('.lock-unlock-sheet').click((event) => {
- this.options.editScore = !this.options.editScore;
- this.render(true);
- });
- html.find('.item-link a').click((event) => {
- const itemId = $(event.currentTarget).data("item-id");
- const item = this.actor.getOwnedItem(itemId);
- item.sheet.render(true);
- });
- html.find('.item-equip').click(ev => {
- const li = $(ev.currentTarget).parents(".item");
- this.actor.equipItem( li.data("item-id") );
- this.render(true);
- });
-
- html.find('.update-field').change(ev => {
- const fieldName = $(ev.currentTarget).data("field-name");
- let value = Number(ev.currentTarget.value);
- this.actor.update( { [`${fieldName}`]: value } );
- });
-
- }
-
- /* -------------------------------------------- */
- /** @override */
- setPosition(options = {}) {
- const position = super.setPosition(options);
- const sheetBody = this.element.find(".sheet-body");
- const bodyHeight = position.height - 192;
- sheetBody.css("height", bodyHeight);
- return position;
- }
-
- /* -------------------------------------------- */
- /** @override */
- _updateObject(event, formData) {
- // Update the Actor
- return this.object.update(formData);
- }
-}
diff --git a/modules/app/ecryme-commands.js b/modules/app/ecryme-commands.js
index ee3cbe9..8ddb413 100644
--- a/modules/app/ecryme-commands.js
+++ b/modules/app/ecryme-commands.js
@@ -9,8 +9,6 @@ export class EcrymeCommands {
static init() {
if (!game.system.ecryme.commands) {
const commands = new EcrymeCommands();
- commands.registerCommand({ path: ["/tirage"], func: (content, msg, params) => EcrymeCommands.createTirage(msg), descr: "Tirage des tarots" });
- commands.registerCommand({ path: ["/carte"], func: (content, msg, params) => EcrymeCommands.tirerCarte(msg), descr: "Tirer une carte" });
commands.registerCommand({ path: ["/resume"], func: (content, msg, params) => EcrymeCharacterSummary.displayPCSummary(), descr: "Affiche la liste des PJs!" });
game.system.ecryme.commands = commands;
}
@@ -104,42 +102,4 @@ export class EcrymeCommands {
ChatMessage.create(msg);
}
- /* --------------------------------------------- */
- static async createTirage(msg) {
- if (game.user.isGM) {
- let tirageData = {
- state: 'select-player',
- nbCard: 0,
- maxPlayerCard: 4,
- maxSecretCard: 1,
- cards: [],
- players: duplicate(game.users),
- secretCards: [],
- deck: EcrymeUtility.getTarots()
- }
- for (let i = 0; i < 4; i++) {
- tirageData.cards.push({ name: "???", img: "systems/fvtt-ecryme/images/tarots/background.webp" })
- }
- tirageData.secretCards.push({ name: "???", img: "systems/fvtt-ecryme/images/tarots/background.webp" })
-
- let tirageDialog = await EcrymeTirageTarotDialog.create(this, tirageData)
- tirageDialog.render(true)
- }
- }
- /* --------------------------------------------- */
- static async tirerCarte(msg) {
- let deck = EcrymeUtility.getTarots()
- let index = Math.round(Math.random() * (deck.length-1))
- let selectedCard = deck[index]
- selectedCard.system.ispositif = true
- if ( selectedCard.system.isdualside) { // Cas des cartes pouvant avoir 2 sens
- selectedCard.system.ispositif = (Math.random() > 0.5)
- }
- selectedCard.system.isgm = false
- selectedCard.value = (selectedCard.system.ispositif)? selectedCard.system.numericvalueup : selectedCard.system.numericvaluedown
- EcrymeUtility.createChatMessage(game.user.name, "", {
- content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/display-tarot-card.hbs`, selectedCard)
- })
- }
-
}
\ No newline at end of file
diff --git a/modules/app/ecryme-hotbar.js b/modules/app/ecryme-hotbar.js
index 04d756a..ab016b6 100644
--- a/modules/app/ecryme-hotbar.js
+++ b/modules/app/ecryme-hotbar.js
@@ -14,7 +14,7 @@ export class EcrymeHotbar {
if (documentData.type == "Item") {
console.log("Drop done !!!", bar, documentData, slot)
let item = documentData.data
- let command = `game.system.Ecryme.EcrymeHotbar.rollMacro("${item.name}", "${item.type}");`
+ let command = `game.system.ecryme.EcrymeHotbar.rollMacro("${item.name}", "${item.type}");`
let macro = game.macros.contents.find(m => (m.name === item.name) && (m.command === command))
if (!macro) {
macro = await Macro.create({
diff --git a/modules/app/ecryme-summary-app.js b/modules/app/ecryme-summary-app.js
index 35611ad..2f0f881 100644
--- a/modules/app/ecryme-summary-app.js
+++ b/modules/app/ecryme-summary-app.js
@@ -9,7 +9,7 @@ export class EcrymeCharacterSummary extends Application {
if (game.user.isGM) {
game.system.ecryme.charSummary.render(true)
} else {
- ui.notifications.info("Commande /tirage réservée au MJ !")
+ ui.notifications.info("Commande /summary réservée au MJ !")
}
}
diff --git a/modules/common/ecryme-utility.js b/modules/common/ecryme-utility.js
index d84fdf2..236af32 100644
--- a/modules/common/ecryme-utility.js
+++ b/modules/common/ecryme-utility.js
@@ -44,17 +44,6 @@ export class EcrymeUtility {
return parseInt(a) + parseInt(b);
})
- game.settings.register("world", "character-summary-data", {
- name: "character-summary-data",
- scope: "world",
- config: false,
- default: { npcList: [], x: 200, y: 200 },
- type: Object
- })
-
- const tarots = await EcrymeUtility.loadCompendium("fvtt-ecryme.ecryme-tarots")
- this.tarots = tarots.map(i => i.toObject())
-
}
/*-------------------------------------------- */
@@ -63,14 +52,6 @@ export class EcrymeUtility {
return text.charAt(0).toUpperCase() + text.slice(1)
}
- /*-------------------------------------------- */
- static getTarots() {
- return duplicate(this.tarots)
- }
- static getTarot(tId) {
- return this.tarots.find(t => t._id == tId)
- }
-
/* -------------------------------------------- */
static async loadCompendiumData(compendium) {
const pack = game.packs.get(compendium)
@@ -94,14 +75,6 @@ export class EcrymeUtility {
}
return actor
}
- /* -------------------------------------------- */
- static drawDeckCard(msgId) {
- if (game.user.isGM) {
- game.system.ecryme.currentTirage.addCard(msgId)
- } else {
- game.socket.emit( "system.fvtt-ecryme", {name: "msg-draw-card", data: {msgId: msgId}})
- }
- }
/* -------------------------------------------- */
static async chatListeners(html) {
@@ -268,75 +241,6 @@ export class EcrymeUtility {
}
}
- /* -------------------------------------------- */
- static processSpecialCard(actor, rollData) {
- if (rollData.selectedCard.name.toLowerCase().includes("archange")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("archange"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: `Conséquence supplémentaire !
L'Archange : ${actor.name} gagne 1 point de Spiritualité.` })
- actor.incDecAttr("spiritualite", 1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("vicaire")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("vicaire"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "blindroll", {
- content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Blanche (MPMB, secret).` })
- actor.incDecMPMB(1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("chance")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("chance"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: `Conséquence supplémentaire !
La Chance : ${actor.name} a gagné 1 point de Destin.` })
- actor.incDecDestin(1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("mort")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("mort"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: `Conséquence supplémentaire !
La Mort : ${actor.name} est pétrifié par la peur.` })
- actor.incDecDestin(1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("diable")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("diable"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: `Conséquence supplémentaire !
Le Diable : ${actor.name} gagne 1 point de Rationnalité.` })
- actor.incDecAttr("rationnalite", 1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("lune noire")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("lune noire"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "blindroll", {
- content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` })
- actor.incDecFluide(1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("grand livre")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("grand livre"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "blindroll", {
- content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` })
- actor.incDecFluide(1)
- }
- }
- if (rollData.selectedCard.name.toLowerCase().includes("sorcier")) {
- let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("sorcier"))
- if (actorCard) {
- EcrymeUtility.createChatMessage(actor.name, "blindroll", {
- content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Noire (MPMN, secret).` })
- actor.incDecMPMN(1)
- }
- }
-
- }
-
/* -------------------------------------------- */
static computeResults(rollData) {
rollData.isSuccess = false
@@ -355,38 +259,7 @@ export class EcrymeUtility {
rollData.isPart = true
}
}
- /* -------------------------------------------- */
- static async tirageConfrontationEcryme(rollData) {
- let actor = game.actors.get(rollData.actorId)
- rollData.target = rollData.attr.value - rollData.confrontationDegre + rollData.confrontationModif
-
- let deck = this.getTarots()
- let index = Math.round(Math.random() * (deck.length-1))
- let selectedCard = deck[index]
- selectedCard.system.ispositif = (Math.random() > 0.5)
- selectedCard.value = (selectedCard.system.ispositif)? selectedCard.system.numericvalueup : selectedCard.system.numericvaluedown
- rollData.total = selectedCard.value
- rollData.selectedCard = selectedCard
- await EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/display-tarot-card.hbs`, selectedCard)
- })
-
- this.computeResults(rollData)
-
- if (rollData.isSuccess) {
- rollData.gainAttr = Math.ceil(rollData.confrontationDegre/2) + ((rollData.isCritical ) ? 1 : 0)
- actor.incDecAttr(rollData.attr.abbrev, rollData.gainAttr )
- } else {
- rollData.gainAttr = rollData.confrontationDegre
- actor.incDecAttr(rollData.attr.abbrev, -rollData.gainAttr )
- }
-
- await EcrymeUtility.createChatMessage(actor.name, "gmroll", {
- content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-confrontation-result.hbs`, rollData)
- })
- this.processSpecialCard(actor, rollData)
- }
/* -------------------------------------------- */
static async rollEcryme(rollData) {
diff --git a/modules/items/ecryme-item.js b/modules/items/ecryme-item.js
index 2973e53..2d2bc6d 100644
--- a/modules/items/ecryme-item.js
+++ b/modules/items/ecryme-item.js
@@ -1,19 +1,15 @@
-import { MaleficesUtility } from "./malefices-utility.js";
+import { EcrymeUtility } from "./ecryme-utility.js";
export const defaultItemImg = {
- arme: "systems/fvtt-malefices/images/icons/arme.webp",
- equipement: "systems/fvtt-malefices/images/icons/equipement.webp",
- elementbio: "systems/fvtt-malefices/images/icons/wisdom.webp",
- archetype: "systems/fvtt-malefices/images/icons/archetype.webp",
- tarot: "systems/fvtt-malefices/images/icons/tarot.webp",
- sortilege: "systems/fvtt-malefices/images/icons/sortilege.webp",
+ weapon: "systems/fvtt-ecryme/images/icons/weapon.webp",
+ equipement: "systems/fvtt-ecryme/images/icons/equipement.webp"
}
/**
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
-export class MaleficesItem extends Item {
+export class EcrymeItem extends Item {
constructor(data, context) {
if (!data.img) {
diff --git a/styles/ecryme.css b/styles/ecryme.css
index 045fd20..8e22378 100644
--- a/styles/ecryme.css
+++ b/styles/ecryme.css
@@ -1,7 +1,7 @@
/* ==================== (A) Fonts ==================== */
@font-face {
- font-family: "Rivanna";
- src: url('../fonts/rivanna.ttf') format("truetype");
+ font-family: "MailartRubberstamp";
+ src: url('../fonts/MailartRubberstamp-Regular.otf') format("otf");
}
:root {
@@ -52,7 +52,7 @@
.sheet nav.sheet-tabs {
font-size: 0.8rem;
} /* For nav and title */
-.window-app input, .fvtt-malefices .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
+.window-app input, .fvtt-ecryme .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
font-size: 0.8rem;
}
@@ -202,7 +202,7 @@ table {border: 1px solid #7a7971;}
}
/* Styles limited to sheets */
-.fvtt-malefices .sheet-header {
+.fvtt-ecryme .sheet-header {
-webkit-box-flex: 0;
-ms-flex: 0 0 210px;
flex: 0 0 210px;
@@ -222,7 +222,7 @@ table {border: 1px solid #7a7971;}
margin-bottom: 10px;
}
-.fvtt-malefices .sheet-header .profile-img {
+.fvtt-ecryme .sheet-header .profile-img {
-webkit-box-flex: 0;
-ms-flex: 0 0 128px;
flex: 0 0 128px;
@@ -271,38 +271,38 @@ table {border: 1px solid #7a7971;}
vertical-align: bottom;
}
-.fvtt-malefices .sheet-header .header-fields {
+.fvtt-ecryme .sheet-header .header-fields {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
-.fvtt-malefices .sheet-header h1.charname {
+.fvtt-ecryme .sheet-header h1.charname {
height: 50px;
padding: 0px;
margin: 5px 0;
border-bottom: 0;
}
-.fvtt-malefices .sheet-header h1.charname input {
- font-family: Rivanna;
+.fvtt-ecryme .sheet-header h1.charname input {
+ font-family: MailartRubberstamp;
font-size: 3rem;
width: 100%;
height: 100%;
margin: 0;
}
-.fvtt-malefices .sheet-tabs {
+.fvtt-ecryme .sheet-tabs {
-webkit-box-flex: 0;
-ms-flex: 0;
flex: 0;
- font-family: Rivanna;
+ font-family: MailartRubberstamp;
font-size: 2.2rem;
}
-.fvtt-malefices .sheet-body,
-.fvtt-malefices .sheet-body .tab,
-.fvtt-malefices .sheet-body .tab .editor {
+.fvtt-ecryme .sheet-body,
+.fvtt-ecryme .sheet-body .tab,
+.fvtt-ecryme .sheet-body .tab .editor {
height: 100%;
font-size: 0.8rem;
}
@@ -325,70 +325,70 @@ table {border: 1px solid #7a7971;}
padding: 0 3px;
}
-.fvtt-malefices .tox .tox-editor-container {
+.fvtt-ecryme .tox .tox-editor-container {
background: #fff;
}
-.fvtt-malefices .tox .tox-edit-area {
+.fvtt-ecryme .tox .tox-edit-area {
padding: 0 8px;
}
-.fvtt-malefices .resource-label {
+.fvtt-ecryme .resource-label {
font-weight: bold;
text-transform: uppercase;
}
-.fvtt-malefices .tabs {
+.fvtt-ecryme .tabs {
height: 40px;
border-top: 1px solid #AAA;
border-bottom: 1px solid #AAA;
color: #000000;
}
-.fvtt-malefices .tabs .item {
+.fvtt-ecryme .tabs .item {
line-height: 40px;
font-weight: bold;
}
-.fvtt-malefices .tabs .item.active {
+.fvtt-ecryme .tabs .item.active {
text-decoration: underline;
text-shadow: none;
}
-.fvtt-malefices .items-list {
+.fvtt-ecryme .items-list {
list-style: none;
margin: 1px 0;
padding: 0;
overflow-y: auto;
}
-.fvtt-malefices .items-list .item-header {
+.fvtt-ecryme .items-list .item-header {
font-weight: bold;
}
-.fvtt-malefices .items-list .item {
+.fvtt-ecryme .items-list .item {
height: 30px;
line-height: 24px;
padding: 1px 0;
border-bottom: 1px solid #BBB;
}
-.fvtt-malefices .items-list .item .item-image {
+.fvtt-ecryme .items-list .item .item-image {
-webkit-box-flex: 0;
-ms-flex: 0 0 24px;
flex: 0 0 24px;
margin-right: 5px;
}
-.fvtt-malefices .items-list .item img {
+.fvtt-ecryme .items-list .item img {
display: block;
}
-.fvtt-malefices .items-list .item-name {
+.fvtt-ecryme .items-list .item-name {
margin: 0;
}
-.fvtt-malefices .items-list .item-controls {
+.fvtt-ecryme .items-list .item-controls {
-webkit-box-flex: 0;
-ms-flex: 0 0 86px;
flex: 0 0 86px;
@@ -840,7 +840,7 @@ ul, li {
.chat-result-text,
.chat-actor-name {
font-weight: bold;
- font-family: Rivanna;
+ font-family: MailartRubberstamp;
font-size: 1.2rem;
padding: 4px;
}
diff --git a/template.json b/template.json
index 9258b20..4355f07 100644
--- a/template.json
+++ b/template.json
@@ -43,13 +43,13 @@
"max": 0,
"value": 0
},
- "brawl": {
- "name": "ECRY.ui.brawl",
+ "brawling": {
+ "name": "ECRY.ui.brawling",
"max": 0,
"value": 0
},
- "shoot": {
- "name": "ECRY.ui.shoot",
+ "shooting": {
+ "name": "ECRY.ui.shooting",
"max": 0,
"value": 0
}
@@ -58,8 +58,8 @@
"mental": {
"name": "ECRY.ui.mental",
"skilllist": {
- "anthropomechanicologys": {
- "name": "ECRY.ui.anthropomechanicologys",
+ "anthropomecanology": {
+ "name": "ECRY.ui.anthropomecanology",
"value": 0,
"max": 10
},
@@ -88,8 +88,8 @@
"social": {
"name": "ECRY.ui.social",
"skilllist": {
- "quibble": {
- "name": "ECRY.ui.quibble",
+ "quibbling": {
+ "name": "ECRY.ui.quibbling",
"value": 0,
"max": 10
},
@@ -103,8 +103,8 @@
"value": 0,
"max": 10
},
- "skulduggery": {
- "name": "ECRY.ui.skulduggery",
+ "guile": {
+ "name": "ECRY.ui.guile",
"value": 0,
"max": 10
},
@@ -130,7 +130,7 @@
}
},
"Item": {
- "types": ["item", "trait", "weapon", "scar", "specialization","anence", "boheme", "contact"],
+ "types": ["item", "trait", "weapon", "scar", "specialization","annency", "boheme", "contact"],
"templates": {
"base": {
"description": ""