Potions et élémentaires

This commit is contained in:
2026-05-02 08:26:28 +02:00
parent a234ba5d14
commit d6b5891519
248 changed files with 7020 additions and 350 deletions
+45
View File
@@ -872,3 +872,48 @@
}
}
}
/* ==================== Sortilège Launch Button ==================== */
.fvtt-mournblade.sheet {
.header-actions {
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
padding: 4px 0;
.chat-card-button {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 5px 12px;
background: linear-gradient(135deg, #6b1a1a 0%, #8b2222 50%, #6b1a1a 100%);
border: 1px solid #c0392b;
border-radius: 4px;
color: #f5e6d3;
font-family: CentaurMT, serif;
font-size: 0.9rem;
cursor: pointer;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1);
transition: all 0.2s ease;
white-space: nowrap;
i { color: #d4af37; }
&:hover {
background: linear-gradient(135deg, #8b2222 0%, #a52a2a 50%, #8b2222 100%);
border-color: #d4af37;
color: #fff;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.15);
i { color: #ffd700; }
}
&:active {
background: linear-gradient(135deg, #5a1010 0%, #6b1a1a 50%, #5a1010 100%);
transform: translateY(1px);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
}
}
}
+127
View File
@@ -313,3 +313,130 @@
}
}
}
/* ============================================= */
/* Potion Item Sheet */
/* ============================================= */
.potion-content {
.potion-header-info {
display: flex;
flex-direction: column;
gap: 0.25rem;
padding: 0.5rem;
background: rgba(139, 0, 0, 0.08);
border-radius: 4px;
border: 1px solid rgba(139, 0, 0, 0.2);
margin-bottom: 0.5rem;
}
.potion-statut-badge {
display: inline-flex;
align-items: center;
gap: 0.35rem;
padding: 0.2rem 0.6rem;
border-radius: 12px;
font-size: 0.85rem;
font-weight: bold;
&.statut-efficace { background: rgba(0,128,0,0.15); color: #155215; border: 1px solid #4a904a; }
&.statut-heroique { background: rgba(180,120,0,0.15); color: #7a5000; border: 1px solid #c89000; }
&.statut-inefficace { background: rgba(100,100,100,0.15); color: #555; border: 1px solid #888; }
&.statut-poison { background: rgba(100,0,100,0.15); color: #4a004a; border: 1px solid #880088; }
&.statut-inconnue { background: rgba(50,50,50,0.1); color: #666; border: 1px solid #aaa; }
}
}
/* Potion in chat */
.potion-rune-info {
display: flex;
align-items: center;
gap: 0.5rem;
flex-wrap: wrap;
padding: 0.4rem;
background: rgba(0,0,0,0.04);
border-radius: 4px;
margin-bottom: 0.35rem;
.potion-rune-name { font-weight: bold; }
.potion-rune-seuil { font-size: 0.85rem; color: #666; }
.potion-haut-parler { font-size: 0.85rem; color: #555; font-style: italic; }
}
.potion-result-gm {
border: 1px dashed rgba(139,0,0,0.4);
background: rgba(139,0,0,0.05);
border-radius: 4px;
padding: 0.4rem;
.potion-result-title {
font-size: 0.95rem;
margin: 0 0 0.3rem;
}
.potion-heroique { color: #8B6900; }
.potion-efficace { color: #155215; }
.potion-inefficace { color: #555; }
.potion-poison { color: #660066; }
}
.potion-result-player {
font-style: italic;
color: #666;
font-size: 0.9rem;
}
/* Potion dialog */
.potion-dialog {
.potion-dialog-section {
margin-bottom: 0.75rem;
}
.potion-dialog-title {
font-size: 0.9rem;
font-weight: bold;
border-bottom: 1px solid rgba(0,0,0,0.15);
padding-bottom: 0.2rem;
margin-bottom: 0.4rem;
}
.potion-runes-table {
width: 100%;
font-size: 0.85rem;
border-collapse: collapse;
margin-bottom: 0.5rem;
th, td {
padding: 0.2rem 0.4rem;
border-bottom: 1px solid rgba(0,0,0,0.08);
}
.potion-rune-row:hover { background: rgba(0,0,0,0.04); }
.potion-rune-radio { cursor: pointer; }
.rune-mini-img {
width: 20px;
height: 20px;
vertical-align: middle;
margin-right: 4px;
border-radius: 2px;
border: 1px solid rgba(139, 69, 19, 0.5);
object-fit: cover;
}
}
.potion-summary {
background: rgba(0,0,0,0.05);
border-radius: 4px;
padding: 0.4rem 0.6rem;
font-size: 0.85rem;
.summary-row { margin-bottom: 0.2rem; }
.summary-label { font-weight: bold; min-width: 150px; }
}
.potion-info-note {
color: #888;
font-style: italic;
gap: 0.4rem;
align-items: center;
}
}
+497
View File
@@ -968,6 +968,165 @@
height: 64px;
}
// =====================================================
// Item Card (post-item, chat-display-description)
// =====================================================
.mournblade-item-card {
font-family: CentaurMT, serif;
color: #2a1a0a;
background: linear-gradient(180deg, #fdf6e3 0%, #f7ead0 100%);
border: 1px solid #8b4513;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
.item-card-header {
display: flex;
align-items: center;
gap: 10px;
background: linear-gradient(135deg, #4a0404 0%, #8b0000 50%, #6b2020 100%);
padding: 10px 12px;
border-bottom: 2px solid #c8860a;
.item-card-img {
width: 56px;
height: 56px;
border-radius: 4px;
border: 2px solid #c8860a;
object-fit: cover;
flex-shrink: 0;
background: rgba(0,0,0,0.3);
}
.item-card-title {
flex: 1;
min-width: 0;
.item-card-name {
margin: 0 0 4px 0;
padding: 0;
font-family: Charlemagne, CentaurMT, serif;
font-size: 1.05rem;
font-weight: bold;
color: #f5deb3;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
white-space: normal;
line-height: 1.2;
border: none;
}
.item-card-type-badge {
display: inline-block;
background: rgba(200, 134, 10, 0.3);
border: 1px solid #c8860a;
border-radius: 10px;
padding: 1px 8px;
font-size: 0.72rem;
color: #f5deb3;
letter-spacing: 0.05em;
text-transform: uppercase;
i { margin-right: 3px; }
}
}
}
.item-card-stats {
padding: 8px 12px;
border-bottom: 1px solid rgba(139, 69, 19, 0.2);
display: flex;
flex-direction: column;
gap: 3px;
.stat-row {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 8px;
font-size: 0.85rem;
padding: 2px 0;
border-bottom: 1px dotted rgba(139, 69, 19, 0.12);
&:last-child { border-bottom: none; }
.stat-label {
color: #6b3a1f;
font-weight: bold;
flex-shrink: 0;
i { margin-right: 4px; color: #8b4513; }
}
.stat-value {
color: #2a1a0a;
text-align: right;
font-weight: normal;
&.stat-highlight {
font-weight: bold;
color: #4a0404;
font-size: 0.95rem;
}
}
&.stat-flag {
justify-content: flex-start;
color: #6b3a1f;
font-style: italic;
font-size: 0.8rem;
border-bottom: none;
padding: 1px 0;
i { margin-right: 5px; color: #8b0000; }
}
}
}
.item-card-divider {
display: flex;
align-items: center;
padding: 6px 12px 0;
gap: 8px;
font-size: 0.72rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #8b4513;
font-weight: bold;
&::before, &::after {
content: '';
flex: 1;
height: 1px;
background: linear-gradient(90deg, transparent, #c8860a, transparent);
}
}
.item-card-description {
padding: 8px 12px 10px;
font-size: 0.88rem;
line-height: 1.5;
color: #2a1a0a;
p { margin: 0 0 6px 0; &:last-child { margin-bottom: 0; } }
em, i { color: #5a2a0a; }
strong, b { color: #2a1a0a; }
}
.item-card-sacrifice {
background: rgba(100, 0, 0, 0.05);
border-top: 1px solid rgba(139, 0, 0, 0.2);
font-style: italic;
color: #5a0000;
}
&.mournblade-item-card--compact {
.item-card-header {
padding: 8px 10px;
.item-card-img { width: 44px; height: 44px; }
.item-card-name { font-size: 0.95rem; }
}
.item-card-description { padding: 6px 10px 8px; }
}
}
.roll-dialog-header {
height: 52px;
}
@@ -2287,6 +2446,40 @@
}
}
.result-chaos {
padding: 8px;
background: rgba(40, 0, 60, 0.85);
border-top: 2px solid #9400d3;
border-left: 4px solid #ff00ff;
color: #f0d0ff;
font-size: 0.85rem;
.chaos-header {
font-weight: bold;
font-size: 1rem;
margin-bottom: 6px;
color: #ff88ff;
i { margin-right: 6px; }
}
.chaos-effect {
line-height: 1.4;
i { margin-right: 6px; }
&.desastre {
color: #ff4444;
font-weight: bold;
}
&.echec_absolu {
color: #ffaa44;
}
&.rien {
color: #aaaacc;
font-style: italic;
}
}
}
.predilection-section {
padding: 8px;
background: rgba(220, 200, 255, 0.4);
@@ -2428,6 +2621,11 @@
text-decoration: none;
transition: all 0.2s;
font-size: 0.9rem;
background: none;
border: none;
padding: 0;
cursor: pointer;
font-family: inherit;
i {
margin-right: 4px;
@@ -2473,4 +2671,303 @@
}
}
// =====================================================
// Sortilège dialog
// =====================================================
.sortilege-dialog,
.potion-dialog,
.invocation-dialog {
font-family: CentaurMT, serif;
color: #2a1a0a;
padding: 10px;
background: url("../assets/ui/pc_sheet_bg.webp") repeat left top;
// Texte de base sombre sur fond parchemin
label, input, span, p {
color: #2a1a0a;
}
th, td {
color: #2a1a0a;
}
.sortilege-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
padding: 6px 10px;
background: linear-gradient(135deg, #4a0404 0%, #6d0808 100%);
border: 1px solid #8b0000;
border-radius: 4px;
.sortilege-actor-info {
display: flex;
flex-direction: column;
gap: 3px;
}
.sortilege-actor-img {
width: 48px;
height: 48px;
border-radius: 4px;
border: 2px solid #a05020;
object-fit: cover;
flex-shrink: 0;
}
.sortilege-actor-name {
font-weight: bold;
font-size: 1.05rem;
color: #ffffff;
text-shadow: 0 1px 3px rgba(0,0,0,0.9);
}
.sortilege-ame-info {
font-size: 0.88rem;
color: #fde0ff;
text-shadow: 0 1px 2px rgba(0,0,0,0.8);
strong { color: #ffffff; font-weight: bold; }
}
}
.sortilege-mode-row {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
padding: 5px 4px;
border-bottom: 1px solid rgba(139, 69, 19, 0.4);
label {
flex-shrink: 0;
font-weight: bold;
color: #5a1a00;
}
select {
flex: 1;
background: #3a1a08 !important;
border: 1px solid #c06030 !important;
border-radius: 3px;
padding: 5px 8px;
color: #ffffff !important;
font-family: CentaurMT, serif;
font-size: 0.95rem;
font-weight: bold;
cursor: pointer;
appearance: none;
-webkit-appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffd070' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
background-repeat: no-repeat !important;
background-position: right 8px center !important;
background-size: 10px 7px !important;
padding-right: 28px;
option {
background: #1a0e06;
color: #ffffff;
font-weight: normal;
}
}
}
.sortilege-runes-table {
width: 100%;
border-collapse: collapse;
margin-bottom: 12px;
font-size: 0.88rem;
border: 1px solid #6b3010;
border-radius: 4px;
overflow: hidden;
thead tr th {
background: #3a1808;
padding: 6px 8px;
text-align: center;
border-bottom: 2px solid #8b4513;
color: #ffd070;
font-weight: bold;
font-size: 0.82rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
tbody tr.sortilege-rune-row {
border-bottom: 1px solid rgba(139, 69, 19, 0.3);
transition: background 0.15s;
background: rgba(255, 240, 210, 0.3);
&:last-child { border-bottom: none; }
&:nth-child(even) { background: rgba(200, 160, 100, 0.15); }
&:hover { background: rgba(139, 69, 19, 0.15); }
&.rune-selected {
background: rgba(139, 69, 19, 0.25);
}
td {
padding: 5px 8px;
vertical-align: middle;
color: #2a1a0a;
}
.rune-mini-img {
width: 20px;
height: 20px;
vertical-align: middle;
margin-right: 4px;
border-radius: 2px;
border: 1px solid rgba(139, 69, 19, 0.5);
}
.sortilege-rune-points {
width: 55px;
text-align: center;
background: #3a1a08;
border: 1px solid #8b4513;
border-radius: 3px;
color: #f0e8d8;
padding: 2px 4px;
font-family: CentaurMT, serif;
cursor: pointer;
option { background: #1a0e06; color: #f0e8d8; }
&:disabled {
opacity: 0.35;
cursor: not-allowed;
}
}
}
}
.sortilege-summary {
background: linear-gradient(135deg, #4a0404 0%, #3a1808 100%);
border: 1px solid #8b4513;
border-left: 4px solid #c0392b;
border-radius: 4px;
padding: 10px 14px;
margin-bottom: 10px;
.summary-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 6px;
font-size: 0.9rem;
&:last-child { margin-bottom: 0; }
.summary-label {
font-weight: bold;
color: #f0d8b0;
text-shadow: 0 1px 2px rgba(0,0,0,0.8);
}
.summary-value {
color: #ffd700;
font-weight: bold;
font-size: 1.05rem;
text-shadow: 0 1px 3px rgba(0,0,0,0.9);
}
}
}
// Auto-cible and Modificateur rows
.flexrow {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 8px;
padding: 3px 4px;
label {
flex: 1;
color: #5a1a00;
font-size: 0.9rem;
font-weight: bold;
}
input[type="number"] {
width: 70px;
background: #3a1a08;
border: 1px solid #8b4513;
border-radius: 3px;
padding: 3px 8px;
color: #f0e8d8;
text-align: center;
font-family: CentaurMT, serif;
}
.sortilege-modificateur-select {
width: 90px;
background: #3a1a08;
border: 1px solid #8b4513;
border-radius: 3px;
padding: 4px 8px;
color: #f0e8d8;
font-family: CentaurMT, serif;
text-align: center;
cursor: pointer;
option { background: #1a0e06; color: #f0e8d8; }
}
input[type="checkbox"] {
width: 16px;
height: 16px;
flex-shrink: 0;
accent-color: #c0392b;
}
}
}
// =====================================================
// Sortilège chat result
// =====================================================
.mournblade-chat-result {
.sortilege-runes-summary {
margin-top: 8px;
border-top: 1px solid rgba(139, 69, 19, 0.3);
padding-top: 6px;
.details-section-title {
font-weight: bold;
font-size: 0.85rem;
color: #4a0404;
margin-bottom: 4px;
i { margin-right: 4px; }
}
.sortilege-rune-detail {
align-items: center;
gap: 8px;
padding: 3px 0;
font-size: 0.82rem;
border-bottom: 1px solid rgba(0,0,0,0.06);
.rune-mini-img {
width: 18px;
height: 18px;
border-radius: 2px;
flex-shrink: 0;
}
.rune-name {
flex: 1;
font-weight: bold;
}
.rune-formule {
font-style: italic;
color: #5a3a8a;
font-size: 0.8rem;
white-space: nowrap;
}
.rune-pts, .rune-actions { color: #666; white-space: nowrap; }
.rune-duree { color: #4a2060; font-style: italic; white-space: nowrap; }
}
}
// Haut-Parler formule dans la rune (chat-generic-result)
.rune-formule {
font-style: italic;
color: #5a3a8a;
}
}