Files
vermine2047/less/actor/totem.less
T
uberwald b0a3aff648
Release Creation / build (release) Failing after 1m32s
feat: gestion des Dés de Totems (influence, instincts, interdits)
- 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.
2026-08-06 15:32:55 +02:00

161 lines
3.2 KiB
Plaintext

@import "../variables";
@import "../utilities";
.system-vermine2047 .vermine2047.actor {
.totem-details {
position: relative;
img.img-totem {
transform-origin: 50% 50%;
filter: grayscale(1);
opacity: 0.15;
position: absolute;
width: 30%;
height: auto;
pointer-events: none;
aspect-ratio: 1/1;
left: 35%;
}
}
// Toggle « Chaman » de l'onglet Totem : ne pas étirer sur toute la largeur.
.chaman-toggle {
width: fit-content;
margin: 0.5rem auto;
gap: 0.5rem;
label {
font-family: "DistressBlack", sans-serif;
text-transform: uppercase;
font-size: @font-size-12;
color: @theme-color-dark;
cursor: pointer;
margin: 0;
}
input[type="checkbox"] {
width: 1rem;
height: 1rem;
margin: 0;
cursor: pointer;
}
}
div.minor-totems {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: stretch;
gap: 0.25rem;
min-height: 8.5rem;
padding: 0.5rem;
background-color: rgba(146, 156, 111, 0.5215686275);
h3 {
text-align: center;
margin: 0;
font-size: 1.2rem;
line-height: 1.1;
}
.totem-row {
display: flex;
justify-content: space-between;
align-items: center;
}
h5 {
margin: 0;
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 0.25rem;
font-size: 0.8rem;
img {
max-width: 1.5rem;
height: auto;
}
&.human, &.adapted {
.transition(0.3s);
}
&.human img.img-totem,
&.adapted img.img-totem {
filter: drop-shadow(0px 0px 20px rgb(0, 0, 0));
}
&.human.major,
&.adapted.major {
transform: scale(1.1);
}
&.human.major img,
&.adapted.major img {
filter: drop-shadow(0px 0px 10px red);
}
}
.totem-dice {
display: flex;
justify-content: space-between;
align-items: center;
.human-dice,
.adapted-dice {
display: flex;
flex-direction: row;
align-items: center;
}
.human-dice i,
.adapted-dice i {
color: @totem-human-color;
pointer-events: none;
}
.adapted-dice {
transform: rotate(180deg);
i {
transform: rotate(180deg);
color: @totem-adapted-color;
}
}
}
.totem-influence-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
margin-top: 2px;
font-size: 0.75rem;
.totem-influence-label {
color: @color-text-light-0;
strong.totem-human { color: @totem-human-color; }
strong.totem-adapted { color: @totem-adapted-color; }
}
.totem-manage-btn {
flex: none;
padding: 2px 8px;
cursor: pointer;
color: @color-text-light-0;
background: fade(@color-hemolymph, 20%);
border: 1px solid @color-hemolymph;
border-radius: 3px;
.transition();
&:hover {
color: @theme-color-dark;
background: @color-hemolymph;
}
}
}
}
}