Compare commits

...

3 Commits

40 changed files with 175 additions and 108 deletions

View File

@ -1,10 +1,12 @@
# Ecryme v2 system for FoundryVTT (French RPG, Open Sesam Games, Official)
This is a base game system with functionnal character sheets for the game Ecryme, powered by the Engrenage system.
You can join the kickstarter and obtain the base books here : https://www.kickstarter.com/projects/osg-us/ecryme
# System overview
The game system in Foundry offers the following features :
- PC/NPC sheet
- Skill rolls

View File

@ -1,3 +1,9 @@
v11.0.36
- Enable deletion specialization
- Custome bonus for specializations
- Specialization direct rolls
v11.0.31
Add profession, fix equipment tab and add missing translation

View File

@ -33,7 +33,9 @@
"traitbonus": "Bonus trait",
"traitmalus": "Malus trait",
"bonusmalustraits": "Traits Bonus/Malus",
"spectranscend": "Self-Transcend : "
"spectranscend": "Self-Transcend : ",
"confrontselect": "Selected for confrontation",
"sentogm": "Confrontation has been sent to GM"
},
"rule": {
"cephaly-success-2": "Duration : 1 scene - Impact : Superficial - Bonus : 1 - Elegy : 1",
@ -165,7 +167,8 @@
"bornplace": "Born place",
"residence": "Residence",
"origin": "Origin",
"childhood": "Childhood"
"childhood": "Childhood",
"bonus": "Bonus"
}
}
}

View File

@ -33,7 +33,9 @@
"traitbonus": "Trait bonus",
"traitmalus": "Trait malus",
"bonusmalustraits": "Bonus/Malus des Traits",
"spectranscend": "Dépassement de soi : "
"spectranscend": "Dépassement de soi : ",
"confrontselected": "Confrontation selectionnée",
"sentogm": "La confrontation a été envoyée au MJ"
},
"rule": {
"cephaly-success-12": "Durée : 1 scène - Impact : Superficiel - Bonus : 1 - Elegie : 1",
@ -166,7 +168,8 @@
"bornplace": "Lieu de naissance",
"residence": "Résidence",
"origin": "Origine",
"childhood": "Enfance"
"childhood": "Enfance",
"bonus": "Bonus"
}
}
}

View File

@ -129,6 +129,12 @@ export class EcrymeActorSheet extends ActorSheet {
let skillKey = $(event.currentTarget).data("skill-key")
this.actor.rollSkill(categKey, skillKey)
});
html.find('.roll-spec').click((event) => {
let categKey = $(event.currentTarget).data("category-key")
let skillKey = $(event.currentTarget).data("skill-key")
let specId = $(event.currentTarget).data("spec-id")
this.actor.rollSpec(categKey, skillKey, specId)
});
html.find('.roll-skill-confront').click((event) => {
let categKey = $(event.currentTarget).data("category-key")
let skillKey = $(event.currentTarget).data("skill-key")

View File

@ -410,6 +410,17 @@ export class EcrymeActor extends Actor {
this.startRoll(rollData).catch("Error on startRoll")
}
/* -------------------------------------------- */
rollSpec(categKey, skillKey, specId) {
let rollData = this.getCommonSkill(categKey, skillKey)
let spec = this.items.find(it => it.type == "specialization" && it.id == specId)
rollData.mode = "skill"
rollData.selectedSpecs = [spec.id]
rollData.forcedSpec = duplicate(spec)
rollData.title = game.i18n.localize(rollData.skill.name)
this.startRoll(rollData).catch("Error on startRoll")
}
/* -------------------------------------------- */
async rollSkillConfront(categKey, skillKey) {
let rollData = this.getCommonSkill(categKey, skillKey)

View File

@ -300,6 +300,7 @@ export class EcrymeUtility {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "ecryme-rolldata")
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
EcrymeUtility.manageConfrontation(rollData)
})
html.on("click", '.button-apply-cephaly-difficulty', event => {
@ -409,10 +410,15 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async onSocketMesssage(msg) {
console.log("SOCKET MESSAGE", msg.name)
if (msg.name == "msg-draw-card") {
if (game.user.isGM && game.system.ecryme.currentTirage) {
game.system.ecryme.currentTirage.addCard(msg.data.msgId)
console.log("SOCKET MESSAGE", msg)
if (msg.name == "msg_gm_chat_message") {
let rollData = msg.data.rollData
if ( game.user.isGM ) {
let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", {
content: await renderTemplate(msg.data.template, rollData),
whisper: game.user.id
})
chatMsg.setFlag("world", "ecryme-rolldata", rollData)
}
}
}
@ -516,7 +522,7 @@ export class EcrymeUtility {
}
if (rollData.selectedSpecs && rollData.selectedSpecs.length > 0) {
rollData.spec = actor.getSpecialization(rollData.selectedSpecs[0])
diceFormula += "+2"
diceFormula += "+" + (String(rollData.spec.system?.bonus) || "2")
}
rollData.bonusMalusTraits = 0
if (rollData.traitsBonus && rollData.traitsBonus.length > 0) {
@ -631,12 +637,10 @@ export class EcrymeUtility {
}
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
game.socket.emit("system.fvtt-ecryme", { msg: "msg_gm_chat_message", data: chatGM });
static blindMessageToGM(chatData) {
chatData.whisper = this.getUsers(user => user.isGM);
console.log("blindMessageToGM", chatData);
game.socket.emit("system.fvtt-ecryme", { name: "msg_gm_chat_message", data: chatData });
}
@ -656,18 +660,14 @@ export class EcrymeUtility {
}
return array;
}
/* -------------------------------------------- */
static async createChatMessage(name, rollMode, chatOptions) {
switch (rollMode) {
case "blindroll": // GM only
if (!game.user.isGM) {
this.blindMessageToGM(chatOptions);
chatOptions.whisper = [game.user.id];
chatOptions.content = "Message only to the GM";
}
else {
} else {
chatOptions.whisper = this.getUsers(user => user.isGM);
}
break;

View File

@ -50,6 +50,7 @@ export class EcrymeConfrontDialog extends Dialog {
let msg = await EcrymeUtility.createChatMessage(this.rollData.alias, "blindroll", {
content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-confrontation-pending.hbs`, this.rollData)
})
EcrymeUtility.blindMessageToGM( { rollData: this.rollData, template: "systems/fvtt-ecryme/templates/chat/chat-confrontation-pending.hbs" })
console.log("MSG", this.rollData)
msg.setFlag("world", "ecryme-rolldata", this.rollData)
}
@ -82,13 +83,24 @@ export class EcrymeConfrontDialog extends Dialog {
let button = this.buttonDisabled
setTimeout(function () { $(".launchConfront").attr("disabled", button) }, 180)
}
/* ------------------ -------------------------- */
_canDragStart(selector) {
console.log("CAN DRAG START", selector, super._canDragStart(selector) )
return true
}
_canDragDrop(selector) {
console.log("CAN DRAG DROP", selector, super._canDragDrop(selector) )
return true
}
/* ------------------ -------------------------- */
_onDragStart(event) {
console.log("DRAGSTART::::", event)
super._onDragStart(event)
let dragType = $(event.srcElement).data("drag-type")
let diceData = {}
//console.log("DRAGTYPE", dragType)
console.log("DRAGTYPE", dragType)
if (dragType == "dice") {
diceData = {
dragType: "dice",
@ -111,7 +123,7 @@ export class EcrymeConfrontDialog extends Dialog {
let data = JSON.parse(dataJSON)
if ( data.dragType == "dice") {
let idx = Number(data.diceIndex)
//console.log("DATA", data, event, event.srcElement.className)
console.log("DATA", data, event, event.srcElement.className)
if (event.srcElement.className.includes("execution") &&
this.rollData.availableDices.filter(d => d.location == "execution").length < 2) {
this.rollData.availableDices[idx].location = "execution"

View File

@ -1 +1 @@
MANIFEST-000090
MANIFEST-000110

View File

@ -1,7 +1,7 @@
2023/08/25-09:06:43.291745 7f42affff6c0 Recovering log #88
2023/08/25-09:06:43.308894 7f42affff6c0 Delete type=3 #86
2023/08/25-09:06:43.308951 7f42affff6c0 Delete type=0 #88
2023/08/25-09:09:02.388289 7f42ae7fc6c0 Level-0 table #93: started
2023/08/25-09:09:02.388354 7f42ae7fc6c0 Level-0 table #93: 0 bytes OK
2023/08/25-09:09:02.396757 7f42ae7fc6c0 Delete type=0 #91
2023/08/25-09:09:02.413788 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2023/10/11-23:48:51.541808 7ffafd7f96c0 Recovering log #108
2023/10/11-23:48:51.552684 7ffafd7f96c0 Delete type=3 #106
2023/10/11-23:48:51.552736 7ffafd7f96c0 Delete type=0 #108
2023/10/12-08:26:09.141923 7ff865e026c0 Level-0 table #113: started
2023/10/12-08:26:09.141979 7ff865e026c0 Level-0 table #113: 0 bytes OK
2023/10/12-08:26:09.148564 7ff865e026c0 Delete type=0 #111
2023/10/12-08:26:09.156649 7ff865e026c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/08/25-08:56:40.355200 7f45449ff6c0 Recovering log #84
2023/08/25-08:56:40.368438 7f45449ff6c0 Delete type=3 #82
2023/08/25-08:56:40.368595 7f45449ff6c0 Delete type=0 #84
2023/08/25-09:05:19.712351 7f42ae7fc6c0 Level-0 table #89: started
2023/08/25-09:05:19.712385 7f42ae7fc6c0 Level-0 table #89: 0 bytes OK
2023/08/25-09:05:19.719168 7f42ae7fc6c0 Delete type=0 #87
2023/08/25-09:05:19.719526 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2023/10/10-15:44:15.214470 7fb8baffd6c0 Recovering log #104
2023/10/10-15:44:15.228942 7fb8baffd6c0 Delete type=3 #102
2023/10/10-15:44:15.229018 7fb8baffd6c0 Delete type=0 #104
2023/10/10-16:47:17.816560 7fb8b97fa6c0 Level-0 table #109: started
2023/10/10-16:47:17.816585 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
2023/10/10-16:47:17.822797 7fb8b97fa6c0 Delete type=0 #107
2023/10/10-16:47:17.832584 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000026
MANIFEST-000046

View File

@ -1,8 +1,8 @@
2023/08/25-09:06:43.332086 7f42affff6c0 Recovering log #24
2023/08/25-09:06:43.343333 7f42affff6c0 Delete type=3 #22
2023/08/25-09:06:43.343425 7f42affff6c0 Delete type=0 #24
2023/08/25-09:09:02.413816 7f42ae7fc6c0 Level-0 table #29: started
2023/08/25-09:09:02.413868 7f42ae7fc6c0 Level-0 table #29: 0 bytes OK
2023/08/25-09:09:02.420658 7f42ae7fc6c0 Delete type=0 #27
2023/08/25-09:09:02.420945 7f42ae7fc6c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/08/25-09:09:02.420984 7f42ae7fc6c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/10/11-23:48:51.581592 7ffafdffa6c0 Recovering log #44
2023/10/11-23:48:51.591855 7ffafdffa6c0 Delete type=3 #42
2023/10/11-23:48:51.591921 7ffafdffa6c0 Delete type=0 #44
2023/10/12-08:26:09.156682 7ff865e026c0 Level-0 table #49: started
2023/10/12-08:26:09.156770 7ff865e026c0 Level-0 table #49: 0 bytes OK
2023/10/12-08:26:09.164722 7ff865e026c0 Delete type=0 #47
2023/10/12-08:26:09.174057 7ff865e026c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/10/12-08:26:09.174129 7ff865e026c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-08:56:40.391655 7f45449ff6c0 Recovering log #20
2023/08/25-08:56:40.402088 7f45449ff6c0 Delete type=3 #18
2023/08/25-08:56:40.402156 7f45449ff6c0 Delete type=0 #20
2023/08/25-09:05:19.719759 7f42ae7fc6c0 Level-0 table #25: started
2023/08/25-09:05:19.719808 7f42ae7fc6c0 Level-0 table #25: 0 bytes OK
2023/08/25-09:05:19.726375 7f42ae7fc6c0 Delete type=0 #23
2023/08/25-09:05:19.739729 7f42ae7fc6c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/08/25-09:05:19.739776 7f42ae7fc6c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/10/10-15:44:15.264794 7fb8bb7fe6c0 Recovering log #40
2023/10/10-15:44:15.274945 7fb8bb7fe6c0 Delete type=3 #38
2023/10/10-15:44:15.275026 7fb8bb7fe6c0 Delete type=0 #40
2023/10/10-16:47:17.838950 7fb8b97fa6c0 Level-0 table #45: started
2023/10/10-16:47:17.838969 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
2023/10/10-16:47:17.846123 7fb8b97fa6c0 Delete type=0 #43
2023/10/10-16:47:17.846349 7fb8b97fa6c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/10/10-16:47:17.846379 7fb8b97fa6c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000090
MANIFEST-000110

View File

@ -1,7 +1,7 @@
2023/08/25-09:06:43.313751 7f45449ff6c0 Recovering log #88
2023/08/25-09:06:43.332919 7f45449ff6c0 Delete type=3 #86
2023/08/25-09:06:43.332977 7f45449ff6c0 Delete type=0 #88
2023/08/25-09:09:02.396939 7f42ae7fc6c0 Level-0 table #93: started
2023/08/25-09:09:02.396976 7f42ae7fc6c0 Level-0 table #93: 0 bytes OK
2023/08/25-09:09:02.405091 7f42ae7fc6c0 Delete type=0 #91
2023/08/25-09:09:02.420883 7f42ae7fc6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2023/10/11-23:48:51.568912 7ff867fff6c0 Recovering log #108
2023/10/11-23:48:51.579440 7ff867fff6c0 Delete type=3 #106
2023/10/11-23:48:51.579511 7ff867fff6c0 Delete type=0 #108
2023/10/12-08:26:09.164906 7ff865e026c0 Level-0 table #113: started
2023/10/12-08:26:09.164969 7ff865e026c0 Level-0 table #113: 0 bytes OK
2023/10/12-08:26:09.173679 7ff865e026c0 Delete type=0 #111
2023/10/12-08:26:09.174093 7ff865e026c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/08/25-08:56:40.374817 7f42aeffd6c0 Recovering log #84
2023/08/25-08:56:40.392507 7f42aeffd6c0 Delete type=3 #82
2023/08/25-08:56:40.392560 7f42aeffd6c0 Delete type=0 #84
2023/08/25-09:05:19.732932 7f42ae7fc6c0 Level-0 table #89: started
2023/08/25-09:05:19.732977 7f42ae7fc6c0 Level-0 table #89: 0 bytes OK
2023/08/25-09:05:19.739465 7f42ae7fc6c0 Delete type=0 #87
2023/08/25-09:05:19.739765 7f42ae7fc6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2023/10/10-15:44:15.251468 7fb8ba7fc6c0 Recovering log #104
2023/10/10-15:44:15.263005 7fb8ba7fc6c0 Delete type=3 #102
2023/10/10-15:44:15.263083 7fb8ba7fc6c0 Delete type=0 #104
2023/10/10-16:47:17.832601 7fb8b97fa6c0 Level-0 table #109: started
2023/10/10-16:47:17.832642 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
2023/10/10-16:47:17.838860 7fb8b97fa6c0 Delete type=0 #107
2023/10/10-16:47:17.846327 7fb8b97fa6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000090
MANIFEST-000110

View File

@ -1,7 +1,7 @@
2023/08/25-09:06:43.291938 7f42aeffd6c0 Recovering log #88
2023/08/25-09:06:43.311799 7f42aeffd6c0 Delete type=3 #86
2023/08/25-09:06:43.311854 7f42aeffd6c0 Delete type=0 #88
2023/08/25-09:09:02.334209 7f42ae7fc6c0 Level-0 table #93: started
2023/08/25-09:09:02.334296 7f42ae7fc6c0 Level-0 table #93: 0 bytes OK
2023/08/25-09:09:02.346293 7f42ae7fc6c0 Delete type=0 #91
2023/08/25-09:09:02.364301 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2023/10/11-23:48:51.528323 7ffafdffa6c0 Recovering log #108
2023/10/11-23:48:51.539236 7ffafdffa6c0 Delete type=3 #106
2023/10/11-23:48:51.539371 7ffafdffa6c0 Delete type=0 #108
2023/10/12-08:26:09.134584 7ff865e026c0 Level-0 table #113: started
2023/10/12-08:26:09.134646 7ff865e026c0 Level-0 table #113: 0 bytes OK
2023/10/12-08:26:09.141658 7ff865e026c0 Delete type=0 #111
2023/10/12-08:26:09.148759 7ff865e026c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/08/25-08:56:40.355478 7f42affff6c0 Recovering log #84
2023/08/25-08:56:40.372234 7f42affff6c0 Delete type=3 #82
2023/08/25-08:56:40.372332 7f42affff6c0 Delete type=0 #84
2023/08/25-09:05:19.704735 7f42ae7fc6c0 Level-0 table #89: started
2023/08/25-09:05:19.704765 7f42ae7fc6c0 Level-0 table #89: 0 bytes OK
2023/08/25-09:05:19.712218 7f42ae7fc6c0 Delete type=0 #87
2023/08/25-09:05:19.719509 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2023/10/10-15:44:15.196298 7fb8bb7fe6c0 Recovering log #104
2023/10/10-15:44:15.211750 7fb8bb7fe6c0 Delete type=3 #102
2023/10/10-15:44:15.211839 7fb8bb7fe6c0 Delete type=0 #104
2023/10/10-16:47:17.809484 7fb8b97fa6c0 Level-0 table #109: started
2023/10/10-16:47:17.809511 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
2023/10/10-16:47:17.816437 7fb8b97fa6c0 Delete type=0 #107
2023/10/10-16:47:17.832558 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000090
MANIFEST-000110

View File

@ -1,7 +1,7 @@
2023/08/25-09:06:43.312129 7f42af7fe6c0 Recovering log #88
2023/08/25-09:06:43.329832 7f42af7fe6c0 Delete type=3 #86
2023/08/25-09:06:43.329881 7f42af7fe6c0 Delete type=0 #88
2023/08/25-09:09:02.405626 7f42ae7fc6c0 Level-0 table #93: started
2023/08/25-09:09:02.405697 7f42ae7fc6c0 Level-0 table #93: 0 bytes OK
2023/08/25-09:09:02.413585 7f42ae7fc6c0 Delete type=0 #91
2023/08/25-09:09:02.420919 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2023/10/11-23:48:51.555605 7ffafcff86c0 Recovering log #108
2023/10/11-23:48:51.566715 7ffafcff86c0 Delete type=3 #106
2023/10/11-23:48:51.566824 7ffafcff86c0 Delete type=0 #108
2023/10/12-08:26:09.148992 7ff865e026c0 Level-0 table #113: started
2023/10/12-08:26:09.149043 7ff865e026c0 Level-0 table #113: 0 bytes OK
2023/10/12-08:26:09.156386 7ff865e026c0 Delete type=0 #111
2023/10/12-08:26:09.173997 7ff865e026c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/08/25-08:56:40.373273 7f42af7fe6c0 Recovering log #84
2023/08/25-08:56:40.389363 7f42af7fe6c0 Delete type=3 #82
2023/08/25-08:56:40.389459 7f42af7fe6c0 Delete type=0 #84
2023/08/25-09:05:19.726495 7f42ae7fc6c0 Level-0 table #89: started
2023/08/25-09:05:19.726528 7f42ae7fc6c0 Level-0 table #89: 0 bytes OK
2023/08/25-09:05:19.732766 7f42ae7fc6c0 Delete type=0 #87
2023/08/25-09:05:19.739752 7f42ae7fc6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2023/10/10-15:44:15.233698 7fb8b9ffb6c0 Recovering log #104
2023/10/10-15:44:15.249165 7fb8b9ffb6c0 Delete type=3 #102
2023/10/10-15:44:15.249275 7fb8b9ffb6c0 Delete type=0 #104
2023/10/10-16:47:17.823003 7fb8b97fa6c0 Level-0 table #109: started
2023/10/10-16:47:17.823041 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
2023/10/10-16:47:17.832350 7fb8b97fa6c0 Delete type=0 #107
2023/10/10-16:47:17.838938 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@ -111,7 +111,7 @@
},
"title": "Ecryme, le Jeu de Rôles",
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
"version": "11.0.35",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.35.zip",
"version": "11.0.37",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.37.zip",
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
}

View File

@ -267,6 +267,7 @@
"effect": 0
},
"specialization": {
"bonus": 2,
"templates": [
"common"
],

View File

@ -102,15 +102,15 @@
<ul class="ul-level1">
{{#each skill.spec as |spec idx|}}
<li class="item flexrow list-item" data-item-id="{{spec._id}}" data-item-type="specialization">
<a class="roll-spec" data-spec-id="{{spec._id}}">
<a class="roll-spec" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}" data-spec-id="{{spec._id}}">
<i class="fa-solid fa-dice-d6"></i>
{{spec.name}}
</a>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" data-type="specialization" title="Edit Item"><i
class="fas fa-edit"></i></a>
<a class="item-control item-add" data-type="specialization" title="Delete Item"><i
class="fas fa-plus"></i></a>
<a class="item-control item-delete" data-type="specialization" title="Delete Item"><i
class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}

View File

@ -23,7 +23,7 @@
<li>{{localize skill.name}}: {{skill.value}} </li>
{{#if spec}}
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+2) </li>
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
{{/if}}
{{#each traitsBonus as |trait idx|}}
@ -40,7 +40,14 @@
<li>{{localize "ECRY.chat.bonusmalustraits"}}: {{bonusMalusTraits}} </li>
{{/if}}
{{#if (isGM)}}
{{else}}
<li>{{localize "ECRY.ui.execution"}} : {{executionTotal}}</li>
<li>{{localize "ECRY.ui.preservation"}} : {{preservationTotal}}</li>
{{/if}}
</ul>
{{#if (isGM)}}
{{#if (eq mode "cephaly")}}
<div>
@ -55,6 +62,10 @@
{{else}}
<button class="button-select-confront">{{localize "ECRY.ui.selectconfront"}}</button>
{{/if}}
{{else}}
<div>
{{localize "ECRY.chat.sentogm"}}
</div>
{{/if}}
</div>

View File

@ -21,7 +21,7 @@
{{#if skill}}
<li>{{localize skill.name}}: {{skill.value}} </li>
{{#if spec}}
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+2) </li>
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
{{/if}}
{{/if}}

View File

@ -22,14 +22,21 @@
</select>
</div>
{{#if forcedSpec}}
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.spec"}} : </span>
<span class="roll-dialog-label">{{forcedSpec.name}} (+{{forcedSpec.system.bonus}})</span>
</div>
{{else}}
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.spec"}} : </span>
<select class="" id="roll-specialization" data-type="String" multiple>
{{#each skill.spec as |spec idx|}}
<option value="{{spec.id}}">{{spec.name}}</option>
<option value="{{spec.id}}">{{spec.name}} (+{{spec.system.bonus}})</option>
{{/each}}
</select>
</div>
{{/if}}
{{#if spleen}}
<div class="flexrow">

View File

@ -30,6 +30,11 @@
</select>
</li>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.bonus"}}</label>
<input type="text" class="item-field-label-short" name="system.bonus" value="{{system.bonus}}" data-dtype="Number"/>
</li>
</ul>
</div>
</div>