feat: gestion des Dés de Totems (influence, instincts, interdits)
Release Creation / build (release) Failing after 1m32s

- VermineTotemDice : influence Humain/Adapté (+1D/-1D par domaine, règles
  p. 121), gains/pertes via Instincts/Interdits avec limites (3D/totem,
  5D total) et règles d'échange.
- roll.mjs applique l'influence selon le Totem dominant (au lieu de
  l'ancienne logique basée sur identity.totem).
- Dialogue TotemDiceDialog (instinct Humain/autre totem, interdit Humain,
  acte grave ±2D) + bouton et ligne d'influence sur la fiche personnage.
- Dés de Totem gagnés en cas d'échec à l'apprentissage Dé d'Évolution
  (dés dépensés, garde capacité vide).
- Couleur de texte @color-text-light-2 assombrie (#c9e0c0 → #3f9b55)
  pour la lisibilité dans tous les dialogues.

fix: robustesse et visibilité des évolutions

- buyEvolutionDialog : n'efface les Dés d'Évolution que si l'item est créé.
- Flag mutation éditable sur la fiche item evolution + badge
  Adaptation/Mutation dans la liste du personnage.
- loseDie : applique aussi la limite totale de 5 dés au gain Adapté.
- Case "acte grave" conservée entre les rendus du dialogue.
This commit is contained in:
2026-08-06 15:32:55 +02:00
parent 3cb96410b9
commit b0a3aff648
23 changed files with 884 additions and 100 deletions
+99 -10
View File
@@ -188,7 +188,7 @@ iframe {
> label {
font-size: @font-size-13;
color: @color-amber;
color: @color-text-light-2;
white-space: nowrap;
}
@@ -294,7 +294,7 @@ iframe {
cursor: pointer;
&:hover {
color: @color-amber;
color: @color-text-light-highlight;
}
}
@@ -347,7 +347,7 @@ iframe {
cursor: pointer;
&:hover {
color: @color-amber;
color: @color-text-light-highlight;
}
}
}
@@ -381,7 +381,7 @@ iframe {
cursor: pointer;
&:hover {
color: @color-amber;
color: @color-text-light-highlight;
}
small {
@@ -487,7 +487,7 @@ iframe {
.label {
font-size: @font-size-11;
color: @color-amber;
color: @color-text-light-2;
}
.combat-target-tag {
@@ -527,7 +527,7 @@ iframe {
.label {
font-size: @font-size-12;
color: @color-amber;
color: @color-text-light-2;
}
.exp-value {
@@ -555,7 +555,7 @@ iframe {
input[type="radio"] { flex: none; }
&:hover { color: @color-amber; }
&:hover { color: @color-text-light-highlight; }
}
}
@@ -581,8 +581,8 @@ iframe {
flex-wrap: wrap;
gap: 8px 16px;
padding: 8px;
border: 1px solid @color-amber;
background: fade(@color-amber, 8%);
border: 1px solid @color-hemolymph;
background: fade(@color-hemolymph, 8%);
.context-item {
display: flex;
@@ -593,7 +593,7 @@ iframe {
font-family: "DistressBlack", sans-serif;
text-transform: uppercase;
font-size: @font-size-11;
color: @color-amber;
color: @color-text-light-2;
}
.context-value {
@@ -721,3 +721,92 @@ iframe {
}
}
}
// ── Achat d'Adaptation/Mutation ───────────────────────────────────────
.application.buy-evolution .bonus-item {
align-items: center;
gap: 8px;
> label.label {
flex: none;
font-size: @font-size-12;
color: @color-text-light-2;
white-space: nowrap;
}
input[type="text"] {
flex: 1 1 auto;
min-width: 0;
}
select {
flex: 1 1 auto;
min-width: 0;
width: auto;
}
input[type="checkbox"] {
flex: none;
width: 18px;
height: 18px;
}
}
// ── Gestion des Dés de Totems ─────────────────────────────────────────
.application.totem-dice .totem-dice-state {
gap: 12px;
padding: 6px 8px;
border: 1px solid @color-hemolymph;
background: fade(@color-hemolymph, 8%);
.totem-state {
display: flex;
align-items: center;
gap: 6px;
.label {
font-family: "DistressBlack", sans-serif;
text-transform: uppercase;
font-size: @font-size-12;
color: @color-text-light-2;
white-space: nowrap;
}
&.totem-human .label { color: @color-text-light-2; }
&.totem-adapted .label { color: @color-text-light-2; }
.value {
font-family: "Roboto", sans-serif;
font-size: @font-size-14;
font-weight: 700;
color: @color-text-light-0;
}
}
}
.application.totem-dice .totem-influence {
font-size: @font-size-16;
}
.application.totem-dice .totem-actions {
gap: 8px;
button {
flex: 1 1 100%;
font-family: "DistressBlack", sans-serif;
text-transform: uppercase;
font-size: @font-size-12;
padding: 6px 10px;
cursor: pointer;
color: @color-text-light-0;
background: fade(@color-hemolymph, 15%);
border: 1px solid @color-hemolymph;
border-radius: 3px;
.transition();
&:hover {
color: @theme-color-dark;
background: @color-hemolymph;
}
}
}