13.0.7 - Sous le signe d'Illysis #768
10
changelog.md
10
changelog.md
@@ -1,4 +1,14 @@
|
|||||||
# 13.0
|
# 13.0
|
||||||
|
## 13.0.7 - Sous le signe d'Illysis
|
||||||
|
- Fix Foundry V13
|
||||||
|
- les tooltips des ajustements sont correctement visible
|
||||||
|
- correction des affichages des signes d'heures dans la fenêtre d'astrologie
|
||||||
|
|
||||||
|
- en cas d'appel au moral lorsqu'une double significative est requise,
|
||||||
|
le moral est perdu si la réussite est insuffisante
|
||||||
|
- transformation du niveau des musiques/danses/chants/recettes de cuisine en valeur numérique
|
||||||
|
- les effets draconiques sur une case inconnue (A0) ne causent plus de problèmes dans les TMRs
|
||||||
|
|
||||||
## 13.0.6 - Le bandage d'Illysis
|
## 13.0.6 - Le bandage d'Illysis
|
||||||
|
|
||||||
- Les soins sont de nouveau disponibles depuis les tokens
|
- Les soins sont de nouveau disponibles depuis les tokens
|
||||||
|
@@ -132,8 +132,8 @@ select,
|
|||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
/* Control, Tool, hotbar & navigation */
|
/* Control, Tool, hotbar & navigation */
|
||||||
/* Tooltip container */
|
/* Tooltip container */
|
||||||
/* Tooltip text */
|
|
||||||
/* Show the tooltip text when you mouse over the tooltip container */
|
/* Show the tooltip text when you mouse over the tooltip container */
|
||||||
|
/* html Tooltips html*/
|
||||||
/* Dropdown Content (Hidden by Default) */
|
/* Dropdown Content (Hidden by Default) */
|
||||||
/* Change the background color of the dropdown button when the dropdown content is shown */
|
/* Change the background color of the dropdown button when the dropdown content is shown */
|
||||||
/* Show the dropdown menu on hover */
|
/* Show the dropdown menu on hover */
|
||||||
@@ -420,8 +420,9 @@ select,
|
|||||||
.system-foundryvtt-reve-de-dragon .window-header {
|
.system-foundryvtt-reve-de-dragon .window-header {
|
||||||
background: rgba(0, 0, 0, 0.75);
|
background: rgba(0, 0, 0, 0.75);
|
||||||
}
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon .application .window-content,
|
||||||
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content {
|
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content {
|
||||||
margin: 0;
|
margin: 0.2rem;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon section.window-content div.dialog-buttons {
|
.system-foundryvtt-reve-de-dragon section.window-content div.dialog-buttons {
|
||||||
@@ -856,6 +857,7 @@ select,
|
|||||||
max-width: 1.5em;
|
max-width: 1.5em;
|
||||||
max-height: 1.5em;
|
max-height: 1.5em;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
|
display: inline;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .dimmed {
|
.system-foundryvtt-reve-de-dragon .dimmed {
|
||||||
opacity: 50%;
|
opacity: 50%;
|
||||||
@@ -1183,7 +1185,7 @@ select,
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
background-color: lightblue;
|
background-color: lightblue;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon div.placeholder-resolution span.table-proba-reussite {
|
.system-foundryvtt-reve-de-dragon span.table-proba-reussite {
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
@@ -1360,7 +1362,7 @@ select,
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 90%;
|
max-width: 90%;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content .tooltip:hover .tooltiptext {
|
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||||
top: 2rem;
|
top: 2rem;
|
||||||
left: 2rem;
|
left: 2rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -1804,6 +1806,13 @@ select,
|
|||||||
padding: 1px;
|
padding: 1px;
|
||||||
vertical-align: text-top;
|
vertical-align: text-top;
|
||||||
}
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon .actor-img-small {
|
||||||
|
max-width: 1.5rem;
|
||||||
|
max-height: 1.5rem;
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
.system-foundryvtt-reve-de-dragon #sidebar-tabs {
|
.system-foundryvtt-reve-de-dragon #sidebar-tabs {
|
||||||
flex: 0 0 28px;
|
flex: 0 0 28px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -2280,11 +2289,26 @@ select,
|
|||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon .tooltip-overflow {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip-dotted {
|
.system-foundryvtt-reve-de-dragon .tooltip-dotted {
|
||||||
border-bottom: 1px dotted black;
|
border-bottom: 1px dotted black;
|
||||||
/* If you want dots under the hoverable text */
|
/* If you want dots under the hoverable text */
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip .tooltiptext {
|
.system-foundryvtt-reve-de-dragon div.message-content span .tooltip-overflow {
|
||||||
|
overflow: visible;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon div.message-content span .tooltip-overflow span {
|
||||||
|
overflow: visible;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .tooltiptext {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
/* Position the tooltip text */
|
/* Position the tooltip text */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -2294,10 +2318,7 @@ select,
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.3s;
|
transition: opacity 0.3s;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip .left-competence {
|
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-fatigue {
|
||||||
transform: translate(-100%, 0%);
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-fatigue {
|
|
||||||
width: 360px;
|
width: 360px;
|
||||||
background: rgba(30, 25, 20, 0.9);
|
background: rgba(30, 25, 20, 0.9);
|
||||||
border-image: url(../assets/ui/bg_control.webp) 21 repeat;
|
border-image: url(../assets/ui/bg_control.webp) 21 repeat;
|
||||||
@@ -2308,29 +2329,24 @@ select,
|
|||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-ajustements {
|
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements {
|
||||||
width: 150px;
|
width: 10rem;
|
||||||
background: var(--background-tooltip);
|
background: var(--background-tooltip);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-titre {
|
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements div:nth-child(odd) {
|
||||||
text-align: justify;
|
background: var(--background-tooltip-alt);
|
||||||
width: 100%;
|
|
||||||
top: 30px;
|
|
||||||
background: var(--background-tooltip);
|
|
||||||
border-radius: 6px;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
padding: 3px;
|
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon aside#tooltip {
|
.system-foundryvtt-reve-de-dragon aside#tooltip {
|
||||||
|
max-width: 15rem;
|
||||||
background: var(--background-tooltip);
|
background: var(--background-tooltip);
|
||||||
/*color: var(--color-text-dark-primary);*/
|
|
||||||
color: rgba(100, 100, 50, 0.85);
|
color: rgba(100, 100, 50, 0.85);
|
||||||
font-size: 1rem;
|
font-size: 0.9rem;
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
padding: 0.4rem;
|
padding: 0.3rem;
|
||||||
|
font-family: "CaslonAntique";
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon aside#tooltip span.reference {
|
.system-foundryvtt-reve-de-dragon aside#tooltip span.reference {
|
||||||
color: var(--color-tooltip);
|
color: var(--color-tooltip);
|
||||||
@@ -2339,17 +2355,6 @@ select,
|
|||||||
.system-foundryvtt-reve-de-dragon aside#tooltip .toolclip p.faint {
|
.system-foundryvtt-reve-de-dragon aside#tooltip .toolclip p.faint {
|
||||||
color: var(--color-tooltip-faint);
|
color: var(--color-tooltip-faint);
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip :is(.ttt-xp,.ttt-levelup) {
|
|
||||||
width: 250px;
|
|
||||||
background: var(--background-tooltip) !important;
|
|
||||||
border-radius: 6px;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
padding: 3px 0;
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon .tooltip:hover .tooltiptext {
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon .chat-card-button,
|
.system-foundryvtt-reve-de-dragon .chat-card-button,
|
||||||
.system-foundryvtt-reve-de-dragon .chat-card-button-pushed {
|
.system-foundryvtt-reve-de-dragon .chat-card-button-pushed {
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
|
@@ -15,8 +15,9 @@
|
|||||||
background: rgba(0,0,0,0.75);
|
background: rgba(0,0,0,0.75);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.application .window-content,
|
||||||
.window-app.sheet .window-content {
|
.window-app.sheet .window-content {
|
||||||
margin: 0;
|
margin: 0.2rem;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +218,6 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.grid-competence-archetype {
|
.grid-competence-archetype {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column: span 3 / span 3;
|
grid-column: span 3 / span 3;
|
||||||
@@ -497,6 +497,7 @@
|
|||||||
max-width: 1.5em;
|
max-width: 1.5em;
|
||||||
max-height: 1.5em;
|
max-height: 1.5em;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
|
display: inline;
|
||||||
}
|
}
|
||||||
.dimmed {
|
.dimmed {
|
||||||
opacity: 50%;
|
opacity: 50%;
|
||||||
@@ -641,6 +642,7 @@
|
|||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app.sheet div.form-group {
|
.app.sheet div.form-group {
|
||||||
clear: both;
|
clear: both;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -808,6 +810,7 @@
|
|||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.placeholder-ajustements {
|
.placeholder-ajustements {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
@@ -820,7 +823,7 @@
|
|||||||
background-color: lightblue;
|
background-color: lightblue;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.placeholder-resolution span.table-proba-reussite{
|
span.table-proba-reussite{
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
@@ -1017,7 +1020,7 @@
|
|||||||
max-width: 90%;
|
max-width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-app.sheet .window-content .tooltip:hover .tooltiptext {
|
.window-app.sheet .window-content :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||||
top: 2rem;
|
top: 2rem;
|
||||||
left: 2rem;
|
left: 2rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -1504,6 +1507,14 @@
|
|||||||
vertical-align: text-top;
|
vertical-align: text-top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.actor-img-small {
|
||||||
|
max-width: 1.5rem;
|
||||||
|
max-height: 1.5rem;
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
#sidebar-tabs {
|
#sidebar-tabs {
|
||||||
flex: 0 0 28px;
|
flex: 0 0 28px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -1853,13 +1864,34 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
.tooltip-overflow {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.tooltip-dotted {
|
.tooltip-dotted {
|
||||||
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
|
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tooltip text */
|
div.message-content span .tooltip-overflow {
|
||||||
.tooltip .tooltiptext {
|
overflow: visible;
|
||||||
|
position: absolute;
|
||||||
|
span {
|
||||||
|
overflow: visible;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Show the tooltip text when you mouse over the tooltip container */
|
||||||
|
:is(.tooltip, .tooltip-overflow):hover {
|
||||||
|
.tooltiptext {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* html Tooltips html*/
|
||||||
|
:is(.tooltip, .tooltip-overflow){
|
||||||
|
|
||||||
|
.tooltiptext {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
/* Position the tooltip text */
|
/* Position the tooltip text */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -1870,11 +1902,7 @@
|
|||||||
transition: opacity 0.3s;
|
transition: opacity 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip .left-competence {
|
.ttt-fatigue {
|
||||||
transform: translate(-100%, 0%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip .ttt-fatigue{
|
|
||||||
width: 360px;
|
width: 360px;
|
||||||
|
|
||||||
background: rgba(30, 25, 20, 0.9);
|
background: rgba(30, 25, 20, 0.9);
|
||||||
@@ -1888,31 +1916,26 @@
|
|||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip .ttt-ajustements {
|
.ttt-ajustements {
|
||||||
width: 150px;
|
width: 10rem;
|
||||||
background: var(--background-tooltip);
|
background: var(--background-tooltip);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
padding: 3px 0;
|
padding: 3px 0;
|
||||||
|
div:nth-child(odd) {
|
||||||
|
background: var(--background-tooltip-alt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip .ttt-titre {
|
|
||||||
text-align: justify;
|
|
||||||
width: 100%;
|
|
||||||
top: 30px;
|
|
||||||
background: var(--background-tooltip);
|
|
||||||
border-radius: 6px;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
padding: 3px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aside#tooltip {
|
aside#tooltip {
|
||||||
|
max-width: 15rem;
|
||||||
background: var(--background-tooltip);
|
background: var(--background-tooltip);
|
||||||
/*color: var(--color-text-dark-primary);*/
|
|
||||||
color: rgba(100, 100, 50, 0.85);
|
color: rgba(100, 100, 50, 0.85);
|
||||||
font-size: 1rem;
|
font-size: 0.9rem;
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
padding: 0.4rem;
|
padding: 0.3rem;
|
||||||
|
font-family: "CaslonAntique";
|
||||||
}
|
}
|
||||||
|
|
||||||
aside#tooltip span.reference {
|
aside#tooltip span.reference {
|
||||||
@@ -1924,19 +1947,6 @@
|
|||||||
color: var(--color-tooltip-faint);
|
color: var(--color-tooltip-faint);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tooltip :is(.ttt-xp,.ttt-levelup) {
|
|
||||||
width: 250px;
|
|
||||||
background: var(--background-tooltip) !important;
|
|
||||||
border-radius: 6px;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
padding: 3px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Show the tooltip text when you mouse over the tooltip container */
|
|
||||||
.tooltip:hover .tooltiptext {
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chat-card-button, .chat-card-button-pushed {
|
.chat-card-button, .chat-card-button-pushed {
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
|
@@ -1583,7 +1583,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (rollData.rolled.isEchec ||
|
if (rollData.rolled.isEchec ||
|
||||||
(rollData.ajustements.diviseurSignificative && (rollData.rolled.roll * rollData.ajustements.diviseurSignificative > rollData.score))) {
|
(rollData.diviseurSignificative && (rollData.rolled.roll * rollData.diviseurSignificative > rollData.rolled.score))) {
|
||||||
rollData.perteMoralEchec = rollData.moral <= -3 ? 'dissolution' : 'perte';
|
rollData.perteMoralEchec = rollData.moral <= -3 ? 'dissolution' : 'perte';
|
||||||
rollData.moral = await this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */
|
rollData.moral = await this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */
|
||||||
}
|
}
|
||||||
|
@@ -640,7 +640,7 @@ class _12_0_38_TachesEcriture extends Migration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _13_0_4_FixReveActuel extends Migration {
|
class _13_0_4_FixReveActuel extends Migration {
|
||||||
get code() { return "fix-revvve-actuel" }
|
get code() { return "fix-reve-actuel" }
|
||||||
get version() { return "13.0.4" }
|
get version() { return "13.0.4" }
|
||||||
|
|
||||||
async migrate() {
|
async migrate() {
|
||||||
@@ -648,6 +648,21 @@ class _13_0_4_FixReveActuel extends Migration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _13_0_7_FixNiveauOeuvres extends Migration {
|
||||||
|
get code() { return "fix-niveau-oeuvres" }
|
||||||
|
get version() { return "13.0.7" }
|
||||||
|
|
||||||
|
async migrate() {
|
||||||
|
await this.applyItemsUpdates(items => items
|
||||||
|
.filter(it => [ITEM_TYPES.musique, ITEM_TYPES.chant, ITEM_TYPES.danse, ITEM_TYPES.recettecuisine].includes(it.type))
|
||||||
|
.map(it => {
|
||||||
|
const niveau = isNaN(it.system.niveau) ? 0 : parseInt(it.system.niveau)
|
||||||
|
return { _id: it.id, 'system.niveau': niveau }
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class Migrations {
|
export class Migrations {
|
||||||
static getMigrations() {
|
static getMigrations() {
|
||||||
return [
|
return [
|
||||||
@@ -671,7 +686,8 @@ export class Migrations {
|
|||||||
new _12_0_32_MigrationRaces(),
|
new _12_0_32_MigrationRaces(),
|
||||||
new _12_0_37_MigrationAlchimieEtat(),
|
new _12_0_37_MigrationAlchimieEtat(),
|
||||||
new _12_0_38_TachesEcriture(),
|
new _12_0_38_TachesEcriture(),
|
||||||
new _13_0_4_FixReveActuel()
|
new _13_0_4_FixReveActuel(),
|
||||||
|
new _13_0_7_FixNiveauOeuvres(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -17,23 +17,23 @@ import { RdDRollResult } from "./rdd-roll-result.js";
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const premierRoundInit = [
|
const premierRoundInit = [
|
||||||
{ pattern: 'hast', init: 5.90 },
|
{ pattern: 'hast' },
|
||||||
{ pattern: 'lance', init: 5.85 },
|
{ pattern: 'lance' },
|
||||||
{ pattern: 'baton', init: 5.80 },
|
{ pattern: 'baton' },
|
||||||
{ pattern: 'doubledragonne', init: 5.75 },
|
{ pattern: 'doubledragonne' },
|
||||||
{ pattern: 'esparlongue', init: 5.70 },
|
{ pattern: 'esparlongue' },
|
||||||
{ pattern: 'epeedragonne', init: 5.65 },
|
{ pattern: 'epeedragonne' },
|
||||||
{ pattern: 'epeebatarde', init: 5.60 },
|
{ pattern: 'epeebatarde' },
|
||||||
{ pattern: 'epeecyane', init: 5.55 },
|
{ pattern: 'epeecyane' },
|
||||||
{ pattern: 'epeesorde', init: 5.50 },
|
{ pattern: 'epeesorde' },
|
||||||
{ pattern: 'grandehache', init: 5.45 },
|
{ pattern: 'grandehache' },
|
||||||
{ pattern: 'bataille', init: 5.40 },
|
{ pattern: 'bataille' },
|
||||||
{ pattern: 'epeegnome', init: 5.35 },
|
{ pattern: 'epeegnome' },
|
||||||
{ pattern: 'masse', init: 5.30 },
|
{ pattern: 'masse' },
|
||||||
{ pattern: 'gourdin', init: 5.25 },
|
{ pattern: 'gourdin' },
|
||||||
{ pattern: 'fleau', init: 5.20 },
|
{ pattern: 'fleau' },
|
||||||
{ pattern: 'dague', init: 5.15 },
|
{ pattern: 'dague' },
|
||||||
{ pattern: 'autre', init: 5.10 },
|
{ pattern: 'autre' },
|
||||||
];
|
];
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -45,6 +45,10 @@ export class RdDCombatManager extends Combat {
|
|||||||
Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
|
Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
|
||||||
Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() })
|
Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() })
|
||||||
Hooks.on("deleteCombat", (combat, html, id) => { combat.onDeleteCombat() })
|
Hooks.on("deleteCombat", (combat, html, id) => { combat.onDeleteCombat() })
|
||||||
|
|
||||||
|
for (let i = 0.0; i < premierRoundInit.length; i++) {
|
||||||
|
premierRoundInit[i].init = 5.99 - i / 100
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -108,9 +112,7 @@ export class RdDCombatManager extends Combat {
|
|||||||
async rollInitiative(ids, messageOptions = {}) {
|
async rollInitiative(ids, messageOptions = {}) {
|
||||||
console.log(`${game.system.title} | Combat.rollInitiative()`, ids, messageOptions)
|
console.log(`${game.system.title} | Combat.rollInitiative()`, ids, messageOptions)
|
||||||
ids = typeof ids === "string" ? [ids] : ids
|
ids = typeof ids === "string" ? [ids] : ids
|
||||||
ids.forEach(async id =>
|
Promise.all(ids.map(id => this.rollInitRdD(id, undefined, messageOptions)))
|
||||||
await this.rollInitRdD(id, undefined, messageOptions)
|
|
||||||
)
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,11 +253,13 @@ export class RdDCombatManager extends Combat {
|
|||||||
let initMissing = game.combat.combatants.find(it => !it.initiative);
|
let initMissing = game.combat.combatants.find(it => !it.initiative);
|
||||||
if (!initMissing) { // Premier round !
|
if (!initMissing) { // Premier round !
|
||||||
for (let combatant of game.combat.combatants) {
|
for (let combatant of game.combat.combatants) {
|
||||||
let action = combatant.initiativeData?.arme;
|
if (combatant.initiativeData?.arme?.type == "arme") {
|
||||||
//console.log("Parsed !!!", combatant, initDone, game.combat.current, arme);
|
// TODO: get init data premier round
|
||||||
if (action && action.type == "arme") {
|
const initiativeData = combatant.initiativeData;
|
||||||
for (let initData of premierRoundInit) {
|
const action = combatant.initiativeData.arme;
|
||||||
if (Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround).includes(initData.pattern)) {
|
const fromArme = Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround)
|
||||||
|
const initData = premierRoundInit.find(it => fromArme.includes(initData.pattern))
|
||||||
|
if (initData) {
|
||||||
let msg = `<h4>L'initiative de ${combatant.actor.getAlias()} a été modifiée !</h4>
|
let msg = `<h4>L'initiative de ${combatant.actor.getAlias()} a été modifiée !</h4>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
@@ -269,7 +273,6 @@ export class RdDCombatManager extends Combat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static incDecInit(combatantId, incDecValue) {
|
static incDecInit(combatantId, incDecValue) {
|
||||||
@@ -297,7 +300,7 @@ export class RdDCombatManager extends Combat {
|
|||||||
].concat(options);
|
].concat(options);
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static rollInitiativeAction(combatantId, action) {
|
static async rollInitiativeAction(combatantId, action) {
|
||||||
const combatant = game.combat.combatants.get(combatantId)
|
const combatant = game.combat.combatants.get(combatantId)
|
||||||
const actor = RdDCombatManager.getActorCombatant(combatant)
|
const actor = RdDCombatManager.getActorCombatant(combatant)
|
||||||
if (actor == undefined) { return [] }
|
if (actor == undefined) { return [] }
|
||||||
@@ -308,7 +311,8 @@ export class RdDCombatManager extends Combat {
|
|||||||
const ajustement = RdDCombatManager.calculAjustementInit(actor, action)
|
const ajustement = RdDCombatManager.calculAjustementInit(actor, action)
|
||||||
const rollFormula = RdDCombatManager.formuleInitiative(init.offset, init.carac, init.niveau, ajustement);
|
const rollFormula = RdDCombatManager.formuleInitiative(init.offset, init.carac, init.niveau, ajustement);
|
||||||
|
|
||||||
game.combat.rollInitRdD(combatantId, rollFormula, init);
|
await game.combat.rollInitRdD(combatantId, rollFormula, init);
|
||||||
|
combatant.initiativeData
|
||||||
}
|
}
|
||||||
|
|
||||||
static getInitData(actor, action) {
|
static getInitData(actor, action) {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import { SHOW_DICE, SYSTEM_RDD } from "./constants.js";
|
import { SHOW_DICE, SYSTEM_RDD } from "./constants.js";
|
||||||
import { RollDataAjustements } from "./rolldata-ajustements.js";
|
import { RollDataAjustements } from "./rolldata-ajustements.js";
|
||||||
import { RdDUtility } from "./rdd-utility.js";
|
import { RdDUtility } from "./rdd-utility.js";
|
||||||
import { TMRUtility } from "./tmr-utility.js";
|
import { COORD_TMR_INCONNU, TMRUtility } from "./tmr-utility.js";
|
||||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||||
import { RdDTMRRencontreDialog } from "./rdd-tmr-rencontre-dialog.js";
|
import { RdDTMRRencontreDialog } from "./rdd-tmr-rencontre-dialog.js";
|
||||||
import { ChatUtility } from "./chat-utility.js";
|
import { ChatUtility } from "./chat-utility.js";
|
||||||
@@ -996,6 +996,10 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
const targetOddq = this.pixiTMR.computeEventOddq(event)
|
const targetOddq = this.pixiTMR.computeEventOddq(event)
|
||||||
const targetCoord = TMRUtility.oddqToCoordTMR(targetOddq)
|
const targetCoord = TMRUtility.oddqToCoordTMR(targetOddq)
|
||||||
|
|
||||||
|
if (targetCoord == COORD_TMR_INCONNU){
|
||||||
|
ui.notifications.error("Vous ne pouvez pas vous déplacer ici");
|
||||||
|
return
|
||||||
|
}
|
||||||
// Validation de la case de destination (gestion du cas des rencontres qui peuvent téléporter)
|
// Validation de la case de destination (gestion du cas des rencontres qui peuvent téléporter)
|
||||||
const typeDeplacement = this._calculDeplacement(targetCoord, currentCoord, currentOddq, targetOddq);
|
const typeDeplacement = this._calculDeplacement(targetCoord, currentCoord, currentOddq, targetOddq);
|
||||||
|
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
import { HtmlUtility } from "./html-utility.js";
|
import { HtmlUtility } from "./html-utility.js";
|
||||||
import { Misc } from "./misc.js";
|
|
||||||
import { RdDCombatManager } from "./rdd-combat.js";
|
import { RdDCombatManager } from "./rdd-combat.js";
|
||||||
import { Targets } from "./targets.js";
|
import { Targets } from "./targets.js";
|
||||||
|
|
||||||
|
@@ -2,6 +2,9 @@ import { Misc } from "./misc.js";
|
|||||||
import { Grammar } from "./grammar.js";
|
import { Grammar } from "./grammar.js";
|
||||||
import { RdDDice } from "./rdd-dice.js";
|
import { RdDDice } from "./rdd-dice.js";
|
||||||
|
|
||||||
|
const TMR_INCONNU = "inconnu"
|
||||||
|
export const COORD_TMR_INCONNU = "A0"
|
||||||
|
|
||||||
export const TMRType = {
|
export const TMRType = {
|
||||||
cite: { type: 'cite', name: "cité", genre: "f" },
|
cite: { type: 'cite', name: "cité", genre: "f" },
|
||||||
sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' },
|
sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' },
|
||||||
@@ -16,13 +19,15 @@ export const TMRType = {
|
|||||||
marais: { type: 'marais', name: "marais", genre: "m" },
|
marais: { type: 'marais', name: "marais", genre: "m" },
|
||||||
gouffre: { type: 'gouffre', name: "gouffre", genre: "m" },
|
gouffre: { type: 'gouffre', name: "gouffre", genre: "m" },
|
||||||
necropole: { type: 'necropole', name: "nécropole", genre: "f" },
|
necropole: { type: 'necropole', name: "nécropole", genre: "f" },
|
||||||
desolation: { type: 'desolation', name: "désolation", genre: "f" }
|
desolation: { type: 'desolation', name: "désolation", genre: "f" },
|
||||||
|
[TMR_INCONNU]: { type: TMR_INCONNU, name: TMR_INCONNU, genre: "m" }
|
||||||
}
|
}
|
||||||
|
|
||||||
export const FLEUVE_COORD = 'Fleuve'
|
export const FLEUVE_COORD = 'Fleuve'
|
||||||
|
|
||||||
const TMRMapping = {
|
const TMRMapping = {
|
||||||
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli", generique: 'fleuve' },
|
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli", generique: 'fleuve' },
|
||||||
|
[COORD_TMR_INCONNU]: { type: TMR_INCONNU, label: TMR_INCONNU },
|
||||||
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
||||||
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
||||||
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
||||||
@@ -272,7 +277,7 @@ export class TMRUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static getTMRType(coord) {
|
static getTMRType(coord) {
|
||||||
const tmr = TMRUtility.getTMR(coord);
|
const tmr = TMRUtility.getTMR(coord)
|
||||||
return Misc.upperFirst(TMRType[tmr.type].name);
|
return Misc.upperFirst(TMRType[tmr.type].name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,7 +13,7 @@ export class Conquete extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerConquete(actor, item); }
|
async onActorCreateOwned(actor, item) { await this._creerConquete(actor, item); }
|
||||||
|
|
||||||
code() { return 'conquete' }
|
code() { return 'conquete' }
|
||||||
tooltip(linkData) { return `Doit être conquis` }
|
tooltip(linkData) { return 'Doit être conquis' }
|
||||||
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/conquete.svg' }
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/conquete.svg' }
|
||||||
|
|
||||||
createSprite(pixiTMR) {
|
createSprite(pixiTMR) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { ITEM_TYPES } from "../constants.js";
|
import { ITEM_TYPES } from "../constants.js";
|
||||||
import { TMRUtility } from "../tmr-utility.js";
|
import { COORD_TMR_INCONNU, TMRUtility } from "../tmr-utility.js";
|
||||||
import { PixiTMR } from "./pixi-tmr.js";
|
import { PixiTMR } from "./pixi-tmr.js";
|
||||||
|
|
||||||
const registeredEffects = [
|
const registeredEffects = [
|
||||||
@@ -12,7 +12,7 @@ export class Draconique {
|
|||||||
static init() {
|
static init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
static isCaseTMR(item) { return item.type == ITEM_TYPES.casetmr; }
|
static isCaseTMR(item) { return item.type == ITEM_TYPES.casetmr }
|
||||||
static isQueueDragon(item) { return item.isQueueDragon(); }
|
static isQueueDragon(item) { return item.isQueueDragon(); }
|
||||||
static isSouffleDragon(item) { return item.type == ITEM_TYPES.souffle; }
|
static isSouffleDragon(item) { return item.type == ITEM_TYPES.souffle; }
|
||||||
static isTeteDragon(item) { return item.type == ITEM_TYPES.tete; }
|
static isTeteDragon(item) { return item.type == ITEM_TYPES.tete; }
|
||||||
@@ -127,7 +127,7 @@ export class Draconique {
|
|||||||
* @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra,
|
* @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra,
|
||||||
*/
|
*/
|
||||||
isCase(item, coord = undefined) {
|
isCase(item, coord = undefined) {
|
||||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && (coord ? item.system.coord == coord : true);
|
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && (coord ? (coord != COORD_TMR_INCONNU && item.system.coord == coord) : true);
|
||||||
}
|
}
|
||||||
|
|
||||||
find(list, coord = undefined) {
|
find(list, coord = undefined) {
|
||||||
@@ -150,7 +150,7 @@ export class Draconique {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isCaseForSource(item, draconique) {
|
isCaseForSource(item, draconique) {
|
||||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && item.system.sourceid == draconique.id;
|
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && item.system.sourceid == draconique.id
|
||||||
}
|
}
|
||||||
|
|
||||||
async onVisiteSupprimer(actor, tmr, onRemoveToken) {
|
async onVisiteSupprimer(actor, tmr, onRemoveToken) {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import { Grammar } from "../grammar.js";
|
import { Grammar } from "../grammar.js";
|
||||||
import { tmrTokenZIndex } from "../tmr-constants.js";
|
import { tmrTokenZIndex } from "../tmr-constants.js";
|
||||||
import { TMRUtility } from "../tmr-utility.js";
|
import { COORD_TMR_INCONNU, TMRUtility } from "../tmr-utility.js";
|
||||||
import { Draconique } from "./draconique.js";
|
import { Draconique } from "./draconique.js";
|
||||||
|
|
||||||
export class QueteEaux extends Draconique {
|
export class QueteEaux extends Draconique {
|
||||||
@@ -9,11 +9,13 @@ export class QueteEaux extends Draconique {
|
|||||||
match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes("quete des eaux"); }
|
match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes("quete des eaux"); }
|
||||||
manualMessage() { return "Vous devrez re-configurer votre Nouvelle Quête des Eaux une fois un lac ou marais vaincu" }
|
manualMessage() { return "Vous devrez re-configurer votre Nouvelle Quête des Eaux une fois un lac ou marais vaincu" }
|
||||||
async onActorCreateOwned(actor, tete) {
|
async onActorCreateOwned(actor, tete) {
|
||||||
await this.createCaseTmr(actor, "Nouvelle Quête des Eaux", { coord: 'A0' }, tete.id);
|
await this.createCaseTmr(actor, "Nouvelle Quête des Eaux", { coord: COORD_TMR_INCONNU }, tete.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
code() { return 'maitrisee' }
|
code() { return 'maitrisee' }
|
||||||
tooltip(linkData) { return `Quête des eaux, ${TMRUtility.getTMRType(linkData.system.coord)} maîtrisé` }
|
tooltip(linkData) {
|
||||||
|
return linkData.system.coord == COORD_TMR_INCONNU ? 'Nouvelle Quête des eaux en cours' : `Quête des eaux, ${TMRUtility.getTMRType(linkData.system.coord)} maîtrisé`
|
||||||
|
}
|
||||||
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/maitrisee.svg' }
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/maitrisee.svg' }
|
||||||
|
|
||||||
createSprite(pixiTMR) {
|
createSprite(pixiTMR) {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
import { Grammar } from "../grammar.js";
|
import { Grammar } from "../grammar.js";
|
||||||
import { tmrTokenZIndex } from "../tmr-constants.js";
|
import { tmrTokenZIndex } from "../tmr-constants.js";
|
||||||
|
import { COORD_TMR_INCONNU } from "../tmr-utility.js";
|
||||||
import { Draconique } from "./draconique.js";
|
import { Draconique } from "./draconique.js";
|
||||||
|
|
||||||
export class TerreAttache extends Draconique {
|
export class TerreAttache extends Draconique {
|
||||||
@@ -9,7 +10,7 @@ export class TerreAttache extends Draconique {
|
|||||||
manualMessage() { return "Vous pouvez re-configurer votre Nouvelle Terre d'attache" }
|
manualMessage() { return "Vous pouvez re-configurer votre Nouvelle Terre d'attache" }
|
||||||
|
|
||||||
async onActorCreateOwned(actor, tete) {
|
async onActorCreateOwned(actor, tete) {
|
||||||
await this.createCaseTmr(actor, "Nouvelle Terre d'attache", { coord: 'A0' }, tete.id);
|
await this.createCaseTmr(actor, "Nouvelle Terre d'attache", { coord: COORD_TMR_INCONNU }, tete.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
code() { return 'attache' }
|
code() { return 'attache' }
|
||||||
|
@@ -811,7 +811,7 @@
|
|||||||
},
|
},
|
||||||
"musique": {
|
"musique": {
|
||||||
"templates": ["description"],
|
"templates": ["description"],
|
||||||
"niveau": "",
|
"niveau": 0,
|
||||||
"reference": ""
|
"reference": ""
|
||||||
},
|
},
|
||||||
"danse": {
|
"danse": {
|
||||||
@@ -819,12 +819,12 @@
|
|||||||
"type": "",
|
"type": "",
|
||||||
"agilite": false,
|
"agilite": false,
|
||||||
"apparence": false,
|
"apparence": false,
|
||||||
"niveau": "",
|
"niveau": 0,
|
||||||
"reference": ""
|
"reference": ""
|
||||||
},
|
},
|
||||||
"chant": {
|
"chant": {
|
||||||
"templates": ["description"],
|
"templates": ["description"],
|
||||||
"niveau": "",
|
"niveau": 0,
|
||||||
"reference": ""
|
"reference": ""
|
||||||
},
|
},
|
||||||
"jeu": {
|
"jeu": {
|
||||||
@@ -836,7 +836,7 @@
|
|||||||
},
|
},
|
||||||
"recettecuisine": {
|
"recettecuisine": {
|
||||||
"templates": ["description"],
|
"templates": ["description"],
|
||||||
"niveau": "",
|
"niveau": 0,
|
||||||
"ingredients": "",
|
"ingredients": "",
|
||||||
"duree": "",
|
"duree": "",
|
||||||
"sust": 0,
|
"sust": 0,
|
||||||
|
@@ -13,22 +13,22 @@
|
|||||||
<label class="carac-xp"/>
|
<label class="carac-xp"/>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#if carac.isLevelUp}}
|
{{#if carac.isLevelUp}}
|
||||||
<span class="carac-label tooltip" name="system.carac.{{key}}.label">
|
<span class="carac-label" name="system.carac.{{key}}.label">
|
||||||
<span class="tooltiptext ttt-levelup">
|
|
||||||
Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter de 1 votre caractéristique {{carac.label}}
|
|
||||||
</span>
|
|
||||||
<a name={{key}}>{{carac.label}}</a>
|
<a name={{key}}>{{carac.label}}</a>
|
||||||
<a class="carac-xp-augmenter" name="augmenter.{{key}}" data-tooltip="Augmenter la caractéristique avec l'expérience">
|
<a class="carac-xp-augmenter" name="augmenter.{{key}}"
|
||||||
|
data-tooltip="Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter votre caractéristique {{carac.label}}">
|
||||||
<i class="fas fa-arrow-alt-circle-up"></i>
|
<i class="fas fa-arrow-alt-circle-up"></i>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="carac-label tooltip" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input class="carac-value" type="number" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="carac-value" type="number" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
<span class="carac-xp tooltip">
|
<span class="carac-xp">
|
||||||
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number"
|
||||||
<span class="tooltiptext ttt-xp">Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter de 1 votre {{carac.label}}</span>
|
data-tooltip="Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter votre {{carac.label}}"
|
||||||
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
||||||
|
/>
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@@ -16,13 +16,13 @@
|
|||||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||||
|
|
||||||
{{#if @root.options.vueDetaillee}}
|
{{#if @root.options.vueDetaillee}}
|
||||||
<span class="competence-xp {{#unless system.isLevelUp}}tooltip{{/unless}}">
|
<span class="competence-xp">
|
||||||
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
|
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
|
||||||
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"
|
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"
|
||||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
|
||||||
{{#unless system.isLevelUp}}
|
{{#unless system.isLevelUp}}
|
||||||
<span class="tooltiptext left-competence ttt-xp">Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}</span>
|
data-tooltip="Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}"
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq system.categorie 'draconic')}}
|
{{#if (eq system.categorie 'draconic')}}
|
||||||
|
@@ -1,7 +1,15 @@
|
|||||||
<div>
|
<div>
|
||||||
<span {{#if ajustements}}class="tooltip tooltip-dotted" {{/if}}>
|
<span {{#if ajustements}}class="tooltip-overflow tooltip-dotted" {{/if}}>
|
||||||
{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}
|
<span>
|
||||||
|
<span>{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}</span>
|
||||||
{{#if ajustements}}
|
{{#if ajustements}}
|
||||||
|
{{/if}}
|
||||||
|
{{#if rolled.factorHtml}}<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>{{/if}}
|
||||||
|
<span>= {{rolled.score}}%</span>
|
||||||
|
{{#if rolled.factorHtml}}
|
||||||
|
<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</span>
|
||||||
<div class="tooltiptext ttt-ajustements">
|
<div class="tooltiptext ttt-ajustements">
|
||||||
{{#each ajustements as |item key|}}
|
{{#each ajustements as |item key|}}
|
||||||
{{#if item.used}}
|
{{#if item.used}}
|
||||||
@@ -15,13 +23,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
{{#if rolled.factorHtml}}<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>{{/if}}
|
|
||||||
</span>
|
</span>
|
||||||
<span>= {{rolled.score}}%</span>
|
|
||||||
{{#if rolled.factorHtml}}
|
|
||||||
<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>{{rolled.roll}} : </span><span class="rdd-roll-{{rolled.code}} strong-text">{{rolled.quality}}</span>
|
<span>{{rolled.roll}} : </span><span class="rdd-roll-{{rolled.code}} strong-text">{{rolled.quality}}</span>
|
||||||
|
Reference in New Issue
Block a user