Amélioration fiche d'item
This commit is contained in:
parent
b6ad8a846e
commit
0c24f49470
166
css/bol.css
166
css/bol.css
@ -245,6 +245,9 @@
|
|||||||
.bol input::placeholder {
|
.bol input::placeholder {
|
||||||
color: lightgray;
|
color: lightgray;
|
||||||
}
|
}
|
||||||
|
.bol .property {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
/* LOCAL FONTS */
|
/* LOCAL FONTS */
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
@ -282,7 +285,14 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
.items-list .item-header {
|
.items-list .item-header {
|
||||||
font-family: "CCMeanwhile", cursive;
|
font-family: 'Signika', sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
color: #4b4a44;
|
||||||
|
background-color: lightgray;
|
||||||
|
}
|
||||||
|
.items-list .item-header .item-name {
|
||||||
|
font-family: "Wolfsbane2Expanded", cursive;
|
||||||
|
font-size: 1.5em;
|
||||||
}
|
}
|
||||||
.items-list .item {
|
.items-list .item {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
@ -293,13 +303,41 @@
|
|||||||
}
|
}
|
||||||
.items-list .item .item-image {
|
.items-list .item .item-image {
|
||||||
flex: 0 0 30px;
|
flex: 0 0 30px;
|
||||||
margin-right: 5px;
|
padding: 0;
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
height: 30px;
|
||||||
|
width: 30px;
|
||||||
|
min-height: 30px;
|
||||||
|
min-width: 30px;
|
||||||
}
|
}
|
||||||
.items-list .item .item-image img {
|
.items-list .item .item-image img {
|
||||||
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border: none;
|
border: none;
|
||||||
|
height: 30px;
|
||||||
|
width: 30px;
|
||||||
|
min-height: 30px;
|
||||||
|
min-width: 30px;
|
||||||
}
|
}
|
||||||
.items-list .item .item-name {
|
.items-list .item .item-image.roll-weapon,
|
||||||
|
.items-list .item .item-image.roll-career {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: url("../../../icons/svg/dice-target.svg") !important;
|
||||||
|
background-size: 30px 30px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.items-list .item .item-image.roll-weapon:hover,
|
||||||
|
.items-list .item .item-image.roll-career:hover {
|
||||||
|
background-color: gray;
|
||||||
|
}
|
||||||
|
.items-list .item .item-image.roll-weapon:hover img,
|
||||||
|
.items-list .item .item-image.roll-career:hover img {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.items-list .item .item-name,
|
||||||
|
.items-list .item .item-field {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.items-list .item .item-controls-1 {
|
.items-list .item .item-controls-1 {
|
||||||
@ -315,8 +353,86 @@
|
|||||||
.items-list .item .item-control {
|
.items-list .item .item-control {
|
||||||
color: #4b4a44;
|
color: #4b4a44;
|
||||||
}
|
}
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
/* Premade colors */
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
.light {
|
||||||
|
color: lightgray;
|
||||||
|
}
|
||||||
|
.bg-light {
|
||||||
|
background: lightgray;
|
||||||
|
}
|
||||||
|
.darkgray {
|
||||||
|
color: #23221d;
|
||||||
|
}
|
||||||
|
.bg-darkgray {
|
||||||
|
background: #23221d;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.darkbrown {
|
||||||
|
color: #464331c4;
|
||||||
|
}
|
||||||
|
.bg-darkbrown {
|
||||||
|
background: #464331c4;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.darkslate {
|
||||||
|
color: darkslategray;
|
||||||
|
}
|
||||||
|
.bg-darkslate {
|
||||||
|
background: darkslategray;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.darkgreen {
|
||||||
|
color: #003c1e;
|
||||||
|
}
|
||||||
|
.bg-darkgreen {
|
||||||
|
background: #003c1e;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.darkblue {
|
||||||
|
color: midnightblue;
|
||||||
|
}
|
||||||
|
.bg-darkblue {
|
||||||
|
background: midnightblue;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.blue {
|
||||||
|
color: #009ee0;
|
||||||
|
}
|
||||||
|
.bg-blue {
|
||||||
|
background: #009ee0;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.green {
|
||||||
|
color: #44a12b;
|
||||||
|
}
|
||||||
|
.bg-green {
|
||||||
|
background: #44a12b;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.black {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.bg-black {
|
||||||
|
background: #000;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.red {
|
||||||
|
color: #cd071e;
|
||||||
|
}
|
||||||
|
.bg-red {
|
||||||
|
background: #cd071e;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.purple {
|
||||||
|
color: purple;
|
||||||
|
}
|
||||||
|
.bg-purple {
|
||||||
|
background: purple;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
.bol.sheet .window-content {
|
.bol.sheet .window-content {
|
||||||
background: white;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
@ -395,10 +511,11 @@
|
|||||||
min-height: 700px;
|
min-height: 700px;
|
||||||
height: 700px;
|
height: 700px;
|
||||||
}
|
}
|
||||||
.bol.sheet.actor .window-content {
|
.bol.sheet.actor .window-content form {
|
||||||
background-image: url("/systems/bol/ui/logo.webp");
|
background-image: url("/systems/bol/ui/logo.webp");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 190px 115px;
|
background-size: 190px 115px;
|
||||||
|
background-color: white;
|
||||||
}
|
}
|
||||||
.bol.sheet.actor .window-content form .sidebar {
|
.bol.sheet.actor .window-content form .sidebar {
|
||||||
padding-top: 115px;
|
padding-top: 115px;
|
||||||
@ -496,7 +613,7 @@
|
|||||||
.bol.sheet.actor .header-field-label,
|
.bol.sheet.actor .header-field-label,
|
||||||
.bol.sheet.actor .stat-label {
|
.bol.sheet.actor .stat-label {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-family: "Wolfsbane2Expanded", serif;
|
font-family: "Wolfsbane2Expanded", cursive;
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
font-variant: small-caps;
|
font-variant: small-caps;
|
||||||
}
|
}
|
||||||
@ -526,6 +643,38 @@
|
|||||||
min-width: 460px;
|
min-width: 460px;
|
||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
|
.bol.sheet.item h1 input.itemname {
|
||||||
|
font-family: "Wolfsbane2Expanded", cursive;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties {
|
||||||
|
flex: 0 0 150px;
|
||||||
|
margin: 5px 5px 5px 0;
|
||||||
|
padding-right: 5px;
|
||||||
|
border-right: 1px groove #eeede0;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties .form-group {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties .form-group label {
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties .form-group input {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties .properties-list {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.bol.sheet.item .item-properties .properties-list li {
|
||||||
|
margin: 3px 0;
|
||||||
|
padding: 0 2px;
|
||||||
|
background: rgba(0, 0, 0, 0.05);
|
||||||
|
border: 1px groove #eeede0;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
.editor,
|
.editor,
|
||||||
.editor-content {
|
.editor-content {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -541,9 +690,8 @@
|
|||||||
color: darkgreen;
|
color: darkgreen;
|
||||||
}
|
}
|
||||||
.chat-message .chat-icon {
|
.chat-message .chat-icon {
|
||||||
border: 0;
|
flex: 0 0 64px;
|
||||||
padding: 2px 6px 2px 2px;
|
border: 1px outset lightgray;
|
||||||
float: left;
|
|
||||||
width: 64px;
|
width: 64px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
}
|
}
|
||||||
|
36
lang/en.json
36
lang/en.json
@ -19,6 +19,7 @@
|
|||||||
"BOL.resources.faith": "Foi",
|
"BOL.resources.faith": "Foi",
|
||||||
"BOL.resources.creation": "Création",
|
"BOL.resources.creation": "Création",
|
||||||
"BOL.resources.power": "Pouvoir",
|
"BOL.resources.power": "Pouvoir",
|
||||||
|
"BOL.resources.villainy": "Vilénie",
|
||||||
"BOL.traits.xp": "Expérience",
|
"BOL.traits.xp": "Expérience",
|
||||||
|
|
||||||
"BOL.ui.tab.stats": "Attributs",
|
"BOL.ui.tab.stats": "Attributs",
|
||||||
@ -43,26 +44,45 @@
|
|||||||
"BOL.ui.unequip": "Déséquiper",
|
"BOL.ui.unequip": "Déséquiper",
|
||||||
"BOL.ui.equip": "Equiper",
|
"BOL.ui.equip": "Equiper",
|
||||||
"BOL.ui.delete": "Supprimer",
|
"BOL.ui.delete": "Supprimer",
|
||||||
|
"BOL.ui.roll" : "Utiliser",
|
||||||
|
"BOL.ui.protection" : "Protection",
|
||||||
|
"BOL.ui.blocking" : "Blocage",
|
||||||
|
"BOL.ui.range" : "Portée",
|
||||||
|
"BOL.ui.quantity" : "Quantité",
|
||||||
|
"BOL.ui.weight" : "Poids",
|
||||||
|
"BOL.ui.price": "Prix",
|
||||||
|
|
||||||
"BOL.featureCategory.origins": "Origines",
|
"BOL.featureCategory.origins": "Origines",
|
||||||
"BOL.featureCategory.races": "Races",
|
"BOL.featureCategory.races": "Races",
|
||||||
"BOL.featureCategory.careers": "Carrieres",
|
"BOL.featureCategory.careers": "Carrières",
|
||||||
"BOL.featureCategory.boons": "Avantages",
|
"BOL.featureCategory.boons": "Avantages",
|
||||||
"BOL.featureCategory.flaws": "Desavantages",
|
"BOL.featureCategory.flaws": "Désavantages",
|
||||||
"BOL.featureCategory.languages": "Langages",
|
"BOL.featureCategory.languages": "Langages",
|
||||||
|
|
||||||
"BOL.itemCategory.equipment": "Equipement",
|
"BOL.featureSubtypes.origin": "Origine",
|
||||||
|
"BOL.featureSubtypes.race": "Race",
|
||||||
|
"BOL.featureSubtypes.career": "Carrière",
|
||||||
|
"BOL.featureSubtypes.boon": "Avantage",
|
||||||
|
"BOL.featureSubtypes.flaw": "Désavantage",
|
||||||
|
"BOL.featureSubtypes.language": "Langage",
|
||||||
|
|
||||||
|
"BOL.itemCategory.equipment": "Équipement",
|
||||||
"BOL.itemCategory.consumable": "Consommable",
|
"BOL.itemCategory.consumable": "Consommable",
|
||||||
"BOL.itemCategory.spell": "Sort",
|
"BOL.itemCategory.spell": "Sort",
|
||||||
"BOL.itemCategory.mount": "Monture",
|
"BOL.itemCategory.mount": "Monture",
|
||||||
"BOL.itemCategory.vehicle": "Véhicule",
|
"BOL.itemCategory.vehicle": "Véhicule",
|
||||||
"BOL.itemCategory.other": "Autre",
|
"BOL.itemCategory.other": "Autre",
|
||||||
|
|
||||||
|
"BOL.combatCategory.protections": "Protections",
|
||||||
|
"BOL.combatCategory.shields": "Boucliers",
|
||||||
|
"BOL.combatCategory.melee": "Armes de contact",
|
||||||
|
"BOL.combatCategory.ranged": "Armes à distance",
|
||||||
|
|
||||||
"BOL.equipmentCategory.weapon": "Arme",
|
"BOL.equipmentCategory.weapon": "Arme",
|
||||||
"BOL.equipmentCategory.protection": "Protection",
|
"BOL.equipmentCategory.protection": "Protection",
|
||||||
"BOL.equipmentCategory.jewel": "Bijou",
|
"BOL.equipmentCategory.jewel": "Bijou",
|
||||||
"BOL.equipmentCategory.scroll": "Parchemin",
|
"BOL.equipmentCategory.scroll": "Parchemin",
|
||||||
"BOL.equipmentCategory.ammunition": "munition",
|
"BOL.equipmentCategory.ammunition": "Munition",
|
||||||
"BOL.equipmentCategory.container": "Conteneur",
|
"BOL.equipmentCategory.container": "Conteneur",
|
||||||
"BOL.equipmentCategory.currency": "Monnaie",
|
"BOL.equipmentCategory.currency": "Monnaie",
|
||||||
"BOL.equipmentCategory.other": "Autre",
|
"BOL.equipmentCategory.other": "Autre",
|
||||||
@ -116,6 +136,14 @@
|
|||||||
"BOL.itemSoak.formula": "Formule",
|
"BOL.itemSoak.formula": "Formule",
|
||||||
"BOL.itemSoak.value": "Valeur",
|
"BOL.itemSoak.value": "Valeur",
|
||||||
|
|
||||||
|
"BOL.range.PointBlank": "Bout portant",
|
||||||
|
"BOL.range.Short": "Courte",
|
||||||
|
"BOL.range.Medium": "Moyenne",
|
||||||
|
"BOL.range.Long": "Long",
|
||||||
|
"BOL.range.VeryLong": "Très longue",
|
||||||
|
"BOL.range.Extreme": "Extrême",
|
||||||
|
"BOL.range.Maximum": "Maximale",
|
||||||
|
|
||||||
|
|
||||||
"Careers": "Carrieres",
|
"Careers": "Carrieres",
|
||||||
"Name": "Nom",
|
"Name": "Nom",
|
||||||
|
41
lang/fr.json
41
lang/fr.json
@ -19,6 +19,7 @@
|
|||||||
"BOL.resources.faith": "Foi",
|
"BOL.resources.faith": "Foi",
|
||||||
"BOL.resources.creation": "Création",
|
"BOL.resources.creation": "Création",
|
||||||
"BOL.resources.power": "Pouvoir",
|
"BOL.resources.power": "Pouvoir",
|
||||||
|
"BOL.resources.villainy": "Vilénie",
|
||||||
"BOL.traits.xp": "Expérience",
|
"BOL.traits.xp": "Expérience",
|
||||||
|
|
||||||
"BOL.ui.tab.stats": "Attributs",
|
"BOL.ui.tab.stats": "Attributs",
|
||||||
@ -43,26 +44,50 @@
|
|||||||
"BOL.ui.unequip": "Déséquiper",
|
"BOL.ui.unequip": "Déséquiper",
|
||||||
"BOL.ui.equip": "Equiper",
|
"BOL.ui.equip": "Equiper",
|
||||||
"BOL.ui.delete": "Supprimer",
|
"BOL.ui.delete": "Supprimer",
|
||||||
|
"BOL.ui.roll" : "Utiliser",
|
||||||
|
"BOL.ui.equipment" : "Équipement",
|
||||||
|
"BOL.ui.weapon" : "Arme",
|
||||||
|
"BOL.ui.melee" : "Arme de contact",
|
||||||
|
"BOL.ui.ranged" : "Arme à distance",
|
||||||
|
"BOL.ui.protection" : "Protection",
|
||||||
|
"BOL.ui.shield" : "Bouclier",
|
||||||
|
"BOL.ui.blocking" : "Blocage",
|
||||||
|
"BOL.ui.range" : "Portée",
|
||||||
|
"BOL.ui.quantity" : "Quantité",
|
||||||
|
"BOL.ui.weight" : "Poids",
|
||||||
|
"BOL.ui.price": "Prix",
|
||||||
|
|
||||||
"BOL.featureCategory.origins": "Origines",
|
"BOL.featureCategory.origins": "Origines",
|
||||||
"BOL.featureCategory.races": "Races",
|
"BOL.featureCategory.races": "Races",
|
||||||
"BOL.featureCategory.careers": "Carrieres",
|
"BOL.featureCategory.careers": "Carrières",
|
||||||
"BOL.featureCategory.boons": "Avantages",
|
"BOL.featureCategory.boons": "Avantages",
|
||||||
"BOL.featureCategory.flaws": "Desavantages",
|
"BOL.featureCategory.flaws": "Désavantages",
|
||||||
"BOL.featureCategory.languages": "Langages",
|
"BOL.featureCategory.languages": "Langages",
|
||||||
|
|
||||||
"BOL.itemCategory.equipment": "Equipement",
|
"BOL.featureSubtypes.origin": "Origine",
|
||||||
|
"BOL.featureSubtypes.race": "Race",
|
||||||
|
"BOL.featureSubtypes.career": "Carrière",
|
||||||
|
"BOL.featureSubtypes.boon": "Avantage",
|
||||||
|
"BOL.featureSubtypes.flaw": "Désavantage",
|
||||||
|
"BOL.featureSubtypes.language": "Langage",
|
||||||
|
|
||||||
|
"BOL.itemCategory.equipment": "Équipement",
|
||||||
"BOL.itemCategory.consumable": "Consommable",
|
"BOL.itemCategory.consumable": "Consommable",
|
||||||
"BOL.itemCategory.spell": "Sort",
|
"BOL.itemCategory.spell": "Sort",
|
||||||
"BOL.itemCategory.mount": "Monture",
|
"BOL.itemCategory.mount": "Monture",
|
||||||
"BOL.itemCategory.vehicle": "Véhicule",
|
"BOL.itemCategory.vehicle": "Véhicule",
|
||||||
"BOL.itemCategory.other": "Autre",
|
"BOL.itemCategory.other": "Autre",
|
||||||
|
|
||||||
|
"BOL.combatCategory.protections": "Protections",
|
||||||
|
"BOL.combatCategory.shields": "Boucliers",
|
||||||
|
"BOL.combatCategory.melee": "Armes de contact",
|
||||||
|
"BOL.combatCategory.ranged": "Armes à distance",
|
||||||
|
|
||||||
"BOL.equipmentCategory.weapon": "Arme",
|
"BOL.equipmentCategory.weapon": "Arme",
|
||||||
"BOL.equipmentCategory.protection": "Protection",
|
"BOL.equipmentCategory.protection": "Protection",
|
||||||
"BOL.equipmentCategory.jewel": "Bijou",
|
"BOL.equipmentCategory.jewel": "Bijou",
|
||||||
"BOL.equipmentCategory.scroll": "Parchemin",
|
"BOL.equipmentCategory.scroll": "Parchemin",
|
||||||
"BOL.equipmentCategory.ammunition": "munition",
|
"BOL.equipmentCategory.ammunition": "Munition",
|
||||||
"BOL.equipmentCategory.container": "Conteneur",
|
"BOL.equipmentCategory.container": "Conteneur",
|
||||||
"BOL.equipmentCategory.currency": "Monnaie",
|
"BOL.equipmentCategory.currency": "Monnaie",
|
||||||
"BOL.equipmentCategory.other": "Autre",
|
"BOL.equipmentCategory.other": "Autre",
|
||||||
@ -116,6 +141,14 @@
|
|||||||
"BOL.itemSoak.formula": "Formule",
|
"BOL.itemSoak.formula": "Formule",
|
||||||
"BOL.itemSoak.value": "Valeur",
|
"BOL.itemSoak.value": "Valeur",
|
||||||
|
|
||||||
|
"BOL.range.PointBlank": "Bout portant",
|
||||||
|
"BOL.range.Short": "Courte",
|
||||||
|
"BOL.range.Medium": "Moyenne",
|
||||||
|
"BOL.range.Long": "Long",
|
||||||
|
"BOL.range.VeryLong": "Très longue",
|
||||||
|
"BOL.range.Extreme": "Extrême",
|
||||||
|
"BOL.range.Maximum": "Maximale",
|
||||||
|
|
||||||
|
|
||||||
"Careers": "Carrieres",
|
"Careers": "Carrieres",
|
||||||
"Name": "Nom",
|
"Name": "Nom",
|
||||||
|
@ -31,7 +31,6 @@ export class BoLActorSheet extends ActorSheet {
|
|||||||
html.find('.item-edit').click(ev => {
|
html.find('.item-edit').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
const li = $(ev.currentTarget).parents(".item");
|
||||||
const item = this.actor.items.get(li.data("itemId"));
|
const item = this.actor.items.get(li.data("itemId"));
|
||||||
console.log(item);
|
|
||||||
item.sheet.render(true);
|
item.sheet.render(true);
|
||||||
});
|
});
|
||||||
html.find('.roll-attribute').click(ev => {
|
html.find('.roll-attribute').click(ev => {
|
||||||
@ -64,51 +63,17 @@ export class BoLActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
getData(options) {
|
getData(options) {
|
||||||
console.debug("getData");
|
const actorData = super.getData(options);
|
||||||
const actor = super.getData(options);
|
actorData.data = {
|
||||||
console.log(actor.data);
|
details : this.actor.details,
|
||||||
actor.data.details = actor.data.data.details;
|
attributes : this.actor.attributes,
|
||||||
actor.data.attributes = Object.values(actor.data.data.attributes);
|
aptitudes : this.actor.aptitudes,
|
||||||
actor.data.aptitudes = Object.values(actor.data.data.aptitudes);
|
resources : this.actor.resources,
|
||||||
actor.data.resources = Object.values(actor.data.data.resources);
|
equipment : this.actor.equipment,
|
||||||
actor.data.equipment = actor.data.items.filter(i => i.type === "item" || i.type == 'weapon' || i.type == 'armor');
|
combat : this.actor.buildCombat(),
|
||||||
actor.data.weapons = duplicate(actor.data.items.filter(i => i.type == 'weapon' ));
|
features : this.actor.buildFeatures()
|
||||||
actor.data.armors = duplicate(actor.data.items.filter(i => i.type == 'armor' ));
|
|
||||||
|
|
||||||
actor.data.features = {
|
|
||||||
"careers" : {
|
|
||||||
"label" : "BOL.featureCategory.careers",
|
|
||||||
"ranked" : true,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "career")
|
|
||||||
},
|
|
||||||
"origins" : {
|
|
||||||
"label" : "BOL.featureCategory.origins",
|
|
||||||
"ranked" : false,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "origin")
|
|
||||||
},
|
|
||||||
"races" : {
|
|
||||||
"label" : "BOL.featureCategory.races",
|
|
||||||
"ranked" : false,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "race")
|
|
||||||
},
|
|
||||||
"boons" : {
|
|
||||||
"label" : "BOL.featureCategory.boons",
|
|
||||||
"ranked" : false,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "boon")
|
|
||||||
},
|
|
||||||
"flaws" : {
|
|
||||||
"label" : "BOL.featureCategory.flaws",
|
|
||||||
"ranked" : false,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "flaw")
|
|
||||||
},
|
|
||||||
"languages" : {
|
|
||||||
"label" : "BOL.featureCategory.languages",
|
|
||||||
"ranked" : false,
|
|
||||||
"items" : actor.data.items.filter(i => i.type === "feature" && i.data.subtype === "language")
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
return actorData;
|
||||||
return actor;
|
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
@ -10,9 +10,6 @@ export class BoLActor extends Actor {
|
|||||||
/** @override */
|
/** @override */
|
||||||
prepareData() {
|
prepareData() {
|
||||||
super.prepareData();
|
super.prepareData();
|
||||||
|
|
||||||
console.debug("prepareData");
|
|
||||||
|
|
||||||
const actorData = this.data;
|
const actorData = this.data;
|
||||||
// console.log(actorData);
|
// console.log(actorData);
|
||||||
// const data = actorData.data;
|
// const data = actorData.data;
|
||||||
@ -25,10 +22,9 @@ export class BoLActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * Prepare Character type specific data
|
* Prepare Character type specific data
|
||||||
// */
|
*/
|
||||||
/* -------------------------------------------- */
|
|
||||||
_prepareCharacterData(actorData) {
|
_prepareCharacterData(actorData) {
|
||||||
let newVitality = 10 + this.data.data.attributes.vigor.value;
|
let newVitality = 10 + this.data.data.attributes.vigor.value;
|
||||||
if ( newVitality != this.data.data.resources.hp.max) {
|
if ( newVitality != this.data.data.resources.hp.max) {
|
||||||
@ -38,18 +34,153 @@ export class BoLActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getBoons() {
|
get itemData(){
|
||||||
return this.data.items.filter(i => i.type === "feature" && i.data.subtype === "boon");
|
return Array.from(this.data.items.values()).map(i => i.data);
|
||||||
|
}
|
||||||
|
get details() {
|
||||||
|
return this.data.data.details;
|
||||||
|
}
|
||||||
|
get attributes() {
|
||||||
|
return Object.values(this.data.data.attributes);
|
||||||
|
}
|
||||||
|
get aptitudes() {
|
||||||
|
return Object.values(this.data.data.aptitudes);
|
||||||
|
}
|
||||||
|
get resources() {
|
||||||
|
return Object.values(this.data.data.resources);
|
||||||
|
}
|
||||||
|
get boons() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "boon");
|
||||||
|
}
|
||||||
|
get flaws() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "flaw");
|
||||||
|
}
|
||||||
|
get careers() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "career");
|
||||||
|
}
|
||||||
|
get origins() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "origin");
|
||||||
|
}
|
||||||
|
get races() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "race");
|
||||||
|
}
|
||||||
|
get languages() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature" && i.data.subtype === "language");
|
||||||
|
}
|
||||||
|
get features() {
|
||||||
|
return this.itemData.filter(i => i.type === "feature");
|
||||||
|
}
|
||||||
|
get equipment() {
|
||||||
|
return this.itemData.filter(i => i.type === "item");
|
||||||
|
}
|
||||||
|
get weapons() {
|
||||||
|
return this.itemData.filter(i => i.type === "item" && i.data.subtype === "weapon");
|
||||||
|
}
|
||||||
|
get armors() {
|
||||||
|
return this.itemData.filter(i => i.type === "item" && i.data.subtype === "armor" && i.data.worn === true);
|
||||||
|
}
|
||||||
|
get helms() {
|
||||||
|
return this.itemData.filter(i => i.type === "item" && i.data.subtype === "helm" && i.data.worn === true);
|
||||||
|
}
|
||||||
|
get shields() {
|
||||||
|
return this.itemData.filter(i => i.type === "item" && i.data.subtype === "shield" && i.data.worn === true);
|
||||||
|
}
|
||||||
|
get protections() {
|
||||||
|
return this.armors.concat(this.helms)
|
||||||
|
}
|
||||||
|
get melee() {
|
||||||
|
return this.weapons.filter(i => i.data.properties.melee === true && i.data.worn === true);
|
||||||
|
}
|
||||||
|
get ranged() {
|
||||||
|
return this.weapons.filter(i => i.data.properties.ranged === true && i.data.worn === true);
|
||||||
|
}
|
||||||
|
buildFeatures(){
|
||||||
|
return {
|
||||||
|
"careers": {
|
||||||
|
"label": "BOL.featureCategory.careers",
|
||||||
|
"ranked": true,
|
||||||
|
"items": this.careers
|
||||||
|
},
|
||||||
|
"origins": {
|
||||||
|
"label": "BOL.featureCategory.origins",
|
||||||
|
"ranked": false,
|
||||||
|
"items": this.origins
|
||||||
|
},
|
||||||
|
"races": {
|
||||||
|
"label": "BOL.featureCategory.races",
|
||||||
|
"ranked": false,
|
||||||
|
"items": this.races
|
||||||
|
},
|
||||||
|
"boons": {
|
||||||
|
"label": "BOL.featureCategory.boons",
|
||||||
|
"ranked": false,
|
||||||
|
"items": this.boons
|
||||||
|
},
|
||||||
|
"flaws": {
|
||||||
|
"label": "BOL.featureCategory.flaws",
|
||||||
|
"ranked": false,
|
||||||
|
"items": this.flaws
|
||||||
|
},
|
||||||
|
"languages": {
|
||||||
|
"label": "BOL.featureCategory.languages",
|
||||||
|
"ranked": false,
|
||||||
|
"items": this.languages
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
buildCombat(){
|
||||||
|
return {
|
||||||
|
"melee" : {
|
||||||
|
"label" : "BOL.combatCategory.melee",
|
||||||
|
"weapon" : true,
|
||||||
|
"protection" : false,
|
||||||
|
"blocking" : false,
|
||||||
|
"ranged" : false,
|
||||||
|
"items" : this.melee
|
||||||
|
},
|
||||||
|
"ranged" : {
|
||||||
|
"label" : "BOL.combatCategory.ranged",
|
||||||
|
"weapon" : true,
|
||||||
|
"protection" : false,
|
||||||
|
"blocking" : false,
|
||||||
|
"ranged" : true,
|
||||||
|
"items" : this.ranged
|
||||||
|
},
|
||||||
|
"protections" : {
|
||||||
|
"label" : "BOL.combatCategory.protections",
|
||||||
|
"weapon" : false,
|
||||||
|
"protection" : true,
|
||||||
|
"blocking" : false,
|
||||||
|
"ranged" : false,
|
||||||
|
"items" : this.protections
|
||||||
|
},
|
||||||
|
"shields" : {
|
||||||
|
"label" : "BOL.combatCategory.shields",
|
||||||
|
"weapon" : false,
|
||||||
|
"protection" : false,
|
||||||
|
"blocking" : true,
|
||||||
|
"ranged" : false,
|
||||||
|
"items" : this.shields
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getFlaws() {
|
buildRollData(mode, title) {
|
||||||
return this.data.items.filter(i => i.type === "feature" && i.data.subtype === "flaw");
|
return {
|
||||||
|
mode : mode,
|
||||||
|
title : title,
|
||||||
|
actorId: this.id,
|
||||||
|
actorImg: this.img,
|
||||||
|
boons : this.boons,
|
||||||
|
flaws : this.flaws,
|
||||||
|
d6Bonus: 0,
|
||||||
|
d6Malus: 0,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
optionsBonusMalus: BoLUtility.buildListOptions(-8, +2),
|
||||||
|
bonusMalus: 0
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
|
||||||
getCareers() {
|
|
||||||
return this.data.items.filter(i => i.type === "feature" && i.data.subtype === "career");
|
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
|
||||||
saveRollData( rollData) {
|
saveRollData( rollData) {
|
||||||
this.currentRollData = rollData;
|
this.currentRollData = rollData;
|
||||||
}
|
}
|
||||||
@ -61,20 +192,8 @@ export class BoLActor extends Actor {
|
|||||||
attr = this.data.data.aptitudes[attrKey];
|
attr = this.data.data.aptitudes[attrKey];
|
||||||
}
|
}
|
||||||
if (attr) {
|
if (attr) {
|
||||||
let rollData = {
|
let rollData = this.buildRollData("attribute", game.i18n.localize(attr.label));
|
||||||
mode : "attribute",
|
rollData.attribute = duplicate(attr);
|
||||||
actorId: this.id,
|
|
||||||
actorImg: this.img,
|
|
||||||
attribute: duplicate(attr),
|
|
||||||
boons : this.getBoons(),
|
|
||||||
flaws : this.getFlaws(),
|
|
||||||
d6Bonus: 0,
|
|
||||||
d6Malus: 0,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
title: game.i18n.localize(attr.label),
|
|
||||||
optionsBonusMalus: BoLUtility.buildListOptions(-8, +2),
|
|
||||||
bonusMalus: 0
|
|
||||||
}
|
|
||||||
let rollDialog = await BoLRollDialog.create( this, rollData);
|
let rollDialog = await BoLRollDialog.create( this, rollData);
|
||||||
rollDialog.render( true );
|
rollDialog.render( true );
|
||||||
} else {
|
} else {
|
||||||
@ -86,22 +205,10 @@ export class BoLActor extends Actor {
|
|||||||
async rollCareer( careerId ) {
|
async rollCareer( careerId ) {
|
||||||
let career = BoLUtility.data(this.data.items.find( item => item.type == 'feature' && item.id == careerId));
|
let career = BoLUtility.data(this.data.items.find( item => item.type == 'feature' && item.id == careerId));
|
||||||
if (career) {
|
if (career) {
|
||||||
let rollData = {
|
let rollData = this.buildRollData("career", `${career.name} : ${career.data.rank}`);
|
||||||
mode : "career",
|
rollData.career = career;
|
||||||
actorId: this.id,
|
rollData.rollAttribute = 'mind';
|
||||||
actorImg: this.img,
|
rollData.attributes = duplicate(this.data.data.attributes);
|
||||||
career : career,
|
|
||||||
rollAttribute: 'mind',
|
|
||||||
attributes : duplicate(this.data.data.attributes),
|
|
||||||
boons : this.getBoons(),
|
|
||||||
flaws : this.getFlaws(),
|
|
||||||
d6Bonus: 0,
|
|
||||||
d6Malus: 0,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
title: `${career.name} : ${career.data.rank}`,
|
|
||||||
optionsBonusMalus: BoLUtility.buildListOptions(-8, +2),
|
|
||||||
bonusMalus: 0
|
|
||||||
}
|
|
||||||
let rollDialog = await BoLRollDialog.create( this, rollData);
|
let rollDialog = await BoLRollDialog.create( this, rollData);
|
||||||
rollDialog.render( true );
|
rollDialog.render( true );
|
||||||
} else {
|
} else {
|
||||||
@ -111,35 +218,24 @@ export class BoLActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollWeapon( weaponId ) {
|
async rollWeapon( weaponId ) {
|
||||||
let weapon = BoLUtility.data(this.data.items.find( item => item.type == 'weapon' && item.id == weaponId));
|
let weapon = BoLUtility.data(this.data.items.find( item => item.type == 'item' && item.id == weaponId));
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
let target = BoLUtility.getTarget();
|
let target = BoLUtility.getTarget();
|
||||||
if ( !target) {
|
// if ( !target) {
|
||||||
ui.notifications.warn("You must have a target to attack with a Weapon");
|
// ui.notifications.warn("You must have a target to attack with a Weapon");
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
let objectDefender = BoLUtility.data(game.actors.get(target.data.actorId));
|
let objectDefender = (target) ? BoLUtility.data(game.actors.get(target.data.actorId)) : null;
|
||||||
objectDefender = mergeObject(objectDefender, target.data.actorData);
|
objectDefender = (objectDefender) ? mergeObject(objectDefender, target.data.actorData) : null;
|
||||||
let rollData = {
|
let rollData = this.buildRollData("weapon", weapon.name);
|
||||||
mode : "weapon",
|
rollData.weapon = weapon;
|
||||||
actorId: this.id,
|
rollData.target = target;
|
||||||
actorImg: this.img,
|
rollData.isRanged = BoLUtility.isRangedWeapon( weapon );
|
||||||
weapon : weapon,
|
rollData.defender = objectDefender;
|
||||||
target: target,
|
rollData.rollAttribute = 'agility';
|
||||||
isRanged: BoLUtility.isRangedWeapon( weapon ),
|
rollData.attributes = duplicate(this.data.data.attributes); // For damage bonus
|
||||||
defender: objectDefender,
|
rollData.rangeModifier = 0;
|
||||||
boons : this.getBoons(),
|
|
||||||
flaws : this.getFlaws(),
|
|
||||||
rollAttribute: 'agility',
|
|
||||||
attributes: duplicate(this.data.data.attributes), // For damage bonus
|
|
||||||
d6Bonus: 0,
|
|
||||||
d6Malus: 0,
|
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
|
||||||
title: weapon.name,
|
|
||||||
rangeModifier: 0,
|
|
||||||
optionsBonusMalus: BoLUtility.buildListOptions(-8, +2),
|
|
||||||
bonusMalus: 0
|
|
||||||
}
|
|
||||||
if ( weapon.data.type == 'melee') {
|
if ( weapon.data.type == 'melee') {
|
||||||
rollData.aptitude = duplicate(this.data.data.aptitudes.melee);
|
rollData.aptitude = duplicate(this.data.data.aptitudes.melee);
|
||||||
} else {
|
} else {
|
||||||
|
@ -14,7 +14,8 @@ Hooks.once('init', async function () {
|
|||||||
|
|
||||||
game.bol = {
|
game.bol = {
|
||||||
BoLActor,
|
BoLActor,
|
||||||
BoLItem
|
BoLItem,
|
||||||
|
config:BOL
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,12 +31,14 @@ export class BoLItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
getData() {
|
getData() {
|
||||||
const objectData = BoLUtility.data(this.object);
|
const objectData = BoLUtility.data(this.item);
|
||||||
|
// const objectData = BoLUtility.data(this.object);
|
||||||
|
|
||||||
let itemData = foundry.utils.deepClone(BoLUtility.templateData(this.object));
|
let itemData = foundry.utils.deepClone(BoLUtility.templateData(this.item));
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
id: this.id,
|
id: this.id,
|
||||||
|
config: game.bol.config,
|
||||||
type: objectData.type,
|
type: objectData.type,
|
||||||
img: objectData.img,
|
img: objectData.img,
|
||||||
name: objectData.name,
|
name: objectData.name,
|
||||||
@ -46,7 +48,9 @@ export class BoLItemSheet extends ItemSheet {
|
|||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM,
|
||||||
|
itemProperties : this.item.itemProperties
|
||||||
|
|
||||||
}
|
}
|
||||||
console.log("ITEMDATA", formData);
|
console.log("ITEMDATA", formData);
|
||||||
this.options.editable = !(this.object.data.origin == "embeddedItem");
|
this.options.editable = !(this.object.data.origin == "embeddedItem");
|
||||||
@ -73,4 +77,5 @@ export class BoLItemSheet extends ItemSheet {
|
|||||||
if (!this.options.editable) return;
|
if (!this.options.editable) return;
|
||||||
// Roll handlers, click handlers, etc. would go here.
|
// Roll handlers, click handlers, etc. would go here.
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,33 @@ export class BoLItem extends Item {
|
|||||||
*/
|
*/
|
||||||
prepareData() {
|
prepareData() {
|
||||||
super.prepareData();
|
super.prepareData();
|
||||||
console.debug("Item prepareData");
|
// console.debug("Item prepareData");
|
||||||
// Get the Item's data
|
// Get the Item's data
|
||||||
const itemData = this.data;
|
const itemData = this.data;
|
||||||
console.log(itemData);
|
// console.log(itemData);
|
||||||
const actorData = this.actor ? this.actor.data : {};
|
const actorData = this.actor ? this.actor.data : {};
|
||||||
const data = itemData.data;
|
const data = itemData.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get properties() {
|
||||||
|
return this.data.properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Array of item properties which are used in the small sidebar of the description tab
|
||||||
|
* @return {Array}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
get itemProperties() {
|
||||||
|
const props = [];
|
||||||
|
if ( this.data.type === "item" ) {
|
||||||
|
const entries = Object.entries(this.data.data.properties);
|
||||||
|
props.push(...entries.filter(e => e[1] === true).map(e => { return game.bol.config.itemProperties[e[0]] }));
|
||||||
|
}
|
||||||
|
return props.filter(p => !!p);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,12 +33,13 @@ export class BoLUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildListOptions(min, max) {
|
static buildListOptions(min, max) {
|
||||||
let options = ""
|
let options = [];
|
||||||
for (let i = min; i <= max; i++) {
|
for (let i = min; i <= max; i++) {
|
||||||
options += `<option value="${i}">${i}</option>`
|
options.push(`<option value="${i}">${i}</option>`);
|
||||||
}
|
}
|
||||||
return options;
|
return options.join("");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async showDiceSoNice(roll, rollMode) {
|
static async showDiceSoNice(roll, rollMode) {
|
||||||
if (game.modules.get("dice-so-nice")?.active) {
|
if (game.modules.get("dice-so-nice")?.active) {
|
||||||
|
@ -19,7 +19,7 @@ BOL.itemCategories = {
|
|||||||
"other" : "BOL.itemCategory.other"
|
"other" : "BOL.itemCategory.other"
|
||||||
}
|
}
|
||||||
|
|
||||||
BOL.equipmentCategory = {
|
BOL.equipmentCategories = {
|
||||||
"weapon" : "BOL.equipmentCategory.weapon",
|
"weapon" : "BOL.equipmentCategory.weapon",
|
||||||
"protection" : "BOL.equipmentCategory.protection",
|
"protection" : "BOL.equipmentCategory.protection",
|
||||||
"jewel" : "BOL.equipmentCategory.jewel",
|
"jewel" : "BOL.equipmentCategory.jewel",
|
||||||
@ -30,20 +30,20 @@ BOL.equipmentCategory = {
|
|||||||
"other" : "BOL.equipmentCategory.other"
|
"other" : "BOL.equipmentCategory.other"
|
||||||
}
|
}
|
||||||
|
|
||||||
BOL.protectionCategory = {
|
BOL.protectionCategories = {
|
||||||
"armor" : "BOL.protectionCategory.armor",
|
"armor" : "BOL.protectionCategory.armor",
|
||||||
"shield" : "BOL.protectionCategory.shield",
|
"shield" : "BOL.protectionCategory.shield",
|
||||||
"helm" : "BOL.protectionCategory.helm",
|
"helm" : "BOL.protectionCategory.helm",
|
||||||
"other" : "BOL.protectionCategory.other"
|
"other" : "BOL.protectionCategory.other"
|
||||||
}
|
}
|
||||||
|
|
||||||
BOL.weaponCategory = {
|
BOL.weaponCategories = {
|
||||||
"melee" : "BOL.weaponCategory.melee",
|
"melee" : "BOL.weaponCategory.melee",
|
||||||
"ranged" : "BOL.weaponCategory.ranged",
|
"ranged" : "BOL.weaponCategory.ranged",
|
||||||
"other" : "BOL.weaponCategory.other"
|
"other" : "BOL.weaponCategory.other"
|
||||||
}
|
}
|
||||||
|
|
||||||
BOL.itemProperty = {
|
BOL.itemProperties = {
|
||||||
"equipable" : "BOL.itemProperty.equipable",
|
"equipable" : "BOL.itemProperty.equipable",
|
||||||
"protection" : "BOL.itemProperty.protection",
|
"protection" : "BOL.itemProperty.protection",
|
||||||
"blocking" : "BOL.itemProperty.blocking",
|
"blocking" : "BOL.itemProperty.blocking",
|
||||||
@ -61,10 +61,10 @@ BOL.itemProperty = {
|
|||||||
"ranged" : "BOL.itemProperty.ranged",
|
"ranged" : "BOL.itemProperty.ranged",
|
||||||
"weapon" : "BOL.itemProperty.weapon",
|
"weapon" : "BOL.itemProperty.weapon",
|
||||||
"reloadable" : "BOL.itemProperty.reloadable",
|
"reloadable" : "BOL.itemProperty.reloadable",
|
||||||
"worn" : "BOL.itemProperty.worn"
|
"worn" : "BOL.itemProperty.worn",
|
||||||
}
|
}
|
||||||
|
|
||||||
BOL.itemStat = {
|
BOL.itemStats = {
|
||||||
"quantity" : "BOL.itemStat.quantity",
|
"quantity" : "BOL.itemStat.quantity",
|
||||||
"weight" : "BOL.itemStat.weight",
|
"weight" : "BOL.itemStat.weight",
|
||||||
"price" : "BOL.itemStat.price",
|
"price" : "BOL.itemStat.price",
|
||||||
@ -93,6 +93,15 @@ BOL.itemSoak = {
|
|||||||
"value" : "BOL.itemSoak.value"
|
"value" : "BOL.itemSoak.value"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOL.featureSubtypes = {
|
||||||
|
"origin" : "BOL.featureSubtypes.origin",
|
||||||
|
"race" : "BOL.featureSubtypes.race",
|
||||||
|
"career" : "BOL.featureSubtypes.career",
|
||||||
|
"boon" : "BOL.featureSubtypes.boon",
|
||||||
|
"flaw" : "BOL.featureSubtypes.flaw",
|
||||||
|
"language" : "BOL.featureSubtypes.language"
|
||||||
|
}
|
||||||
|
|
||||||
BOL.itemIcons = {
|
BOL.itemIcons = {
|
||||||
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
|
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
|
||||||
"capacity": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
|
"capacity": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
|
||||||
|
@ -5,8 +5,9 @@ export class BoLRollDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async create(actor, rollData ) {
|
static async create(actor, rollData ) {
|
||||||
|
|
||||||
let options = { classes: ["BoL"], width: 600, height: 320, 'z-index': 99999 };
|
let options = { classes: ["bol", "dialog"], width: 600, height: 320, 'z-index': 99999 };
|
||||||
let html = await renderTemplate(`systems/bol/templates/roll/roll-dialog-${rollData.mode}.hbs`, rollData);
|
// let html = await renderTemplate(`systems/bol/templates/roll/roll-dialog-${rollData.mode}.hbs`, rollData);
|
||||||
|
let html = await renderTemplate(`systems/bol/templates/roll/roll-dialog.hbs`, rollData);
|
||||||
return new BoLRollDialog(actor, rollData, html, options );
|
return new BoLRollDialog(actor, rollData, html, options );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,10 +17,16 @@ export const preloadHandlebarsTemplates = async function () {
|
|||||||
"systems/bol/templates/item/parts/item-header.hbs",
|
"systems/bol/templates/item/parts/item-header.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/feature-properties.hbs",
|
"systems/bol/templates/item/parts/properties/feature-properties.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/equipment-properties.hbs",
|
"systems/bol/templates/item/parts/properties/equipment-properties.hbs",
|
||||||
|
"systems/bol/templates/item/parts/properties/protection-properties.hbs",
|
||||||
|
"systems/bol/templates/item/parts/properties/shield-properties.hbs",
|
||||||
|
"systems/bol/templates/item/parts/properties/weapon-properties.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/armor-properties.hbs",
|
"systems/bol/templates/item/parts/properties/armor-properties.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/melee-properties.hbs",
|
"systems/bol/templates/item/parts/properties/melee-properties.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/ranged-properties.hbs",
|
"systems/bol/templates/item/parts/properties/ranged-properties.hbs",
|
||||||
"systems/bol/templates/item/parts/properties/item-properties.hbs"
|
"systems/bol/templates/item/parts/properties/item-properties.hbs",
|
||||||
|
// DIALOGS
|
||||||
|
"systems/bol/templates/roll/parts/roll-dialog-modifiers.hbs",
|
||||||
|
"systems/bol/templates/roll/parts/roll-dialog-attribute.hbs"
|
||||||
];
|
];
|
||||||
|
|
||||||
// Load the template parts
|
// Load the template parts
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
{"_id":"cS2LGlXLZegvRGOo","name":"Arbalète lourde","type":"item","img":"icons/weapons/crossbows/crossbow-golden-bolt.webp","data":{"subtype":"weapon","description":"<h1>Arbalète lourde</h1><p>plus lourde et plus puissante qu’une arbalète normale, l’arbalète lourde est peu usitée en Lémurie, sauf comme arme de siège portative. Il faut 2 rounds complets pour charger une arbalète lourde.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"2h":true,"damage":"d6B","range":45,"reload":2},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"cS2LGlXLZegvRGOo","name":"Arbalète lourde","type":"item","img":"icons/weapons/crossbows/crossbow-golden-bolt.webp","data":{"subtype":"weapon","description":"<h1>Arbalète lourde</h1><p>plus lourde et plus puissante qu’une arbalète normale, l’arbalète lourde est peu usitée en Lémurie, sauf comme arme de siège portative. Il faut 2 rounds complets pour charger une arbalète lourde.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"2h":true,"damage":"d6B","range":45,"reload":2},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"d7UV55xQXXfMiGQI","name":"Fronde","type":"item","img":"icons/weapons/slings/slingshot-wood.webp","data":{"subtype":"weapon","description":"<h1>Fronde</h1><p>simple pièce de cuir équipée de lanières, une fronde permet de projeter de petites pierres ou des billes de plomb avec une certaine force. C’est une arme peu coûteuse et facile à fabriquer. Il existe une version plus puissante, montée au bout d’un bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"damage":"d6M","range":9,"reload":0},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"d7UV55xQXXfMiGQI","name":"Fronde","type":"item","img":"icons/weapons/slings/slingshot-wood.webp","data":{"subtype":"weapon","description":"<h1>Fronde</h1><p>simple pièce de cuir équipée de lanières, une fronde permet de projeter de petites pierres ou des billes de plomb avec une certaine force. C’est une arme peu coûteuse et facile à fabriquer. Il existe une version plus puissante, montée au bout d’un bâton (ce qui en fait une arme à deux mains), qui permet des tirs à plus longue portée.</p>","properties":{"ranged":true,"melee":false,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":true,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"damage":"d6M","range":9,"reload":0},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"jjdzMgx8zru2A28V","name":"Armure moyenne","type":"item","img":"icons/equipment/chest/breastplate-layered-leather-studded-black.webp","data":{"subtype":"armor","description":"<h1>Armure moyenne</h1><p>Ce type d’armure, compromis entre la maniabilité de l’armure légère et la protection de l’armure lourde, est le choix favori des aventuriers qui s’attendent à affronter des combats de manière régulière. Il peut s’agir d’une armure de cuir couvrant la majeure partie du corps, avec des parties en cuir bouilli pour protéger les points vitaux, ou d’une armure mêlant le cuir et la cotte de mailles, ou encore d’une cuirasse en acier, simple mais efficace.</p><p>Un personnage portant une armure moyenne peut généralement en ôter certaines parties pour la transformer en armure légère s’il le souhaite.</p><h2>Effets des armures moyennes</h2><ul><li>protection d6-2 (0-4 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure moyenne offre 2 points de protection ;</li><li>le port d’une armure moyenne s’accompagne d’un malus de -1 en agilité du fait de l’encombrement ;</li><li>le port d’une armure moyenne handicape un sorcier et augmente de 2 points de pouvoir le coût de ses sorts.</li></ul>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":true,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"modifiers":{"social":true,"agility":-1,"powercost":2},"soak":{"formula":"d6-2","value":2}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"jjdzMgx8zru2A28V","name":"Armure moyenne","type":"item","img":"icons/equipment/chest/breastplate-layered-leather-studded-black.webp","data":{"subtype":"armor","description":"<h1>Armure moyenne</h1><p>Ce type d’armure, compromis entre la maniabilité de l’armure légère et la protection de l’armure lourde, est le choix favori des aventuriers qui s’attendent à affronter des combats de manière régulière. Il peut s’agir d’une armure de cuir couvrant la majeure partie du corps, avec des parties en cuir bouilli pour protéger les points vitaux, ou d’une armure mêlant le cuir et la cotte de mailles, ou encore d’une cuirasse en acier, simple mais efficace.</p><p>Un personnage portant une armure moyenne peut généralement en ôter certaines parties pour la transformer en armure légère s’il le souhaite.</p><h2>Effets des armures moyennes</h2><ul><li>protection d6-2 (0-4 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure moyenne offre 2 points de protection ;</li><li>le port d’une armure moyenne s’accompagne d’un malus de -1 en agilité du fait de l’encombrement ;</li><li>le port d’une armure moyenne handicape un sorcier et augmente de 2 points de pouvoir le coût de ses sorts.</li></ul>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":true,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"modifiers":{"social":true,"agility":-1,"powercost":2},"soak":{"formula":"d6-2","value":2}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"me4GVat8gcs94hri","name":"Amure légère","type":"item","img":"icons/equipment/chest/shirt-simple-grey.webp","data":{"subtype":"armor","description":"<h1>Amure légère</h1><p>Si votre personnage préfère éviter les combats mais sait qu’il risque de ne pas y couper, vous souhaiterez peut-être qu’il bénéficie au moins d’une petite protection. La catégorie des armures légères comprend les différentes sortes d’armures de cuir et les chemises de mailles. Votre personnage pourrait ainsi porter un robuste gilet et des brassards en cuir, ou un pourpoint doublé, accompagné de bottes et de gants en cuir souple. À moins que vous ne décidiez qu’il soit vêtu d’une légère chemise de mailles et de rien d’autre.</p><p>Une armure légère est généralement dissimulable (à moins d’être inspecté de près ou d’avoir affaire à l’œil exercé d’un soldat vétéran) et ne vous désigne pas au premier regard comme un guerrier.</p><h2>Effets des armures légères</h2><ul><li>protection d6-3 (0-3 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure légère offre 1 point de protection ;</li><li>le port d’une armure légère handicape un sorcier et augmente de 1 point de pouvoir le coût de ses sorts.</li></ul>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":true,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":true,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"modifiers":{"social":true,"agility":-1,"powercost":1},"soak":{"formula":"d6-3","value":1}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"me4GVat8gcs94hri","name":"Armure légère","type":"item","img":"icons/equipment/chest/shirt-simple-grey.webp","data":{"subtype":"armor","description":"<h1>Amure légère</h1><p>Si votre personnage préfère éviter les combats mais sait qu’il risque de ne pas y couper, vous souhaiterez peut-être qu’il bénéficie au moins d’une petite protection. La catégorie des armures légères comprend les différentes sortes d’armures de cuir et les chemises de mailles. Votre personnage pourrait ainsi porter un robuste gilet et des brassards en cuir, ou un pourpoint doublé, accompagné de bottes et de gants en cuir souple. À moins que vous ne décidiez qu’il soit vêtu d’une légère chemise de mailles et de rien d’autre.</p><p>Une armure légère est généralement dissimulable (à moins d’être inspecté de près ou d’avoir affaire à l’œil exercé d’un soldat vétéran) et ne vous désigne pas au premier regard comme un guerrier.</p><h2>Effets des armures légères</h2><ul><li>protection d6-3 (0-3 points de réduction des dégâts) ;</li><li>si vous préférez un chiffre fixe, une armure légère offre 1 point de protection ;</li><li>le port d’une armure légère handicape un sorcier et augmente de 1 point de pouvoir le coût de ses sorts.</li></ul>","properties":{"d6B":false,"d6M":false,"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":true,"helm":false,"shield":false,"equipable":true,"consumable":false,"magical":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"throwing":false,"stackable":false,"activable":false,"concealable":true,"ignoreshield":false,"powder":false,"bashing":false,"modifiers":{"social":true,"agility":-1,"powercost":1},"soak":{"formula":"d6-3","value":1}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"obNHhN1wvcWFaVrS","name":"Petit bouclier","type":"item","img":"icons/equipment/shield/buckler-wooden-boss-brown.webp","data":{"subtype":"shield","description":"<h1>Petit bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que s’il est conscient de l’attaque qui le vise, et donc s’il est prêt à la parer.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":false,"helm":false,"shield":true,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"blocking":{"malus":-1,"nbAttacksPerRound":"1"}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"obNHhN1wvcWFaVrS","name":"Petit bouclier","type":"item","img":"icons/equipment/shield/buckler-wooden-boss-brown.webp","data":{"subtype":"shield","description":"<h1>Petit bouclier</h1><p>Un personnage ne peut bénéficier de son bouclier que s’il est conscient de l’attaque qui le vise, et donc s’il est prêt à la parer.</p>","properties":{"ranged":false,"melee":false,"spell":false,"protection":true,"weapon":false,"armor":false,"helm":false,"shield":true,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"blocking":{"malus":-1,"nbAttacksPerRound":"1"}},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"pncWIrD5z7mk6dbc","name":"Massue","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","data":{"subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont l’extrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, d’où son autre nom de casse-tête.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"throwable":true,"range":3,"damage":"d6"},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"pncWIrD5z7mk6dbc","name":"Massue","type":"item","img":"icons/weapons/clubs/club-simple-stone-purple.webp","data":{"subtype":"weapon","description":"<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont l’extrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, d’où son autre nom de casse-tête.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":false,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"throwable":true,"range":3,"damage":"d6"},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
{"_id":"qG5Jlhjjh7vDtBB1","name":"Fléau","type":"item","img":"icons/weapons/maces/flail-triple-grey.webp","data":{"subtype":"weapon","description":"<h1>Fléau</h1><p>un fléau consiste en un manche de bois prolongé d’une chaîne, à l’extrémité de laquelle est fixée une boule hérissée de pointes métalliques. Les fléaux ne sont pas des armes employées couramment en Lémurie, mais les gladiateurs en utilisent parfois dans les arènes. Les attaques au fléau ignorent le bonus en défense accordé par l’emploi d’un bouclier.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":true,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"damage":"d6"},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
{"_id":"qG5Jlhjjh7vDtBB1","name":"Fléau","type":"item","img":"icons/weapons/maces/flail-triple-grey.webp","data":{"subtype":"weapon","description":"<h1>Fléau</h1><p>un fléau consiste en un manche de bois prolongé d’une chaîne, à l’extrémité de laquelle est fixée une boule hérissée de pointes métalliques. Les fléaux ne sont pas des armes employées couramment en Lémurie, mais les gladiateurs en utilisent parfois dans les arènes. Les attaques au fléau ignorent le bonus en défense accordé par l’emploi d’un bouclier.</p>","properties":{"ranged":false,"melee":true,"spell":false,"protection":false,"weapon":true,"armor":false,"helm":false,"shield":false,"equipable":true,"stackable":false,"activable":false,"consumable":false,"magical":false,"concealable":false,"ignoreshield":true,"2H":false,"reloadable":false,"bow":false,"crossbow":false,"powder":false,"throwing":false,"bashing":false,"damage":"d6"},"quantity":null,"weight":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"EEnCVoPAR7pMjRym":3},"flags":{}}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
@import "global/forms";
|
@import "global/forms";
|
||||||
@import "global/typography";
|
@import "global/typography";
|
||||||
@import "global/item-list";
|
@import "global/item-list";
|
||||||
|
@import "global/colors";
|
||||||
|
|
||||||
@logo-width: 190px;
|
@logo-width: 190px;
|
||||||
@logo-height: 115px;
|
@logo-height: 115px;
|
||||||
@ -11,7 +12,6 @@
|
|||||||
@attributes-height: 64px;
|
@attributes-height: 64px;
|
||||||
@footer-height: 30px;
|
@footer-height: 30px;
|
||||||
@sidebar-width: 250px;
|
@sidebar-width: 250px;
|
||||||
@colorOlive: #4b4a44;
|
|
||||||
|
|
||||||
.bol {
|
.bol {
|
||||||
&.sheet {
|
&.sheet {
|
||||||
@ -29,6 +29,8 @@
|
|||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
&.dialog {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor, .editor-content {
|
.editor, .editor-content {
|
||||||
@ -49,9 +51,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.chat-message .chat-icon {
|
.chat-message .chat-icon {
|
||||||
border: 0;
|
flex : 0 0 64px;
|
||||||
padding: 2px 6px 2px 2px;
|
border: 1px outset lightgray;
|
||||||
float: left;
|
//padding: 2px 6px 2px 2px;
|
||||||
|
//float: left;
|
||||||
width: 64px;
|
width: 64px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
.window-content {
|
.window-content {
|
||||||
|
|
||||||
|
form {
|
||||||
background-image: url("/systems/bol/ui/logo.webp");
|
background-image: url("/systems/bol/ui/logo.webp");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: @logo-width @logo-height;
|
background-size: @logo-width @logo-height;
|
||||||
|
background-color: white;
|
||||||
|
|
||||||
form {
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
//background-color: green;
|
//background-color: green;
|
||||||
//background-color: red;
|
//background-color: red;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.window-content {
|
.window-content {
|
||||||
background: white;
|
//background: white;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
h1 {
|
||||||
|
input.itemname {
|
||||||
|
font-family: @font-charname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-properties {
|
||||||
|
flex: 0 0 150px;
|
||||||
|
margin: 5px 5px 5px 0;
|
||||||
|
padding-right: 5px;
|
||||||
|
border-right: @borderGroove;
|
||||||
|
|
||||||
|
.form-group {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
label {
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.properties-list {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 3px 0;
|
||||||
|
padding: 0 2px;
|
||||||
|
background: rgba(0, 0, 0, 0.05);
|
||||||
|
border: @borderGroove;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
137
styles/global/colors.less
Normal file
137
styles/global/colors.less
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
@c-white: #fff;
|
||||||
|
@c-black: #000;
|
||||||
|
//@c-bright: whitesmoke;
|
||||||
|
@c-bright: #E2F1F1;
|
||||||
|
@c-lightg: lightgray;
|
||||||
|
@c-darkg: #23221d;
|
||||||
|
@c-dark: #3c3c3c;
|
||||||
|
@c-darkslate: darkslategray;
|
||||||
|
@c-darkgreen: #003c1e;
|
||||||
|
@c-lightgreen: mintcream;
|
||||||
|
@c-darkblue: midnightblue;
|
||||||
|
@c-blue: #009ee0;
|
||||||
|
@c-green: #44a12b;
|
||||||
|
@c-red: #cd071e;
|
||||||
|
@c-purple: purple;
|
||||||
|
@c-darkred: darkred;
|
||||||
|
@c-border:#736953a6;
|
||||||
|
//@c-darkbrown: rgba(70, 67, 49, 0.93);
|
||||||
|
@c-darkbrown: #464331c4;
|
||||||
|
@c-shadow:#00000052;
|
||||||
|
@c-linkshadow : gray;
|
||||||
|
|
||||||
|
@colorDark: #191813;
|
||||||
|
@colorFaint: #c9c7b8;
|
||||||
|
@colorBeige: #b5b3a4;
|
||||||
|
@colorTan: #7a7971;
|
||||||
|
@colorOlive: #4b4a44;
|
||||||
|
@colorCrimson: #44191A;
|
||||||
|
@lightGreen: #609b60;
|
||||||
|
@borderGroove: 1px groove #eeede0;
|
||||||
|
@borderGrooveGreen: 2px groove #003700;
|
||||||
|
//@borderGrooveOriginal: 2px groove #eeede0;
|
||||||
|
|
||||||
|
@colorSuccess : darkgreen;
|
||||||
|
@colorCritical : green;
|
||||||
|
@colorFailure : darkred;
|
||||||
|
@colorFumble : red;
|
||||||
|
@colorDamage : orangered;
|
||||||
|
@colorRoll : darkslategrey;
|
||||||
|
|
||||||
|
@colorGold : #caad27;
|
||||||
|
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
/* Premade colors */
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
|
||||||
|
.light {
|
||||||
|
//color:whitesmoke;
|
||||||
|
//color:antiquewhite;
|
||||||
|
color: @c-lightg;
|
||||||
|
}
|
||||||
|
.bg-light {
|
||||||
|
background: @c-lightg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.darkgray {
|
||||||
|
color: @c-darkg;
|
||||||
|
}
|
||||||
|
.bg-darkgray {
|
||||||
|
background: @c-darkg;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.darkbrown {
|
||||||
|
color: @c-darkbrown;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-darkbrown {
|
||||||
|
background: @c-darkbrown;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.darkslate {
|
||||||
|
color: @c-darkslate;
|
||||||
|
}
|
||||||
|
.bg-darkslate {
|
||||||
|
background: @c-darkslate;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
.darkgreen {
|
||||||
|
color: @c-darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-darkgreen {
|
||||||
|
background: @c-darkgreen;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.darkblue {
|
||||||
|
color: @c-darkblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-darkblue {
|
||||||
|
background: @c-darkblue;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue {
|
||||||
|
color: @c-blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-blue {
|
||||||
|
background: @c-blue;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: @c-green;
|
||||||
|
}
|
||||||
|
.bg-green {
|
||||||
|
background: @c-green;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.black {
|
||||||
|
color: @c-black;
|
||||||
|
}
|
||||||
|
.bg-black {
|
||||||
|
background: @c-black;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
color: @c-red;
|
||||||
|
}
|
||||||
|
.bg-red {
|
||||||
|
background: @c-red;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.purple {
|
||||||
|
color: @c-purple;
|
||||||
|
}
|
||||||
|
.bg-purple {
|
||||||
|
background: @c-purple;
|
||||||
|
color: @c-white;
|
||||||
|
}
|
@ -200,4 +200,8 @@
|
|||||||
input::placeholder {
|
input::placeholder {
|
||||||
color: lightgray;
|
color: lightgray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.property {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
}
|
}
|
@ -6,7 +6,15 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.item-header {
|
.item-header {
|
||||||
font-family: @font-handwrite;
|
font-family: @font-primary;
|
||||||
|
font-size: 1em;
|
||||||
|
//font-weight: 500;
|
||||||
|
color: @colorOlive;
|
||||||
|
background-color: lightgray;
|
||||||
|
.item-name {
|
||||||
|
font-family: @font-tertiary;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
@ -19,14 +27,40 @@
|
|||||||
|
|
||||||
.item-image {
|
.item-image {
|
||||||
flex: 0 0 30px;
|
flex: 0 0 30px;
|
||||||
margin-right: 5px;
|
padding: 0;
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
height:30px;
|
||||||
|
width:30px;
|
||||||
|
min-height:30px;
|
||||||
|
min-width:30px;
|
||||||
img {
|
img {
|
||||||
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border: none;
|
border: none;
|
||||||
|
height:30px;
|
||||||
|
width:30px;
|
||||||
|
min-height:30px;
|
||||||
|
min-width:30px;
|
||||||
|
}
|
||||||
|
&.roll-weapon,
|
||||||
|
&.roll-career {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: url("../../../icons/svg/dice-target.svg") !important;
|
||||||
|
background-size: 30px 30px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
cursor: pointer;
|
||||||
|
&:hover {
|
||||||
|
background-color: gray;
|
||||||
|
img {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-name {
|
.item-name,
|
||||||
|
.item-field {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,19 +77,5 @@
|
|||||||
.item-control {
|
.item-control {
|
||||||
color: @colorOlive;
|
color: @colorOlive;
|
||||||
}
|
}
|
||||||
//.item-buttons {
|
|
||||||
// display: flex;
|
|
||||||
// flex-wrap: wrap;
|
|
||||||
// flex-direction: row;
|
|
||||||
// align-items: center;
|
|
||||||
// flex: 2;
|
|
||||||
// justify-content: flex-start;
|
|
||||||
//}
|
|
||||||
//.item-button {
|
|
||||||
// line-height: 1;
|
|
||||||
// font-size: 11px;
|
|
||||||
// flex: none;
|
|
||||||
// width: auto;
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
@font-primary: 'Signika', sans-serif;
|
@font-primary: 'Signika', sans-serif;
|
||||||
@font-secondary: 'Contrail One', cursive;
|
@font-secondary: 'Contrail One', cursive;
|
||||||
@font-tertiary: "Wolfsbane2Expanded", serif;
|
@font-tertiary: "Wolfsbane2Expanded", cursive;
|
||||||
|
@font-header: "Wolfsbane2", cursive;
|
||||||
@font-charname: "Wolfsbane2Expanded", cursive;
|
@font-charname: "Wolfsbane2Expanded", cursive;
|
||||||
@font-handwrite: "CCMeanwhile", cursive;
|
@font-handwrite: "CCMeanwhile", cursive;
|
||||||
|
@ -74,8 +74,8 @@
|
|||||||
],
|
],
|
||||||
"gridDistance": 1.5,
|
"gridDistance": 1.5,
|
||||||
"gridUnits": "m",
|
"gridUnits": "m",
|
||||||
"primaryTokenAttribute": "traits.hp",
|
"primaryTokenAttribute": "resources.hp",
|
||||||
"secondaryTokenAttribute": "traits.hero",
|
"secondaryTokenAttribute": "resources.hero",
|
||||||
"url": "https://github.com/ZigmundKreud/bol",
|
"url": "https://github.com/ZigmundKreud/bol",
|
||||||
"manifest": "https://raw.githubusercontent.com/ZigmundKreud/bol/master/system.json",
|
"manifest": "https://raw.githubusercontent.com/ZigmundKreud/bol/master/system.json",
|
||||||
"download": "https://github.com/ZigmundKreud/bol/archive/refs/heads/master.zip",
|
"download": "https://github.com/ZigmundKreud/bol/archive/refs/heads/master.zip",
|
||||||
|
@ -119,6 +119,12 @@
|
|||||||
"label" : "BOL.resources.power",
|
"label" : "BOL.resources.power",
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"max": 0
|
"max": 0
|
||||||
|
},
|
||||||
|
"villainy" : {
|
||||||
|
"key" : "villainy",
|
||||||
|
"label" : "BOL.resources.villainy",
|
||||||
|
"value": 5,
|
||||||
|
"max": 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,15 +134,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"types": ["item", "feature", "weapon", "armor"],
|
"types": ["item", "feature"],
|
||||||
"templates": {
|
"templates": {
|
||||||
"base": {
|
"base": {
|
||||||
|
"category" : null,
|
||||||
"subtype" : "default",
|
"subtype" : "default",
|
||||||
"description": "",
|
"description": "",
|
||||||
"properties" : {
|
"properties" : {}
|
||||||
"d6B": false,
|
|
||||||
"d6M": false
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"equipment" : {
|
"equipment" : {
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
@ -164,9 +168,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"item": {
|
"item": {
|
||||||
"templates": ["base", "equipment"],
|
"templates": ["base", "equipment"]
|
||||||
"quantity": 1,
|
|
||||||
"weight": 0
|
|
||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
"type": "",
|
"type": "",
|
||||||
@ -197,7 +199,11 @@
|
|||||||
},
|
},
|
||||||
"feature": {
|
"feature": {
|
||||||
"rank": 0,
|
"rank": 0,
|
||||||
"templates": ["base"]
|
"templates": ["base"],
|
||||||
|
"properties" : {
|
||||||
|
"d6B": false,
|
||||||
|
"d6M": false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,23 @@
|
|||||||
|
{{#each data.combat as | combat id|}}
|
||||||
|
{{#if (gt (count combat.items) 0)}}
|
||||||
<ol class="items-list">
|
<ol class="items-list">
|
||||||
<li class="item flexrow item-header">
|
<li class="item flexrow item-header">
|
||||||
<div class="item-name">{{localize "BOL.ui.actions"}}</div>
|
<div class="item-name flex2">{{localize combat.label}}</div>
|
||||||
<div class="item-name">{{localize "BOL.ui.damages"}}</div>
|
{{#if protection}}<div class="item-field">{{localize "BOL.ui.protection"}}</div>{{/if}}
|
||||||
|
{{#if blocking}}<div class="item-field">{{localize "BOL.ui.blocking"}}</div>{{/if}}
|
||||||
|
{{#if weapon}}<div class="item-field">{{localize "BOL.ui.damages"}}</div>{{/if}}
|
||||||
|
{{#if ranged}}<div class="item-field">{{localize "BOL.ui.range"}}</div>{{else}}<div class="item-field"></div>{{/if}}
|
||||||
</li>
|
</li>
|
||||||
{{#each data.weapons as |weapon id|}}
|
{{#each combat.items as |item id|}}
|
||||||
<li class="item flexrow" data-item-id="{{weapon._id}}">
|
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||||
<div class="item-image"><img src="{{weapon.img}}" title="{{weapon.name}}" width="24" height="24"/></div>
|
<div class="item-image {{#if ../weapon}}roll-weapon{{/if}}"><img src="{{item.img}}" title="{{item.name}}"/></div>
|
||||||
<h4 class="item-name"><a class="roll-weapon">{{weapon.name}}</a></h4>
|
<h4 class="item-name flex2"><a class="item-edit">{{item.name}}</a></h4>
|
||||||
<span class="item-name">{{weapon.data.damage}}</span>
|
{{#if ../protection}}<div class="item-field">{{item.data.properties.soak.value}}</div>{{/if}}
|
||||||
<div class="item-controls-2">
|
{{#if ../blocking}}<div class="item-field">{{item.data.properties.blocking.malus}}</div>{{/if}}
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
{{#if ../weapon}}<div class="item-field">{{item.data.properties.damage}}</div>{{/if}}
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
{{#if ../ranged}}<div class="item-field">{{item.data.properties.range}}</div>{{else}}<div class="item-field"></div>{{/if}}
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
@ -1,25 +1,22 @@
|
|||||||
<ol class="items-list">
|
<ol class="items-list">
|
||||||
<li class="item flexrow item-header">
|
<li class="item flexrow item-header">
|
||||||
<div class="item-name flex1">{{localize "BOL.itemCategory.equipment"}}</div>
|
<div class="item-name flex3">{{localize "BOL.itemCategory.equipment"}}</div>
|
||||||
<!-- <div class="item-controls">-->
|
<div class="item-field">{{localize "BOL.ui.quantity"}}</div>
|
||||||
<!-- <a class="item-control item-create" title="Create item" data-type="item"><i class="fas fa-plus"></i> Add item</a>-->
|
<div class="item-field"></div>
|
||||||
<!-- </div>-->
|
|
||||||
</li>
|
</li>
|
||||||
{{#each data.equipment as |item id|}}
|
{{#each data.equipment as |item id|}}
|
||||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||||
<div class="item-image"><img src="{{item.img}}" title="{{item.name}}" width="24" height="24"/></div>
|
<div class="item-image"><img src="{{item.img}}" title="{{item.name}}"/></div>
|
||||||
<h4 class="item-name flex1">{{item.name}}</h4>
|
<h4 class="item-name flex3"><a class="item-edit">{{item.name}}</a></h4>
|
||||||
|
<div class="item-field">{{item.data.quantity}}</div>
|
||||||
{{#if data.properties.equipable}}
|
{{#if data.properties.equipable}}
|
||||||
<div class="item-controls-3">
|
|
||||||
{{#if data.worn}}
|
{{#if data.worn}}
|
||||||
<a class="item-control item-equip" title="{{localize "BOL.ui.unequip"}}"><i class="fas fa-shield-alt"></i></a>
|
<div class="item-controls-1"><a class="item-control item-equip" title="{{localize "BOL.ui.unequip"}}"><i class="fas fa-shield-alt"></i></a></div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<a class="item-control item-equip" title="{{localize "BOL.ui.equip"}}" style="color:lightgray;"><i class="fas fa-shield-alt"></i></a>
|
<div class="item-controls-1"><a class="item-control item-equip" title="{{localize "BOL.ui.equip"}}" style="color:lightgray;"><i class="fas fa-shield-alt"></i></a></div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else}}
|
|
||||||
<div class="item-controls-2">
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<a class="item-control item-edit" title="{{localize "BOL.ui.edit"}}"><i class="fas fa-edit"></i></a>
|
<div class="item-controls-1">
|
||||||
<a class="item-control item-delete" title="{{localize "BOL.ui.delete"}}"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="{{localize "BOL.ui.delete"}}"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
{{#each data.features as | features id|}}
|
{{#each data.features as | features key|}}
|
||||||
{{#if (gt (count features.items) 0)}}
|
{{#if (gt (count features.items) 0)}}
|
||||||
<ol class="items-list">
|
<ol class="items-list">
|
||||||
<li class="item flexrow item-header">
|
<li class="item flexrow item-header">
|
||||||
<div class="item-name flex3">{{localize features.label}}</div>
|
<div class="item-name flex2">{{localize features.label}}</div>
|
||||||
{{#if ranked}}
|
{{#if ranked}}
|
||||||
<div class="item-level">{{localize "Level"}}</div>
|
<div class="item-field">{{localize "Level"}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</li>
|
</li>
|
||||||
{{#each features.items as |item id|}}
|
{{#each features.items as |item id|}}
|
||||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||||
<div class="item-image"><img src="{{item.img}}" title="{{item.name}}" width="24" height="24"/></div>
|
<div class="item-image {{#if (equals key "careers")}}roll-career{{/if}}"><img src="{{item.img}}" title="{{item.name}}"/></div>
|
||||||
<h4 class="item-name flex4"><a class="roll-career">{{item.name}}</a></h4>
|
<h4 class="item-name flex2"><a class="item-edit">{{item.name}}</a></h4>
|
||||||
{{#if item.data.rank}}
|
{{#if item.data.rank}}
|
||||||
<span class="item-level">{{item.data.rank}}</span>
|
<span class="item-field">{{item.data.rank}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="item-controls-2">
|
<div class="item-controls-1">
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
<div class="chat-message-header">
|
<div class="chat-message-header flexrow">
|
||||||
<img class="chat-icon" src="{{actorImg}}" alt="{{alias}}"/>
|
<img class="chat-icon" src="{{actorImg}}" alt="{{alias}}"/>
|
||||||
<h4 class=chat-actor-name>{{alias}}</h4>
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flexrow">
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h3>
|
<h3>
|
||||||
{{#if (eq mode "attribute")}}
|
{{#if (eq mode "attribute")}}
|
||||||
{{localize attribute.label}}
|
{{localize attribute.label}}
|
||||||
@ -19,13 +16,26 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li>Formula : {{formula}}</li>
|
|
||||||
<li>Modifier : {{modifier}} </li>
|
|
||||||
<li><strong>Total Roll : {{finalScore}}</strong>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="dice-roll">
|
||||||
|
<div class="dice-result">
|
||||||
|
<div class="dice-formula">{{formula}}</div>
|
||||||
|
<div class="dice-formula">{{modifier}}</div>
|
||||||
|
<div class="dice-tooltip" style="display: none;">
|
||||||
|
<section class="tooltip-part">
|
||||||
|
<div class="dice">
|
||||||
|
<header class="part-header flexrow">
|
||||||
|
<span class="part-formula">{{formula}}</span>
|
||||||
|
<span class="part-total">{{finalScore}}</span>
|
||||||
|
</header>
|
||||||
|
<ol class="dice-rolls">
|
||||||
|
<li class="roll die d6 discarded min">1</li>
|
||||||
|
<li class="roll die d6">2</li>
|
||||||
|
<li class="roll die d6">3</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<h4 class="dice-total">{{finalScore}}</h4>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
@ -9,14 +9,24 @@
|
|||||||
</nav>
|
</nav>
|
||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="tab" data-group="primary" data-tab="description">
|
<div class="tab flexrow active no-wrap" data-group="primary" data-tab="description">
|
||||||
|
{{#if itemProperties}}
|
||||||
|
<div class="item-properties">
|
||||||
|
<ol class="properties-list">
|
||||||
|
{{#each itemProperties}}
|
||||||
|
<li>{{localize this}}</li>
|
||||||
|
{{/each}}
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
<div class="tab properties" data-group="primary" data-tab="properties">
|
<div class="tab properties" data-group="primary" data-tab="properties">
|
||||||
{{#if (equals item.type "item")}}
|
{{#if (equals type "item")}}
|
||||||
{{> "systems/bol/templates/item/parts/properties/item-properties.hbs"}}
|
{{> "systems/bol/templates/item/parts/properties/item-properties.hbs"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (equals item.type "feature")}}
|
{{#if (equals type "feature")}}
|
||||||
{{> "systems/bol/templates/item/parts/properties/feature-properties.hbs"}}
|
{{> "systems/bol/templates/item/parts/properties/feature-properties.hbs"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,28 +1 @@
|
|||||||
<div class="property flexrow">
|
<h3 class="form-header">{{localize "BOL.ui.armor"}}</h3>
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
|
||||||
{{#select data.subtype}}
|
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
|
||||||
<option value="career">{{localize "Career"}}</option>
|
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Quantity</label>
|
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Weight</label>
|
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize key}}</label>
|
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
<h3 class="form-header">{{localize "BOL.ui.equipment"}}</h3>
|
@ -1,25 +1,14 @@
|
|||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
<label class="property-label">{{localize "BOL.ui.subtype"}}</label>
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
||||||
{{#select data.subtype}}
|
{{#select data.subtype}}
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
{{#each config.featureSubtypes as |item id|}}
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
<option value="{{id}}">{{localize item}}</option>
|
||||||
<option value="career">{{localize "Career"}}</option>
|
{{/each}}
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Quantity</label>
|
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Weight</label>
|
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
{{#each data.properties as |property key|}}
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize key}}</label>
|
<label class="property-label">{{localize key}}</label>
|
||||||
|
@ -1,28 +1,62 @@
|
|||||||
|
<!--<div class="property flexrow">-->
|
||||||
|
<!-- <label class="property-label">{{localize "BOL.ui.category"}}</label>-->
|
||||||
|
<!-- <select name="data.subtype" value="{{data.category}}" data-dtype="String">-->
|
||||||
|
<!-- {{#select data.category}}-->
|
||||||
|
<!-- {{#each config.itemCategories as |item id|}}-->
|
||||||
|
<!-- <option value="{{id}}">{{localize item}}</option>-->
|
||||||
|
<!-- {{/each}}-->
|
||||||
|
<!-- {{/select}}-->
|
||||||
|
<!-- </select>-->
|
||||||
|
<!--</div>-->
|
||||||
|
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
<label class="property-label">{{localize "BOL.ui.subtype"}}</label>
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
||||||
{{#select data.subtype}}
|
{{#select data.subtype}}
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
{{#each config.equipmentCategories as |item id|}}
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
<option value="{{id}}">{{localize item}}</option>
|
||||||
<option value="career">{{localize "Career"}}</option>
|
{{/each}}
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
<hr/>
|
||||||
|
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">Quantity</label>
|
<label class="property-label">{{localize "BOL.ui.quantity"}}</label>
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">Weight</label>
|
<label class="property-label">{{localize "BOL.ui.weight"}}</label>
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize key}}</label>
|
<label class="property-label">{{localize "BOL.ui.price"}}</label>
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
|
<input type="text" name="data.price" value="{{data.price}}" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div class="form-group stacked">
|
||||||
|
<!-- <label>Propriétés</label>-->
|
||||||
|
<div class="form-fields">
|
||||||
|
{{#each data.properties as |property key|}}
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" name="data.properties.{{key}}" {{checked property}}> {{localize key}} ({{key}})
|
||||||
|
</label>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if data.properties.equipable}}
|
||||||
|
{{> "systems/bol/templates/item/parts/properties/equipment-properties.hbs"}}
|
||||||
|
{{/if}}
|
||||||
|
{{#if data.properties.weapon}}
|
||||||
|
{{> "systems/bol/templates/item/parts/properties/weapon-properties.hbs"}}
|
||||||
|
{{/if}}
|
||||||
|
{{#if (equals data.properties.protection)}}
|
||||||
|
{{> "systems/bol/templates/item/parts/properties/protection-properties.hbs"}}
|
||||||
|
{{/if}}
|
||||||
|
{{#if data.properties.shield}}
|
||||||
|
{{> "systems/bol/templates/item/parts/properties/shield-properties.hbs"}}
|
||||||
|
{{/if}}
|
||||||
|
@ -1,28 +1 @@
|
|||||||
<div class="property flexrow">
|
<h3 class="form-header">{{localize "BOL.ui.melee"}}</h3>
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
|
||||||
{{#select data.subtype}}
|
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
|
||||||
<option value="career">{{localize "Career"}}</option>
|
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Quantity</label>
|
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Weight</label>
|
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize key}}</label>
|
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
<h3 class="form-header">{{localize "BOL.ui.armor"}}</h3>
|
@ -1,28 +1 @@
|
|||||||
<div class="property flexrow">
|
<h3 class="form-header">{{localize "BOL.ui.ranged"}}</h3>
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
|
||||||
{{#select data.subtype}}
|
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
|
||||||
<option value="career">{{localize "Career"}}</option>
|
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Quantity</label>
|
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">Weight</label>
|
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize key}}</label>
|
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
1
templates/item/parts/properties/shield-properties.hbs
Normal file
1
templates/item/parts/properties/shield-properties.hbs
Normal file
@ -0,0 +1 @@
|
|||||||
|
<h3 class="form-header">{{localize "BOL.ui.armor"}}</h3>
|
@ -1,28 +1,8 @@
|
|||||||
<div class="property flexrow">
|
<h3 class="form-header">{{localize "BOL.ui.weapon"}}</h3>
|
||||||
<label class="property-label">{{localize "subtype"}}</label>
|
|
||||||
<select name="data.subtype" value="{{data.subtype}}" data-dtype="String">
|
|
||||||
{{#select data.subtype}}
|
|
||||||
<option value="boon">{{localize "Avantage"}}</option>
|
|
||||||
<option value="flaw">{{localize "Flaw"}}</option>
|
|
||||||
<option value="career">{{localize "Career"}}</option>
|
|
||||||
<option value="language">{{localize "Language"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div class="grid grid-2col">-->
|
{{#if data.properties.melee}}
|
||||||
<div class="property flexrow">
|
{{> "systems/bol/templates/item/parts/properties/melee-properties.hbs"}}
|
||||||
<label class="property-label">Quantity</label>
|
{{/if}}
|
||||||
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
|
{{#if data.properties.ranged}}
|
||||||
</div>
|
{{> "systems/bol/templates/item/parts/properties/ranged-properties.hbs"}}
|
||||||
<div class="property flexrow">
|
{{/if}}
|
||||||
<label class="property-label">Weight</label>
|
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
{{#each data.properties as |property key|}}
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize key}}</label>
|
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
11
templates/roll/parts/roll-dialog-attribute.hbs
Normal file
11
templates/roll/parts/roll-dialog-attribute.hbs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "attribut"}}</label>
|
||||||
|
<select id="rollAttribute" value="rollAttribute">
|
||||||
|
{{#select rollAttribute}}
|
||||||
|
<option value="vigor">{{localize "BOL.attributes.vigor"}}</option>
|
||||||
|
<option value="agility">{{localize "BOL.attributes.agility"}}</option>
|
||||||
|
<option value="mind">{{localize "BOL.attributes.mind"}}</option>
|
||||||
|
<option value="appeal">{{localize "BOL.attributes.appeal"}}</option>
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
36
templates/roll/parts/roll-dialog-modifiers.hbs
Normal file
36
templates/roll/parts/roll-dialog-modifiers.hbs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "d6M"}}</label>
|
||||||
|
<input class="field-value center" id="d6Malus" name="d6Malus" type="text" value="{{numberFormat d6Malus decimals=0 sign=true}}" data-dtype="Number" style="text-align: center"/>
|
||||||
|
<!-- <select id="d6Malus" value="d6Malus">-->
|
||||||
|
<!-- {{!#select d6Malus}}-->
|
||||||
|
<!-- <option value="0">0</option>-->
|
||||||
|
<!-- <option value="1">1</option>-->
|
||||||
|
<!-- <option value="2">2</option>-->
|
||||||
|
<!-- <option value="3">3</option>-->
|
||||||
|
<!-- <option value="4">4</option>-->
|
||||||
|
<!-- {{!/select}}-->
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "d6B"}}</label>
|
||||||
|
<input class="field-value center" id="d6Bonus" name="d6Bonus" type="text" value="{{numberFormat d6Bonus decimals=0 sign=true}}" data-dtype="Number" style="text-align: center"/>
|
||||||
|
<!-- <select id="d6Bonus" value="d6Bonus">-->
|
||||||
|
<!-- {{!#select d6Bonus}}-->
|
||||||
|
<!-- <option value="0">0</option>-->
|
||||||
|
<!-- <option value="1">1</option>-->
|
||||||
|
<!-- <option value="2">2</option>-->
|
||||||
|
<!-- <option value="3">3</option>-->
|
||||||
|
<!-- <option value="4">4</option>-->
|
||||||
|
<!-- {{!/select}}-->
|
||||||
|
<!-- </select>-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "Modifier"}}</label>
|
||||||
|
<select id="bonusMalus" value="bonusMalus">
|
||||||
|
{{#select bonusMalus}}
|
||||||
|
{{{optionsBonusMalus}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
@ -1,39 +1,3 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="dialog-roll-title">{{title}}</h2>
|
{{> "systems/bol/templates/roll/parts/roll-dialog-modifiers.hbs"}}
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6M"}}</label>
|
|
||||||
<select id="d6Malus" value="d6Malus">
|
|
||||||
{{#select d6Malus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6B"}}</label>
|
|
||||||
<select id="d6Bonus" value="d6Bonus">
|
|
||||||
{{#select d6Bonus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "Modifier"}}</label>
|
|
||||||
<select id="bonusMalus" value="bonusMalus">
|
|
||||||
{{#select bonusMalus}}
|
|
||||||
{{{optionsBonusMalus}}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,56 +1,8 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="dialog-roll-title">{{title}}</h2>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "rank"}}</label>
|
<label class="property-label">{{localize "rank"}}</label>
|
||||||
<label class="property-label">{{career.data.rank}}</label>
|
<label class="property-label">{{career.data.rank}}</label>
|
||||||
</div>
|
</div>
|
||||||
|
{{> "systems/bol/templates/roll/parts/roll-dialog-attribute.hbs"}}
|
||||||
<div class="property flexrow">
|
{{> "systems/bol/templates/roll/parts/roll-dialog-modifiers.hbs"}}
|
||||||
<label class="property-label">{{localize "attribut"}}</label>
|
|
||||||
<select id="rollAttribute" value="rollAttribute">
|
|
||||||
{{#select rollAttribute}}
|
|
||||||
<option value="vigor">{{localize "BOL.attributes.vigor"}}</option>
|
|
||||||
<option value="agility">{{localize "BOL.attributes.agility"}}</option>
|
|
||||||
<option value="mind">{{localize "BOL.attributes.mind"}}</option>
|
|
||||||
<option value="appeal">{{localize "BOL.attributes.appeal"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6M"}}</label>
|
|
||||||
<select id="d6Malus" value="d6Malus">
|
|
||||||
{{#select d6Malus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6B"}}</label>
|
|
||||||
<select id="d6Bonus" value="d6Bonus">
|
|
||||||
{{#select d6Bonus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "Modifier"}}</label>
|
|
||||||
<select id="bonusMalus" value="bonusMalus">
|
|
||||||
{{#select bonusMalus}}
|
|
||||||
{{{optionsBonusMalus}}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="spell-roll-dialog">
|
||||||
<h2 class="dialog-roll-title">{{title}}</h2>
|
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,74 +1,34 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="dialog-roll-title">{{title}}</h2>
|
{{#if defender}}
|
||||||
|
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "Defender"}} : </label>
|
<label class="property-label">{{localize "Defender"}} : </label>
|
||||||
<label class="property-label">{{defender.name}}</label>
|
<label class="property-label">{{defender.name}}</label>
|
||||||
|
</div>
|
||||||
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "Defense score"}}</label>
|
<label class="property-label">{{localize "Defense score"}}</label>
|
||||||
<label class="property-label">{{defender.data.aptitudes.def.value}}</label>
|
<label class="property-label">{{defender.data.aptitudes.def.value}}</label>
|
||||||
</div>
|
</div>
|
||||||
|
{{/if}}
|
||||||
<div class="property flexrow">
|
{{> "systems/bol/templates/roll/parts/roll-dialog-attribute.hbs"}}
|
||||||
<label class="property-label">{{localize "attribut"}}</label>
|
{{> "systems/bol/templates/roll/parts/roll-dialog-modifiers.hbs"}}
|
||||||
<select id="rollAttribute" value="rollAttribute">
|
|
||||||
{{#select rollAttribute}}
|
|
||||||
<option value="vigor">{{localize "BOL.attributes.vigor"}}</option>
|
|
||||||
<option value="agility">{{localize "BOL.attributes.agility"}}</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6M"}}</label>
|
|
||||||
<select id="d6Malus" value="d6Malus">
|
|
||||||
{{#select d6Malus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "d6B"}}</label>
|
|
||||||
<select id="d6Bonus" value="d6Bonus">
|
|
||||||
{{#select d6Bonus}}
|
|
||||||
<option value="0">0</option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{#if isRangedWeapon}}
|
{{#if isRangedWeapon}}
|
||||||
<div class="property flexrow">
|
<div class="property flexrow">
|
||||||
<label class="property-label">{{localize "Range Modifier"}}</label>
|
<label class="property-label">{{localize "Range Modifier"}}</label>
|
||||||
<select id="rangeModifier" value="rangeModifier">
|
<input class="field-value center" id="rangeModifier" name="rangeModifier" type="text"
|
||||||
{{#select rangeModifier}}
|
value="{{numberFormat rangeModifier decimals=0 sign=true}}" data-dtype="Number"
|
||||||
<option value="1">{{localize "Point Blank"}}</option>
|
style="text-align: center"/>
|
||||||
<option value="0">{{localize "Short"}}</option>
|
<!-- <select id="rangeModifier" value="rangeModifier">-->
|
||||||
<option value="-1">{{localize "Medium"}}</option>
|
<!-- {{!#select rangeModifier}}-->
|
||||||
<option value="-2">{{localize "Long"}}</option>
|
<!-- <option value="1">{{localize "BOL.range.PointBlank"}}</option>-->
|
||||||
<option value="-4">{{localize "Very Long"}}</option>
|
<!-- <option value="0">{{localize "BOL.range.Short"}}</option>-->
|
||||||
<option value="-6">{{localize "Extreme"}}</option>
|
<!-- <option value="-1">{{localize "BOL.range.Medium"}}</option>-->
|
||||||
<option value="-8">{{localize "Maximum"}}</option>
|
<!-- <option value="-2">{{localize "BOL.range.Long"}}</option>-->
|
||||||
{{/select}}
|
<!-- <option value="-4">{{localize "BOL.range.Very Long"}}</option>-->
|
||||||
</select>
|
<!-- <option value="-6">{{localize "BOL.range.Extreme"}}</option>-->
|
||||||
|
<!-- <option value="-8">{{localize "BOL.range.Maximum"}}</option>-->
|
||||||
|
<!-- {{!/select}}-->
|
||||||
|
<!-- </select>-->
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="property flexrow">
|
|
||||||
<label class="property-label">{{localize "Modifier"}}</label>
|
|
||||||
<select id="bonusMalus" value="bonusMalus">
|
|
||||||
{{#select bonusMalus}}
|
|
||||||
{{{optionsBonusMalus}}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
42
templates/roll/roll-dialog.hbs
Normal file
42
templates/roll/roll-dialog.hbs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<form class="skill-roll-dialog">
|
||||||
|
{{!#if (equals mode "attribute")}}{{!/if}}
|
||||||
|
{{#if (equals mode "career")}}
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "rank"}}</label>
|
||||||
|
<label class="property-label">{{career.data.rank}}</label>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (equals mode "weapon")}}
|
||||||
|
{{#if defender}}
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "Defender"}} : </label>
|
||||||
|
<label class="property-label">{{defender.name}}</label>
|
||||||
|
</div>
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "Defense score"}}</label>
|
||||||
|
<label class="property-label">{{defender.data.aptitudes.def.value}}</label>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if isRangedWeapon}}
|
||||||
|
<div class="property flexrow">
|
||||||
|
<label class="property-label">{{localize "Range Modifier"}}</label>
|
||||||
|
<input class="field-value center" id="rangeModifier" name="rangeModifier" type="text" value="{{numberFormat rangeModifier decimals=0 sign=true}}" data-dtype="Number" style="text-align: center"/>
|
||||||
|
<!-- <select id="rangeModifier" value="rangeModifier">-->
|
||||||
|
<!-- {{!#select rangeModifier}}-->
|
||||||
|
<!-- <option value="1">{{localize "BOL.range.PointBlank"}}</option>-->
|
||||||
|
<!-- <option value="0">{{localize "BOL.range.Short"}}</option>-->
|
||||||
|
<!-- <option value="-1">{{localize "BOL.range.Medium"}}</option>-->
|
||||||
|
<!-- <option value="-2">{{localize "BOL.range.Long"}}</option>-->
|
||||||
|
<!-- <option value="-4">{{localize "BOL.range.Very Long"}}</option>-->
|
||||||
|
<!-- <option value="-6">{{localize "BOL.range.Extreme"}}</option>-->
|
||||||
|
<!-- <option value="-8">{{localize "BOL.range.Maximum"}}</option>-->
|
||||||
|
<!-- {{!/select}}-->
|
||||||
|
<!-- </select>-->
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
{{#if (neq mode "attribute")}}
|
||||||
|
{{> "systems/bol/templates/roll/parts/roll-dialog-attribute.hbs"}}
|
||||||
|
{{/if}}
|
||||||
|
{{> "systems/bol/templates/roll/parts/roll-dialog-modifiers.hbs"}}
|
||||||
|
</form>
|
Loading…
Reference in New Issue
Block a user