feat: gestion de la Fiabilité du matériel (test de Fiabilité + réparations)
- module/system/reliability.mjs : VermineReliability
- Test de Fiabilité : jet Xd10 (Mineurs 1D / Graves 3D / Critiques 5D),
chaque dé >= Fiabilité inflige 1 Dommage ; réduit Fiabilité et dommages
cumulés (panne/état/effet) ; destruction à 0
- Traits appliqués : Coque (absorbe n puis se perd), Cassant (+1 perte),
Étanche (Dommages d'immersion ignorés si Fiabilité au max)
- Réparations : classique (Précision + Artisanat/Mécanique/Technologie/
Armurerie vs Fiabilité d'origine + Handicap de panne, +1 Fiabilité/Réussite)
et de fortune (Précision + Bricolage, panne réparée sans gain de Fiabilité)
- ReliabilityDialog (test/réparation) + cartes de chat dédiées
- Boutons Test de Fiabilité / Réparer sur les fiches d'items (weapon/defense/item)
- i18n fr/en + styles des cartes et boutons
This commit is contained in:
+161
@@ -1171,3 +1171,164 @@ ol.chat-log {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ── Test de Fiabilité / Réparations ──────────────────────────────────
|
||||
.vermine-reliability-message {
|
||||
padding: 4px 10px 10px;
|
||||
|
||||
.reliability-header {
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
|
||||
img {
|
||||
flex: 0 0 auto;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
object-fit: cover;
|
||||
border-radius: 3px;
|
||||
border: 1px solid @color-border-dark-4;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: "DistressBlack";
|
||||
text-transform: uppercase;
|
||||
font-size: @font-size-13;
|
||||
margin: 0;
|
||||
border-bottom: none;
|
||||
color: @theme-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-meta {
|
||||
gap: 4px 12px;
|
||||
margin: 4px 0 6px;
|
||||
padding: 4px 8px;
|
||||
background: rgba(0, 0, 0, 0.06);
|
||||
border-radius: 3px;
|
||||
|
||||
.reliability-meta-item {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: @font-size-11;
|
||||
color: @color-text-dark-primary;
|
||||
|
||||
strong {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-results {
|
||||
gap: 6px;
|
||||
margin: 6px 0;
|
||||
|
||||
.reliability-die {
|
||||
flex: none;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-family: "DistressBlack";
|
||||
font-size: @font-size-16;
|
||||
border: 1px solid @color-border-dark-4;
|
||||
border-radius: 50%;
|
||||
background: rgba(0, 0, 0, 0.08);
|
||||
color: @color-text-dark-primary;
|
||||
|
||||
&.damage {
|
||||
border-color: @color-hemolymph;
|
||||
background: fade(@color-hemolymph, 15%);
|
||||
color: @color-hemolymph;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
&.success {
|
||||
border-color: @color-acid-green;
|
||||
background: fade(@color-acid-green, 15%);
|
||||
color: @color-acid-green;
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-summary {
|
||||
gap: 4px 16px;
|
||||
margin: 4px 0;
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: @font-size-12;
|
||||
color: @color-text-dark-primary;
|
||||
|
||||
strong {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-note {
|
||||
margin: 2px 0;
|
||||
font-size: @font-size-11;
|
||||
font-style: italic;
|
||||
color: @color-text-dark-secondary;
|
||||
}
|
||||
|
||||
.reliability-destroyed {
|
||||
margin: 6px 0 0;
|
||||
padding: 4px 8px;
|
||||
font-family: "DistressBlack";
|
||||
text-transform: uppercase;
|
||||
font-size: @font-size-12;
|
||||
text-align: center;
|
||||
color: @color-hemolymph;
|
||||
border: 1px solid @color-hemolymph;
|
||||
border-radius: 3px;
|
||||
background: fade(@color-hemolymph, 12%);
|
||||
}
|
||||
}
|
||||
|
||||
.item .reliability-actions {
|
||||
gap: 6px;
|
||||
justify-content: center;
|
||||
margin: 4px 0 8px;
|
||||
|
||||
button {
|
||||
font-family: "DistressBlack", sans-serif;
|
||||
text-transform: uppercase;
|
||||
font-size: @font-size-11;
|
||||
padding: 3px 12px;
|
||||
cursor: pointer;
|
||||
color: @theme-color-dark;
|
||||
background: fade(@color-hemolymph, 15%);
|
||||
border: 1px solid @color-hemolymph;
|
||||
border-radius: 3px;
|
||||
.transition();
|
||||
|
||||
&:hover {
|
||||
color: @theme-color-dark;
|
||||
background: @color-hemolymph;
|
||||
}
|
||||
|
||||
i {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-severities,
|
||||
.reliability-modes {
|
||||
gap: 8px;
|
||||
|
||||
.reliability-option {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
cursor: pointer;
|
||||
font-size: @font-size-12;
|
||||
color: @color-text-dark-primary;
|
||||
}
|
||||
}
|
||||
|
||||
.reliability-hint {
|
||||
margin: 0;
|
||||
font-size: @font-size-11;
|
||||
font-style: italic;
|
||||
color: @color-text-dark-secondary;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user