diff --git a/css/bol.css b/css/bol.css index bec5f27..df00110 100644 --- a/css/bol.css +++ b/css/bol.css @@ -1,4 +1,131 @@ /* ----------------------------------------- */ +/* LOCAL FONTS */ +/* ----------------------------------------- */ +@import "../node_modules/rpg-awesome/css/rpg-awesome.min.css"; +@font-face { + font-family: 'Contrail One'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/contrailone/v10/eLGbP-j_JA-kG0_Zo51noafdZQ.ttf) format('truetype'); +} +@font-face { + font-family: "CCMeanwhile"; + src: url('../fonts/ccmeanwhile-regular.ttf'); +} +@font-face { + font-family: "Wolfsbane2"; + src: url('../fonts/wolfsbane2.ttf'); +} +@font-face { + font-family: "Wolfsbane2Condensed"; + src: url('../fonts/wolfsbane2cond.ttf'); +} +@font-face { + font-family: "Wolfsbane2Expanded"; + src: url('../fonts/wolfsbane2expand.ttf'); +} +@font-face { + font-family: "IMFellDWPicaSC-Regular"; + src: url('../fonts/IMFellDWPicaSC-Regular.ttf'); +} +/* ----------------------------------------- */ +/* TEXT STYLES */ +/* ----------------------------------------- */ +/* -------------- */ +/* Font Awesome */ +/* Overrides */ +/* -------------- */ +/* ------------- */ +a.entity-link, +a.inline-roll { + border: none; + background: transparent; + border-bottom: 1px dotted grey; + padding: 0; +} +a.inline-roll { + border: none; +} +a:hover { + text-shadow: 0 0 5px #a00; +} +#pause { + background: none; +} +#pause > img { + width: 200px; + height: 200px; + top: -50px; + left: calc(50% - 100px); + opacity: 0.7; + -webkit-animation: rotation 10s infinite linear; + animation: rotation 10s infinite linear; +} +#pause h3 { + font-family: "IMFellDWPicaSC-Regular", serif; + font-size: 32px; + text-shadow: 0px 3px 5px #000000; +} +::-webkit-scrollbar-thumb { + outline: none; + border-radius: 3px; + background: #999 !important; + border: 1px solid #333 !important; + border-color: #333 !important; +} +::-webkit-scrollbar-track { + box-shadow: 0 0 3px #005d67 inset !important; + border-radius: 3px; +} +* { + scrollbar-width: thin !important; + scrollbar-color: #005d67 #ccc !important; +} +.element-invisible { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + clip: rect(0 0 0 0); + overflow: hidden; +} +.hide { + display: none; +} +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.nomargin { + margin: 0; + padding: 0; +} +.flxrow { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.flxrow > * { + flex: 1; +} +.flxrow .flex1 { + flex: 1; +} +.flxrow .flex2 { + flex: 2; +} +.flxrow .flex3 { + flex: 3; +} +.flxrow .flex4 { + flex: 4; +} +/* ----------------------------------------- */ /* Flexbox */ /* ----------------------------------------- */ .flexrow { @@ -141,6 +268,7 @@ background: rgba(0, 0, 0, 0.1); } .bol select { + box-shadow: none; font-size: 14px; text-align: center; text-align-last: center; @@ -152,12 +280,18 @@ .bol select[multiple] { box-shadow: none; border: none; - font-size: 12px; + font-size: 14px; } .bol select[multiple]:focus option:checked { background: darkred linear-gradient(0deg, darkred 0%, darkred 100%); color: white; } +.bol option { + font-size: 14px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} .bol option:hover, .bol option:focus, .bol option:active, @@ -222,6 +356,9 @@ flex: auto; text-align: left; } +.bol .form-group .form-fields .field-value { + text-align: center; +} .bol .form-group.stacked label { flex: 0 0 100%; margin: 0; @@ -231,11 +368,35 @@ text-align: left; } .bol .form-header { - margin: 0 0 0.25em 0; - padding: 2px 0; - font-size: 20px; + margin: 0.25em 0 0.25em 0; + padding: 2px 5px; + font-family: "Wolfsbane2Expanded", cursive; + color: #4b4a44; + background-color: lightgray; +} +.bol h1.form-header { + font-size: 2.5em; font-weight: 700; } +.bol h2.form-header { + font-size: 2em; + font-weight: 500; + border-bottom: 1px groove #eeede0; +} +.bol h3.form-header { + font-size: 1.5em; + font-weight: 500; + border-bottom: 1px groove #eeede0; +} +.bol h4.form-header { + font-size: 1em; + font-weight: 500; + font-family: 'Signika', sans-serif; + color: black; + background-color: transparent; + border-top: none; + border-bottom: 1px groove #eeede0; +} .bol .tag { display: inline-block; margin: 0 2px 0 0; @@ -266,35 +427,6 @@ .bol .property { margin-top: 2px; } -/* ----------------------------------------- */ -/* LOCAL FONTS */ -/* ----------------------------------------- */ -@font-face { - font-family: 'Contrail One'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/contrailone/v10/eLGbP-j_JA-kG0_Zo51noafdZQ.ttf) format('truetype'); -} -@font-face { - font-family: "CCMeanwhile"; - src: url('../fonts/ccmeanwhile-regular.ttf'); -} -@font-face { - font-family: "Wolfsbane2"; - src: url('../fonts/wolfsbane2.ttf'); -} -@font-face { - font-family: "Wolfsbane2Condensed"; - src: url('../fonts/wolfsbane2cond.ttf'); -} -@font-face { - font-family: "Wolfsbane2Expanded"; - src: url('../fonts/wolfsbane2expand.ttf'); -} -/* ----------------------------------------- */ -/* TEXT STYLES */ -/* ----------------------------------------- */ /* Items List */ .items-list { list-style: none; @@ -481,12 +613,61 @@ color: darkslategrey; font-weight: bold; } +.chat-message { + margin: 3px; + padding: 10px; + font-size: 14px; + border-radius: 0; + background-color: white; + background-image: url("/systems/bol/ui/box-border-large.webp"); + background-repeat: no-repeat; + background-size: 100% 100%; +} +.chat-message .message-header .flavor-text { + font-family: "IMFellDWPicaSC-Regular", serif; + font-size: 14px; +} +.chat-message .message-header .flavor-text h2 { + font-family: "Modesto Condensed", "Palatino Linotype", serif; + font-size: 20px; +} +.chat-message .message-content .dice-roll .dice-result .dice-formula { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #282828; + color: white; +} +.chat-message .message-content .dice-roll .dice-result .dice-tooltip .tooltip-part .part-total { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #2a2a2a; + color: white; +} +.chat-message .message-content .dice-roll .dice-result .dice-total { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #2a2a2a; + color: white; +} +body.system-bol img#logo { + content: url("/systems/bol/ui/logo2.webp"); +} +.bol.sheet .window-header { + border: none; +} .bol.sheet .window-content { height: 100%; - padding: 5px; + padding: 10px; overflow-y: hidden; + background: transparent; } .bol.sheet .window-content form { + border: 10px solid transparent; + border-image: url("/systems/bol/ui/box-border-large.webp") 36 repeat; + border-image-outset: 1; + background: white; + margin: 0; + padding: 0; height: 100%; } .bol.sheet .window-content form .sheet-header { @@ -529,15 +710,16 @@ /* Sheet Tabs */ } .bol.sheet .window-content form .main .tabs { - flex: 0 0 40px; + flex: 0 0 30px; background-color: black; } .bol.sheet .window-content form .main .tabs .item { - line-height: 40px; + line-height: 30px; font-weight: bold; font-family: "CCMeanwhile", cursive; color: white; - font-size: 14px; + padding-top: 4px; + font-size: 0.8em; } .bol.sheet .window-content form .main .tabs .item.active { text-decoration: underline; @@ -547,7 +729,8 @@ overflow: hidden; } .bol.sheet .window-content form .main .sheet-body .tab { - height: 100%; + height: 95%; + border: none; overflow-y: auto; /* Items List */ } @@ -564,7 +747,6 @@ background-image: url("/systems/bol/ui/logo.webp"); background-repeat: no-repeat; background-size: 190px 115px; - background-color: white; } .bol.sheet.actor .window-content form .sidebar { padding-top: 115px; @@ -585,10 +767,6 @@ .bol.sheet.actor .window-content form .main .sheet-body { overflow: hidden; } -.bol.sheet.actor .window-content form .main .sheet-body .tab { - height: 100%; - overflow-y: auto; -} .bol.sheet.actor .window-content form .main .sheet-body .tab .attribute.vigor { background-image: url("/systems/bol/ui/attributes/vigor.webp"); background-repeat: no-repeat; @@ -715,9 +893,6 @@ .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; diff --git a/data/fr/json/armors.json b/data/fr/json/armors.json index 764f066..1b5dc5b 100644 --- a/data/fr/json/armors.json +++ b/data/fr/json/armors.json @@ -64,7 +64,7 @@ }, "soak" : { "formula" : "d6-1", - "value" : 1 + "value" : 3 } } } diff --git a/fonts/IMFellDWPicaSC-Regular.ttf b/fonts/IMFellDWPicaSC-Regular.ttf new file mode 100644 index 0000000..c288277 Binary files /dev/null and b/fonts/IMFellDWPicaSC-Regular.ttf differ diff --git a/fonts/rpgawesome-webfont.eot b/fonts/rpgawesome-webfont.eot new file mode 100644 index 0000000..0a36c52 Binary files /dev/null and b/fonts/rpgawesome-webfont.eot differ diff --git a/fonts/rpgawesome-webfont.svg b/fonts/rpgawesome-webfont.svg new file mode 100644 index 0000000..d980874 --- /dev/null +++ b/fonts/rpgawesome-webfont.svg @@ -0,0 +1,523 @@ + + + + + + +{ + "fontFamily": "rpg-awesome", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/nagoshiashumari/Rpg-Awesome/", + "license": "MIT", + "version": "Version 1.0", + "fontId": "rpg-awesome", + "psName": "rpg-awesome", + "subFamily": "Regular", + "fullName": "rpg-awesome", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/rpgawesome-webfont.ttf b/fonts/rpgawesome-webfont.ttf new file mode 100644 index 0000000..73305d2 Binary files /dev/null and b/fonts/rpgawesome-webfont.ttf differ diff --git a/fonts/rpgawesome-webfont.woff b/fonts/rpgawesome-webfont.woff new file mode 100644 index 0000000..47ca750 Binary files /dev/null and b/fonts/rpgawesome-webfont.woff differ diff --git a/fonts/skullz.ttf b/fonts/skullz.ttf new file mode 100644 index 0000000..0300948 Binary files /dev/null and b/fonts/skullz.ttf differ diff --git a/lang/en.json b/lang/en.json index 4f2e123..e06034b 100644 --- a/lang/en.json +++ b/lang/en.json @@ -27,8 +27,9 @@ "BOL.ui.tab.features": "Traits", "BOL.ui.tab.equipment": "Equipement", "BOL.ui.tab.description": "Description", - "BOL.ui.tab.properties": "Proprietes", + "BOL.ui.tab.details": "Details", + "BOL.ui.properties": "Proprietes", "BOL.ui.description": "Description", "BOL.ui.actions": "Actions", "BOL.ui.damages": "Dommages", @@ -49,6 +50,7 @@ "BOL.ui.delete": "Supprimer", "BOL.ui.roll" : "Utiliser", "BOL.ui.equipment" : "Équipement", + "BOL.ui.armor" : "Armure", "BOL.ui.weapon" : "Arme", "BOL.ui.melee" : "Arme de contact", "BOL.ui.ranged" : "Arme à distance", @@ -73,6 +75,8 @@ "BOL.ui.failure" : "Échec", "BOL.ui.fumble" : "Échec critique", "BOL.ui.critical" : "Succès critique", + "BOL.ui.maneuvers" : "Actions de combat", + "BOL.ui.stacksize" : "Taille de pile (max)", "BOL.featureCategory.origins": "Origines", "BOL.featureCategory.races": "Races", @@ -88,11 +92,11 @@ "BOL.featureSubtypes.flaw": "Désavantage", "BOL.featureSubtypes.language": "Langage", + "BOL.itemCategory.object": "Objet", "BOL.itemCategory.equipment": "Équipement", "BOL.itemCategory.consumable": "Consommable", "BOL.itemCategory.spell": "Sort", - "BOL.itemCategory.mount": "Monture", - "BOL.itemCategory.vehicle": "Véhicule", + "BOL.itemCategory.vehicle": "Monture/Véhicule", "BOL.itemCategory.other": "Autre", "BOL.combatCategory.protections": "Protections", @@ -101,7 +105,10 @@ "BOL.combatCategory.ranged": "Armes à distance", "BOL.equipmentCategory.weapon": "Arme", + "BOL.equipmentCategory.armor": "Armure", "BOL.equipmentCategory.protection": "Protection", + "BOL.equipmentCategory.shield": "Bouclier", + "BOL.equipmentCategory.helm": "Casque", "BOL.equipmentCategory.jewel": "Bijou", "BOL.equipmentCategory.scroll": "Parchemin", "BOL.equipmentCategory.ammunition": "Munition", @@ -118,7 +125,7 @@ "BOL.weaponCategory.ranged": "Arme de tir", "BOL.weaponCategory.other": "Autre", - "BOL.itemProperty.equipable": "Equipable", + "BOL.itemProperty.equipable": "Équipable", "BOL.itemProperty.protection": "Protection", "BOL.itemProperty.blocking": "Blocage", "BOL.itemProperty.magical": "Magique", @@ -135,7 +142,34 @@ "BOL.itemProperty.ranged": "A distance", "BOL.itemProperty.weapon": "Arme", "BOL.itemProperty.reloadable": "Rechargeable", - "BOL.itemProperty.worn": "Equipé", + "BOL.itemProperty.worn": "Équipé", + "BOL.itemProperty.spell" : "Sort", + "BOL.itemProperty.armor" : "Armure", + "BOL.itemProperty.consumable" : "Consommable", + "BOL.itemProperty.bow" : "Arc", + "BOL.itemProperty.crossbow" : "Arbalète", + "BOL.itemProperty.throwing" : "Arme de jet", + "BOL.itemProperty.activable" : "Activable", + "BOL.itemProperty.powder" : "Arme à poudre", + "BOL.itemProperty.attackAttribute" : "Attaque (Attribut)", + "BOL.itemProperty.attackAptitude" : "Attaque (Aptitude)", + "BOL.itemProperty.attackModifiers" : "Attaque (Modificateurs)", + "BOL.itemProperty.attackReroll1" : "Attaque (Relancer les 1)", + "BOL.itemProperty.damage" : "Dommages (Dés)", + "BOL.itemProperty.damageModifiers" : "Dommages (Modificateurs)", + "BOL.itemProperty.damageAttribute" : "Dommages (Attribut)", + "BOL.itemProperty.damageSpecial" : "Dommages (Spécial)", + "BOL.itemProperty.damageReroll1" : "Relancer les 1", + "BOL.itemProperty.range" : "Portée (en m)", + "BOL.itemProperty.soakFormula": "Encaissement (Formule)", + "BOL.itemProperty.soakModifiers": "Encaissement (Modificateur)", + "BOL.itemProperty.soakValue": "Encaissement (Valeur par défaut)", + "BOL.itemProperty.armorQuality": "Qualité d'armure", + "BOL.itemProperty.blockingMalus" : "Malus de blocage", + "BOL.itemProperty.blockingAttacksBlocked" : "Attaques bloquée", + "BOL.itemProperty.blocking1Attack" : "Bloque 1 attaque", + "BOL.itemProperty.blockingAllAttacks" : "Bloque toutes les attaques", + "BOL.itemStat.quantity": "Quantité", "BOL.itemStat.weight": "Poids", @@ -147,16 +181,33 @@ "BOL.itemStat.blocking": "Bloquage", "BOL.itemStat.modifiers": "Modificateurs", - "BOL.itemModifiers.init": "Initiative", - "BOL.itemModifiers.social": "Social", - "BOL.itemModifiers.agility": "Agilité", - "BOL.itemModifiers.powercost": "Coût supplémentaire en PP", + "BOL.itemModifiers.init": "Malus (Initiative)", + "BOL.itemModifiers.social": "Malus (Social)", + "BOL.itemModifiers.agility": "Malus (Agilité)", + "BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)", "BOL.itemBlocking.malus": "Social", "BOL.itemBlocking.nbAttacksPerRound": "Agilité", - "BOL.itemSoak.formula": "Formule", - "BOL.itemSoak.value": "Valeur", + "BOL.soakFormula.none" : "-", + "BOL.soakFormula.light" : "Légère (Annule d6-3 dégâts subis)", + "BOL.soakFormula.medium" : "Moyenne (Annule d6-2 dégâts subis)", + "BOL.soakFormula.heavy" : "Lourde (Annule d6-1 dégâts subis)", + + "BOL.armorQuality.none" : "-", + "BOL.armorQuality.light" : "Légère", + "BOL.armorQuality.lightQ" : "Légère de qualité", + "BOL.armorQuality.lightSup" : "Légère Supérieure", + "BOL.armorQuality.lightLeg" : "Légère Légendaire", + "BOL.armorQuality.medium" : "Moyenne", + "BOL.armorQuality.mediumQ" : "Moyenne de qualité", + "BOL.armorQuality.mediumSup" : "Moyenne Supérieure", + "BOL.armorQuality.mediumLeg" : "Moyenne Légendaire", + "BOL.armorQuality.heavy" : "Lourde", + "BOL.armorQuality.heavyQ" : "Lourde de qualité", + "BOL.armorQuality.heavySup" : "Lourde Supérieure", + "BOL.armorQuality.heavyLeg" : "Lourde Légendaire", + "BOL.range.PointBlank": "Bout portant", "BOL.range.Short": "Courte", diff --git a/lang/fr.json b/lang/fr.json index 4f2e123..e06034b 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -27,8 +27,9 @@ "BOL.ui.tab.features": "Traits", "BOL.ui.tab.equipment": "Equipement", "BOL.ui.tab.description": "Description", - "BOL.ui.tab.properties": "Proprietes", + "BOL.ui.tab.details": "Details", + "BOL.ui.properties": "Proprietes", "BOL.ui.description": "Description", "BOL.ui.actions": "Actions", "BOL.ui.damages": "Dommages", @@ -49,6 +50,7 @@ "BOL.ui.delete": "Supprimer", "BOL.ui.roll" : "Utiliser", "BOL.ui.equipment" : "Équipement", + "BOL.ui.armor" : "Armure", "BOL.ui.weapon" : "Arme", "BOL.ui.melee" : "Arme de contact", "BOL.ui.ranged" : "Arme à distance", @@ -73,6 +75,8 @@ "BOL.ui.failure" : "Échec", "BOL.ui.fumble" : "Échec critique", "BOL.ui.critical" : "Succès critique", + "BOL.ui.maneuvers" : "Actions de combat", + "BOL.ui.stacksize" : "Taille de pile (max)", "BOL.featureCategory.origins": "Origines", "BOL.featureCategory.races": "Races", @@ -88,11 +92,11 @@ "BOL.featureSubtypes.flaw": "Désavantage", "BOL.featureSubtypes.language": "Langage", + "BOL.itemCategory.object": "Objet", "BOL.itemCategory.equipment": "Équipement", "BOL.itemCategory.consumable": "Consommable", "BOL.itemCategory.spell": "Sort", - "BOL.itemCategory.mount": "Monture", - "BOL.itemCategory.vehicle": "Véhicule", + "BOL.itemCategory.vehicle": "Monture/Véhicule", "BOL.itemCategory.other": "Autre", "BOL.combatCategory.protections": "Protections", @@ -101,7 +105,10 @@ "BOL.combatCategory.ranged": "Armes à distance", "BOL.equipmentCategory.weapon": "Arme", + "BOL.equipmentCategory.armor": "Armure", "BOL.equipmentCategory.protection": "Protection", + "BOL.equipmentCategory.shield": "Bouclier", + "BOL.equipmentCategory.helm": "Casque", "BOL.equipmentCategory.jewel": "Bijou", "BOL.equipmentCategory.scroll": "Parchemin", "BOL.equipmentCategory.ammunition": "Munition", @@ -118,7 +125,7 @@ "BOL.weaponCategory.ranged": "Arme de tir", "BOL.weaponCategory.other": "Autre", - "BOL.itemProperty.equipable": "Equipable", + "BOL.itemProperty.equipable": "Équipable", "BOL.itemProperty.protection": "Protection", "BOL.itemProperty.blocking": "Blocage", "BOL.itemProperty.magical": "Magique", @@ -135,7 +142,34 @@ "BOL.itemProperty.ranged": "A distance", "BOL.itemProperty.weapon": "Arme", "BOL.itemProperty.reloadable": "Rechargeable", - "BOL.itemProperty.worn": "Equipé", + "BOL.itemProperty.worn": "Équipé", + "BOL.itemProperty.spell" : "Sort", + "BOL.itemProperty.armor" : "Armure", + "BOL.itemProperty.consumable" : "Consommable", + "BOL.itemProperty.bow" : "Arc", + "BOL.itemProperty.crossbow" : "Arbalète", + "BOL.itemProperty.throwing" : "Arme de jet", + "BOL.itemProperty.activable" : "Activable", + "BOL.itemProperty.powder" : "Arme à poudre", + "BOL.itemProperty.attackAttribute" : "Attaque (Attribut)", + "BOL.itemProperty.attackAptitude" : "Attaque (Aptitude)", + "BOL.itemProperty.attackModifiers" : "Attaque (Modificateurs)", + "BOL.itemProperty.attackReroll1" : "Attaque (Relancer les 1)", + "BOL.itemProperty.damage" : "Dommages (Dés)", + "BOL.itemProperty.damageModifiers" : "Dommages (Modificateurs)", + "BOL.itemProperty.damageAttribute" : "Dommages (Attribut)", + "BOL.itemProperty.damageSpecial" : "Dommages (Spécial)", + "BOL.itemProperty.damageReroll1" : "Relancer les 1", + "BOL.itemProperty.range" : "Portée (en m)", + "BOL.itemProperty.soakFormula": "Encaissement (Formule)", + "BOL.itemProperty.soakModifiers": "Encaissement (Modificateur)", + "BOL.itemProperty.soakValue": "Encaissement (Valeur par défaut)", + "BOL.itemProperty.armorQuality": "Qualité d'armure", + "BOL.itemProperty.blockingMalus" : "Malus de blocage", + "BOL.itemProperty.blockingAttacksBlocked" : "Attaques bloquée", + "BOL.itemProperty.blocking1Attack" : "Bloque 1 attaque", + "BOL.itemProperty.blockingAllAttacks" : "Bloque toutes les attaques", + "BOL.itemStat.quantity": "Quantité", "BOL.itemStat.weight": "Poids", @@ -147,16 +181,33 @@ "BOL.itemStat.blocking": "Bloquage", "BOL.itemStat.modifiers": "Modificateurs", - "BOL.itemModifiers.init": "Initiative", - "BOL.itemModifiers.social": "Social", - "BOL.itemModifiers.agility": "Agilité", - "BOL.itemModifiers.powercost": "Coût supplémentaire en PP", + "BOL.itemModifiers.init": "Malus (Initiative)", + "BOL.itemModifiers.social": "Malus (Social)", + "BOL.itemModifiers.agility": "Malus (Agilité)", + "BOL.itemModifiers.powercost": "Malus (Coût supplémentaire en PP)", "BOL.itemBlocking.malus": "Social", "BOL.itemBlocking.nbAttacksPerRound": "Agilité", - "BOL.itemSoak.formula": "Formule", - "BOL.itemSoak.value": "Valeur", + "BOL.soakFormula.none" : "-", + "BOL.soakFormula.light" : "Légère (Annule d6-3 dégâts subis)", + "BOL.soakFormula.medium" : "Moyenne (Annule d6-2 dégâts subis)", + "BOL.soakFormula.heavy" : "Lourde (Annule d6-1 dégâts subis)", + + "BOL.armorQuality.none" : "-", + "BOL.armorQuality.light" : "Légère", + "BOL.armorQuality.lightQ" : "Légère de qualité", + "BOL.armorQuality.lightSup" : "Légère Supérieure", + "BOL.armorQuality.lightLeg" : "Légère Légendaire", + "BOL.armorQuality.medium" : "Moyenne", + "BOL.armorQuality.mediumQ" : "Moyenne de qualité", + "BOL.armorQuality.mediumSup" : "Moyenne Supérieure", + "BOL.armorQuality.mediumLeg" : "Moyenne Légendaire", + "BOL.armorQuality.heavy" : "Lourde", + "BOL.armorQuality.heavyQ" : "Lourde de qualité", + "BOL.armorQuality.heavySup" : "Lourde Supérieure", + "BOL.armorQuality.heavyLeg" : "Lourde Légendaire", + "BOL.range.PointBlank": "Bout portant", "BOL.range.Short": "Courte", diff --git a/module/item/item-sheet.js b/module/item/item-sheet.js index 97d235f..6eaf7b6 100644 --- a/module/item/item-sheet.js +++ b/module/item/item-sheet.js @@ -11,8 +11,8 @@ export class BoLItemSheet extends ItemSheet { return mergeObject(super.defaultOptions, { classes: ["bol", "sheet", "item"], template: "systems/bol/templates/item/item-sheet.hbs", - width: 520, - height: 480, + width: 650, + height: 750, tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }] }); } @@ -30,31 +30,17 @@ export class BoLItemSheet extends ItemSheet { /* -------------------------------------------- */ /** @override */ - getData() { - const objectData = BoLUtility.data(this.item); - // const objectData = BoLUtility.data(this.object); - - let itemData = foundry.utils.deepClone(BoLUtility.templateData(this.item)); - let formData = { - title: this.title, - id: this.id, - config: game.bol.config, - type: objectData.type, - img: objectData.img, - name: objectData.name, - editable: this.isEditable, - cssClass: this.isEditable ? "editable" : "locked", - data: itemData, - limited: this.object.limited, - options: this.options, - owner: this.document.isOwner, - isGM: game.user.isGM, - itemProperties : this.item.itemProperties - - } - console.log("ITEMDATA", formData); - this.options.editable = !(this.object.data.origin == "embeddedItem"); - return formData; + getData(options) { + const data = super.getData(options); + const itemData = data.data; + data.config = game.bol.config; + data.item = itemData; + data.data = itemData.data; + data.category = itemData.category; + data.itemProperties = this.item.itemProperties; + data.isGM = game.user.isGM; + console.log("ITEMDATA", data); + return data; } /* -------------------------------------------- */ @@ -76,6 +62,13 @@ export class BoLItemSheet extends ItemSheet { // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; // Roll handlers, click handlers, etc. would go here. + + html.find('.armorQuality').change(ev => { + const li = $(ev.currentTarget); + console.log(game.bol.config.soakFormulas[li.val()]); + $('.soakFormula').val(game.bol.config.soakFormulas[li.val()]); + }); + } } diff --git a/module/item/item.js b/module/item/item.js index 262e614..073a203 100644 --- a/module/item/item.js +++ b/module/item/item.js @@ -31,7 +31,7 @@ export class BoLItem extends Item { 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]] })); + props.push(...entries.filter(e => e[1] === true).map(e => { return game.bol.config.itemProperties2[e[0]] })); } return props.filter(p => !!p); } diff --git a/module/system/config.js b/module/system/config.js index 1bea016..77a899b 100644 --- a/module/system/config.js +++ b/module/system/config.js @@ -9,23 +9,95 @@ System.debugMode = true; export const BOL = {}; +BOL.damageValues = { + "d3" : "d3", + "d6M" : "d6M (Malus)", + "d6" : "d6", + "d6B" : "d6B (Bonus)", + "d6BB" : "d6B + dé bonus", +} + +BOL.armorQualities = { + "none" : "BOL.armorQuality.none", + "light" : "BOL.armorQuality.light", + "lightQ" : "BOL.armorQuality.lightQ", + "lightSup" : "BOL.armorQuality.lightSup", + "lightLeg" : "BOL.armorQuality.lightLeg", + "medium" : "BOL.armorQuality.medium", + "mediumQ" : "BOL.armorQuality.mediumQ", + "mediumSup" : "BOL.armorQuality.mediumSup", + "mediumLeg" : "BOL.armorQuality.mediumLeg", + "heavy" : "BOL.armorQuality.heavy", + "heavyQ" : "BOL.armorQuality.heavyQ", + "heavySup" : "BOL.armorQuality.heavySup", + "heavyLeg" : "BOL.armorQuality.heavyLeg" +} + +BOL.soakFormulas = { + "none" : "0", + "light" : "1d6-3", + "lightQ" : "1d6r1-3", + "lightSup" : "1d6-2", + "lightLeg" : "2d6kh1-2", + "medium" : "1d6-2", + "mediumQ" : "1d6r1-2", + "mediumSup" : "1d6-1", + "mediumLeg" : "2d6kh1-1", + "heavy" : "1d6-1", + "heavyQ" : "1d6r1-1", + "heavySup" : "1d6", + "heavyLeg" : "2d6kh1" +} + +BOL.attackAttributes = { + "vigor" : "BOL.attributes.vigor", + "agility" : "BOL.attributes.agility", + "mind" : "BOL.attributes.mind", + "appeal" : "BOL.attributes.appeal" +} + +BOL.attackAptitudes = { + "melee" : "BOL.aptitudes.melee", + "ranged" : "BOL.aptitudes.ranged" +} + +BOL.aptitudes = { + "melee" : "BOL.aptitudes.melee", + "ranged" : "BOL.aptitudes.ranged", + "init" : "BOL.aptitudes.init", + "def" : "BOL.aptitudes.def" +} + +BOL.damageAttributes = { + "vigor" : "BOL.attributes.vigor", + "agility" : "BOL.attributes.agility", + "mind" : "BOL.attributes.mind", + "appeal" : "BOL.attributes.appeal" +} BOL.itemCategories = { "equipment" : "BOL.itemCategory.equipment", - "consumable" : "BOL.itemCategory.consumable", "spell" : "BOL.itemCategory.spell", - "mount" : "BOL.itemCategory.mount", "vehicle" : "BOL.itemCategory.vehicle", "other" : "BOL.itemCategory.other" } -BOL.equipmentCategories = { - "weapon" : "BOL.equipmentCategory.weapon", +BOL.itemSubtypes = { + "equipment" : "BOL.equipmentCategory.equipment", "protection" : "BOL.equipmentCategory.protection", + "weapon" : "BOL.equipmentCategory.weapon", + "magical" : "BOL.equipmentCategory.magical" +} + +BOL.equipmentCategories = { + "armor" : "BOL.equipmentCategory.armor", + "weapon" : "BOL.equipmentCategory.weapon", + "shield" : "BOL.equipmentCategory.shield", + "helm" : "BOL.equipmentCategory.helm", "jewel" : "BOL.equipmentCategory.jewel", "scroll" : "BOL.equipmentCategory.scroll", - "ammunition" : "BOL.equipmentCategory.ammunition", "container" : "BOL.equipmentCategory.container", + "ammunition" : "BOL.equipmentCategory.ammunition", "currency" : "BOL.equipmentCategory.currency", "other" : "BOL.equipmentCategory.other" } @@ -43,7 +115,14 @@ BOL.weaponCategories = { "other" : "BOL.weaponCategory.other" } -BOL.itemProperties = { +BOL.itemProperties1 = { + "equipable" : "BOL.itemProperty.equipable", + "protection" : "BOL.itemProperty.protection", + "magical" : "BOL.itemProperty.magical", + "worn" : "BOL.itemProperty.worn", +} + +BOL.itemProperties2 = { "equipable" : "BOL.itemProperty.equipable", "protection" : "BOL.itemProperty.protection", "blocking" : "BOL.itemProperty.blocking", @@ -62,6 +141,15 @@ BOL.itemProperties = { "weapon" : "BOL.itemProperty.weapon", "reloadable" : "BOL.itemProperty.reloadable", "worn" : "BOL.itemProperty.worn", + "spell" : "BOL.itemProperty.spell", + "armor" : "BOL.itemProperty.armor", + "consumable" : "BOL.itemProperty.consumable", + "bow" : "BOL.itemProperty.bow", + "crossbow" : "BOL.itemProperty.crossbow", + "throwing" : "BOL.itemProperty.throwing", + "activable" : "BOL.itemProperty.activable", + "powder" : "BOL.itemProperty.powder", + "damage" : "BOL.itemProperty.damage" } BOL.itemStats = { diff --git a/module/system/helpers.js b/module/system/helpers.js index 39aae14..d0a4ea9 100644 --- a/module/system/helpers.js +++ b/module/system/helpers.js @@ -56,6 +56,10 @@ export const registerHandlebarsHelpers = function () { return val1 || val2; }); + Handlebars.registerHelper('or3', function (val1, val2, val3) { + return val1 || val2 || val3; + }); + Handlebars.registerHelper('not', function (cond) { return !cond; }); @@ -100,4 +104,10 @@ export const registerHandlebarsHelpers = function () { return array.includes(val); }); + Handlebars.registerHelper('eval', function (expr) { + return eval(expr); + }); + + + } \ No newline at end of file diff --git a/module/system/hooks.js b/module/system/hooks.js index 70441be..da84301 100644 --- a/module/system/hooks.js +++ b/module/system/hooks.js @@ -1,5 +1,8 @@ export default function registerHooks() { + Hooks.on("renderPause", ((_app, html) => { + html.find("img").attr("src", "systems/bol/ui/pause2.webp") + })) /** * Create a macro when dropping an entity on the hotbar * Item - open roll dialog for item diff --git a/module/system/templates.js b/module/system/templates.js index 81ac0e6..45f12b7 100644 --- a/module/system/templates.js +++ b/module/system/templates.js @@ -19,11 +19,8 @@ export const preloadHandlebarsTemplates = async function () { "systems/bol/templates/item/parts/properties/item-properties.hbs", "systems/bol/templates/item/parts/properties/item/equipment-properties.hbs", "systems/bol/templates/item/parts/properties/item/protection-properties.hbs", - "systems/bol/templates/item/parts/properties/item/shield-properties.hbs", "systems/bol/templates/item/parts/properties/item/weapon-properties.hbs", - "systems/bol/templates/item/parts/properties/item/armor-properties.hbs", - "systems/bol/templates/item/parts/properties/item/melee-properties.hbs", - "systems/bol/templates/item/parts/properties/item/ranged-properties.hbs", + "systems/bol/templates/item/parts/properties/item/magical-properties.hbs", "systems/bol/templates/item/parts/properties/feature/career-properties.hbs", "systems/bol/templates/item/parts/properties/feature/boon-properties.hbs", "systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs", diff --git a/package-lock.json b/package-lock.json index bde637f..509c89c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "MIT", "dependencies": { "gulp": "^4.0.2", - "gulp-less": "^4.0.1" + "gulp-less": "^4.0.1", + "rpg-awesome": "^0.2.0" } }, "node_modules/accord": { @@ -3075,6 +3076,11 @@ "node": ">=0.10.0" } }, + "node_modules/rpg-awesome": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rpg-awesome/-/rpg-awesome-0.2.0.tgz", + "integrity": "sha512-+jTuYWHOs8iZV5+XKvI/7Ojr0k4pLX/dRpa2LHXReGMQI6h0cGvNxIh/AQY1zhAC7LPcNXnPTliD1/ugB/DbRA==" + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -6508,6 +6514,11 @@ "align-text": "^0.1.1" } }, + "rpg-awesome": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rpg-awesome/-/rpg-awesome-0.2.0.tgz", + "integrity": "sha512-+jTuYWHOs8iZV5+XKvI/7Ojr0k4pLX/dRpa2LHXReGMQI6h0cGvNxIh/AQY1zhAC7LPcNXnPTliD1/ugB/DbRA==" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", diff --git a/package.json b/package.json index 0d313aa..c587356 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "private": true, "dependencies": { "gulp": "^4.0.2", - "gulp-less": "^4.0.1" + "gulp-less": "^4.0.1", + "rpg-awesome": "^0.2.0" } } diff --git a/styles/bol.less b/styles/bol.less index 933ae45..126a1ea 100644 --- a/styles/bol.less +++ b/styles/bol.less @@ -1,6 +1,8 @@ +@import "global/typography"; +@import 'global/foundry-overrides'; +@import 'global/mixins'; @import "global/flex"; @import "global/forms"; -@import "global/typography"; @import "global/item-list"; @import "global/colors"; @import 'global/chat'; @@ -14,7 +16,18 @@ @footer-height: 30px; @sidebar-width: 250px; +body.system-bol { + img#logo{ + content: url("/systems/bol/ui/logo2.webp"); + } +} .bol { + //&.app { + //border:none; + //background: transparent; + //box-shadow: none; + //} + &.sheet { @import 'components/common'; &.actor { diff --git a/styles/components/actor.less b/styles/components/actor.less index 245f3c4..fbd4ce3 100644 --- a/styles/components/actor.less +++ b/styles/components/actor.less @@ -1,14 +1,10 @@ .window-content { - form { background-image: url("/systems/bol/ui/logo.webp"); background-repeat: no-repeat; background-size: @logo-width @logo-height; - background-color: white; .sidebar { - //background-color: green; - //background-color: red; padding-top: @logo-height; min-width: @sidebar-width; width: @sidebar-width; @@ -29,8 +25,6 @@ .sheet-body { overflow: hidden; .tab { - height: 100%; - overflow-y: auto; .attribute { &.vigor { background-image: url("/systems/bol/ui/attributes/vigor.webp"); diff --git a/styles/components/common.less b/styles/components/common.less index c2c256d..e8bb7c0 100644 --- a/styles/components/common.less +++ b/styles/components/common.less @@ -1,10 +1,19 @@ +.window-header { + border:none; +} .window-content { - //background: white; height: 100%; - padding: 5px; + padding: 10px; overflow-y: hidden; + background: transparent; form { + border: 10px solid transparent; + border-image: url("/systems/bol/ui/box-border-large.webp") 108/3 repeat; + border-image-outset: 1; + background: white; + margin:0; + padding:0; height: 100%; .sheet-header { //background-color: red; @@ -54,15 +63,16 @@ .main { /* Sheet Tabs */ .tabs { - flex: 0 0 40px; + flex: 0 0 30px; background-color: black; .item { - line-height: 40px; + line-height: 30px; font-weight: bold; font-family: @font-handwrite; color: white; - font-size: 14px; + padding-top: 4px; + font-size: 0.8em; } .item.active { @@ -75,7 +85,8 @@ overflow: hidden; .tab { - height: 100%; + height: 95%; + border:none; overflow-y: auto; /* Items List */ &.description { diff --git a/styles/components/item.less b/styles/components/item.less index 36eacf6..75d2454 100644 --- a/styles/components/item.less +++ b/styles/components/item.less @@ -17,9 +17,9 @@ h1 { line-height: 20px; } - input { - text-align: right; - } + //input { + // text-align: right; + //} } .properties-list { diff --git a/styles/global/chat.less b/styles/global/chat.less index b8c4fb4..9f152e0 100644 --- a/styles/global/chat.less +++ b/styles/global/chat.less @@ -24,3 +24,59 @@ font-weight: bold; } } + +.chat-message { + margin: 3px; + padding: 10px; + font-size: 14px; + border-radius : 0; + background-color: white; + background-image: url("/systems/bol/ui/box-border-large.webp"); + background-repeat: no-repeat; + background-size: 100% 100%; + .message-header { + .flavor-text { + font-family: @font-special; + font-size: 14px; + h2 { + font-family: @font-special2; + font-size: 20px; + } + } + } + .message-content { + .dice-roll { + .dice-result { + .dice-formula { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #282828; + color: white; + } + .dice-tooltip { + .tooltip-part { + .part-formula { + //display: none; + } + .part-total { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #2a2a2a; + color: white; + } + } + } + .dice-total { + border-radius: 0px; + border: 1px inset lightgray; + background-color: #2a2a2a; + color: white; + } + } + } + } + // color: #191813; +// background: url(../bol/ui/box-border-large.webp) no-repeat; +// border: 2px solid #6f6c66; +// border-radius: 5px; +} \ No newline at end of file diff --git a/styles/global/forms.less b/styles/global/forms.less index d453156..0af2e2c 100644 --- a/styles/global/forms.less +++ b/styles/global/forms.less @@ -49,6 +49,7 @@ } select { + box-shadow: none; font-size: 14px; text-align: center; text-align-last: center; @@ -61,7 +62,7 @@ select[multiple]{ box-shadow: none; border: none; - font-size: 12px; + font-size: 14px; &:focus { option:checked { background: @c-darkred linear-gradient(0deg, @c-darkred 0%, @c-darkred 100%); @@ -69,6 +70,10 @@ } } } + option { + font-size: 14px; + .ellipsis(); + } option:hover, option:focus, option:active, @@ -153,6 +158,9 @@ } } + .field-value { + text-align: center; + } } // Stacked Groups @@ -170,13 +178,43 @@ } .form-header { - margin: 0 0 0.25em 0; - padding: 2px 0; - //border-top: $borderGroove; - //border-bottom: $borderGroove; - //font-family: $font-tertiary; - font-size: 20px; + margin: 0.25em 0 0.25em 0; + padding: 2px 5px; + //font-family: @font-special2; + //border-top: @borderGroove; + //border-bottom: @borderGroove; + font-family: @font-tertiary; + color: @colorOlive; + background-color: lightgray; + } + + h1.form-header { + font-size: 2.5em; font-weight: 700; + //color : black; + } + h2.form-header { + font-size: 2em; + font-weight: 500; + //color : black; + //border-top: @borderGroove; + border-bottom: @borderGroove; + } + h3.form-header { + font-size: 1.5em; + font-weight: 500; + //color : black; + //border-top: @borderGroove; + border-bottom: @borderGroove; + } + h4.form-header { + font-size: 1em; + font-weight: 500; + font-family: @font-primary; + color : black; + background-color: transparent; + border-top: none; + border-bottom: @borderGroove; } .tag { diff --git a/styles/global/foundry-overrides.less b/styles/global/foundry-overrides.less new file mode 100644 index 0000000..9a1dc72 --- /dev/null +++ b/styles/global/foundry-overrides.less @@ -0,0 +1,364 @@ +//.window-app .window-header a.header-button { +// @mixin hoverWidth($class) { +// &.#{$class}:hover { +// max-width: 200px; +// color: #292929f0; +// } +// } +// display: flex; +// flex-flow: row-reverse; +// align-items: center; +// max-width: 34px; +// height: 26px; +// white-space: nowrap; +// line-height: 1; +// overflow: hidden; +// padding: 0 6px; +// margin: 0 0 0 4px; +// color: transparent; +// transition: max-width 1s ease; +// @include hoverWidth("char-gen"); +// @include hoverWidth("custom-roll"); +// @include hoverWidth("push-roll"); +// @include hoverWidth("configure-sheet"); +// @include hoverWidth("configure-token"); +// @include hoverWidth("item-post"); +// @include hoverWidth("share-image"); +// @include hoverWidth("entry-text"); +// @include hoverWidth("entry-image"); +// @include hoverWidth("close"); +// > i { +// font-size: var(--font-size--default); +// margin-left: 10px; +// margin-top: 2px; +// color: #292929f0; +// } +//} + +/* -------------- */ +/* Font Awesome */ +/* Overrides */ +/* -------------- */ + +//.fa-suitcase { +// font-family: RPGAwesome; +// font-size: 1.6rem; +// transform: translateY(1px); +// &:before { +// content: "\ea72"; +// } +//} + +//.fa-comments { +// font-family: RPGAwesome; +// font-size: 1.5rem; +// transform: translateY(1px); +// &:before { +// content: "\ea8f"; +// } +//} + +//.fa-fist-raised { +// font-family: Swordlings; +// transform: translate(1.3px, -0.6px); +// font-size: 1.5rem; +// &:before { +// content: "x"; +// } +//} + +/* ------------- */ + +//h3 { +// &.entity-name { +// & > a { +// color: #111; +// text-shadow: 0px 0px 5px #fff; +// font-weight: bold; +// text-transform: uppercase; +// margin: 2%; +// } +// } +//} + +//.window-app { +// .window-content { +// padding: 2px 4px; +// } +// .window-resizable-handle { +// background: none; +// border: none; +// width: 19px; +// height: 19px; +// transform: translate(12px, 12px); +// +// &:hover { +// text-shadow: 0 0 5px #a00; +// } +// +// i.fas { +// transform: translateY(-1.5px) rotate(45deg); +// } +// } +// &.image-popout { +// form.flexcol { +// background: #fff; +// } +// .form-group { +// &.title { +// input { +// font-family: "IM FELL THREE LINE PICA"; +// font-size: var(--font-size--extra-large); +// text-shadow: 0px 3px 4px rgba(0, 0, 0, 0.2); +// text-transform: uppercase; +// border: none; +// } +// } +// &.picker { +// opacity: 0.2; +// } +// input, +// button { +// background: #999; +// } +// } +// } +// .window-header { +// border: none; +// } +// &.minimized { +// .window-header { +// border: none; +// margin-top: -10px; +// display: flex; +// align-items: center; +// line-height: 1.5; +// padding: unset; +// .window-title { +// overflow: hidden; +// white-space: pre; +// } +// } +// } +// // Override weirdly big settings input box for numbers +// &#client-settings .settings-list input[data-dtype="Number"] { +// max-width: 3rem; +// text-align: center; +// } +//} + +//body, +//button { +// font-family: Poppins, sans-serif; +// font-size: var(--font-size--small); +//} +//img { +// border: none; +// &.profile { +// padding: 5px; +// } +//} +// +//.app, +//#hotbar .macro, +//#hotbar .macro .macro-key, +//#hotbar .bar-controls, +//#controls .scene-control, +//#controls .control-tool, +//#navigation #nav-toggle, +//#navigation #scene-list .scene { +// background: #292929f0; +//} + +a.entity-link, +a.inline-roll { + border: none; + background: transparent; + border-bottom: 1px dotted grey; + padding: 0; +} +a { + &.inline-roll { + border: none; + } + &:hover { + text-shadow: 0 0 5px #a00; + } +} + +#pause { + background: none; + & > img { + width: 200px; + height: 200px; + top: -50px; + left: calc(50% - 100px); + opacity: 0.7; + -webkit-animation: rotation 10s infinite linear; + animation: rotation 10s infinite linear; + } + h3 { + font-family: @font-special; + font-size: 32px; + text-shadow: 0px 3px 5px rgba(0, 0, 0, 1); + } +} +//#navigation { +// left: 180px; +//} +//#scenes { +// .scene { +// h3 { +// background-color: #cccccc60; +// white-space: pre-wrap; +// line-height: 1; +// display: grid; +// & > a { +// place-self: center; +// } +// } +// } +//} +//#chat-log { +// .message { +// position: relative; +// &:after { +// content: ""; +// border: 10px solid transparent; +// border-image: url(../assets/journal-art/small-border.webp) 100/10px repeat; +// position: absolute; +// height: calc(100% - 24px); +// width: calc(100% - 24px); +// margin: -3px 7px 7px -3px; +// pointer-events: none; +// } +// } +//} +//.chat-message { +// font-size: var(--font-size--very-small); +// .message-header { +// padding: 8px 13px; +// border-bottom: rgba(0, 0, 0, 0.2); +// } +// .message-content { +// border: none; +// padding: 0 13px 13px; +// } +//} +//#playlists { +// li { +// &.playlist { +// .sound-control { +// color: #666; +// } +// } +// } +//} + +//form { +// & > select[name="folder"] { +// display: none; +// } +// & > .lightbox-image { +// background: rgb(255, 255, 255); +// } +//} +//.window-app.image-popout .form-group.picker:hover, +//.window-app.image-popout .form-group.picker:focus-within { +// opacity: 1; +//} +//li { +// &.directory-item { +// &.entity { +// background: #eee; +// color: #222; +// border-radius: 6px; +// margin: 0 6px; +// } +// } +//} +// +//.sheet .tabs .item { +// white-space: nowrap; +//} +// +//.app.sidebar-popout .folder > .folder-header .create-folder, +//.app.sidebar-popout li.folder > .folder-header .create-entity { +// color: #444; +//} +// +//#player-config { +// .avatar { +// border: 2px dotted #444; +// border-image: url(../assets/journal-art/small-border.webp) 100/10px repeat; +// } +// .directory-item.context { +// border-top: 1px solid black; +// border-bottom: 1px solid #666; +// background: #ccc; +// h3.entity-name > a { +// font-weight: 600; +// } +// } +// h3.entity-name > a { +// font-weight: 400; +// font-size: 1.2rem; +// &:hover { +// text-shadow: 0 0 6px #333; +// } +// } +//} +// +//#sidebar-tabs { +// border-bottom: 1px solid #fff; +// box-shadow: 0 0 6px #fff; +// +// & > .item.active { +// border: 1px solid #fff; +// box-shadow: 0 0 6px inset #fffc; +// } +//} +// +//#navigation #scene-list .scene.view, +//#navigation #scene-list .scene.context { +// border: 1px solid #fff; +// border-bottom: 1px solid #fffc; +// box-shadow: 0 0 10px #fffc; +//} +// +//#controls .scene-control.active, +//#controls .control-tool.active, +//#controls .scene-control:hover, +//#controls .control-tool:hover { +// border: 1px solid #fff; +// border-bottom: 1px solid #fffc; +// box-shadow: 0 0 10px #fffc; +//} +// +//#controls .control-tool.toggle { +// background: #666; +// border: 1px solid #fff; +// +// &:hover, +// &.active { +// background: #700; +// } +//} + +// Fixing scrollbars! +::-webkit-scrollbar-thumb { + outline: none; + border-radius: 3px; + background: #999 !important; + border: 1px solid #333 !important; + border-color: #333 !important; +} +::-webkit-scrollbar-track { + box-shadow: 0 0 3px #005d67 inset !important; + border-radius: 3px; +} + +* { + scrollbar-width: thin !important; + scrollbar-color: #005d67 #ccc !important; +} diff --git a/styles/global/mixins.less b/styles/global/mixins.less new file mode 100644 index 0000000..f166bea --- /dev/null +++ b/styles/global/mixins.less @@ -0,0 +1,48 @@ +.element-invisible { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + clip: rect(0 0 0 0); + overflow: hidden; +} + +.hide { + display: none; +} + +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.nomargin { + margin:0; + padding: 0; +} + +.flxrow { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + + > * { + flex: 1; + } + + .flex1 { flex: 1; } + .flex2 { flex: 2; } + .flex3 { flex: 3; } + .flex4 { flex: 4; } +} + + +//@mixin modesto { +// font-family: $font-tertiary; +// font-size: 20px; +// font-weight: 700; +//} diff --git a/styles/global/typography.less b/styles/global/typography.less index ad207bf..5ef066b 100644 --- a/styles/global/typography.less +++ b/styles/global/typography.less @@ -2,6 +2,7 @@ /* LOCAL FONTS */ /* ----------------------------------------- */ @import url('https://fonts.googleapis.com/css2?family=Contrail+One&display=swap'); +@import "../node_modules/rpg-awesome/css/rpg-awesome.min.css"; //External Import @font-face { font-family: "CCMeanwhile"; @@ -20,6 +21,10 @@ font-family: "Wolfsbane2Expanded"; src: url('../fonts/wolfsbane2expand.ttf'); } +@font-face { + font-family: "IMFellDWPicaSC-Regular"; + src: url('../fonts/IMFellDWPicaSC-Regular.ttf'); +} /* ----------------------------------------- */ /* TEXT STYLES */ @@ -28,6 +33,8 @@ @font-primary: 'Signika', sans-serif; @font-secondary: 'Contrail One', cursive; @font-tertiary: "Wolfsbane2Expanded", cursive; +@font-special: "IMFellDWPicaSC-Regular", serif; +@font-special2 : "Modesto Condensed", "Palatino Linotype", serif; @font-header: "Wolfsbane2", cursive; @font-charname: "Wolfsbane2Expanded", cursive; @font-handwrite: "CCMeanwhile", cursive; diff --git a/system.json b/system.json index bbbe734..10611a0 100644 --- a/system.json +++ b/system.json @@ -72,6 +72,7 @@ "tag": "item" } ], + "background": "ui/splash-page.webp", "gridDistance": 1.5, "gridUnits": "m", "primaryTokenAttribute": "resources.hp", diff --git a/template.json b/template.json index 07a9ce2..36e1716 100644 --- a/template.json +++ b/template.json @@ -139,6 +139,7 @@ "equipment" : { "quantity": 1, "weight": 0, + "price": 0, "properties" : { "ranged": false, "melee": false, diff --git a/templates/actor/actor-sheet.hbs b/templates/actor/actor-sheet.hbs index fb17978..9fcca72 100644 --- a/templates/actor/actor-sheet.hbs +++ b/templates/actor/actor-sheet.hbs @@ -8,11 +8,6 @@ {{> "systems/bol/templates/actor/parts/actor-header.hbs"}} {{!-- Sheet Tab Navigation --}}