Compare commits

...

3 Commits

Author SHA1 Message Date
c61179a790 Corrections sur commande /tirage
All checks were successful
Release Creation / build (release) Successful in 1m3s
2026-04-24 21:05:02 +02:00
956ed9e916 Corrections CSS sur fiche archetype et système
All checks were successful
Release Creation / build (release) Successful in 50s
2026-04-21 13:43:29 +02:00
5cc060b102 Foundryv14 migration 2026-04-01 22:21:54 +02:00
46 changed files with 185 additions and 221 deletions

View File

@@ -58,5 +58,5 @@ jobs:
version: ${{github.event.release.tag_name}}
manifest: 'https://www.uberwald.me/gitea/public/fvtt-malefices/releases/download/latest/system.json'
notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-malefices.zip'
compatibility-minimum: '11'
compatibility-verified: '13'
compatibility-minimum: '13'
compatibility-verified: '14'

8
.gitignore vendored
View File

@@ -1 +1,9 @@
# IDE
.idea/
.vs/
styles/*.css
# Node Modules
node_modules/
.github/

View File

@@ -4,71 +4,37 @@
src: url('../fonts/rivanna.ttf') format("truetype");
}
:root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
--window-header-title-font-weight: normal;
--window-header-title-color: #f5f5f5;
--major-button-font-size: 1.05rem;
--major-button-font-weight: normal;
--major-button-color: #dadada;
--tab-header-font-size: 1.0rem;
--tab-header-font-weight: 700;
--tab-header-color: #403f3e;
--tab-header-color-active: #4a0404;
--actor-input-font-size: 0.8rem;
--actor-input-font-weight: 500;
--actor-input-color: black;
--actor-label-font-size: 0.8rem;
--actor-label-font-weight: 700;
--actor-label-color: #464331c4;
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
--debug-background-color-red: #ff000054;
--debug-background-color-blue: #1d00ff54;
--debug-background-color-green: #54ff0054;
--debug-box-shadow-red: inset 0 0 2px red;
--debug-box-shadow-blue: inset 0 0 2px blue;
--debug-box-shadow-green: inset 0 0 2px green;
}
/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
/* Global styles & Font */
/* Global styles scoped to Maléfices windows only */
.fvtt-malefices .window-app {
text-align: justify;
font-size: 16px;
letter-spacing: 1px;
}
/* Fonts */
.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
/* Fonts — scoped to system sheets */
.fvtt-malefices .sheet header.sheet-header h1 input,
#actors .directory-list,
#navigation #scene-list .scene.nav-item {
font-size: 1.0rem;
} /* For title, sidebar character and scene */
}
.fvtt-malefices .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 {
}
.fvtt-malefices .item-form,
.fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-compteurs,
.fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-fatigue,
.fvtt-malefices .item-checkbox,
#sidebar, #players, #navigation #nav-toggle {
font-size: 0.8rem;
}
.window-header{
background: rgba(0,0,0,0.75);
}
.window-app.sheet .window-content {
margin: 0;
padding: 0;
}
.strong-text {
font-weight: bold;
}
.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover {
.fvtt-malefices .tabs .item.active,
.blessures-list li ul li:first-child:hover {
text-shadow: 1px 0px 0px @color-accent;
}
@@ -78,15 +44,15 @@ background: rgba(0,0,0,0.75);
cursor: pointer;
}
input:hover, select:hover {
.fvtt-malefices input:hover, .fvtt-malefices select:hover {
border-width: 4px;
border-color: rgb(85, 65, 130);
}
input:disabled {
.fvtt-malefices input:disabled {
color:#1c2058;
}
select:disabled {
.fvtt-malefices select:disabled {
color:#1c2058;
}
table {border: 1px solid #7a7971;}

View File

@@ -48,6 +48,15 @@
}
}
/* Description editor: ensure enough vertical room */
.tab.description {
prose-mirror,
.editor,
.ProseMirror {
min-height: 440px;
}
}
/* Header layout override for item sheets (smaller than actor sheet header) */
.sheet-header {
flex: 0 0 auto;

View File

@@ -204,23 +204,29 @@ li.folder > .folder-header h3 {
/*background: #494e6b;*/
}
input[type="text"], select[type="text"] {
.fvtt-malefices input[type="text"], .fvtt-malefices select[type="text"] {
background:white;
color: @color-input-text;
}
select {
.fvtt-malefices select {
background:white;
color: @color-input-text;
}
/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
/*color: rgba(168, 139, 139, 0.5);*/
.window-app.sheet .window-content .sheet-header select[type="text"], .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body select[type="text"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-header select[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="number"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="number"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body select[type="text"] {
color: @color-text;
/*color: #494e6b;*/
}
.window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="password"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="date"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="time"] {
color: @color-text;
background: @bg-sheet;
border: 1 none;
@@ -228,7 +234,9 @@ select {
margin-left: 2px;
}
.window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="password"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="date"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="time"] {
color: @color-text;
background: @bg-sheet;
border: 1 none;
@@ -236,7 +244,8 @@ select {
margin-left: 2px;
}
.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select {
.fvtt-malefices.window-app.sheet .window-content .sheet-body select,
.fvtt-malefices.window-app.sheet .window-content .sheet-header select {
color: @color-text;
background: #fff;
border: 1 none;
@@ -262,7 +271,7 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
padding: 0;
}
nav.sheet-tabs {
.fvtt-malefices nav.sheet-tabs {
font-size: @tab-font-size;
font-weight: bold;
height: @tab-height;
@@ -289,7 +298,7 @@ nav.sheet-tabs {
color: #6d5923 !important;
}
nav.sheet-tabs .item {
.fvtt-malefices nav.sheet-tabs .item {
position: relative;
padding: 0 0.25rem;
color: @color-tab-text;
@@ -297,7 +306,7 @@ nav.sheet-tabs .item {
margin-bottom: 4px;
}
nav.sheet-tabs .item:after {
.fvtt-malefices nav.sheet-tabs .item:after {
content: "";
position: absolute;
top: 0;

View File

@@ -29,7 +29,8 @@ export default class MaleficesArchetypeSheet extends MaleficesItemSheet {
async _prepareContext() {
const context = await super._prepareContext()
context.tabs = this.#getTabs()
context.tarots = MaleficesUtility.getTarots()
const tarots = MaleficesUtility.getTarots() ?? []
context.tarots = Object.fromEntries(tarots.map(t => [t._id, t.name]))
return context
}
}

View File

@@ -7,7 +7,7 @@ export class MaleficesUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => MaleficesUtility.chatListeners(html));
Hooks.on('renderChatMessageHTML', (message, html) => MaleficesUtility.chatListeners(message, html));
this.rollDataStore = {}
this.defenderStore = {}
@@ -73,7 +73,7 @@ export class MaleficesUtility {
/*-------------------------------------------- */
static getTarots() {
return foundry.utils.duplicate(this.tarots)
return foundry.utils.duplicate(this.tarots ?? [])
}
static getTarot(tId) {
return this.tarots.find(t => t._id == tId)
@@ -105,29 +105,32 @@ export class MaleficesUtility {
/* -------------------------------------------- */
static drawDeckCard(msgId) {
if (game.user.isGM) {
game.system.malefices.currentTirage.addCard(msgId)
const tirage = game.system.malefices.currentTirage
if (tirage) {
tirage.addCard(msgId)
} else {
ui.notifications.warn("Aucun tirage en cours.")
}
} else {
game.socket.emit("system.fvtt-malefices", { name: "msg-draw-card", data: { msgId: msgId } })
}
}
/* -------------------------------------------- */
static async chatListeners(html) {
static chatListeners(message, html) {
if (!html) return
$(html).on("click", '.roll-destin', event => {
let messageId = MaleficesUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "rolldata")
let actor = this.getActorFromRollData(rollData)
html.querySelector('.roll-destin')?.addEventListener('click', () => {
const rollData = message.getFlag("world", "rolldata")
const actor = MaleficesUtility.getActorFromRollData(rollData)
actor.incDecDestin(-1)
rollData.isReroll = true
this.rollMalefices(rollData)
})
$(html).on("click", '.draw-tarot-card', event => {
let messageId = MaleficesUtility.findChatMessageId(event.currentTarget)
this.drawDeckCard(messageId)
MaleficesUtility.rollMalefices(rollData)
})
html.querySelector('.draw-tarot-card')?.addEventListener('click', () => {
MaleficesUtility.drawDeckCard(message.id)
})
}
/* -------------------------------------------- */

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/04/01-21:52:59.516756 7f30557ee6c0 Recovering log #66
2026/04/01-21:52:59.526211 7f30557ee6c0 Delete type=0 #66
2026/04/01-21:52:59.526277 7f30557ee6c0 Delete type=3 #64
2026/04/01-21:56:55.040835 7f303effd6c0 Level-0 table #71: started
2026/04/01-21:56:55.040885 7f303effd6c0 Level-0 table #71: 0 bytes OK
2026/04/01-21:56:55.047352 7f303effd6c0 Delete type=0 #69
2026/04/01-21:56:55.067290 7f303effd6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.202744 7ff1aaffd6c0 Delete type=3 #1
2026/04/21-13:41:40.820174 7ff1a9ffb6c0 Level-0 table #79: started
2026/04/21-13:41:40.820230 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/04/21-13:41:40.826374 7ff1a9ffb6c0 Delete type=0 #77
2026/04/21-13:41:40.846124 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at '!items!xtYE2kVIfNtrXSoU' @ 92 : 1
2026/04/21-13:41:40.846135 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
2026/04/21-13:41:40.850988 7ff1a9ffb6c0 Generated table #80@0: 23 keys, 50829 bytes
2026/04/21-13:41:40.851009 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 50829 bytes
2026/04/21-13:41:40.857011 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/21-13:41:40.857165 7ff1a9ffb6c0 Delete type=2 #41
2026/04/21-13:41:40.887698 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!xtYE2kVIfNtrXSoU' @ 92 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,4 @@
2026/02/27-10:28:01.892467 7f56f8bfd6c0 Recovering log #63
2026/02/27-10:28:01.948160 7f56f8bfd6c0 Delete type=0 #63
2026/02/27-10:28:01.948272 7f56f8bfd6c0 Delete type=3 #62
2026/02/27-14:29:37.861283 7f54e37ef6c0 Level-0 table #67: started
2026/02/27-14:29:37.861314 7f54e37ef6c0 Level-0 table #67: 0 bytes OK
2026/02/27-14:29:37.867488 7f54e37ef6c0 Delete type=0 #65
2026/02/27-14:29:37.880370 7f54e37ef6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.183987 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK
2026/04/21-11:52:44.184084 7ff1aaffd6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-archetypes/000074.log: OK
2026/04/21-11:52:44.186478 7ff1aaffd6c0 Table #41: 23 entries OK
2026/04/21-11:52:44.190025 7ff1aaffd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-archetypes; recovered 1 files; 50829 bytes. Some data may have been lost. ****

Binary file not shown.

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/04/01-21:52:59.503313 7f303ffff6c0 Recovering log #66
2026/04/01-21:52:59.513994 7f303ffff6c0 Delete type=0 #66
2026/04/01-21:52:59.514046 7f303ffff6c0 Delete type=3 #64
2026/04/01-21:56:55.047475 7f303effd6c0 Level-0 table #71: started
2026/04/01-21:56:55.047500 7f303effd6c0 Level-0 table #71: 0 bytes OK
2026/04/01-21:56:55.053914 7f303effd6c0 Delete type=0 #69
2026/04/01-21:56:55.067309 7f303effd6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.181427 7ff1aaffd6c0 Delete type=3 #1
2026/04/21-13:41:40.838999 7ff1a9ffb6c0 Level-0 table #79: started
2026/04/21-13:41:40.839022 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/04/21-13:41:40.846003 7ff1a9ffb6c0 Delete type=0 #77
2026/04/21-13:41:40.878282 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at '!items!nkRQU81L1gWOfaeo' @ 36 : 1
2026/04/21-13:41:40.878297 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
2026/04/21-13:41:40.881453 7ff1a9ffb6c0 Generated table #80@0: 9 keys, 2083 bytes
2026/04/21-13:41:40.881477 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 2083 bytes
2026/04/21-13:41:40.887457 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/21-13:41:40.887570 7ff1a9ffb6c0 Delete type=2 #41
2026/04/21-13:41:40.887738 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!nkRQU81L1gWOfaeo' @ 36 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,4 @@
2026/02/27-10:28:01.832073 7f56f93fe6c0 Recovering log #63
2026/02/27-10:28:01.886020 7f56f93fe6c0 Delete type=0 #63
2026/02/27-10:28:01.886089 7f56f93fe6c0 Delete type=3 #62
2026/02/27-14:29:37.854040 7f54e37ef6c0 Level-0 table #67: started
2026/02/27-14:29:37.854089 7f54e37ef6c0 Level-0 table #67: 0 bytes OK
2026/02/27-14:29:37.861166 7f54e37ef6c0 Delete type=0 #65
2026/02/27-14:29:37.880355 7f54e37ef6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.164486 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK
2026/04/21-11:52:44.164589 7ff1aaffd6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-armes/000074.log: OK
2026/04/21-11:52:44.164875 7ff1aaffd6c0 Table #41: 9 entries OK
2026/04/21-11:52:44.168545 7ff1aaffd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-armes; recovered 1 files; 2083 bytes. Some data may have been lost. ****

Binary file not shown.

View File

Binary file not shown.

View File

View File

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/04/01-21:52:59.529572 7f303f7fe6c0 Recovering log #66
2026/04/01-21:52:59.539790 7f303f7fe6c0 Delete type=0 #66
2026/04/01-21:52:59.539842 7f303f7fe6c0 Delete type=3 #64
2026/04/01-21:56:55.083102 7f303effd6c0 Level-0 table #71: started
2026/04/01-21:56:55.083142 7f303effd6c0 Level-0 table #71: 0 bytes OK
2026/04/01-21:56:55.089723 7f303effd6c0 Delete type=0 #69
2026/04/01-21:56:55.099487 7f303effd6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.222882 7ff1abfff6c0 Delete type=3 #1
2026/04/21-13:41:40.832543 7ff1a9ffb6c0 Level-0 table #79: started
2026/04/21-13:41:40.832568 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/04/21-13:41:40.838884 7ff1a9ffb6c0 Delete type=0 #77
2026/04/21-13:41:40.867899 7ff1a9ffb6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at '!macros!zDPgmHiwNxBWhoYz' @ 12 : 1
2026/04/21-13:41:40.867910 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
2026/04/21-13:41:40.871553 7ff1a9ffb6c0 Generated table #80@0: 3 keys, 843 bytes
2026/04/21-13:41:40.871580 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 843 bytes
2026/04/21-13:41:40.877546 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/21-13:41:40.877655 7ff1a9ffb6c0 Delete type=2 #41
2026/04/21-13:41:40.887725 7ff1a9ffb6c0 Manual compaction at level-0 from '!macros!zDPgmHiwNxBWhoYz' @ 12 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,4 @@
2026/02/27-10:28:01.956384 7f56e3fff6c0 Recovering log #63
2026/02/27-10:28:02.013265 7f56e3fff6c0 Delete type=0 #63
2026/02/27-10:28:02.013323 7f56e3fff6c0 Delete type=3 #62
2026/02/27-14:29:37.873932 7f54e37ef6c0 Level-0 table #67: started
2026/02/27-14:29:37.873976 7f54e37ef6c0 Level-0 table #67: 0 bytes OK
2026/02/27-14:29:37.880214 7f54e37ef6c0 Delete type=0 #65
2026/02/27-14:29:37.880389 7f54e37ef6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.205891 7ff1abfff6c0 Log #74: 0 ops saved to Table #75 OK
2026/04/21-11:52:44.206027 7ff1abfff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-macros/000074.log: OK
2026/04/21-11:52:44.206120 7ff1abfff6c0 Table #41: 3 entries OK
2026/04/21-11:52:44.210039 7ff1abfff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-macros; recovered 1 files; 843 bytes. Some data may have been lost. ****

Binary file not shown.

View File

Binary file not shown.

View File

View File

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/04/01-21:52:59.490358 7f3054fed6c0 Recovering log #66
2026/04/01-21:52:59.500678 7f3054fed6c0 Delete type=0 #66
2026/04/01-21:52:59.500730 7f3054fed6c0 Delete type=3 #64
2026/04/01-21:56:55.054021 7f303effd6c0 Level-0 table #71: started
2026/04/01-21:56:55.054050 7f303effd6c0 Level-0 table #71: 0 bytes OK
2026/04/01-21:56:55.060482 7f303effd6c0 Delete type=0 #69
2026/04/01-21:56:55.067323 7f303effd6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.160569 7ff1aa7fc6c0 Delete type=3 #1
2026/04/21-13:41:40.826507 7ff1a9ffb6c0 Level-0 table #79: started
2026/04/21-13:41:40.826536 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/04/21-13:41:40.832425 7ff1a9ffb6c0 Delete type=0 #77
2026/04/21-13:41:40.857305 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at '!items!zbGGMEQFdwVdlKAf' @ 88 : 1
2026/04/21-13:41:40.857314 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
2026/04/21-13:41:40.860393 7ff1a9ffb6c0 Generated table #80@0: 22 keys, 4074 bytes
2026/04/21-13:41:40.860404 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 4074 bytes
2026/04/21-13:41:40.867688 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/21-13:41:40.867784 7ff1a9ffb6c0 Delete type=2 #41
2026/04/21-13:41:40.887714 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!zbGGMEQFdwVdlKAf' @ 88 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,4 @@
2026/02/27-10:28:01.770730 7f56f9bff6c0 Recovering log #63
2026/02/27-10:28:01.825327 7f56f9bff6c0 Delete type=0 #63
2026/02/27-10:28:01.825401 7f56f9bff6c0 Delete type=3 #62
2026/02/27-14:29:37.867627 7f54e37ef6c0 Level-0 table #67: started
2026/02/27-14:29:37.867663 7f54e37ef6c0 Level-0 table #67: 0 bytes OK
2026/02/27-14:29:37.873757 7f54e37ef6c0 Delete type=0 #65
2026/02/27-14:29:37.880380 7f54e37ef6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
2026/04/21-11:52:44.059054 7ff1aa7fc6c0 Log #74: 0 ops saved to Table #75 OK
2026/04/21-11:52:44.059194 7ff1aa7fc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-tarots/000074.log: OK
2026/04/21-11:52:44.059258 7ff1aa7fc6c0 Table #41: 22 entries OK
2026/04/21-11:52:44.063146 7ff1aa7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-malefices/packs/malefices-tarots; recovered 1 files; 4074 bytes. Some data may have been lost. ****

Binary file not shown.

View File

View File

@@ -3,76 +3,35 @@
font-family: "Rivanna";
src: url('../fonts/rivanna.ttf') format("truetype");
}
:root {
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
--window-header-title-font-size: 1.3rem;
--window-header-title-font-weight: normal;
--window-header-title-color: #f5f5f5;
--major-button-font-size: 1.05rem;
--major-button-font-weight: normal;
--major-button-color: #dadada;
--tab-header-font-size: 1rem;
--tab-header-font-weight: 700;
--tab-header-color: #403f3e;
--tab-header-color-active: #4a0404;
--actor-input-font-size: 0.8rem;
--actor-input-font-weight: 500;
--actor-input-color: black;
--actor-label-font-size: 0.8rem;
--actor-label-font-weight: 700;
--actor-label-color: #464331c4;
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
--debug-background-color-red: #ff000054;
--debug-background-color-blue: #1d00ff54;
--debug-background-color-green: #54ff0054;
--debug-box-shadow-red: inset 0 0 2px red;
--debug-box-shadow-blue: inset 0 0 2px blue;
--debug-box-shadow-green: inset 0 0 2px green;
}
/*@import url("https://fonts.googleapis.com/css2?family=Martel:wght@400;800&family=Roboto:wght@300;400;500&display=swap");*/
/* Global styles & Font */
/* Global styles scoped to Maléfices windows only */
.fvtt-malefices .window-app {
text-align: justify;
font-size: 16px;
letter-spacing: 1px;
}
/* Fonts */
.sheet header.sheet-header h1 input,
.window-app .window-header,
/* Fonts — scoped to system sheets */
.fvtt-malefices .sheet header.sheet-header h1 input,
#actors .directory-list,
#navigation #scene-list .scene.nav-item {
font-size: 1rem;
}
/* For title, sidebar character and scene */
.fvtt-malefices .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,
.fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-compteurs,
.fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-fatigue,
.fvtt-malefices .item-checkbox,
#sidebar,
#players,
#navigation #nav-toggle {
font-size: 0.8rem;
}
.window-header {
background: rgba(0, 0, 0, 0.75);
}
.window-app.sheet .window-content {
margin: 0;
padding: 0;
}
.strong-text {
font-weight: bold;
}
.tabs .item.active,
.blessures-list li ul li:first-child:hover,
a:hover {
.fvtt-malefices .tabs .item.active,
.blessures-list li ul li:first-child:hover {
text-shadow: 1px 0px 0px #ff6600;
}
.rollable:hover,
@@ -81,15 +40,15 @@ a:hover {
text-shadow: 0 0 10px red;
cursor: pointer;
}
input:hover,
select:hover {
.fvtt-malefices input:hover,
.fvtt-malefices select:hover {
border-width: 4px;
border-color: #554182;
}
input:disabled {
.fvtt-malefices input:disabled {
color: #1c2058;
}
select:disabled {
.fvtt-malefices select:disabled {
color: #1c2058;
}
table {
@@ -365,46 +324,45 @@ li.folder > .folder-header h3 {
background: url("../images/ui/background_01_clear.webp");
/*background: #494e6b;*/
}
input[type="text"],
select[type="text"] {
.fvtt-malefices input[type="text"],
.fvtt-malefices select[type="text"] {
background: white;
color: #494e6b;
}
select {
.fvtt-malefices select {
background: white;
color: #494e6b;
}
/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
/*color: rgba(168, 139, 139, 0.5);*/
.window-app.sheet .window-content .sheet-header select[type="text"],
.window-app.sheet .window-content .sheet-header input[type="text"],
.window-app.sheet .window-content .sheet-header input[type="number"],
.window-app.sheet .window-content .sheet-body input[type="text"],
.window-app.sheet .window-content .sheet-body input[type="number"],
.window-app.sheet .window-content .sheet-body select[type="text"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-header select[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="number"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="text"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="number"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body select[type="text"] {
color: rgba(19, 18, 18, 0.95);
/*color: #494e6b;*/
}
.window-app.sheet .window-content .sheet-header input[type="password"],
.window-app.sheet .window-content .sheet-header input[type="date"],
.window-app.sheet .window-content .sheet-header input[type="time"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="password"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="date"],
.fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="time"] {
color: rgba(19, 18, 18, 0.95);
background: url("../images/ui/background_01_clear.webp");
border: 1 none;
margin-bottom: 0.25rem;
margin-left: 2px;
}
.window-app.sheet .window-content .sheet-body input[type="password"],
.window-app.sheet .window-content .sheet-body input[type="date"],
.window-app.sheet .window-content .sheet-body input[type="time"] {
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="password"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="date"],
.fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="time"] {
color: rgba(19, 18, 18, 0.95);
background: url("../images/ui/background_01_clear.webp");
border: 1 none;
margin-bottom: 0.25rem;
margin-left: 2px;
}
.window-app.sheet .window-content .sheet-body select,
.window-app.sheet .window-content .sheet-header select {
.fvtt-malefices.window-app.sheet .window-content .sheet-body select,
.fvtt-malefices.window-app.sheet .window-content .sheet-header select {
color: rgba(19, 18, 18, 0.95);
background: #fff;
border: 1 none;
@@ -428,7 +386,7 @@ section.sheet-body {
margin: 0.5rem 0 0.5rem 0.5rem;
padding: 0;
}
nav.sheet-tabs {
.fvtt-malefices nav.sheet-tabs {
font-size: 1.2rem;
font-weight: bold;
height: 3rem;
@@ -453,14 +411,14 @@ nav.sheet-tabs {
.dice-tray button {
color: #6d5923 !important;
}
nav.sheet-tabs .item {
.fvtt-malefices nav.sheet-tabs .item {
position: relative;
padding: 0 0.25rem;
color: beige;
margin-top: 4px;
margin-bottom: 4px;
}
nav.sheet-tabs .item:after {
.fvtt-malefices nav.sheet-tabs .item:after {
content: "";
position: absolute;
top: 0;
@@ -1957,6 +1915,7 @@ li {
/* Fixed header bar */
/* sheet-body: scroll container */
/* Override legacy height: 100% on tab divs; hide all tabs, show only the active one */
/* Description editor: ensure enough vertical room */
/* Header layout override for item sheets (smaller than actor sheet header) */
/* Tab navigation: AppV2 uses nav.tabs (not nav.sheet-tabs) */
}
@@ -1990,6 +1949,11 @@ li {
.fvtt-malefices.item .tab[data-tab].active {
display: block;
}
.fvtt-malefices.item .tab.description prose-mirror,
.fvtt-malefices.item .tab.description .editor,
.fvtt-malefices.item .tab.description .ProseMirror {
min-height: 440px;
}
.fvtt-malefices.item .sheet-header {
flex: 0 0 auto;
flex-direction: row;

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,7 @@
<li class="flexrow">
<label class="item-field-label-long">Lame tutélaire</label>
<select class="item-field-label-long" name="system.lametutelaire" data-dtype="String">
{{selectOptions tarots selected=system.lametutelaire nameAttr="_id" labelAttr="name"}}
{{selectOptions tarots selected=system.lametutelaire blank="— aucune —"}}
</select>
</li>
</ul>