Compare commits

...

13 Commits

45 changed files with 231 additions and 168 deletions

View File

@ -28,9 +28,9 @@ jobs:
files: 'system.json'
env:
version: ${{steps.get_version.outputs.version-without-v}}
url: https://www.uberwald.me/gitea/uberwald/fvtt-ecryme
manifest: https://www.uberwald.me/gitea/uberwald/fvtt-ecryme/releases/latest/module.json
download: https://www.uberwald.me/gitea/uberwald/fvtt-ecryme/releases/download/${{github.event.release.tag_name}}/fvtt-ecryme.zip
url: https://www.uberwald.me/gitea/public/fvtt-ecryme
manifest: https://www.uberwald.me/gitea/public/fvtt-ecryme/releases/latest/system.json
download: https://www.uberwald.me/gitea/public/fvtt-ecryme/releases/download/${{github.event.release.tag_name}}/fvtt-ecryme.zip
# Create a zip file with all files required by the module to add to the release
- run: |

View File

@ -3,6 +3,20 @@
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
- Cephaly rolls (with Anency support)
- Confrontation management, with detailed result in the chat card
- Weapon rolls
- Trait management, with Spleen and Ideal also.
- Compendiums of items for the game
![System Snapshot](https://www.lahiette.com/leratierbretonnien/wp-content/uploads/2023/08/ecryme_snapshot_01.webp "System Snapshot")
# Contributions
- Original code realised by Uberwald (https://www.uberwald.me/)

11
changelog.md Normal file
View File

@ -0,0 +1,11 @@
v11.0.31
Add profession, fix equipment tab and add missing translation
v11.0.30
Snapshot and more detailed README
v11.0.28
Initial release

View File

@ -1,7 +1,8 @@
{
"TYPES": {
"Actor": {
"character": "PC",
"pc": "Player Character",
"npc": "Non-Player Character",
"annency": "Annency"
},
"Item": {
@ -17,7 +18,8 @@
"cogs": "Cogs",
"cephaly": "Cephaly",
"boheme": "Boheme",
"amertume": "Amertume"
"amertume": "Amertume",
"gamelevel": "Game level"
},
"chat": {
"formula": "Formula",
@ -49,6 +51,7 @@
"notenoughdice": "Execution and Preservation must have 2 dices allocated"
},
"ui": {
"equipmentfree": "Equipments (free input)",
"traitType": "Trait type",
"niveauTrait": "Trait level",
"weight": "Weight",
@ -158,7 +161,12 @@
"ideals": "Ideals",
"politic": "Political ideal",
"boheme": "Boheme",
"annencybonus": "Annency bonus"
"annencybonus": "Annency bonus",
"bornplace": "Born place",
"residence": "Residence",
"origin": "Origin",
"childhood": "Childhood",
"bonus": "Bonus"
}
}
}

View File

@ -1,7 +1,8 @@
{
"TYPES": {
"Actor":{
"character": "Personnage",
"pc": "Personnage Joueur",
"npc": "Personnage Non Joueur",
"annency": "Anence"
},
"Item": {
@ -17,7 +18,8 @@
"cogs": "Engrenages",
"cephaly": "Céphalie",
"boheme": "Bohême",
"amertume": "Amertume"
"amertume": "Amertume",
"gamelevel": "Niveau de jeu"
},
"chat": {
"formula": "Formule",
@ -35,10 +37,10 @@
},
"rule": {
"cephaly-success-12": "Durée : 1 scène - Impact : Superficiel - Bonus : 1 - Elegie : 1",
"cephaly-success-34": "Durée : 1 semaine - Impact : Léger - Bonus : 2 - Elegie : 2",
"cephaly-success-56": "Durée : 1 mois - Impact : Grave - Bonus : 3 - Elegie : 3",
"cephaly-success-78": "Durée : 1 année - Impact : Majeur - Bonus : 4 - Elegie : 4",
"cephaly-success-910": "Durée : Permanent - Impact : Mort - Bonus : 5 - Elegie : 5",
"cephaly-success-4": "Durée : 1 semaine - Impact : Léger - Bonus : 2 - Elegie : 2",
"cephaly-success-6": "Durée : 1 mois - Impact : Grave - Bonus : 3 - Elegie : 3",
"cephaly-success-8": "Durée : 1 année - Impact : Majeur - Bonus : 4 - Elegie : 4",
"cephaly-success-10": "Durée : Permanent - Impact : Mort - Bonus : 5 - Elegie : 5",
"cephaly-failure-2": "Durée : 1 scène - Impact : Superficiel - Malus : 1 - Symptôme non visible et sans gravité - Altération bégigne difficilement repérable",
"cephaly-failure-4": "Durée : 1 semaine - Impact : Léger - Malus : 2 - Symptôme visible non incapacitant - Altération repérable",
"cephaly-failure-6": "Durée : 1 mois - Impact : Grave - Malus : 3 - Symptôme incapacitant - Altération repérable et fâcheuse",
@ -50,6 +52,7 @@
"notenoughdice": "L'Accomplissement et la Préservation doivent avoir 2 dés chacun"
},
"ui": {
"equipmentfree": "Equipements (saisie libre)",
"traitType": "Type de trait",
"niveauTrait": "Niveau du trait",
"effect": "Incidence",
@ -159,7 +162,12 @@
"ideals": "Idéaux",
"politic": "Idéaux politiques",
"boheme": "Bohême",
"annencybonus": "Bonus d'Anence"
"annencybonus": "Bonus d'Anence",
"bornplace": "Lieu de naissance",
"residence": "Résidence",
"origin": "Origine",
"childhood": "Enfance",
"bonus": "Bonus"
}
}
}

View File

@ -46,7 +46,7 @@ export class EcrymeActorSheet extends ActorSheet {
maneuvers: this.actor.getManeuvers(),
impactsMalus: this.actor.getImpactsMalus(),
archetype: duplicate(this.actor.getArchetype()),
equipements: this.actor.getEquipments(),
equipments: this.actor.getEquipments(),
hasCephaly: EcrymeUtility.hasCephaly(),
hasBoheme: EcrymeUtility.hasBoheme(),
hasAmertume: EcrymeUtility.hasAmertume(),
@ -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

@ -200,7 +200,7 @@ export class EcrymeActor extends Actor {
/* ------------------------------------------- */
getEquipments() {
return this.items.filter(item => item.type == 'equipement')
return this.items.filter(item => item.type == 'equipment')
}
/* ------------------------------------------- */
@ -348,7 +348,7 @@ export class EcrymeActor extends Actor {
/* -------------------------------------------- */
modifyConfrontBonus( modifier ) {
let newBonus = this.system.internals.confrontbonus + bonus
let newBonus = this.system.internals.confrontbonus + modifier
this.update({'system.internals.confrontbonus': newBonus})
}
@ -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)
@ -457,6 +468,8 @@ export class EcrymeActor extends Actor {
rollData.title = game.i18n.localize("ECRY.ui.confrontation") + " : " + game.i18n.localize(rollData.skill.name)
rollData.executionTotal = rollData.skill.value
rollData.preservationTotal = rollData.skill.value
rollData.traitsBonus = duplicate(rollData.traits)
rollData.traitsMalus = duplicate(rollData.traits)
rollData.applyTranscendence = "execution"
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
confrontStartDialog.render(true)

View File

@ -492,7 +492,7 @@ export class EcrymeUtility {
rollData.margin = rollData.total - rollData.difficulty
if (rollData.total > rollData.difficulty) {
rollData.isSuccess = true
let maxMargin = rollData.skill.value + (rollData.spec) ? 2 : 0
let maxMargin = rollData.skill.value + ((rollData.spec) ? 2 : 0)
rollData.margin = Math.min(rollData.margin, maxMargin)
}
}
@ -516,7 +516,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) {

View File

@ -68,7 +68,7 @@ Hooks.once("init", async function () {
EcrymeUtility.init()
console.log("Babele INIT!")
Babele.get().setSystemTranslationsDir("translated");
Babele.get().setSystemTranslationsDir("translated")
});

View File

@ -1 +1 @@
MANIFEST-000054
MANIFEST-000106

View File

@ -1,7 +1,7 @@
2023/08/08-18:04:51.701446 7f5afcdf86c0 Recovering log #52
2023/08/08-18:04:51.711602 7f5afcdf86c0 Delete type=3 #50
2023/08/08-18:04:51.711652 7f5afcdf86c0 Delete type=0 #52
2023/08/08-18:04:59.546696 7f58677fe6c0 Level-0 table #57: started
2023/08/08-18:04:59.546715 7f58677fe6c0 Level-0 table #57: 0 bytes OK
2023/08/08-18:04:59.552809 7f58677fe6c0 Delete type=0 #55
2023/08/08-18:04:59.560028 7f58677fe6c0 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,7 +1,7 @@
2023/08/08-17:50:40.597296 7f5afd5f96c0 Recovering log #48
2023/08/08-17:50:40.655447 7f5afd5f96c0 Delete type=3 #46
2023/08/08-17:50:40.655509 7f5afd5f96c0 Delete type=0 #48
2023/08/08-18:04:06.340910 7f58677fe6c0 Level-0 table #53: started
2023/08/08-18:04:06.340947 7f58677fe6c0 Level-0 table #53: 0 bytes OK
2023/08/08-18:04:06.347333 7f58677fe6c0 Delete type=0 #51
2023/08/08-18:04:06.361314 7f58677fe6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2023/10/10-14:47:37.319172 7fb8b9ffb6c0 Recovering log #100
2023/10/10-14:47:37.374764 7fb8b9ffb6c0 Delete type=3 #98
2023/10/10-14:47:37.374842 7fb8b9ffb6c0 Delete type=0 #100
2023/10/10-15:44:02.360675 7fb8b97fa6c0 Level-0 table #105: started
2023/10/10-15:44:02.360734 7fb8b97fa6c0 Level-0 table #105: 0 bytes OK
2023/10/10-15:44:02.452513 7fb8b97fa6c0 Delete type=0 #103
2023/10/10-15:44:02.600640 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

BIN
packs/help/000005.ldb Normal file

Binary file not shown.

1
packs/help/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000042

8
packs/help/LOG Normal file
View File

@ -0,0 +1,8 @@
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)

8
packs/help/LOG.old Normal file
View File

@ -0,0 +1,8 @@
2023/10/10-14:47:37.522181 7fb8ba7fc6c0 Recovering log #36
2023/10/10-14:47:37.575247 7fb8ba7fc6c0 Delete type=3 #34
2023/10/10-14:47:37.575386 7fb8ba7fc6c0 Delete type=0 #36
2023/10/10-15:44:02.669413 7fb8b97fa6c0 Level-0 table #41: started
2023/10/10-15:44:02.669471 7fb8b97fa6c0 Level-0 table #41: 0 bytes OK
2023/10/10-15:44:02.803436 7fb8b97fa6c0 Delete type=0 #39
2023/10/10-15:44:02.803585 7fb8b97fa6c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2023/10/10-15:44:02.803610 7fb8b97fa6c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

BIN
packs/help/MANIFEST-000042 Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000054
MANIFEST-000106

View File

@ -1,7 +1,7 @@
2023/08/08-18:04:51.714583 7f5afcdf86c0 Recovering log #52
2023/08/08-18:04:51.723706 7f5afcdf86c0 Delete type=3 #50
2023/08/08-18:04:51.723766 7f5afcdf86c0 Delete type=0 #52
2023/08/08-18:04:59.560163 7f58677fe6c0 Level-0 table #57: started
2023/08/08-18:04:59.560198 7f58677fe6c0 Level-0 table #57: 0 bytes OK
2023/08/08-18:04:59.566320 7f58677fe6c0 Delete type=0 #55
2023/08/08-18:04:59.566452 7f58677fe6c0 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,7 +1,7 @@
2023/08/08-17:50:40.659050 7f5afd5f96c0 Recovering log #48
2023/08/08-17:50:40.767128 7f5afd5f96c0 Delete type=3 #46
2023/08/08-17:50:40.767167 7f5afd5f96c0 Delete type=0 #48
2023/08/08-18:04:06.354489 7f58677fe6c0 Level-0 table #53: started
2023/08/08-18:04:06.354521 7f58677fe6c0 Level-0 table #53: 0 bytes OK
2023/08/08-18:04:06.361236 7f58677fe6c0 Delete type=0 #51
2023/08/08-18:04:06.361331 7f58677fe6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2023/10/10-14:47:37.452515 7fb8baffd6c0 Recovering log #100
2023/10/10-14:47:37.516010 7fb8baffd6c0 Delete type=3 #98
2023/10/10-14:47:37.516087 7fb8baffd6c0 Delete type=0 #100
2023/10/10-15:44:02.600756 7fb8b97fa6c0 Level-0 table #105: started
2023/10/10-15:44:02.600790 7fb8b97fa6c0 Level-0 table #105: 0 bytes OK
2023/10/10-15:44:02.669263 7fb8b97fa6c0 Delete type=0 #103
2023/10/10-15:44:02.803564 7fb8b97fa6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

View File

@ -1 +1 @@
MANIFEST-000054
MANIFEST-000106

View File

@ -1,7 +1,7 @@
2023/08/08-18:04:51.701446 7f5afddfa6c0 Recovering log #52
2023/08/08-18:04:51.711597 7f5afddfa6c0 Delete type=3 #50
2023/08/08-18:04:51.711643 7f5afddfa6c0 Delete type=0 #52
2023/08/08-18:04:59.539283 7f58677fe6c0 Level-0 table #57: started
2023/08/08-18:04:59.539308 7f58677fe6c0 Level-0 table #57: 0 bytes OK
2023/08/08-18:04:59.546617 7f58677fe6c0 Delete type=0 #55
2023/08/08-18:04:59.560019 7f58677fe6c0 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,7 +1,7 @@
2023/08/08-17:50:40.597326 7f5afcdf86c0 Recovering log #48
2023/08/08-17:50:40.655429 7f5afcdf86c0 Delete type=3 #46
2023/08/08-17:50:40.655471 7f5afcdf86c0 Delete type=0 #48
2023/08/08-18:04:06.323953 7f58677fe6c0 Level-0 table #53: started
2023/08/08-18:04:06.324001 7f58677fe6c0 Level-0 table #53: 0 bytes OK
2023/08/08-18:04:06.330360 7f58677fe6c0 Delete type=0 #51
2023/08/08-18:04:06.340887 7f58677fe6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2023/10/10-14:47:37.259593 7fb8ba7fc6c0 Recovering log #100
2023/10/10-14:47:37.309331 7fb8ba7fc6c0 Delete type=3 #98
2023/10/10-14:47:37.309445 7fb8ba7fc6c0 Delete type=0 #100
2023/10/10-15:44:02.452840 7fb8b97fa6c0 Level-0 table #105: started
2023/10/10-15:44:02.452904 7fb8b97fa6c0 Level-0 table #105: 0 bytes OK
2023/10/10-15:44:02.530099 7fb8b97fa6c0 Delete type=0 #103
2023/10/10-15:44:02.600658 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

0
packs/traits/000108.log Normal file
View File

View File

@ -1 +1 @@
MANIFEST-000054
MANIFEST-000106

View File

@ -1,7 +1,7 @@
2023/08/08-18:04:51.714581 7f5afd5f96c0 Recovering log #52
2023/08/08-18:04:51.723695 7f5afd5f96c0 Delete type=3 #50
2023/08/08-18:04:51.723729 7f5afd5f96c0 Delete type=0 #52
2023/08/08-18:04:59.552915 7f58677fe6c0 Level-0 table #57: started
2023/08/08-18:04:59.552934 7f58677fe6c0 Level-0 table #57: 0 bytes OK
2023/08/08-18:04:59.559910 7f58677fe6c0 Delete type=0 #55
2023/08/08-18:04:59.560044 7f58677fe6c0 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

@ -1,7 +1,7 @@
2023/08/08-17:50:40.658993 7f5afcdf86c0 Recovering log #48
2023/08/08-17:50:40.748499 7f5afcdf86c0 Delete type=3 #46
2023/08/08-17:50:40.748566 7f5afcdf86c0 Delete type=0 #48
2023/08/08-18:04:06.347462 7f58677fe6c0 Level-0 table #53: started
2023/08/08-18:04:06.347507 7f58677fe6c0 Level-0 table #53: 0 bytes OK
2023/08/08-18:04:06.354352 7f58677fe6c0 Delete type=0 #51
2023/08/08-18:04:06.361324 7f58677fe6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2023/10/10-14:47:37.382454 7fb8bb7fe6c0 Recovering log #100
2023/10/10-14:47:37.442416 7fb8bb7fe6c0 Delete type=3 #98
2023/10/10-14:47:37.442914 7fb8bb7fe6c0 Delete type=0 #100
2023/10/10-15:44:02.530318 7fb8b97fa6c0 Level-0 table #105: started
2023/10/10-15:44:02.530361 7fb8b97fa6c0 Level-0 table #105: 0 bytes OK
2023/10/10-15:44:02.600527 7fb8b97fa6c0 Delete type=0 #103
2023/10/10-15:44:02.600692 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@ -1321,6 +1321,10 @@ ul, li {
min-width:2rem;
max-width: 2rem;
}
.item-controls-fixed-full {
min-width:3rem;
max-width: 3rem;
}
.attribute-label {
font-weight: bold;
}

View File

@ -1301,6 +1301,10 @@ ul, li {
min-width:2rem;
max-width: 2rem;
}
.item-controls-fixed-full {
min-width:3rem;
max-width: 3rem;
}
.attribute-label {
font-weight: bold;
}

View File

@ -73,10 +73,22 @@
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
},
{
"label": "Help/Aides",
"type": "JournalEntry",
"name": "help",
"path": "packs/help",
"system": "fvtt-ecryme",
"flags": {},
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
}
],
"license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-ecryme/raw/branch/master/system.json",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
"compatibility": {
"minimum": "10",
"verified": "11"
@ -88,9 +100,18 @@
"styles": [
"styles/ecryme.css"
],
"relationships": {
"requires": [
{
"id": "babele",
"type": "module",
"compatibility": {}
}
]
},
"title": "Ecryme, le Jeu de Rôles",
"url": "https://www.uberwald.me/gitea/uberwald/fvtt-ecryme",
"version": "11.0.19",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-ecryme/archive/fvtt-ecryme-v11.0.19.zip",
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
"version": "11.0.36",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.36.zip",
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
}

View File

@ -24,6 +24,7 @@
},
"core": {
"subactors": [],
"equipmentfree": "",
"skills": {
"physical": {
"name": "ECRY.ui.physical",
@ -266,6 +267,7 @@
"effect": 0
},
"specialization": {
"bonus": 2,
"templates": [
"common"
],

View File

@ -19,9 +19,10 @@
<label class="item-name-label-long">{{spleen.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if spleen}}
<div class="item-controls item-controls-fixed">
<div class="item-controls item-controls-fixed-full">
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-plus"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
@ -30,9 +31,10 @@
<label class="item-name-label-long">{{ideal.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if ideal}}
<div class="item-controls item-controls-fixed">
<div class="item-controls item-controls-fixed-full">
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-plus"></i></a>
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
@ -100,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}}
@ -273,57 +275,22 @@
{{!-- Equipement Tab --}}
<div class="tab equipment" data-group="primary" data-tab="equipment">
<div class="tab equipements" data-group="primary" data-tab="equipements">
<span class="item-name-label-header items-title-bg">
<h3><label class="items-title-text">Equipements (saisie libre)</label></h3>
<h3><label class="items-title-text">{{localize "ECRY.ui.equipmentfree"}}</label></h3>
</span>
<div class="form-group small-editor">
{{editor equipementlibre target="system.equipementlibre" button=true owner=owner editable=editable}}
{{editor equipementlibre target="system.equipmentfree" button=true owner=owner editable=editable}}
</div>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Armes</label></h3>
<h3><label class="items-title-text">{{localize "ECRY.ui.equipment"}}s</label></h3>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Normaux</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Particulier</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Critique</label>
</span>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each armes as |arme key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{arme._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{arme.img}}" /></a>
<span class="item-name-label">{{arme.name}}</span>
<span class="item-field-label-medium"><label>{{arme.system.dommagenormale}}</label></span>
<span class="item-field-label-medium"><label>{{arme.system.dommagepart}}</label></span>
<span class="item-field-label-medium"><label>{{arme.system.dommagecritique}}</label></span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Equipements (Items)</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Q.</label>
<label class="item-field-label-medium">{{localize "ECRY.ui.weight"}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
@ -331,11 +298,12 @@
</div>
</li>
{{#each equipements as |equip key|}}
{{#each equipments as |equip key|}}
<li class="item list-item flexrow list-item-shadow" data-item-id="{{equip._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{equip.img}}" /></a>
<span class="item-name-label">{{equip.name}}</span>
<span class="item-field-label-medium">{{equip.system.weight}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
@ -345,36 +313,6 @@
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Sortilèges</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Seuil</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each sorts as |sort key|}}
<li class="item list-item flexrow list-item-shadow" data-item-id="{{sort._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{sort.img}}" /></a>
<span class="item-name-label">{{sort.name}}</span>
<span class="item-field-label-medium">
<label class="short-label">{{sort.system.seuil}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<hr>
</div>
@ -386,7 +324,7 @@
<div>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="item-name-label-medium">Lieu de naissance</label>
<label class="item-name-label-medium">{{localize "ECRY.ui.bornplace"}}</label>
<input type="text" class="" name="system.biodata.lieunaissance" value="{{system.biodata.lieunaissance}}"
data-dtype="String" />
</li>
@ -395,22 +333,27 @@
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">Profession</label>
<input type="text" class="" name="system.biodata.profession" value="{{system.biodata.profession}}"
data-dtype="String" />
</li>
</ul>
</div>
<div>
<ul>
<li class="item flexrow">
<label class="item-name-label-medium">Résidence</label>
<label class="item-name-label-medium">{{localize "ECRY.ui.residence"}}</label>
<input type="text" class="" name="system.biodata.residence" value="{{system.biodata.residence}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">Nationalité</label>
<label class="item-name-label-medium">{{localize "ECRY.ui.origin"}}</label>
<input type="text" class="" name="system.biodata.nationalite" value="{{system.biodata.nationalite}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">Enfance</label>
<label class="item-name-label-medium">{{localize "ECRY.ui.childhood"}}</label>
<input type="text" class="" name="system.biodata.enfance" value="{{system.biodata.enfance}}"
data-dtype="String" />
</li>

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|}}

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>