Compare commits

...

3 Commits

Author SHA1 Message Date
uberwald 883a84b7a0 Affichage des cartes améliorés dans la vue /tirage
Release Creation / build (release) Successful in 48s
2026-04-26 15:50:51 +02:00
uberwald 6f8b165745 v14 fixes again
Release Creation / build (release) Successful in 49s
2026-04-24 22:27:58 +02:00
uberwald c61179a790 Corrections sur commande /tirage
Release Creation / build (release) Successful in 1m3s
2026-04-24 21:05:02 +02:00
53 changed files with 181 additions and 105 deletions
+24 -13
View File
@@ -391,24 +391,11 @@
width: 100px; width: 100px;
vertical-align: top; vertical-align: top;
&:hover {
position: relative;
z-index: 100;
.tirage-card-img {
transform: scale(2.2);
transform-origin: center top;
box-shadow: 3px 3px 12px rgba(0,0,0,0.4);
}
}
.tirage-card-img { .tirage-card-img {
width: 100px; width: 100px;
border: 1px solid @be-gold-border; border: 1px solid @be-gold-border;
border-radius: 2px; border-radius: 2px;
box-shadow: 1px 1px 4px rgba(0,0,0,0.2); box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
transition: transform 0.2s ease, box-shadow 0.2s ease;
transform-origin: center center;
cursor: zoom-in; cursor: zoom-in;
} }
@@ -467,3 +454,27 @@
} }
} }
} }
// ── Overlay loupe pour les cartes du tirage ───────────────
#tirage-card-zoom-overlay {
position: fixed;
z-index: 10000;
pointer-events: none;
border: 2px solid @be-gold-border;
border-radius: 3px;
box-shadow: 4px 4px 20px rgba(0,0,0,0.55);
opacity: 0;
transition: opacity 0.15s ease;
background: #000;
&.visible { opacity: 1; }
img {
display: block;
width: 220px;
height: auto;
border-radius: 2px;
&.flip-tarot { transform: scaleY(-1); }
}
}
+5 -3
View File
@@ -131,10 +131,12 @@ Hooks.once("ready", function () {
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.on("chatMessage", (html, content, msg) => { Hooks.on("chatMessage", (html, content, msg) => {
if (content[0] == '/') { // In Foundry v14+, ProseMirror wraps message in <p>...</p> — strip it like ChatLog.parse does
const stripped = content.replace(/^<p>|<\/p>$/gi, "").trim();
if (stripped[0] === '/') {
let regExp = /(\S+)/g; let regExp = /(\S+)/g;
let commands = content.match(regExp); let commands = stripped.match(regExp);
if (game.system.malefices.commands.processChatCommand(commands, content, msg)) { if (game.system.malefices.commands.processChatCommand(commands, stripped, msg)) {
return false; return false;
} }
} }
+52
View File
@@ -53,6 +53,58 @@ export class MaleficesTirageTarotDialog extends HandlebarsApplicationMixin(Appli
}) })
el.querySelector('.tirage-close-btn')?.addEventListener('click', () => this.close()) el.querySelector('.tirage-close-btn')?.addEventListener('click', () => this.close())
this._setupCardZoom(el)
}
/* -------------------------------------------- */
_setupCardZoom(el) {
let overlay = document.getElementById('tirage-card-zoom-overlay')
if (!overlay) {
overlay = document.createElement('div')
overlay.id = 'tirage-card-zoom-overlay'
overlay.innerHTML = '<img src="" alt="" />'
document.body.appendChild(overlay)
}
const overlayImg = overlay.querySelector('img')
const ZOOM_W = 224 // 220px image + 2px border × 2
const TAROT_RATIO = 5 / 3 // hauteur / largeur (cartes tarot portrait)
const position = (rect) => {
const vw = window.innerWidth
const vh = window.innerHeight
const zoomH = Math.round(ZOOM_W * TAROT_RATIO)
let left = rect.left + rect.width / 2 - ZOOM_W / 2
let top = rect.top - zoomH - 10
left = Math.max(8, Math.min(left, vw - ZOOM_W - 8))
if (top < 8) top = rect.bottom + 8
if (top + zoomH > vh - 8) top = Math.max(8, vh - zoomH - 8)
overlay.style.left = left + 'px'
overlay.style.top = top + 'px'
}
const show = (cardImg) => {
overlayImg.src = cardImg.src
overlayImg.className = cardImg.className
overlay.classList.add('visible')
position(cardImg.getBoundingClientRect())
}
const hide = () => overlay.classList.remove('visible')
el.querySelectorAll('.tirage-card-img').forEach(img => {
img.addEventListener('mouseenter', () => show(img))
img.addEventListener('mouseleave', hide)
})
}
/* -------------------------------------------- */
_onClose(_options) {
document.getElementById('tirage-card-zoom-overlay')?.remove()
return super._onClose(_options)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
+16 -13
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 = {}
@@ -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)
})
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000076 MANIFEST-000014
+7 -11
View File
@@ -1,11 +1,7 @@
2026/04/21-11:52:44.202744 7ff1aaffd6c0 Delete type=3 #1 2026/04/26-15:45:25.152297 7f5797fff6c0 Recovering log #12
2026/04/21-13:41:40.820174 7ff1a9ffb6c0 Level-0 table #79: started 2026/04/26-15:45:25.163242 7f5797fff6c0 Delete type=3 #10
2026/04/21-13:41:40.820230 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK 2026/04/26-15:45:25.163372 7f5797fff6c0 Delete type=0 #12
2026/04/21-13:41:40.826374 7ff1a9ffb6c0 Delete type=0 #77 2026/04/26-15:50:25.999778 7f57977fe6c0 Level-0 table #17: started
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/26-15:50:25.999856 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/21-13:41:40.846135 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files 2026/04/26-15:50:26.044072 7f57977fe6c0 Delete type=0 #15
2026/04/21-13:41:40.850988 7ff1a9ffb6c0 Generated table #80@0: 23 keys, 50829 bytes 2026/04/26-15:50:26.163225 7f57977fe6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
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)
+7 -4
View File
@@ -1,4 +1,7 @@
2026/04/21-11:52:44.183987 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK 2026/04/24-22:28:39.384762 7f5797fff6c0 Recovering log #7
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/24-22:28:39.395035 7f5797fff6c0 Delete type=3 #4
2026/04/21-11:52:44.186478 7ff1aaffd6c0 Table #41: 23 entries OK 2026/04/24-22:28:39.395099 7f5797fff6c0 Delete type=0 #7
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. **** 2026/04/24-22:28:50.922092 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.922111 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.928410 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928567 7f57977fe6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000076 MANIFEST-000014
+7 -11
View File
@@ -1,11 +1,7 @@
2026/04/21-11:52:44.181427 7ff1aaffd6c0 Delete type=3 #1 2026/04/26-15:45:25.139939 7f57a5fef6c0 Recovering log #12
2026/04/21-13:41:40.838999 7ff1a9ffb6c0 Level-0 table #79: started 2026/04/26-15:45:25.149583 7f57a5fef6c0 Delete type=3 #10
2026/04/21-13:41:40.839022 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK 2026/04/26-15:45:25.149682 7f57a5fef6c0 Delete type=0 #12
2026/04/21-13:41:40.846003 7ff1a9ffb6c0 Delete type=0 #77 2026/04/26-15:50:26.086035 7f57977fe6c0 Level-0 table #17: started
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/26-15:50:26.086057 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/21-13:41:40.878297 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files 2026/04/26-15:50:26.123168 7f57977fe6c0 Delete type=0 #15
2026/04/21-13:41:40.881453 7ff1a9ffb6c0 Generated table #80@0: 9 keys, 2083 bytes 2026/04/26-15:50:26.163252 7f57977fe6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
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)
+7 -4
View File
@@ -1,4 +1,7 @@
2026/04/21-11:52:44.164486 7ff1aaffd6c0 Log #74: 0 ops saved to Table #75 OK 2026/04/24-22:28:39.371429 7f57a4fed6c0 Recovering log #7
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/24-22:28:39.381830 7f57a4fed6c0 Delete type=3 #4
2026/04/21-11:52:44.164875 7ff1aaffd6c0 Table #41: 9 entries OK 2026/04/24-22:28:39.381879 7f57a4fed6c0 Delete type=0 #7
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. **** 2026/04/24-22:28:50.909112 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.909132 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.915804 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928548 7f57977fe6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000076 MANIFEST-000014
+7 -11
View File
@@ -1,11 +1,7 @@
2026/04/21-11:52:44.222882 7ff1abfff6c0 Delete type=3 #1 2026/04/26-15:45:25.166949 7f57a57ee6c0 Recovering log #12
2026/04/21-13:41:40.832543 7ff1a9ffb6c0 Level-0 table #79: started 2026/04/26-15:45:25.176930 7f57a57ee6c0 Delete type=3 #10
2026/04/21-13:41:40.832568 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK 2026/04/26-15:45:25.177039 7f57a57ee6c0 Delete type=0 #12
2026/04/21-13:41:40.838884 7ff1a9ffb6c0 Delete type=0 #77 2026/04/26-15:50:26.123322 7f57977fe6c0 Level-0 table #17: started
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/26-15:50:26.123351 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/21-13:41:40.867910 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files 2026/04/26-15:50:26.163080 7f57977fe6c0 Delete type=0 #15
2026/04/21-13:41:40.871553 7ff1a9ffb6c0 Generated table #80@0: 3 keys, 843 bytes 2026/04/26-15:50:26.163536 7f57977fe6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
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)
+7 -4
View File
@@ -1,4 +1,7 @@
2026/04/21-11:52:44.205891 7ff1abfff6c0 Log #74: 0 ops saved to Table #75 OK 2026/04/24-22:28:39.397236 7f57a5fef6c0 Recovering log #7
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/24-22:28:39.407011 7f57a5fef6c0 Delete type=3 #4
2026/04/21-11:52:44.206120 7ff1abfff6c0 Table #41: 3 entries OK 2026/04/24-22:28:39.407078 7f57a5fef6c0 Delete type=0 #7
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. **** 2026/04/24-22:28:50.902120 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.902174 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.908974 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928535 7f57977fe6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000076 MANIFEST-000014
+7 -11
View File
@@ -1,11 +1,7 @@
2026/04/21-11:52:44.160569 7ff1aa7fc6c0 Delete type=3 #1 2026/04/26-15:45:25.125828 7f5797fff6c0 Recovering log #12
2026/04/21-13:41:40.826507 7ff1a9ffb6c0 Level-0 table #79: started 2026/04/26-15:45:25.137218 7f5797fff6c0 Delete type=3 #10
2026/04/21-13:41:40.826536 7ff1a9ffb6c0 Level-0 table #79: 0 bytes OK 2026/04/26-15:45:25.137347 7f5797fff6c0 Delete type=0 #12
2026/04/21-13:41:40.832425 7ff1a9ffb6c0 Delete type=0 #77 2026/04/26-15:50:26.044212 7f57977fe6c0 Level-0 table #17: started
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/26-15:50:26.044240 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/21-13:41:40.857314 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files 2026/04/26-15:50:26.085910 7f57977fe6c0 Delete type=0 #15
2026/04/21-13:41:40.860393 7ff1a9ffb6c0 Generated table #80@0: 22 keys, 4074 bytes 2026/04/26-15:50:26.163240 7f57977fe6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
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)
+7 -4
View File
@@ -1,4 +1,7 @@
2026/04/21-11:52:44.059054 7ff1aa7fc6c0 Log #74: 0 ops saved to Table #75 OK 2026/04/24-22:28:39.359656 7f5797fff6c0 Recovering log #7
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/24-22:28:39.369413 7f5797fff6c0 Delete type=3 #4
2026/04/21-11:52:44.059258 7ff1aa7fc6c0 Table #41: 22 entries OK 2026/04/24-22:28:39.369477 7f5797fff6c0 Delete type=0 #7
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. **** 2026/04/24-22:28:50.915944 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.915969 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.922007 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928556 7f57977fe6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23 -11
View File
@@ -1547,22 +1547,11 @@ li {
width: 100px; width: 100px;
vertical-align: top; vertical-align: top;
} }
.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover {
position: relative;
z-index: 100;
}
.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover .tirage-card-img {
transform: scale(2.2);
transform-origin: center top;
box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.4);
}
.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-img { .MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-img {
width: 100px; width: 100px;
border: 1px solid rgba(139, 105, 20, 0.45); border: 1px solid rgba(139, 105, 20, 0.45);
border-radius: 2px; border-radius: 2px;
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.2s ease, box-shadow 0.2s ease;
transform-origin: center center;
cursor: zoom-in; cursor: zoom-in;
} }
.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-name { .MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-name {
@@ -1616,6 +1605,29 @@ li {
border-color: #8b6914; border-color: #8b6914;
color: #5a0a14; color: #5a0a14;
} }
#tirage-card-zoom-overlay {
position: fixed;
z-index: 10000;
pointer-events: none;
border: 2px solid rgba(139, 105, 20, 0.45);
border-radius: 3px;
box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.55);
opacity: 0;
transition: opacity 0.15s ease;
background: #000;
}
#tirage-card-zoom-overlay.visible {
opacity: 1;
}
#tirage-card-zoom-overlay img {
display: block;
width: 220px;
height: auto;
border-radius: 2px;
}
#tirage-card-zoom-overlay img.flip-tarot {
transform: scaleY(-1);
}
.malefices-chat-card { .malefices-chat-card {
font-size: 0.85rem; font-size: 0.85rem;
color: #3d2b1f; color: #3d2b1f;
File diff suppressed because one or more lines are too long