Compare commits
5 Commits
fvtt-ecrym
...
fvtt-ecrym
Author | SHA1 | Date | |
---|---|---|---|
e1990f88b4 | |||
f99abb0966 | |||
ec6e6be231 | |||
9d26d7bfad | |||
81848155e5 |
@ -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
|
||||
|
@ -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
|
||||
|
4
images/.directory
Normal file
4
images/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,15.103
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
4
images/assets/.directory
Normal file
4
images/assets/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,26.235
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
BIN
images/assets/ecryme_landing_01.webp
Normal file
BIN
images/assets/ecryme_landing_01.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 388 KiB |
4
images/ui/.directory
Normal file
4
images/ui/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,19.681
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
@ -53,9 +53,9 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
cephalySkills: this.actor.getCephalySkills(),
|
||||
subActors: duplicate(this.actor.getSubActors()),
|
||||
annency: this.actor.getAnnency(),
|
||||
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 }),
|
||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }),
|
||||
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipmentfree, { async: true }),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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 });
|
||||
}
|
||||
|
||||
|
||||
@ -662,12 +666,8 @@ export class EcrymeUtility {
|
||||
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;
|
||||
|
@ -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)
|
||||
}
|
||||
@ -83,12 +84,23 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
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"
|
||||
|
@ -67,7 +67,6 @@ Hooks.once("init", async function () {
|
||||
|
||||
EcrymeUtility.init()
|
||||
|
||||
console.log("Babele INIT!")
|
||||
Babele.get().setSystemTranslationsDir("translated")
|
||||
|
||||
});
|
||||
@ -84,28 +83,13 @@ function welcomeMessage() {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount(registerKey) {
|
||||
if (game.user.isGM) {
|
||||
game.settings.register(registerKey, "world-key", {
|
||||
name: "Unique world key",
|
||||
scope: "world",
|
||||
config: false,
|
||||
default: "",
|
||||
type: String
|
||||
});
|
||||
|
||||
let worldKey = game.settings.get(registerKey, "world-key")
|
||||
if (worldKey == undefined || worldKey == "") {
|
||||
worldKey = randomID(32)
|
||||
game.settings.set(registerKey, "world-key", worldKey)
|
||||
}
|
||||
// Simple API counter
|
||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
||||
//$.ajaxSetup({
|
||||
//headers: { 'Access-Control-Allow-Origin': '*' }
|
||||
//})
|
||||
$.ajax(regURL)
|
||||
async function importDefaultScene() {
|
||||
let exists = game.scenes.find(j => j.name == "Landing page 1");
|
||||
if (!exists) {
|
||||
const scenes = await EcrymeUtility.loadCompendium("fvtt-ecryme.scenes")
|
||||
let newDocuments = scenes.filter(i => i.name == "Landing page 1");
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Landing page 1").activate();
|
||||
}
|
||||
}
|
||||
|
||||
@ -123,10 +107,17 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
registerUsageCount(game.system.id)
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
}).catch(err=>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
|
||||
welcomeMessage();
|
||||
EcrymeUtility.ready()
|
||||
EcrymeCharacterSummary.ready()
|
||||
EcrymeUtility.ready();
|
||||
EcrymeCharacterSummary.ready();
|
||||
importDefaultScene();
|
||||
|
||||
})
|
||||
|
||||
|
@ -1 +1 @@
|
||||
MANIFEST-000090
|
||||
MANIFEST-000122
|
||||
|
@ -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)
|
||||
2024/03/15-12:08:26.246276 7fee396006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.262508 7fee396006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.262560 7fee396006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.404439 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.404513 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.412072 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.418373 7fee33e006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
@ -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)
|
||||
2024/03/15-11:36:32.744581 7fee3b4006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.754905 7fee3b4006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.754960 7fee3b4006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.094830 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.094864 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.102032 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.119287 7fee33e006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000026
|
||||
MANIFEST-000058
|
||||
|
@ -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)
|
||||
2024/03/15-12:08:26.306495 7fee3aa006c0 Recovering log #56
|
||||
2024/03/15-12:08:26.316618 7fee3aa006c0 Delete type=3 #54
|
||||
2024/03/15-12:08:26.316680 7fee3aa006c0 Delete type=0 #56
|
||||
2024/03/15-12:09:03.431830 7fee33e006c0 Level-0 table #61: started
|
||||
2024/03/15-12:09:03.431854 7fee33e006c0 Level-0 table #61: 0 bytes OK
|
||||
2024/03/15-12:09:03.438391 7fee33e006c0 Delete type=0 #59
|
||||
2024/03/15-12:09:03.438645 7fee33e006c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-12:09:03.438681 7fee33e006c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
@ -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)
|
||||
2024/03/15-11:36:32.800015 7fee3aa006c0 Recovering log #52
|
||||
2024/03/15-11:36:32.809877 7fee3aa006c0 Delete type=3 #50
|
||||
2024/03/15-11:36:32.809946 7fee3aa006c0 Delete type=0 #52
|
||||
2024/03/15-11:37:15.125674 7fee33e006c0 Level-0 table #57: started
|
||||
2024/03/15-11:37:15.125696 7fee33e006c0 Level-0 table #57: 0 bytes OK
|
||||
2024/03/15-11:37:15.132809 7fee33e006c0 Delete type=0 #55
|
||||
2024/03/15-11:37:15.133076 7fee33e006c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-11:37:15.133134 7fee33e006c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
MANIFEST-000090
|
||||
MANIFEST-000122
|
||||
|
@ -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)
|
||||
2024/03/15-12:08:26.294104 7fee396006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.304385 7fee396006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.304465 7fee396006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.425550 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.425581 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.431713 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.438625 7fee33e006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
@ -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)
|
||||
2024/03/15-11:36:32.787457 7fee396006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.797573 7fee396006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.797918 7fee396006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.119298 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.119321 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.125565 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.133015 7fee33e006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
BIN
packs/scenes/000005.ldb
Normal file
BIN
packs/scenes/000005.ldb
Normal file
Binary file not shown.
1
packs/scenes/CURRENT
Normal file
1
packs/scenes/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000006
|
8
packs/scenes/LOG
Normal file
8
packs/scenes/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2024/03/15-12:08:26.281286 7fee396006c0 Recovering log #4
|
||||
2024/03/15-12:08:26.291076 7fee396006c0 Delete type=3 #2
|
||||
2024/03/15-12:08:26.291124 7fee396006c0 Delete type=0 #4
|
||||
2024/03/15-12:09:03.418395 7fee33e006c0 Level-0 table #9: started
|
||||
2024/03/15-12:09:03.418438 7fee33e006c0 Level-0 table #9: 0 bytes OK
|
||||
2024/03/15-12:09:03.425447 7fee33e006c0 Delete type=0 #7
|
||||
2024/03/15-12:09:03.438599 7fee33e006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-12:09:03.438664 7fee33e006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
5
packs/scenes/LOG.old
Normal file
5
packs/scenes/LOG.old
Normal file
@ -0,0 +1,5 @@
|
||||
2024/03/15-11:36:32.784966 7fee396006c0 Delete type=3 #1
|
||||
2024/03/15-11:37:15.108793 7fee33e006c0 Level-0 table #5: started
|
||||
2024/03/15-11:37:15.112379 7fee33e006c0 Level-0 table #5: 1287 bytes OK
|
||||
2024/03/15-11:37:15.119185 7fee33e006c0 Delete type=0 #3
|
||||
2024/03/15-11:37:15.125663 7fee33e006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
BIN
packs/scenes/MANIFEST-000006
Normal file
BIN
packs/scenes/MANIFEST-000006
Normal file
Binary file not shown.
0
packs/specialisation/000124.log
Normal file
0
packs/specialisation/000124.log
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000090
|
||||
MANIFEST-000122
|
||||
|
@ -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)
|
||||
2024/03/15-12:08:26.233305 7fee3aa006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.243263 7fee3aa006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.243340 7fee3aa006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.377683 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.377713 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.383693 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.383828 7fee33e006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
@ -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)
|
||||
2024/03/15-11:36:32.732586 7fee3a0006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.741979 7fee3a0006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.742032 7fee3a0006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.078700 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.078734 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.085219 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.085375 7fee33e006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
0
packs/traits/000124.log
Normal file
0
packs/traits/000124.log
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000090
|
||||
MANIFEST-000122
|
||||
|
@ -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)
|
||||
2024/03/15-12:08:26.264913 7fee3aa006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.279081 7fee3aa006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.279134 7fee3aa006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.412189 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.412214 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.418237 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.431821 7fee33e006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
@ -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)
|
||||
2024/03/15-11:36:32.757613 7fee3a0006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.768867 7fee3a0006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.768966 7fee3a0006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.102318 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.102363 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.108565 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.125646 7fee33e006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
16
system.json
16
system.json
@ -62,6 +62,18 @@
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Scenes",
|
||||
"type": "Scene",
|
||||
"name": "scenes",
|
||||
"path": "packs/scenes",
|
||||
"system": "fvtt-ecryme",
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Maneuvers",
|
||||
"type": "Item",
|
||||
@ -111,7 +123,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.38",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.38.zip",
|
||||
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
|
||||
}
|
@ -267,6 +267,7 @@
|
||||
"effect": 0
|
||||
},
|
||||
"specialization": {
|
||||
"bonus": 2,
|
||||
"templates": [
|
||||
"common"
|
||||
],
|
||||
|
@ -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}}
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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}}
|
||||
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -2,6 +2,18 @@
|
||||
"label": "Equipement",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Armor": "Armure",
|
||||
"Weapons": "Armes",
|
||||
"Clothing": "Vêtements",
|
||||
"Food": "Nourriture",
|
||||
"Lighting": "Eclairage",
|
||||
"Miscellany" : "Divers",
|
||||
"Musical instruments": "Instruments de musique",
|
||||
"Reading, writing, recording": "Lecture, écriture, enregistrement",
|
||||
"Travel equipment": "Equipement de voyage",
|
||||
"Vehicle": "Véhicule"
|
||||
},
|
||||
"entries": {
|
||||
"Absinthe": {
|
||||
|
@ -2,6 +2,11 @@
|
||||
"label": "Spécialisation",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Mental": "Mentale",
|
||||
"Physical": "Physique",
|
||||
"Spocial": "Sociale"
|
||||
},
|
||||
"entries": {
|
||||
"Aircraft": {
|
||||
|
@ -2,6 +2,9 @@
|
||||
"label": "Traits",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Maneuvers": "Manoeuvres"
|
||||
},
|
||||
"entries": {
|
||||
"Ability to stay calm": {
|
||||
|
Reference in New Issue
Block a user