Compare commits

...

4 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
a816380679 Foundryv14 migration
All checks were successful
Release Creation / build (release) Successful in 47s
2026-04-01 21:57:26 +02:00
48 changed files with 207 additions and 231 deletions

View File

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

8
.gitignore vendored
View File

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

View File

@@ -4,71 +4,37 @@
src: url('../fonts/rivanna.ttf') format("truetype"); 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; /* Global styles scoped to Maléfices windows only */
--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 */
.fvtt-malefices .window-app { .fvtt-malefices .window-app {
text-align: justify; text-align: justify;
font-size: 16px; font-size: 16px;
letter-spacing: 1px; letter-spacing: 1px;
} }
/* Fonts */ /* Fonts — scoped to system sheets */
.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item { .fvtt-malefices .sheet header.sheet-header h1 input,
#actors .directory-list,
#navigation #scene-list .scene.nav-item {
font-size: 1.0rem; font-size: 1.0rem;
} /* For title, sidebar character and scene */ }
.fvtt-malefices .sheet nav.sheet-tabs { .fvtt-malefices .sheet nav.sheet-tabs {
font-size: 0.8rem; 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; font-size: 0.8rem;
} }
.window-header{
background: rgba(0,0,0,0.75);
}
.window-app.sheet .window-content {
margin: 0;
padding: 0;
}
.strong-text { .strong-text {
font-weight: bold; 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; text-shadow: 1px 0px 0px @color-accent;
} }
@@ -78,15 +44,15 @@ background: rgba(0,0,0,0.75);
cursor: pointer; cursor: pointer;
} }
input:hover, select:hover { .fvtt-malefices input:hover, .fvtt-malefices select:hover {
border-width: 4px; border-width: 4px;
border-color: rgb(85, 65, 130); border-color: rgb(85, 65, 130);
} }
input:disabled { .fvtt-malefices input:disabled {
color:#1c2058; color:#1c2058;
} }
select:disabled { .fvtt-malefices select:disabled {
color:#1c2058; color:#1c2058;
} }
table {border: 1px solid #7a7971;} 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) */ /* Header layout override for item sheets (smaller than actor sheet header) */
.sheet-header { .sheet-header {
flex: 0 0 auto; flex: 0 0 auto;

View File

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

View File

@@ -29,7 +29,8 @@ export default class MaleficesArchetypeSheet extends MaleficesItemSheet {
async _prepareContext() { async _prepareContext() {
const context = await super._prepareContext() const context = await super._prepareContext()
context.tabs = this.#getTabs() 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 return context
} }
} }

View File

@@ -43,10 +43,6 @@ export class MaleficesActor extends Actor {
return super.create(data, options); return super.create(data, options);
} }
/* -------------------------------------------- */
prepareBaseData() {
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async prepareData() { async prepareData() {

View File

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

View File

@@ -1 +1 @@
MANIFEST-000064 MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/02/27-10:28:01.892467 7f56f8bfd6c0 Recovering log #63 2026/04/21-11:52:44.202744 7ff1aaffd6c0 Delete type=3 #1
2026/02/27-10:28:01.948160 7f56f8bfd6c0 Delete type=0 #63 2026/04/21-13:41:40.820174 7ff1a9ffb6c0 Level-0 table #79: started
2026/02/27-10:28:01.948272 7f56f8bfd6c0 Delete type=3 #62 2026/04/21-13:41:40.820230 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/02/27-14:29:37.861283 7f54e37ef6c0 Level-0 table #67: started 2026/04/21-13:41:40.826374 7ff1a9ffb6c0 Delete type=0 #77
2026/02/27-14:29:37.861314 7f54e37ef6c0 Level-0 table #67: 0 bytes OK 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/02/27-14:29:37.867488 7f54e37ef6c0 Delete type=0 #65 2026/04/21-13:41:40.846135 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
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-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,3 +1,4 @@
2026/02/27-00:10:01.008967 7fbc5bfff6c0 Recovering log #60 2026/04/21-11:52:44.183987 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK
2026/02/27-00:10:01.061613 7fbc5bfff6c0 Delete type=3 #58 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/02/27-00:10:01.061695 7fbc5bfff6c0 Delete type=0 #60 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-000064 MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/02/27-10:28:01.832073 7f56f93fe6c0 Recovering log #63 2026/04/21-11:52:44.181427 7ff1aaffd6c0 Delete type=3 #1
2026/02/27-10:28:01.886020 7f56f93fe6c0 Delete type=0 #63 2026/04/21-13:41:40.838999 7ff1a9ffb6c0 Level-0 table #79: started
2026/02/27-10:28:01.886089 7f56f93fe6c0 Delete type=3 #62 2026/04/21-13:41:40.839022 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/02/27-14:29:37.854040 7f54e37ef6c0 Level-0 table #67: started 2026/04/21-13:41:40.846003 7ff1a9ffb6c0 Delete type=0 #77
2026/02/27-14:29:37.854089 7f54e37ef6c0 Level-0 table #67: 0 bytes OK 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/02/27-14:29:37.861166 7f54e37ef6c0 Delete type=0 #65 2026/04/21-13:41:40.878297 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
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-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,3 +1,4 @@
2026/02/27-00:10:00.951941 7fbc5b7fe6c0 Recovering log #60 2026/04/21-11:52:44.164486 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK
2026/02/27-00:10:01.006960 7fbc5b7fe6c0 Delete type=3 #58 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/02/27-00:10:01.007022 7fbc5b7fe6c0 Delete type=0 #60 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-000064 MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/02/27-10:28:01.956384 7f56e3fff6c0 Recovering log #63 2026/04/21-11:52:44.222882 7ff1abfff6c0 Delete type=3 #1
2026/02/27-10:28:02.013265 7f56e3fff6c0 Delete type=0 #63 2026/04/21-13:41:40.832543 7ff1a9ffb6c0 Level-0 table #79: started
2026/02/27-10:28:02.013323 7f56e3fff6c0 Delete type=3 #62 2026/04/21-13:41:40.832568 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/02/27-14:29:37.873932 7f54e37ef6c0 Level-0 table #67: started 2026/04/21-13:41:40.838884 7ff1a9ffb6c0 Delete type=0 #77
2026/02/27-14:29:37.873976 7f54e37ef6c0 Level-0 table #67: 0 bytes OK 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/02/27-14:29:37.880214 7f54e37ef6c0 Delete type=0 #65 2026/04/21-13:41:40.867910 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
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-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,3 +1,4 @@
2026/02/27-00:10:01.064062 7fbc5affd6c0 Recovering log #60 2026/04/21-11:52:44.205891 7ff1abfff6c0 Log #74: 0 ops saved to Table #75 OK
2026/02/27-00:10:01.123843 7fbc5affd6c0 Delete type=3 #58 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/02/27-00:10:01.123915 7fbc5affd6c0 Delete type=0 #60 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-000064 MANIFEST-000076

View File

@@ -1,7 +1,11 @@
2026/02/27-10:28:01.770730 7f56f9bff6c0 Recovering log #63 2026/04/21-11:52:44.160569 7ff1aa7fc6c0 Delete type=3 #1
2026/02/27-10:28:01.825327 7f56f9bff6c0 Delete type=0 #63 2026/04/21-13:41:40.826507 7ff1a9ffb6c0 Level-0 table #79: started
2026/02/27-10:28:01.825401 7f56f9bff6c0 Delete type=3 #62 2026/04/21-13:41:40.826536 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK
2026/02/27-14:29:37.867627 7f54e37ef6c0 Level-0 table #67: started 2026/04/21-13:41:40.832425 7ff1a9ffb6c0 Delete type=0 #77
2026/02/27-14:29:37.867663 7f54e37ef6c0 Level-0 table #67: 0 bytes OK 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/02/27-14:29:37.873757 7f54e37ef6c0 Delete type=0 #65 2026/04/21-13:41:40.857314 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
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-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,3 +1,4 @@
2026/02/27-00:10:00.890338 7fbca89ff6c0 Recovering log #60 2026/04/21-11:52:44.059054 7ff1aa7fc6c0 Log #74: 0 ops saved to Table #75 OK
2026/02/27-00:10:00.949636 7fbca89ff6c0 Delete type=3 #58 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/02/27-00:10:00.949712 7fbca89ff6c0 Delete type=0 #60 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"; font-family: "Rivanna";
src: url('../fonts/rivanna.ttf') format("truetype"); src: url('../fonts/rivanna.ttf') format("truetype");
} }
:root { /* Global styles scoped to Maléfices windows only */
/* =================== 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 */
.fvtt-malefices .window-app { .fvtt-malefices .window-app {
text-align: justify; text-align: justify;
font-size: 16px; font-size: 16px;
letter-spacing: 1px; letter-spacing: 1px;
} }
/* Fonts */ /* Fonts — scoped to system sheets */
.sheet header.sheet-header h1 input, .fvtt-malefices .sheet header.sheet-header h1 input,
.window-app .window-header,
#actors .directory-list, #actors .directory-list,
#navigation #scene-list .scene.nav-item { #navigation #scene-list .scene.nav-item {
font-size: 1rem; font-size: 1rem;
} }
/* For title, sidebar character and scene */
.fvtt-malefices .sheet nav.sheet-tabs { .fvtt-malefices .sheet nav.sheet-tabs {
font-size: 0.8rem; font-size: 0.8rem;
} }
/* For nav and title */
.window-app input,
.fvtt-malefices .item-form, .fvtt-malefices .item-form,
.sheet header.sheet-header .flex-group-center.flex-compteurs, .fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-compteurs,
.sheet header.sheet-header .flex-group-center.flex-fatigue, .fvtt-malefices .sheet header.sheet-header .flex-group-center.flex-fatigue,
select, .fvtt-malefices .item-checkbox,
button,
.item-checkbox,
#sidebar, #sidebar,
#players, #players,
#navigation #nav-toggle { #navigation #nav-toggle {
font-size: 0.8rem; font-size: 0.8rem;
} }
.window-header {
background: rgba(0, 0, 0, 0.75);
}
.window-app.sheet .window-content {
margin: 0;
padding: 0;
}
.strong-text { .strong-text {
font-weight: bold; font-weight: bold;
} }
.tabs .item.active, .fvtt-malefices .tabs .item.active,
.blessures-list li ul li:first-child:hover, .blessures-list li ul li:first-child:hover {
a:hover {
text-shadow: 1px 0px 0px #ff6600; text-shadow: 1px 0px 0px #ff6600;
} }
.rollable:hover, .rollable:hover,
@@ -81,15 +40,15 @@ a:hover {
text-shadow: 0 0 10px red; text-shadow: 0 0 10px red;
cursor: pointer; cursor: pointer;
} }
input:hover, .fvtt-malefices input:hover,
select:hover { .fvtt-malefices select:hover {
border-width: 4px; border-width: 4px;
border-color: #554182; border-color: #554182;
} }
input:disabled { .fvtt-malefices input:disabled {
color: #1c2058; color: #1c2058;
} }
select:disabled { .fvtt-malefices select:disabled {
color: #1c2058; color: #1c2058;
} }
table { table {
@@ -365,46 +324,45 @@ li.folder > .folder-header h3 {
background: url("../images/ui/background_01_clear.webp"); background: url("../images/ui/background_01_clear.webp");
/*background: #494e6b;*/ /*background: #494e6b;*/
} }
input[type="text"], .fvtt-malefices input[type="text"],
select[type="text"] { .fvtt-malefices select[type="text"] {
background: white; background: white;
color: #494e6b; color: #494e6b;
} }
select { .fvtt-malefices select {
background: white; background: white;
color: #494e6b; color: #494e6b;
} }
/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/ /* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
/*color: rgba(168, 139, 139, 0.5);*/ /*color: rgba(168, 139, 139, 0.5);*/
.window-app.sheet .window-content .sheet-header select[type="text"], .fvtt-malefices.window-app.sheet .window-content .sheet-header select[type="text"],
.window-app.sheet .window-content .sheet-header input[type="text"], .fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="text"],
.window-app.sheet .window-content .sheet-header input[type="number"], .fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="number"],
.window-app.sheet .window-content .sheet-body input[type="text"], .fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="text"],
.window-app.sheet .window-content .sheet-body input[type="number"], .fvtt-malefices.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-body select[type="text"] {
color: rgba(19, 18, 18, 0.95); color: rgba(19, 18, 18, 0.95);
/*color: #494e6b;*/
} }
.window-app.sheet .window-content .sheet-header input[type="password"], .fvtt-malefices.window-app.sheet .window-content .sheet-header input[type="password"],
.window-app.sheet .window-content .sheet-header input[type="date"], .fvtt-malefices.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="time"] {
color: rgba(19, 18, 18, 0.95); color: rgba(19, 18, 18, 0.95);
background: url("../images/ui/background_01_clear.webp"); background: url("../images/ui/background_01_clear.webp");
border: 1 none; border: 1 none;
margin-bottom: 0.25rem; margin-bottom: 0.25rem;
margin-left: 2px; margin-left: 2px;
} }
.window-app.sheet .window-content .sheet-body input[type="password"], .fvtt-malefices.window-app.sheet .window-content .sheet-body input[type="password"],
.window-app.sheet .window-content .sheet-body input[type="date"], .fvtt-malefices.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="time"] {
color: rgba(19, 18, 18, 0.95); color: rgba(19, 18, 18, 0.95);
background: url("../images/ui/background_01_clear.webp"); background: url("../images/ui/background_01_clear.webp");
border: 1 none; border: 1 none;
margin-bottom: 0.25rem; margin-bottom: 0.25rem;
margin-left: 2px; margin-left: 2px;
} }
.window-app.sheet .window-content .sheet-body select, .fvtt-malefices.window-app.sheet .window-content .sheet-body select,
.window-app.sheet .window-content .sheet-header select { .fvtt-malefices.window-app.sheet .window-content .sheet-header select {
color: rgba(19, 18, 18, 0.95); color: rgba(19, 18, 18, 0.95);
background: #fff; background: #fff;
border: 1 none; border: 1 none;
@@ -428,7 +386,7 @@ section.sheet-body {
margin: 0.5rem 0 0.5rem 0.5rem; margin: 0.5rem 0 0.5rem 0.5rem;
padding: 0; padding: 0;
} }
nav.sheet-tabs { .fvtt-malefices nav.sheet-tabs {
font-size: 1.2rem; font-size: 1.2rem;
font-weight: bold; font-weight: bold;
height: 3rem; height: 3rem;
@@ -453,14 +411,14 @@ nav.sheet-tabs {
.dice-tray button { .dice-tray button {
color: #6d5923 !important; color: #6d5923 !important;
} }
nav.sheet-tabs .item { .fvtt-malefices nav.sheet-tabs .item {
position: relative; position: relative;
padding: 0 0.25rem; padding: 0 0.25rem;
color: beige; color: beige;
margin-top: 4px; margin-top: 4px;
margin-bottom: 4px; margin-bottom: 4px;
} }
nav.sheet-tabs .item:after { .fvtt-malefices nav.sheet-tabs .item:after {
content: ""; content: "";
position: absolute; position: absolute;
top: 0; top: 0;
@@ -1957,6 +1915,7 @@ li {
/* Fixed header bar */ /* Fixed header bar */
/* sheet-body: scroll container */ /* sheet-body: scroll container */
/* Override legacy height: 100% on tab divs; hide all tabs, show only the active one */ /* 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) */ /* Header layout override for item sheets (smaller than actor sheet header) */
/* Tab navigation: AppV2 uses nav.tabs (not nav.sheet-tabs) */ /* Tab navigation: AppV2 uses nav.tabs (not nav.sheet-tabs) */
} }
@@ -1990,6 +1949,11 @@ li {
.fvtt-malefices.item .tab[data-tab].active { .fvtt-malefices.item .tab[data-tab].active {
display: block; 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 { .fvtt-malefices.item .sheet-header {
flex: 0 0 auto; flex: 0 0 auto;
flex-direction: row; flex-direction: row;

File diff suppressed because one or more lines are too long

View File

@@ -70,8 +70,8 @@
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-malefices/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-malefices/raw/branch/master/system.json",
"compatibility": { "compatibility": {
"minimum": "11", "minimum": "13",
"verified": "13" "verified": "14"
}, },
"id": "fvtt-malefices", "id": "fvtt-malefices",
"primaryTokenAttribute": "secondary.health", "primaryTokenAttribute": "secondary.health",

View File

@@ -14,7 +14,7 @@
<li class="flexrow"> <li class="flexrow">
<label class="item-field-label-long">Lame tutélaire</label> <label class="item-field-label-long">Lame tutélaire</label>
<select class="item-field-label-long" name="system.lametutelaire" data-dtype="String"> <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> </select>
</li> </li>
</ul> </ul>