Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
7a06e8a5c9 | |||
b4d6616cb4 | |||
aaef4dd896 |
@ -4,7 +4,7 @@
|
|||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "BaskervilleBold";
|
font-family: "BaskervilleBold";
|
||||||
src: url("../fonts/baskerville-bold.ttf") format("truetype");
|
src: url("../assets/fonts/baskerville-bold.ttf") format("truetype");
|
||||||
}
|
}
|
||||||
:root {
|
:root {
|
||||||
--font-primary: "TimesNewRoman", serif;
|
--font-primary: "TimesNewRoman", serif;
|
||||||
@ -13,6 +13,16 @@
|
|||||||
--font-secondary: "BaskervilleBold", serif;
|
--font-secondary: "BaskervilleBold", serif;
|
||||||
--logo-standard: url("../assets/ui/lf_logo_small_02.webp");
|
--logo-standard: url("../assets/ui/lf_logo_small_02.webp");
|
||||||
}
|
}
|
||||||
|
.initiative-area {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
.initiative-area input {
|
||||||
|
min-width: 3rem;
|
||||||
|
max-width: 3rem;
|
||||||
|
}
|
||||||
#logo {
|
#logo {
|
||||||
content: var(--logo-standard);
|
content: var(--logo-standard);
|
||||||
width: 50px;
|
width: 50px;
|
||||||
@ -229,6 +239,10 @@ i.lethalfantasy {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .character-main .character-characteristics .character-characteristic span {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
max-width: 2.2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .character-main .character-characteristics .character-characteristic .rollable:hover,
|
.lethalfantasy .character-main .character-characteristics .character-characteristic .rollable:hover,
|
||||||
.lethalfantasy .character-main .character-characteristics .character-characteristic .rollable:focus {
|
.lethalfantasy .character-main .character-characteristics .character-characteristic .rollable:focus {
|
||||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
@ -342,22 +356,22 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .character-main .character-characteristic-edit {
|
.lethalfantasy .character-main .character-characteristic-edit {
|
||||||
min-width: 160px;
|
min-width: 160px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-biography .biodata {
|
.lethalfantasy .tab.character-biography .main-div .biodata {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-biography .biodata .biodata-elem {
|
.lethalfantasy .tab.character-biography .main-div .biodata .biodata-elem {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-biography .biodata .biodata-elem .item-img {
|
.lethalfantasy .tab.character-biography .main-div .biodata .biodata-elem .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-biography .biodata .biodata-elem .name {
|
.lethalfantasy .tab.character-biography .main-div .biodata .biodata-elem .name {
|
||||||
min-width: 8rem;
|
min-width: 8rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .character-biography prose-mirror.inactive {
|
.lethalfantasy .character-biography prose-mirror.inactive {
|
||||||
@ -366,345 +380,345 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .character-biography prose-mirror.active {
|
.lethalfantasy .character-biography prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills {
|
.lethalfantasy .tab.character-skills .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills legend a {
|
.lethalfantasy .tab.character-skills .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .skills {
|
.lethalfantasy .tab.character-skills .main-div .skills {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .skills .skill {
|
.lethalfantasy .tab.character-skills .main-div .skills .skill {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .skills .skill .item-img {
|
.lethalfantasy .tab.character-skills .main-div .skills .skill .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .skills .skill .name {
|
.lethalfantasy .tab.character-skills .main-div .skills .skill .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .gifts {
|
.lethalfantasy .tab.character-skills .main-div .gifts {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .gifts .gift {
|
.lethalfantasy .tab.character-skills .main-div .gifts .gift {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .gifts .gift .item-img {
|
.lethalfantasy .tab.character-skills .main-div .gifts .gift .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .gifts .gift .name {
|
.lethalfantasy .tab.character-skills .main-div .gifts .gift .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .vulnerabilities {
|
.lethalfantasy .tab.character-skills .main-div .vulnerabilities {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .vulnerabilities .vulnerability {
|
.lethalfantasy .tab.character-skills .main-div .vulnerabilities .vulnerability {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .vulnerabilities .vulnerability .item-img {
|
.lethalfantasy .tab.character-skills .main-div .vulnerabilities .vulnerability .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-skills .vulnerabilities .vulnerability .name {
|
.lethalfantasy .tab.character-skills .main-div .vulnerabilities .vulnerability .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment {
|
.lethalfantasy .tab.character-equipment .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment legend a {
|
.lethalfantasy .tab.character-equipment .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .moneys {
|
.lethalfantasy .tab.character-equipment .main-div .moneys {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(5, 1fr);
|
grid-template-columns: repeat(5, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .equipments {
|
.lethalfantasy .tab.character-equipment .main-div .equipments {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .equipments .equipment {
|
.lethalfantasy .tab.character-equipment .main-div .equipments .equipment {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .equipments .equipment .item-img {
|
.lethalfantasy .tab.character-equipment .main-div .equipments .equipment .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .equipments .equipment .name {
|
.lethalfantasy .tab.character-equipment .main-div .equipments .equipment .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-equipment .equipments .name {
|
.lethalfantasy .tab.character-equipment .main-div .equipments .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat {
|
.lethalfantasy .tab.character-combat .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat legend a {
|
.lethalfantasy .tab.character-combat .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details {
|
.lethalfantasy .tab.character-combat .main-div .combat-details {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .input {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .input {
|
||||||
min-width: 2.5rem;
|
min-width: 2.5rem;
|
||||||
max-width: 2.5rem;
|
max-width: 2.5rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail button {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail button {
|
||||||
min-width: 9rem;
|
min-width: 9rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .armor-hp {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp {
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
min-width: 10rem;
|
min-width: 10rem;
|
||||||
max-width: 10rem;
|
max-width: 10rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .armor-hp .name {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp .name {
|
||||||
min-width: 6rem;
|
min-width: 6rem;
|
||||||
max-width: 6rem;
|
max-width: 6rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .armor-hp .input {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .armor-hp .input {
|
||||||
min-width: 2.5rem;
|
min-width: 2.5rem;
|
||||||
max-width: 2.5rem;
|
max-width: 2.5rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .granted {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .granted {
|
||||||
min-width: 8rem;
|
min-width: 8rem;
|
||||||
max-width: 8rem;
|
max-width: 8rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .combat-details .combat-detail .granted .input {
|
.lethalfantasy .tab.character-combat .main-div .combat-details .combat-detail .granted .input {
|
||||||
min-width: 2.5rem;
|
min-width: 2.5rem;
|
||||||
max-width: 2.5rem;
|
max-width: 2.5rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds {
|
.lethalfantasy .tab.character-combat .main-div .wounds {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound .wound-description {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound .wound-description {
|
||||||
min-width: 14rem;
|
min-width: 14rem;
|
||||||
max-width: 14rem;
|
max-width: 14rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound .wound-duration {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound .wound-duration {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound .wound-value {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound .wound-value {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound .item-img {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .wounds .wound .name {
|
.lethalfantasy .tab.character-combat .main-div .wounds .wound .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .weapons {
|
.lethalfantasy .tab.character-combat .main-div .weapons {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .weapons .weapon {
|
.lethalfantasy .tab.character-combat .main-div .weapons .weapon {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .weapons .weapon .item-img {
|
.lethalfantasy .tab.character-combat .main-div .weapons .weapon .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .weapons .weapon .name {
|
.lethalfantasy .tab.character-combat .main-div .weapons .weapon .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .weapons .weapon .attack-icons a {
|
.lethalfantasy .tab.character-combat .main-div .weapons .weapon .attack-icons a {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .armors {
|
.lethalfantasy .tab.character-combat .main-div .armors {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .armors .armor {
|
.lethalfantasy .tab.character-combat .main-div .armors .armor {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .armors .armor .item-img {
|
.lethalfantasy .tab.character-combat .main-div .armors .armor .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .armors .name {
|
.lethalfantasy .tab.character-combat .main-div .armors .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .armors .item-detail {
|
.lethalfantasy .tab.character-combat .main-div .armors .item-detail {
|
||||||
min-width: 2rem;
|
min-width: 2rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .shields {
|
.lethalfantasy .tab.character-combat .main-div .shields {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
min-width: 20rem;
|
min-width: 20rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .shields .shield {
|
.lethalfantasy .tab.character-combat .main-div .shields .shield {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .shields .shield .item-img {
|
.lethalfantasy .tab.character-combat .main-div .shields .shield .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
margin: 4px 0 0 0;
|
margin: 4px 0 0 0;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .shields .item-detail {
|
.lethalfantasy .tab.character-combat .main-div .shields .item-detail {
|
||||||
min-width: 2.5rem;
|
min-width: 2.5rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-combat .shields .name {
|
.lethalfantasy .tab.character-combat .main-div .shields .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells {
|
.lethalfantasy .tab.character-spells .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells legend a {
|
.lethalfantasy .tab.character-spells .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spell-details {
|
.lethalfantasy .tab.character-spells .main-div .spell-details {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spell-details .spell-detail {
|
.lethalfantasy .tab.character-spells .main-div .spell-details .spell-detail {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spell-details .spell-detail button {
|
.lethalfantasy .tab.character-spells .main-div .spell-details .spell-detail button {
|
||||||
min-width: 10rem;
|
min-width: 10rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spell-details .spell-detail .armor-hp {
|
.lethalfantasy .tab.character-spells .main-div .spell-details .spell-detail .armor-hp {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
max-width: 12rem;
|
max-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spell-details .spell-detail .armor-hp .input {
|
.lethalfantasy .tab.character-spells .main-div .spell-details .spell-detail .armor-hp .input {
|
||||||
flex: 0;
|
flex: 0;
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spells {
|
.lethalfantasy .tab.character-spells .main-div .spells {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
min-width: 18rem;
|
min-width: 18rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spells .spell {
|
.lethalfantasy .tab.character-spells .main-div .spells .spell {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spells .spell .item-img {
|
.lethalfantasy .tab.character-spells .main-div .spells .spell .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells .spells .spell .name {
|
.lethalfantasy .tab.character-spells .main-div .spells .spell .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells prose-mirror.inactive {
|
.lethalfantasy .tab.character-spells .main-div prose-mirror.inactive {
|
||||||
min-height: 40px;
|
min-height: 40px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-spells prose-mirror.active {
|
.lethalfantasy .tab.character-spells .main-div prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles {
|
.lethalfantasy .tab.character-miracles .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles legend a {
|
.lethalfantasy .tab.character-miracles .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1.4);
|
font-size: calc(var(--font-size-standard) * 1.4);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracle-details {
|
.lethalfantasy .tab.character-miracles .main-div .miracle-details {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracle-details .miracle-detail {
|
.lethalfantasy .tab.character-miracles .main-div .miracle-details .miracle-detail {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracle-details .miracle-detail button {
|
.lethalfantasy .tab.character-miracles .main-div .miracle-details .miracle-detail button {
|
||||||
min-width: 10rem;
|
min-width: 10rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracle-details .miracle-detail .armor-hp {
|
.lethalfantasy .tab.character-miracles .main-div .miracle-details .miracle-detail .armor-hp {
|
||||||
min-width: 20rem;
|
min-width: 20rem;
|
||||||
max-width: 20rem;
|
max-width: 20rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracle-details .miracle-detail .armor-hp .input {
|
.lethalfantasy .tab.character-miracles .main-div .miracle-details .miracle-detail .armor-hp .input {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracles {
|
.lethalfantasy .tab.character-miracles .main-div .miracles {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
min-width: 18rem;
|
min-width: 18rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracles .miracle {
|
.lethalfantasy .tab.character-miracles .main-div .miracles .miracle {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracles .miracle .item-img {
|
.lethalfantasy .tab.character-miracles .main-div .miracles .miracle .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles .miracles .miracle .name {
|
.lethalfantasy .tab.character-miracles .main-div .miracles .miracle .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles prose-mirror.inactive {
|
.lethalfantasy .tab.character-miracles .main-div prose-mirror.inactive {
|
||||||
min-height: 40px;
|
min-height: 40px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.character-miracles prose-mirror.active {
|
.lethalfantasy .tab.character-miracles .main-div prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .monster-content {
|
.lethalfantasy .monster-content {
|
||||||
@ -848,6 +862,10 @@ i.lethalfantasy {
|
|||||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.lethalfantasy .monster-main .monster-characteristics .monster-characteristic span {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
max-width: 2.2rem;
|
||||||
|
}
|
||||||
.lethalfantasy .monster-main .monster-characteristics .monster-characteristic .form-group {
|
.lethalfantasy .monster-main .monster-characteristics .monster-characteristic .form-group {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
@ -960,17 +978,17 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .monster-main .monster-characteristic-edit {
|
.lethalfantasy .monster-main .monster-characteristic-edit {
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-biography .biodata {
|
.lethalfantasy .tab.monster-biography .main-div .biodata {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-biography .biodata .biodata-elem {
|
.lethalfantasy .tab.monster-biography .main-div .biodata .biodata-elem {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-biography .biodata .biodata-elem .name {
|
.lethalfantasy .tab.monster-biography .main-div .biodata .biodata-elem .name {
|
||||||
min-width: 8rem;
|
min-width: 8rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .monster-biography prose-mirror.inactive {
|
.lethalfantasy .monster-biography prose-mirror.inactive {
|
||||||
@ -979,63 +997,63 @@ i.lethalfantasy {
|
|||||||
.lethalfantasy .monster-biography prose-mirror.active {
|
.lethalfantasy .monster-biography prose-mirror.active {
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills {
|
.lethalfantasy .tab.monster-skills .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills legend a {
|
.lethalfantasy .tab.monster-skills .main-div legend a {
|
||||||
font-size: calc(var(--font-size-standard) * 1);
|
font-size: calc(var(--font-size-standard) * 1);
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .skills {
|
.lethalfantasy .tab.monster-skills .main-div .skills {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .skills .skill {
|
.lethalfantasy .tab.monster-skills .main-div .skills .skill {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .skills .skill .item-img {
|
.lethalfantasy .tab.monster-skills .main-div .skills .skill .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .skills .skill .name {
|
.lethalfantasy .tab.monster-skills .main-div .skills .skill .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .gifts {
|
.lethalfantasy .tab.monster-skills .main-div .gifts {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .gifts .gift {
|
.lethalfantasy .tab.monster-skills .main-div .gifts .gift {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .gifts .gift .item-img {
|
.lethalfantasy .tab.monster-skills .main-div .gifts .gift .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .gifts .gift .name {
|
.lethalfantasy .tab.monster-skills .main-div .gifts .gift .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .vulnerabilities {
|
.lethalfantasy .tab.monster-skills .main-div .vulnerabilities {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .vulnerabilities .vulnerability {
|
.lethalfantasy .tab.monster-skills .main-div .vulnerabilities .vulnerability {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .vulnerabilities .vulnerability .item-img {
|
.lethalfantasy .tab.monster-skills .main-div .vulnerabilities .vulnerability .item-img {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-skills .vulnerabilities .vulnerability .name {
|
.lethalfantasy .tab.monster-skills .main-div .vulnerabilities .vulnerability .name {
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.lethalfantasy .tab.monster-equipment {
|
.lethalfantasy .tab.monster-equipment {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"COMBAT": {
|
"COMBAT": {
|
||||||
"Round": "Second",
|
"Round": "Second {round}",
|
||||||
"Rounds": "Seconds",
|
"Rounds": "Seconds",
|
||||||
"RoundNext": "Next second"
|
"RoundNext": "Next second"
|
||||||
},
|
},
|
||||||
|
@ -55,20 +55,20 @@ Hooks.once("init", function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet)
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet)
|
||||||
Actors.registerSheet("lethalFantasy", applications.LethalFantasyCharacterSheet, { types: ["character"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("lethalFantasy", applications.LethalFantasyCharacterSheet, { types: ["character"], makeDefault: true })
|
||||||
Actors.registerSheet("lethalFantasy", applications.LethalFantasyMonsterSheet, { types: ["monster"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("lethalFantasy", applications.LethalFantasyMonsterSheet, { types: ["monster"], makeDefault: true })
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet)
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ActorSheet)
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasySkillSheet, { types: ["skill"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasySkillSheet, { types: ["skill"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyGiftSheet, { types: ["gift"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyGiftSheet, { types: ["gift"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyVulnerabilitySheet, { types: ["vulnerability"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyVulnerabilitySheet, { types: ["vulnerability"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyWeaponSheet, { types: ["weapon"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyWeaponSheet, { types: ["weapon"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasySpellSheet, { types: ["spell"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasySpellSheet, { types: ["spell"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyArmorSheet, { types: ["armor"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyArmorSheet, { types: ["armor"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyShieldSheet, { types: ["shield"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyShieldSheet, { types: ["shield"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyEquipmentSheet, { types: ["equipment"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyEquipmentSheet, { types: ["equipment"], makeDefault: true })
|
||||||
Items.registerSheet("lethalFantasy", applications.LethalFantasyMiracleSheet, { types: ["miracle"], makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("lethalFantasy", applications.LethalFantasyMiracleSheet, { types: ["miracle"], makeDefault: true })
|
||||||
|
|
||||||
// Other Document Configuration
|
// Other Document Configuration
|
||||||
CONFIG.ChatMessage.documentClass = documents.LethalFantasyChatMessage
|
CONFIG.ChatMessage.documentClass = documents.LethalFantasyChatMessage
|
||||||
@ -105,11 +105,6 @@ function preLocalizeConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CONFIG.Dice.rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
|
||||||
|
|
||||||
// localizeConfigObject(SYSTEM.ACTION.TAG_CATEGORIES, ["label"])
|
|
||||||
// localizeConfigObject(CONFIG.Dice.rollModes, ["label"])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Hooks.once("ready", function () {
|
Hooks.once("ready", function () {
|
||||||
|
@ -1,18 +1,54 @@
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class LethalFantasyCombatTracker extends CombatTracker {
|
export class LethalFantasyCombatTracker extends foundry.applications.sidebar.tabs.CombatTracker {
|
||||||
|
|
||||||
async getData(options) {
|
static PARTS = {
|
||||||
let data = await super.getData(options);
|
"header": {
|
||||||
for (let u of data.turns) {
|
"template": "systems/fvtt-lethal-fantasy/templates/combat-tracker-header-v2.hbs"
|
||||||
|
},
|
||||||
|
"tracker": {
|
||||||
|
"template": "systems/fvtt-lethal-fantasy/templates/combat-tracker-v2.hbs"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"template": "systems/fvtt-lethal-fantasy/templates/combat-tracker-footer-v2.hbs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static DEFAULT_OPTIONS = foundry.utils.mergeObject(super.DEFAULT_OPTIONS, {
|
||||||
|
actions: {
|
||||||
|
initiativePlus: LethalFantasyCombatTracker.#initiativePlus,
|
||||||
|
initiativeMinus: LethalFantasyCombatTracker.#initiativeMinus,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
async _prepareContext(options) {
|
||||||
|
let data = await super._prepareContext(options);
|
||||||
|
console?.log("Combat Tracker Data", data);
|
||||||
|
/*for (let u of data.turns) {
|
||||||
let c = game.combat.combatants.get(u.id);
|
let c = game.combat.combatants.get(u.id);
|
||||||
u.progressionCount = c.system.progressionCount
|
u.progressionCount = c.system.progressionCount
|
||||||
u.isMonster = c.actor.type === "monster"
|
u.isMonster = c.actor.type === "monster"
|
||||||
}
|
}
|
||||||
console.log("Combat Data", data);
|
console.log("Combat Data", data);*/
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static #initiativePlus(ev) {
|
||||||
|
ev.preventDefault();
|
||||||
|
let cId = ev.target.closest(".combatant").dataset.combatantId;
|
||||||
|
let c = game.combat.combatants.get(cId);
|
||||||
|
c.update({ 'initiative': c.initiative + 1 });
|
||||||
|
console.log("Initiative Plus");
|
||||||
|
}
|
||||||
|
|
||||||
|
static #initiativeMinus(ev) {
|
||||||
|
ev.preventDefault();
|
||||||
|
let cId = ev.target.closest(".combatant").dataset.combatantId;
|
||||||
|
let c = game.combat.combatants.get(cId);
|
||||||
|
let newInit = Math.max(c.initiative - 1, 0);
|
||||||
|
c.update({ 'initiative': newInit });
|
||||||
|
}
|
||||||
|
|
||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
// Display Combat settings
|
// Display Combat settings
|
||||||
@ -21,7 +57,6 @@ export class LethalFantasyCombatTracker extends CombatTracker {
|
|||||||
let cId = ev.currentTarget.closest(".combatant").dataset.combatantId;
|
let cId = ev.currentTarget.closest(".combatant").dataset.combatantId;
|
||||||
let c = game.combat.combatants.get(cId);
|
let c = game.combat.combatants.get(cId);
|
||||||
c.update({ 'initiative': c.initiative + 1 });
|
c.update({ 'initiative': c.initiative + 1 });
|
||||||
console.log("Initiative Plus");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".initiative-minus").click(ev => {
|
html.find(".initiative-minus").click(ev => {
|
||||||
|
@ -23,7 +23,7 @@ export default class LethalFantasyArmorSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ export default class LethalFantasyActorSheet extends HandlebarsApplicationMixin(
|
|||||||
actor: this.document,
|
actor: this.document,
|
||||||
system: this.document.system,
|
system: this.document.system,
|
||||||
source: this.document.toObject(),
|
source: this.document.toObject(),
|
||||||
enrichedDescription: await TextEditor.enrichHTML(this.document.system.description, { async: true }),
|
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }),
|
||||||
isEditMode: this.isEditMode,
|
isEditMode: this.isEditMode,
|
||||||
isPlayMode: this.isPlayMode,
|
isPlayMode: this.isPlayMode,
|
||||||
isEditable: this.isEditable,
|
isEditable: this.isEditable,
|
||||||
@ -100,7 +100,7 @@ export default class LethalFantasyActorSheet extends HandlebarsApplicationMixin(
|
|||||||
dragover: this._onDragOver.bind(this),
|
dragover: this._onDragOver.bind(this),
|
||||||
drop: this._onDrop.bind(this),
|
drop: this._onDrop.bind(this),
|
||||||
}
|
}
|
||||||
return new DragDrop(d)
|
return new foundry.applications.ux.DragDrop.implementation(d)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,22 +58,25 @@ export default class LethalFantasyItemSheet extends HandlebarsApplicationMixin(f
|
|||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = {
|
let context = await super._prepareContext()
|
||||||
|
const contextLocal = {
|
||||||
fields: this.document.schema.fields,
|
fields: this.document.schema.fields,
|
||||||
systemFields: this.document.system.schema.fields,
|
systemFields: this.document.system.schema.fields,
|
||||||
item: this.document,
|
item: this.document,
|
||||||
system: this.document.system,
|
system: this.document.system,
|
||||||
source: this.document.toObject(),
|
source: this.document.toObject(),
|
||||||
enrichedDescription: await TextEditor.enrichHTML(this.document.system.description, { async: true }),
|
enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true }),
|
||||||
isEditMode: this.isEditMode,
|
isEditMode: this.isEditMode,
|
||||||
isPlayMode: this.isPlayMode,
|
isPlayMode: this.isPlayMode,
|
||||||
isEditable: this.isEditable,
|
isEditable: this.isEditable,
|
||||||
}
|
}
|
||||||
|
context = mergeObject(context, contextLocal)
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
_onRender(context, options) {
|
_onRender(context, options) {
|
||||||
|
super._onRender(context, options)
|
||||||
this.#dragDrop.forEach((d) => d.bind(this.element))
|
this.#dragDrop.forEach((d) => d.bind(this.element))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,9 +90,6 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
_generateTooltip(type, target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
async _preparePartContext(partId, context) {
|
async _preparePartContext(partId, context) {
|
||||||
const doc = this.document
|
const doc = this.document
|
||||||
@ -127,8 +124,8 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
break
|
break
|
||||||
case "biography":
|
case "biography":
|
||||||
context.tab = context.tabs.biography
|
context.tab = context.tabs.biography
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.description, { async: true })
|
||||||
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.notes, { async: true })
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
return context
|
return context
|
||||||
@ -143,18 +140,17 @@ export default class LethalFantasyCharacterSheet extends LethalFantasyActorSheet
|
|||||||
*/
|
*/
|
||||||
async _onDrop(event) {
|
async _onDrop(event) {
|
||||||
if (!this.isEditable || !this.isEditMode) return
|
if (!this.isEditable || !this.isEditMode) return
|
||||||
const data = TextEditor.getDragEventData(event)
|
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
||||||
|
|
||||||
// Handle different data types
|
// Handle different data types
|
||||||
switch (data.type) {
|
if (data.type === "Item") {
|
||||||
case "Item":
|
|
||||||
const item = await fromUuid(data.uuid)
|
const item = await fromUuid(data.uuid)
|
||||||
return this._onDropItem(item)
|
return this._onDropItem(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async #onRangedAttackDefense(event, target) {
|
static async #onRangedAttackDefense(event, target) {
|
||||||
const hasTarget = false
|
// Future use : const hasTarget = false
|
||||||
|
|
||||||
let roll = await LethalFantasyRoll.promptRangedDefense({
|
let roll = await LethalFantasyRoll.promptRangedDefense({
|
||||||
actorId: this.actor.id,
|
actorId: this.actor.id,
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyEquipmentSheet extends LethalFantasyItemSheet
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyGiftSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyMiracleSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,9 +63,6 @@ export default class LethalFantasyMonsterSheet extends LethalFantasyActorSheet {
|
|||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
_generateTooltip(type, target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
async _preparePartContext(partId, context) {
|
async _preparePartContext(partId, context) {
|
||||||
const doc = this.document
|
const doc = this.document
|
||||||
@ -78,8 +75,8 @@ export default class LethalFantasyMonsterSheet extends LethalFantasyActorSheet {
|
|||||||
break
|
break
|
||||||
case "biography":
|
case "biography":
|
||||||
context.tab = context.tabs.biography
|
context.tab = context.tabs.biography
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.description, { async: true })
|
||||||
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(doc.system.notes, { async: true })
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
return context
|
return context
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyShieldSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasySkillSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasySpellSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyVulnerabilitySheet extends LethalFantasyItemSh
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ export default class LethalFantasyWeaponSheet extends LethalFantasyItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
const context = await super._prepareContext()
|
const context = await super._prepareContext()
|
||||||
context.enrichedDescription = await TextEditor.enrichHTML(this.document.system.description, { async: true })
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description, { async: true })
|
||||||
return context
|
return context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,22 +44,13 @@ export const MONEY = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const MORTAL_CHOICES = {
|
export const MORTAL_CHOICES = {
|
||||||
"mankind": {label: "Mankind", value: "Mankind", defenseBonus: 0},
|
"mankind": {label: "Mankind", id: "mankind", defenseBonus: 0},
|
||||||
"elf": {label: "Elf", value: "Elf", defenseBonus: 0},
|
"elf": {label: "Elf", id: "elf", defenseBonus: 0},
|
||||||
"dwarf": {label: "Dwarf", value: "Dwarf", defenseBonus: 0},
|
"dwarf": {label: "Dwarf", id: "dwarf", defenseBonus: 0},
|
||||||
"halfelf": {label: "Half-Elf", value: "Half-Elf", defenseBonus: 0},
|
"halfelf": {label: "Half-Elf", id: "halfelf", defenseBonus: 0},
|
||||||
"halforc": {label: "Half-Orc", value: "Half-Orc", defenseBonus: 0},
|
"halforc": {label: "Half-Orc", id: "halforc", defenseBonus: 0},
|
||||||
"gnome": {label: "Gnome", value: "Gnome", defenseBonus: 2},
|
"gnome": {label: "Gnome", id: "gnome", defenseBonus: 2},
|
||||||
"shirefolk": {label: "Shire Folk", value: "Shire Folk", defenseBonus: 2},
|
"halflings": {label: "Halflings", id: "halflings", defenseBonus: 2}
|
||||||
"Elf": {label: "Elf", value: "Elf", defenseBonus: 0},
|
|
||||||
"Half-orc": {label: "Half-Orc", value: "Half-Orc", defenseBonus: 0},
|
|
||||||
"Half-Orc": {label: "Half-Orc", value: "Half-Orc", defenseBonus: 0},
|
|
||||||
"Dwarf": {label: "Dwarf", value: "Dwarf", defenseBonus: 0},
|
|
||||||
"Half-elf": {label: "Half-Elf", value: "Half-Elf", defenseBonus: 0},
|
|
||||||
"Gnome": {label: "Gnome", value: "Gnome", defenseBonus: 2},
|
|
||||||
"Shire Folk": {label: "Shire Folk", value: "Shire Folk", defenseBonus: 2},
|
|
||||||
"Shire folk": {label: "Shire Folk", value: "Shire Folk", defenseBonus: 2},
|
|
||||||
"Mankind": {label: "Human", value: "Human", defenseBonus: 0},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const FAVOR_CHOICES = {
|
export const FAVOR_CHOICES = {
|
||||||
|
@ -292,8 +292,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
hasModifier = false
|
hasModifier = false
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Roll mode", CONFIG.Dice.rollModes)
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes); // v12 : Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
||||||
const rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
|
||||||
console.log("Roll mode", rollModes)
|
console.log("Roll mode", rollModes)
|
||||||
|
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
@ -332,7 +331,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
favor: "none",
|
favor: "none",
|
||||||
targetName
|
targetName
|
||||||
}
|
}
|
||||||
const content = await renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-dialog.hbs", dialogContext)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-dialog.hbs", dialogContext)
|
||||||
|
|
||||||
let position = game.user.getFlag(SYSTEM.id, "roll-dialog-pos") || { top: -1, left: -1 }
|
let position = game.user.getFlag(SYSTEM.id, "roll-dialog-pos") || { top: -1, left: -1 }
|
||||||
const label = game.i18n.localize("LETHALFANTASY.Roll.roll")
|
const label = game.i18n.localize("LETHALFANTASY.Roll.roll")
|
||||||
@ -345,7 +344,8 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
{
|
{
|
||||||
label: label,
|
label: label,
|
||||||
callback: (event, button, dialog) => {
|
callback: (event, button, dialog) => {
|
||||||
let position = $(dialog).position()
|
console.log("Roll context", event, button, dialog)
|
||||||
|
let position = dialog.position
|
||||||
game.user.setFlag(SYSTEM.id, "roll-dialog-pos", foundry.utils.duplicate(position))
|
game.user.setFlag(SYSTEM.id, "roll-dialog-pos", foundry.utils.duplicate(position))
|
||||||
const output = Array.from(button.form.elements).reduce((obj, input) => {
|
const output = Array.from(button.form.elements).reduce((obj, input) => {
|
||||||
if (input.name) obj[input.name] = input.value
|
if (input.name) obj[input.name] = input.value
|
||||||
@ -569,7 +569,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
|
|
||||||
/* ***********************************************************/
|
/* ***********************************************************/
|
||||||
static async promptInitiative(options = {}) {
|
static async promptInitiative(options = {}) {
|
||||||
const rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes); // v12 : Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
choices: rollModes,
|
choices: rollModes,
|
||||||
blank: false,
|
blank: false,
|
||||||
@ -592,7 +592,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
}
|
}
|
||||||
console.log("CTX", dialogContext)
|
console.log("CTX", dialogContext)
|
||||||
|
|
||||||
const content = await renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-initiative-dialog.hbs", dialogContext)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/roll-initiative-dialog.hbs", dialogContext)
|
||||||
|
|
||||||
const label = game.i18n.localize("LETHALFANTASY.Label.initiative")
|
const label = game.i18n.localize("LETHALFANTASY.Label.initiative")
|
||||||
const rollContext = await foundry.applications.api.DialogV2.wait({
|
const rollContext = await foundry.applications.api.DialogV2.wait({
|
||||||
@ -631,7 +631,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
/* ***********************************************************/
|
/* ***********************************************************/
|
||||||
static async promptCombatAction(options = {}) {
|
static async promptCombatAction(options = {}) {
|
||||||
|
|
||||||
const rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes); // v12 : Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
choices: rollModes,
|
choices: rollModes,
|
||||||
blank: false,
|
blank: false,
|
||||||
@ -655,7 +655,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
...options
|
...options
|
||||||
}
|
}
|
||||||
|
|
||||||
const content = await renderTemplate("systems/fvtt-lethal-fantasy/templates/combat-action-dialog.hbs", dialogContext)
|
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-lethal-fantasy/templates/combat-action-dialog.hbs", dialogContext)
|
||||||
|
|
||||||
let buttons = []
|
let buttons = []
|
||||||
if (currentAction) {
|
if (currentAction) {
|
||||||
@ -890,7 +890,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
/* ***********************************************************/
|
/* ***********************************************************/
|
||||||
static async promptRangedDefense(rollTarget) {
|
static async promptRangedDefense(rollTarget) {
|
||||||
|
|
||||||
const rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes); // v12 : Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
choices: rollModes,
|
choices: rollModes,
|
||||||
blank: false,
|
blank: false,
|
||||||
@ -1053,7 +1053,7 @@ export default class LethalFantasyRoll extends Roll {
|
|||||||
async render(chatOptions = {}) {
|
async render(chatOptions = {}) {
|
||||||
let chatData = await this._getChatCardData(chatOptions.isPrivate)
|
let chatData = await this._getChatCardData(chatOptions.isPrivate)
|
||||||
console.log("ChatData", chatData)
|
console.log("ChatData", chatData)
|
||||||
return await renderTemplate(this.constructor.CHAT_TEMPLATE, chatData)
|
return await foundry.applications.handlebars.renderTemplate(this.constructor.CHAT_TEMPLATE, chatData)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -174,6 +174,31 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
|
|||||||
/** @override */
|
/** @override */
|
||||||
static LOCALIZATION_PREFIXES = ["LETHALFANTASY.Character"]
|
static LOCALIZATION_PREFIXES = ["LETHALFANTASY.Character"]
|
||||||
|
|
||||||
|
static migrateData(data) {
|
||||||
|
if (data?.biodata?.mortal) {
|
||||||
|
if (!SYSTEM.MORTAL_CHOICES[data.biodata.mortal]) {
|
||||||
|
for (let key in SYSTEM.MORTAL_CHOICES) {
|
||||||
|
let mortal = SYSTEM.MORTAL_CHOICES[key]
|
||||||
|
if ( mortal.label.toLowerCase() === data.biodata.mortal.toLowerCase()) {
|
||||||
|
data.biodata.mortal = mortal.id
|
||||||
|
}
|
||||||
|
if ( data.biodata.mortal.toLowerCase().includes("shire")) {
|
||||||
|
data.biodata.mortal = "halflings"
|
||||||
|
}
|
||||||
|
if ( data.biodata.mortal.toLowerCase().includes("human")) {
|
||||||
|
data.biodata.mortal = "mankind"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!SYSTEM.MORTAL_CHOICES[data.biodata.mortal]) {
|
||||||
|
console.warn("Lethal Fantasy | Migrate data: Mortal not found, forced to mankind", data.biodata.mortal)
|
||||||
|
data.biodata.mortal = "mankind"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.migrateData(data)
|
||||||
|
}
|
||||||
|
|
||||||
prepareDerivedData() {
|
prepareDerivedData() {
|
||||||
super.prepareDerivedData();
|
super.prepareDerivedData();
|
||||||
let grit = 0
|
let grit = 0
|
||||||
|
@ -238,7 +238,7 @@ export default class LethalFantasyMonster extends foundry.abstract.TypeDataModel
|
|||||||
|
|
||||||
async rollProgressionDice(combatId, combatantId) {
|
async rollProgressionDice(combatId, combatantId) {
|
||||||
|
|
||||||
const rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
const rollModes = foundry.utils.duplicate(CONFIG.Dice.rollModes)
|
||||||
const fieldRollMode = new foundry.data.fields.StringField({
|
const fieldRollMode = new foundry.data.fields.StringField({
|
||||||
choices: rollModes,
|
choices: rollModes,
|
||||||
blank: false,
|
blank: false,
|
||||||
|
@ -22,28 +22,28 @@ export default class LethalFantasyUtils {
|
|||||||
static setHookListeners() {
|
static setHookListeners() {
|
||||||
|
|
||||||
Hooks.on('renderTokenHUD', async (hud, html, token) => {
|
Hooks.on('renderTokenHUD', async (hud, html, token) => {
|
||||||
const lossHPButton = await renderTemplate('systems/fvtt-lethal-fantasy/templates/loss-hp-hud.hbs', {} )
|
const lossHPButton = await foundry.applications.handlebars.renderTemplate('systems/fvtt-lethal-fantasy/templates/loss-hp-hud.hbs', {} )
|
||||||
html.find('div.left').append(lossHPButton);
|
$(html).find('div.left').append(lossHPButton);
|
||||||
html.find('img.lethal-hp-loss-hud').click((event) => {
|
$(html).find('img.lethal-hp-loss-hud').click((event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let hpMenu = html.find('.hp-loss-wrap')[0]
|
let hpMenu = $(html).find('.hp-loss-wrap')[0]
|
||||||
if (hpMenu.classList.contains("hp-loss-hud-disabled")) {
|
if (hpMenu.classList.contains("hp-loss-hud-disabled")) {
|
||||||
html.find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-disabled');
|
||||||
} else {
|
} else {
|
||||||
html.find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-disabled');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
html.find('.loss-hp-hud-click').click((event) => {
|
$(html).find('.loss-hp-hud-click').click((event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let hpLoss = event.currentTarget.dataset.hpValue;
|
let hpLoss = event.currentTarget.dataset.hpValue;
|
||||||
if (token) {
|
if (token) {
|
||||||
@ -51,12 +51,12 @@ export default class LethalFantasyUtils {
|
|||||||
console.log(tokenFull, token)
|
console.log(tokenFull, token)
|
||||||
let actor = tokenFull.actor;
|
let actor = tokenFull.actor;
|
||||||
actor.applyDamage(Number(hpLoss));
|
actor.applyDamage(Number(hpLoss));
|
||||||
html.find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[0].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[0].classList.add('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[1].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[1].classList.add('hp-loss-hud-disabled');
|
||||||
html.find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-active');
|
$(html).find('.hp-loss-wrap')[2].classList.remove('hp-loss-hud-active');
|
||||||
html.find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-disabled');
|
$(html).find('.hp-loss-wrap')[2].classList.add('hp-loss-hud-disabled');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Binary file not shown.
BIN
packs-system/lf-equipment/000323.ldb
Normal file
BIN
packs-system/lf-equipment/000323.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000303
|
MANIFEST-000348
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2025/05/06-10:52:19.288970 7fc4e7fff6c0 Recovering log #300
|
2025/05/29-16:36:11.138560 7f53e4df86c0 Recovering log #346
|
||||||
2025/05/06-10:52:19.300271 7fc4e7fff6c0 Delete type=3 #298
|
2025/05/29-16:36:11.150394 7f53e4df86c0 Delete type=3 #344
|
||||||
2025/05/06-10:52:19.300323 7fc4e7fff6c0 Delete type=0 #300
|
2025/05/29-16:36:11.150472 7f53e4df86c0 Delete type=0 #346
|
||||||
2025/05/06-10:53:10.017977 7fc4e73ff6c0 Level-0 table #306: started
|
2025/05/29-18:48:12.764595 7f53df3ff6c0 Level-0 table #351: started
|
||||||
2025/05/06-10:53:10.018020 7fc4e73ff6c0 Level-0 table #306: 0 bytes OK
|
2025/05/29-18:48:12.764652 7f53df3ff6c0 Level-0 table #351: 0 bytes OK
|
||||||
2025/05/06-10:53:10.024080 7fc4e73ff6c0 Delete type=0 #304
|
2025/05/29-18:48:12.777058 7f53df3ff6c0 Delete type=0 #349
|
||||||
2025/05/06-10:53:10.044191 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800778 7f53df3ff6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:53:10.044277 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800877 7f53df3ff6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
2025/05/06-10:45:53.342160 7fc4ecbf86c0 Recovering log #296
|
2025/05/22-18:45:28.754313 7f53737fe6c0 Recovering log #342
|
||||||
2025/05/06-10:45:53.353010 7fc4ecbf86c0 Delete type=3 #294
|
2025/05/22-18:45:28.804653 7f53737fe6c0 Delete type=3 #340
|
||||||
2025/05/06-10:45:53.353081 7fc4ecbf86c0 Delete type=0 #296
|
2025/05/22-18:45:28.804783 7f53737fe6c0 Delete type=0 #342
|
||||||
2025/05/06-10:51:12.708848 7fc4e73ff6c0 Level-0 table #301: started
|
2025/05/22-19:43:04.046497 7f53723ff6c0 Level-0 table #347: started
|
||||||
2025/05/06-10:51:12.714248 7fc4e73ff6c0 Level-0 table #301: 213746 bytes OK
|
2025/05/22-19:43:04.046522 7f53723ff6c0 Level-0 table #347: 0 bytes OK
|
||||||
2025/05/06-10:51:12.720525 7fc4e73ff6c0 Delete type=0 #299
|
2025/05/22-19:43:04.084205 7f53723ff6c0 Delete type=0 #345
|
||||||
2025/05/06-10:51:12.748598 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
2025/05/22-19:43:04.153359 7f53723ff6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.748667 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at '!items!zw9RQocTdz3HRjZK' @ 564 : 1
|
2025/05/22-19:43:04.153400 7f53723ff6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.748677 7fc4e73ff6c0 Compacting 1@1 + 1@2 files
|
|
||||||
2025/05/06-10:51:12.755813 7fc4e73ff6c0 Generated table #302@1: 485 keys, 214492 bytes
|
|
||||||
2025/05/06-10:51:12.755833 7fc4e73ff6c0 Compacted 1@1 + 1@2 files => 214492 bytes
|
|
||||||
2025/05/06-10:51:12.761728 7fc4e73ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2025/05/06-10:51:12.761886 7fc4e73ff6c0 Delete type=2 #289
|
|
||||||
2025/05/06-10:51:12.762144 7fc4e73ff6c0 Delete type=2 #301
|
|
||||||
2025/05/06-10:51:12.795034 7fc4e73ff6c0 Manual compaction at level-1 from '!items!zw9RQocTdz3HRjZK' @ 564 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs-system/lf-equipment/MANIFEST-000348
Normal file
BIN
packs-system/lf-equipment/MANIFEST-000348
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs-system/lf-gifts/000322.ldb
Normal file
BIN
packs-system/lf-gifts/000322.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000302
|
MANIFEST-000347
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2025/05/06-10:52:19.304583 7fc4ed3f96c0 Recovering log #299
|
2025/05/29-16:36:11.158130 7f53e5dfa6c0 Recovering log #345
|
||||||
2025/05/06-10:52:19.314806 7fc4ed3f96c0 Delete type=3 #297
|
2025/05/29-16:36:11.168794 7f53e5dfa6c0 Delete type=3 #343
|
||||||
2025/05/06-10:52:19.314910 7fc4ed3f96c0 Delete type=0 #299
|
2025/05/29-16:36:11.168968 7f53e5dfa6c0 Delete type=0 #345
|
||||||
2025/05/06-10:53:10.030599 7fc4e73ff6c0 Level-0 table #305: started
|
2025/05/29-18:48:12.777345 7f53df3ff6c0 Level-0 table #350: started
|
||||||
2025/05/06-10:53:10.030635 7fc4e73ff6c0 Level-0 table #305: 0 bytes OK
|
2025/05/29-18:48:12.777387 7f53df3ff6c0 Level-0 table #350: 0 bytes OK
|
||||||
2025/05/06-10:53:10.036964 7fc4e73ff6c0 Delete type=0 #303
|
2025/05/29-18:48:12.788225 7f53df3ff6c0 Delete type=0 #348
|
||||||
2025/05/06-10:53:10.044214 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800802 7f53df3ff6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:53:10.044269 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800914 7f53df3ff6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
2025/05/06-10:45:53.355849 7fc4edbfa6c0 Recovering log #295
|
2025/05/22-18:45:28.835173 7f5373fff6c0 Recovering log #341
|
||||||
2025/05/06-10:45:53.366571 7fc4edbfa6c0 Delete type=3 #293
|
2025/05/22-18:45:28.894795 7f5373fff6c0 Delete type=3 #339
|
||||||
2025/05/06-10:45:53.366637 7fc4edbfa6c0 Delete type=0 #295
|
2025/05/22-18:45:28.894867 7f5373fff6c0 Delete type=0 #341
|
||||||
2025/05/06-10:51:12.732133 7fc4e73ff6c0 Level-0 table #300: started
|
2025/05/22-19:43:04.009442 7f53723ff6c0 Level-0 table #346: started
|
||||||
2025/05/06-10:51:12.736129 7fc4e73ff6c0 Level-0 table #300: 15304 bytes OK
|
2025/05/22-19:43:04.009522 7f53723ff6c0 Level-0 table #346: 0 bytes OK
|
||||||
2025/05/06-10:51:12.742079 7fc4e73ff6c0 Delete type=0 #298
|
2025/05/22-19:43:04.046375 7f53723ff6c0 Delete type=0 #344
|
||||||
2025/05/06-10:51:12.748632 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
2025/05/22-19:43:04.153344 7f53723ff6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.771871 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at '!items!zjvGljrLk5SshC9D' @ 65 : 1
|
2025/05/22-19:43:04.153392 7f53723ff6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.771882 7fc4e73ff6c0 Compacting 1@1 + 1@2 files
|
|
||||||
2025/05/06-10:51:12.776442 7fc4e73ff6c0 Generated table #301@1: 31 keys, 15417 bytes
|
|
||||||
2025/05/06-10:51:12.776461 7fc4e73ff6c0 Compacted 1@1 + 1@2 files => 15417 bytes
|
|
||||||
2025/05/06-10:51:12.782727 7fc4e73ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2025/05/06-10:51:12.782835 7fc4e73ff6c0 Delete type=2 #288
|
|
||||||
2025/05/06-10:51:12.782952 7fc4e73ff6c0 Delete type=2 #300
|
|
||||||
2025/05/06-10:51:12.795077 7fc4e73ff6c0 Manual compaction at level-1 from '!items!zjvGljrLk5SshC9D' @ 65 : 1 .. '!items!zjvGljrLk5SshC9D' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs-system/lf-gifts/MANIFEST-000347
Normal file
BIN
packs-system/lf-gifts/MANIFEST-000347
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs-system/lf-skills/000322.ldb
Normal file
BIN
packs-system/lf-skills/000322.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000302
|
MANIFEST-000347
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2025/05/06-10:52:19.275594 7fc4ecbf86c0 Recovering log #299
|
2025/05/29-16:36:11.123463 7f53e55f96c0 Recovering log #345
|
||||||
2025/05/06-10:52:19.285984 7fc4ecbf86c0 Delete type=3 #297
|
2025/05/29-16:36:11.133586 7f53e55f96c0 Delete type=3 #343
|
||||||
2025/05/06-10:52:19.286069 7fc4ecbf86c0 Delete type=0 #299
|
2025/05/29-16:36:11.133663 7f53e55f96c0 Delete type=0 #345
|
||||||
2025/05/06-10:53:10.024277 7fc4e73ff6c0 Level-0 table #305: started
|
2025/05/29-18:48:12.753680 7f53df3ff6c0 Level-0 table #350: started
|
||||||
2025/05/06-10:53:10.024336 7fc4e73ff6c0 Level-0 table #305: 0 bytes OK
|
2025/05/29-18:48:12.753732 7f53df3ff6c0 Level-0 table #350: 0 bytes OK
|
||||||
2025/05/06-10:53:10.030435 7fc4e73ff6c0 Delete type=0 #303
|
2025/05/29-18:48:12.764334 7f53df3ff6c0 Delete type=0 #348
|
||||||
2025/05/06-10:53:10.044204 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800724 7f53df3ff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:53:10.044252 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800854 7f53df3ff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
2025/05/06-10:45:53.317135 7fc4e7fff6c0 Recovering log #295
|
2025/05/22-18:45:28.668409 7f5378bfa6c0 Recovering log #341
|
||||||
2025/05/06-10:45:53.339293 7fc4e7fff6c0 Delete type=3 #293
|
2025/05/22-18:45:28.725273 7f5378bfa6c0 Delete type=3 #339
|
||||||
2025/05/06-10:45:53.339350 7fc4e7fff6c0 Delete type=0 #295
|
2025/05/22-18:45:28.725349 7f5378bfa6c0 Delete type=0 #341
|
||||||
2025/05/06-10:51:12.783010 7fc4e73ff6c0 Level-0 table #300: started
|
2025/05/22-19:43:04.084321 7f53723ff6c0 Level-0 table #346: started
|
||||||
2025/05/06-10:51:12.787977 7fc4e73ff6c0 Level-0 table #300: 154604 bytes OK
|
2025/05/22-19:43:04.084343 7f53723ff6c0 Level-0 table #346: 0 bytes OK
|
||||||
2025/05/06-10:51:12.794741 7fc4e73ff6c0 Delete type=0 #298
|
2025/05/22-19:43:04.122081 7f53723ff6c0 Delete type=0 #344
|
||||||
2025/05/06-10:51:12.795090 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
2025/05/22-19:43:04.153372 7f53723ff6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.795140 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at '!items!zt8s7564ep1La4XQ' @ 281 : 1
|
2025/05/22-19:43:04.153416 7f53723ff6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.795156 7fc4e73ff6c0 Compacting 1@1 + 1@2 files
|
|
||||||
2025/05/06-10:51:12.800410 7fc4e73ff6c0 Generated table #301@1: 95 keys, 121769 bytes
|
|
||||||
2025/05/06-10:51:12.800436 7fc4e73ff6c0 Compacted 1@1 + 1@2 files => 121769 bytes
|
|
||||||
2025/05/06-10:51:12.806480 7fc4e73ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2025/05/06-10:51:12.806620 7fc4e73ff6c0 Delete type=2 #288
|
|
||||||
2025/05/06-10:51:12.806871 7fc4e73ff6c0 Delete type=2 #300
|
|
||||||
2025/05/06-10:51:12.827417 7fc4e73ff6c0 Manual compaction at level-1 from '!items!zt8s7564ep1La4XQ' @ 281 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs-system/lf-skills/MANIFEST-000347
Normal file
BIN
packs-system/lf-skills/MANIFEST-000347
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs-system/lf-spells-miracles/000022.ldb
Normal file
BIN
packs-system/lf-spells-miracles/000022.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000002
|
MANIFEST-000047
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2025/05/06-10:52:19.344307 7fc4e7fff6c0 Delete type=3 #1
|
2025/05/29-16:36:11.187985 7f53e4df86c0 Recovering log #45
|
||||||
2025/05/06-10:53:10.044408 7fc4e73ff6c0 Level-0 table #5: started
|
2025/05/29-16:36:11.199498 7f53e4df86c0 Delete type=3 #43
|
||||||
2025/05/06-10:53:10.051976 7fc4e73ff6c0 Level-0 table #5: 433603 bytes OK
|
2025/05/29-16:36:11.199566 7f53e4df86c0 Delete type=0 #45
|
||||||
2025/05/06-10:53:10.058524 7fc4e73ff6c0 Delete type=0 #3
|
2025/05/29-18:48:12.801134 7f53df3ff6c0 Level-0 table #50: started
|
||||||
2025/05/06-10:53:10.078387 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.801185 7f53df3ff6c0 Level-0 table #50: 0 bytes OK
|
||||||
|
2025/05/29-18:48:12.810101 7f53df3ff6c0 Delete type=0 #48
|
||||||
|
2025/05/29-18:48:12.859825 7f53df3ff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
|
2025/05/29-18:48:12.859922 7f53df3ff6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
|
8
packs-system/lf-spells-miracles/LOG.old
Normal file
8
packs-system/lf-spells-miracles/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2025/05/22-18:45:28.985810 7f5372ffd6c0 Recovering log #41
|
||||||
|
2025/05/22-18:45:29.040662 7f5372ffd6c0 Delete type=3 #39
|
||||||
|
2025/05/22-18:45:29.040742 7f5372ffd6c0 Delete type=0 #41
|
||||||
|
2025/05/22-19:43:04.281148 7f53723ff6c0 Level-0 table #46: started
|
||||||
|
2025/05/22-19:43:04.281205 7f53723ff6c0 Level-0 table #46: 0 bytes OK
|
||||||
|
2025/05/22-19:43:04.315875 7f53723ff6c0 Delete type=0 #44
|
||||||
|
2025/05/22-19:43:04.316126 7f53723ff6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
||||||
|
2025/05/22-19:43:04.366588 7f53723ff6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
|
Binary file not shown.
BIN
packs-system/lf-spells-miracles/MANIFEST-000047
Normal file
BIN
packs-system/lf-spells-miracles/MANIFEST-000047
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs-system/lf-vulnerabilities/000322.ldb
Normal file
BIN
packs-system/lf-vulnerabilities/000322.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000302
|
MANIFEST-000347
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2025/05/06-10:52:19.317853 7fc4edbfa6c0 Recovering log #299
|
2025/05/29-16:36:11.172412 7f53e55f96c0 Recovering log #345
|
||||||
2025/05/06-10:52:19.327788 7fc4edbfa6c0 Delete type=3 #297
|
2025/05/29-16:36:11.183464 7f53e55f96c0 Delete type=3 #343
|
||||||
2025/05/06-10:52:19.327923 7fc4edbfa6c0 Delete type=0 #299
|
2025/05/29-16:36:11.183540 7f53e55f96c0 Delete type=0 #345
|
||||||
2025/05/06-10:53:10.037095 7fc4e73ff6c0 Level-0 table #305: started
|
2025/05/29-18:48:12.788378 7f53df3ff6c0 Level-0 table #350: started
|
||||||
2025/05/06-10:53:10.037121 7fc4e73ff6c0 Level-0 table #305: 0 bytes OK
|
2025/05/29-18:48:12.788406 7f53df3ff6c0 Level-0 table #350: 0 bytes OK
|
||||||
2025/05/06-10:53:10.044101 7fc4e73ff6c0 Delete type=0 #303
|
2025/05/29-18:48:12.800425 7f53df3ff6c0 Delete type=0 #348
|
||||||
2025/05/06-10:53:10.044224 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800827 7f53df3ff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:53:10.044260 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/05/29-18:48:12.800943 7f53df3ff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
2025/05/06-10:45:53.369722 7fc4ed3f96c0 Recovering log #295
|
2025/05/22-18:45:28.912541 7f5378bfa6c0 Recovering log #341
|
||||||
2025/05/06-10:45:53.379868 7fc4ed3f96c0 Delete type=3 #293
|
2025/05/22-18:45:28.969080 7f5378bfa6c0 Delete type=3 #339
|
||||||
2025/05/06-10:45:53.379989 7fc4ed3f96c0 Delete type=0 #295
|
2025/05/22-18:45:28.969151 7f5378bfa6c0 Delete type=0 #341
|
||||||
2025/05/06-10:51:12.720972 7fc4e73ff6c0 Level-0 table #300: started
|
2025/05/22-19:43:04.122198 7f53723ff6c0 Level-0 table #346: started
|
||||||
2025/05/06-10:51:12.724909 7fc4e73ff6c0 Level-0 table #300: 20719 bytes OK
|
2025/05/22-19:43:04.122219 7f53723ff6c0 Level-0 table #346: 0 bytes OK
|
||||||
2025/05/06-10:51:12.731912 7fc4e73ff6c0 Delete type=0 #298
|
2025/05/22-19:43:04.153184 7f53723ff6c0 Delete type=0 #344
|
||||||
2025/05/06-10:51:12.748619 7fc4e73ff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
2025/05/22-19:43:04.153383 7f53723ff6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.762241 7fc4e73ff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at '!items!zkK6ixtCsCw3RH9X' @ 62 : 1
|
2025/05/22-19:43:04.153407 7f53723ff6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
||||||
2025/05/06-10:51:12.762247 7fc4e73ff6c0 Compacting 1@1 + 1@2 files
|
|
||||||
2025/05/06-10:51:12.765506 7fc4e73ff6c0 Generated table #301@1: 27 keys, 20869 bytes
|
|
||||||
2025/05/06-10:51:12.765523 7fc4e73ff6c0 Compacted 1@1 + 1@2 files => 20869 bytes
|
|
||||||
2025/05/06-10:51:12.771435 7fc4e73ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2025/05/06-10:51:12.771569 7fc4e73ff6c0 Delete type=2 #288
|
|
||||||
2025/05/06-10:51:12.771746 7fc4e73ff6c0 Delete type=2 #300
|
|
||||||
2025/05/06-10:51:12.795060 7fc4e73ff6c0 Manual compaction at level-1 from '!items!zkK6ixtCsCw3RH9X' @ 62 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
|
|
||||||
|
Binary file not shown.
BIN
packs-system/lf-vulnerabilities/MANIFEST-000347
Normal file
BIN
packs-system/lf-vulnerabilities/MANIFEST-000347
Normal file
Binary file not shown.
@ -93,6 +93,10 @@
|
|||||||
.character-characteristic {
|
.character-characteristic {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
span {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
max-width: 2.2rem;
|
||||||
|
}
|
||||||
.rollable:hover,
|
.rollable:hover,
|
||||||
.rollable:focus {
|
.rollable:focus {
|
||||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
@ -218,7 +222,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-biography {
|
.tab.character-biography .main-div{
|
||||||
.biodata {
|
.biodata {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
@ -248,7 +252,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-skills {
|
.tab.character-skills .main-div{
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
@ -310,7 +314,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-equipment {
|
.tab.character-equipment .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
@ -349,7 +353,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-combat {
|
.tab.character-combat .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
@ -497,7 +501,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-spells {
|
.tab.character-spells .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
@ -558,7 +562,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.character-miracles {
|
.tab.character-miracles .main-div {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
|
@ -5,6 +5,5 @@
|
|||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "BaskervilleBold";
|
font-family: "BaskervilleBold";
|
||||||
src: url("../fonts/baskerville-bold.ttf") format("truetype");
|
src: url("../assets/fonts/baskerville-bold.ttf") format("truetype");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,17 @@
|
|||||||
--logo-standard: url("../assets/ui/lf_logo_small_02.webp");
|
--logo-standard: url("../assets/ui/lf_logo_small_02.webp");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.initiative-area {
|
||||||
|
min-width: 8rem;
|
||||||
|
max-width: 8rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
input {
|
||||||
|
min-width: 3rem;
|
||||||
|
max-width: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#logo {
|
#logo {
|
||||||
content: var(--logo-standard);
|
content: var(--logo-standard);
|
||||||
width: 50px;
|
width: 50px;
|
||||||
|
@ -99,6 +99,10 @@
|
|||||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
span {
|
||||||
|
min-width: 2.2rem;
|
||||||
|
max-width: 2.2rem;
|
||||||
|
}
|
||||||
.form-group {
|
.form-group {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
@ -223,7 +227,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.monster-biography {
|
.tab.monster-biography .main-div {
|
||||||
.biodata {
|
.biodata {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
@ -248,7 +252,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.monster-skills {
|
.tab.monster-skills .main-div{
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
legend {
|
legend {
|
||||||
@ -462,4 +466,3 @@
|
|||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"download": "#{DOWNLOAD}#",
|
"download": "#{DOWNLOAD}#",
|
||||||
"url": "#{URL}#",
|
"url": "#{URL}#",
|
||||||
"license": "LICENSE",
|
"license": "LICENSE",
|
||||||
"version": "12.0.35",
|
"version": "13.0.0",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Uberwald",
|
"name": "Uberwald",
|
||||||
@ -14,8 +14,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "12",
|
"minimum": "13",
|
||||||
"verified": "12"
|
"verified": "13"
|
||||||
},
|
},
|
||||||
"esmodules": ["lethal-fantasy.mjs"],
|
"esmodules": ["lethal-fantasy.mjs"],
|
||||||
"styles": ["css/fvtt-lethal-fantasy.css"],
|
"styles": ["css/fvtt-lethal-fantasy.css"],
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.biodata"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.biodata"}}</legend>
|
||||||
@ -92,5 +93,5 @@
|
|||||||
<legend>{{localize "LETHALFANTASY.Label.notes"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.notes"}}</legend>
|
||||||
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
{{formInput systemFields.notes enriched=enrichedNotes value=system.notes name="system.notes" toggled=true}}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="combat" data-group="sheet">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.combatDetails"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.combatDetails"}}</legend>
|
||||||
@ -155,5 +156,6 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
<div>
|
||||||
|
|
||||||
</section>
|
</section>
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.money"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.money"}}</legend>
|
||||||
@ -31,5 +32,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
@ -174,14 +174,14 @@
|
|||||||
<fieldset class="character-characteristics character-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
<fieldset class="character-characteristics character-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||||
<legend>{{localize "LETHALFANTASY.Label.characteristics"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.characteristics"}}</legend>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.str"}}
|
<span>{{localize "LETHALFANTASY.Label.str"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
{{formField systemFields.characteristics.fields.str.fields.value value=system.characteristics.str.value
|
||||||
disabled=isPlayMode data-char-id="str" }}
|
disabled=isPlayMode data-char-id="str" }}
|
||||||
{{formField systemFields.characteristics.fields.str.fields.percent value=system.characteristics.str.percent
|
{{formField systemFields.characteristics.fields.str.fields.percent value=system.characteristics.str.percent
|
||||||
disabled=isPlayMode type="number"}}
|
disabled=isPlayMode type="number"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.int"}}
|
<span>{{localize "LETHALFANTASY.Label.int"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
||||||
disabled=isPlayMode data-char-id="int" }}
|
disabled=isPlayMode data-char-id="int" }}
|
||||||
|
|
||||||
@ -189,7 +189,7 @@
|
|||||||
disabled=isPlayMode type="number" }}
|
disabled=isPlayMode type="number" }}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.wis"}}
|
<span>{{localize "LETHALFANTASY.Label.wis"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.wis.fields.value value=system.characteristics.wis.value
|
{{formField systemFields.characteristics.fields.wis.fields.value value=system.characteristics.wis.value
|
||||||
disabled=isPlayMode data-char-id="wis" }}
|
disabled=isPlayMode data-char-id="wis" }}
|
||||||
|
|
||||||
@ -197,7 +197,7 @@
|
|||||||
disabled=isPlayMode type="number"}}
|
disabled=isPlayMode type="number"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.dex"}}
|
<span>{{localize "LETHALFANTASY.Label.dex"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
||||||
disabled=isPlayMode data-char-id="wis" }}
|
disabled=isPlayMode data-char-id="wis" }}
|
||||||
|
|
||||||
@ -205,7 +205,7 @@
|
|||||||
disabled=isPlayMode type="number" }}
|
disabled=isPlayMode type="number" }}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.con"}}
|
<span>{{localize "LETHALFANTASY.Label.con"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
{{formField systemFields.characteristics.fields.con.fields.value value=system.characteristics.con.value
|
||||||
disabled=isPlayMode data-char-id="con" }}
|
disabled=isPlayMode data-char-id="con" }}
|
||||||
|
|
||||||
@ -213,7 +213,7 @@
|
|||||||
disabled=isPlayMode type="number"}}
|
disabled=isPlayMode type="number"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.cha"}}
|
<span>{{localize "LETHALFANTASY.Label.cha"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
|
{{formField systemFields.characteristics.fields.cha.fields.value value=system.characteristics.cha.value
|
||||||
disabled=isPlayMode data-char-id="cha" }}
|
disabled=isPlayMode data-char-id="cha" }}
|
||||||
|
|
||||||
@ -221,7 +221,7 @@
|
|||||||
disabled=isPlayMode type="number"}}
|
disabled=isPlayMode type="number"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.luc"}}
|
<span>{{localize "LETHALFANTASY.Label.luc"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.luc.fields.value value=system.characteristics.luc.value
|
{{formField systemFields.characteristics.fields.luc.fields.value value=system.characteristics.luc.value
|
||||||
disabled=isPlayMode data-char-id="luc" }}
|
disabled=isPlayMode data-char-id="luc" }}
|
||||||
|
|
||||||
@ -229,7 +229,7 @@
|
|||||||
disabled=isPlayMode type="number"}}
|
disabled=isPlayMode type="number"}}
|
||||||
</div>
|
</div>
|
||||||
<div class="character-characteristic">
|
<div class="character-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.app"}}
|
<span>{{localize "LETHALFANTASY.Label.app"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.app.fields.value value=system.characteristics.app.value
|
{{formField systemFields.characteristics.fields.app.fields.value value=system.characteristics.app.value
|
||||||
disabled=isPlayMode data-char-id="app" }}
|
disabled=isPlayMode data-char-id="app" }}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.divinityPoints"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.divinityPoints"}}</legend>
|
||||||
@ -46,5 +47,6 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="skills" data-group="sheet">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend data-tooltip="{{localize " LETHALFANTASY.Tooltip.skills"}}" data-tooltip-direction="UP">{{localize
|
<legend data-tooltip="{{localize " LETHALFANTASY.Tooltip.skills"}}" data-tooltip-direction="UP">{{localize
|
||||||
@ -68,5 +69,5 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
@ -1,4 +1,5 @@
|
|||||||
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
<section class="tab character-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||||
|
<div class="main-div">
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{localize "LETHALFANTASY.Label.aetherPoints"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.aetherPoints"}}</legend>
|
||||||
@ -10,7 +11,8 @@
|
|||||||
<a data-action="aetherPointsMinus"><i class="fa-solid fa-hexagon-minus"></i></a>
|
<a data-action="aetherPointsMinus"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||||
|
|
||||||
<span>Max</span>
|
<span>Max</span>
|
||||||
{{formField systemFields.aetherPoints.fields.max value=system.aetherPoints.max localize=true disabled=isPlayMode}}
|
{{formField systemFields.aetherPoints.fields.max value=system.aetherPoints.max localize=true
|
||||||
|
disabled=isPlayMode}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -46,5 +48,5 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
@ -18,7 +18,7 @@
|
|||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<select name="visibility">
|
||||||
{{selectOptions rollModes selected=visibility}}
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
</select>
|
</select>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
|
39
templates/combat-tracker-footer-v2.hbs
Normal file
39
templates/combat-tracker-footer-v2.hbs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<nav class="combat-controls" data-tooltip-direction="UP">
|
||||||
|
{{~#if hasCombat~}}
|
||||||
|
|
||||||
|
{{!-- GM Controls --}}
|
||||||
|
{{#if user.isGM}}
|
||||||
|
{{#if combat.round}}
|
||||||
|
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-backward-step"
|
||||||
|
data-action="previousRound" data-tooltip aria-label="{{ localize "COMBAT.RoundPrev" }}"></button>
|
||||||
|
<button type="button" class="inline-control combat-control icon fa-solid fa-arrow-left" data-action="previousTurn"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.TurnPrev" }}"></button> -->
|
||||||
|
<button type="button" class="combat-control combat-control-lg" data-action="endCombat">
|
||||||
|
<i class="fa-solid fa-xmark" inert></i>
|
||||||
|
<span>{{ localize "COMBAT.End" }}</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-arrow-right" data-action="nextTurn"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.TurnNext" }}"></button> -->
|
||||||
|
<button type="button" class="inline-control combat-control icon fa-solid fa-forward-step" data-action="nextRound"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.RoundNext" }}"></button>
|
||||||
|
{{else}}
|
||||||
|
<button type="button" class="combat-control combat-control-lg" data-action="startCombat">
|
||||||
|
<i class="fa-solid fa-swords" inert></i>
|
||||||
|
<span>{{ localize "COMBAT.Begin" }}</span>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{!-- Active Player Controls --}}
|
||||||
|
{{else if control}}
|
||||||
|
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-arrow-left" data-action="previousTurn"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.TurnPrev" }}"></button>
|
||||||
|
<button type="button" class="combat-control combat-control-lg" data-action="nextTurn">
|
||||||
|
<i class="fa-solid fa-check"></i>
|
||||||
|
<span>{{ localize "COMBAT.TurnEnd" }}</span>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="inline-control combat-control icon fa-solid fa-arrow-right" data-action="nextTurn"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.TurnNext" }}"></button> -->
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</nav>
|
92
templates/combat-tracker-header-v2.hbs
Normal file
92
templates/combat-tracker-header-v2.hbs
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<header class="combat-tracker-header">
|
||||||
|
|
||||||
|
{{!-- Encounter Controls --}}
|
||||||
|
{{#if user.isGM}}
|
||||||
|
<nav class="encounters {{ css }}" aria-label="{{ localize "COMBAT.NavLabel" }}">
|
||||||
|
|
||||||
|
{{!-- Cycle Display --}}
|
||||||
|
{{#if displayCycle}}
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-plus" data-action="createCombat"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.Create" }}"></button>
|
||||||
|
|
||||||
|
<div class="cycle-combats">
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-caret-left" data-action="cycleCombat"
|
||||||
|
{{#if previousId}}data-combat-id="{{ previousId }}" {{else}}disabled{{/if}}
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.EncounterPrevious" }}"></button>
|
||||||
|
<div class="encounter-count">
|
||||||
|
<span class="value">{{ currentIndex }}</span>
|
||||||
|
<span class="separator">/</span>
|
||||||
|
<span class="max">{{ combats.length }}</span>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-caret-right" data-action="cycleCombat"
|
||||||
|
{{#if nextId}}data-combat-id="{{ nextId }}" {{else}}disabled{{/if}}
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.EncounterNext" }}"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-gear" data-action="trackerSettings"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.Settings" }}"></button>
|
||||||
|
|
||||||
|
{{!-- Tabbed Display --}}
|
||||||
|
{{else if combats.length}}
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-plus" data-action="createCombat"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.Create" }}"></button>
|
||||||
|
{{#each combats}}
|
||||||
|
<button type="button" class="inline-control {{#if active}}active{{/if}}" data-action="cycleCombat"
|
||||||
|
data-combat-id="{{ id }}">
|
||||||
|
{{ label }}
|
||||||
|
</button>
|
||||||
|
{{/each}}
|
||||||
|
<button type="button" class="inline-control icon fa-solid fa-gear" data-action="trackerSettings"
|
||||||
|
data-tooltip aria-label="{{ localize "COMBAT.Settings" }}"></button>
|
||||||
|
|
||||||
|
{{!-- No Combats --}}
|
||||||
|
{{else}}
|
||||||
|
<button type="button" class="combat-control-lg" data-action="createCombat">
|
||||||
|
<i class="fa-solid fa-plus" inert></i>
|
||||||
|
<span>{{ localize "COMBAT.Create" }}</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{{/if}}
|
||||||
|
</nav>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="encounter-controls {{#if hasCombat}}combat{{/if}}">
|
||||||
|
|
||||||
|
{{!-- Bulk Rolls --}}
|
||||||
|
<div class="control-buttons left flexrow">
|
||||||
|
{{#if user.isGM}}
|
||||||
|
<button type="button" class="inline-control combat-control icon fa-solid fa-users" data-action="rollAll"
|
||||||
|
{{#unless combat.turns.length}}disabled{{/unless}} data-tooltip="COMBAT.RollAll"
|
||||||
|
aria-label="{{ localize "COMBAT.RollAll" }}"></button>
|
||||||
|
<button type="button" class="inline-control combat-control icon fa-solid fa-users-cog" data-action="rollNPC"
|
||||||
|
{{#unless combat.turns.length}}disabled{{/unless}} data-tooltip="COMBAT.RollNPC"
|
||||||
|
aria-label="{{ localize "COMBAT.RollNPC" }}"></button>
|
||||||
|
{{else}}
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div class="spacer"></div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Combat Status --}}
|
||||||
|
<strong class="encounter-title">
|
||||||
|
{{#if combats.length}}
|
||||||
|
{{#if combat.round}}
|
||||||
|
{{ localize "COMBAT.Round" round=combat.round }}
|
||||||
|
{{else}}
|
||||||
|
{{ localize "COMBAT.NotStarted" }}
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
{{ localize "COMBAT.None" }}
|
||||||
|
{{/if}}
|
||||||
|
</strong>
|
||||||
|
|
||||||
|
{{!-- Combat Controls --}}
|
||||||
|
<div class="control-buttons right flexrow">
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<button type="button" class="encounter-context-menu inline-control combat-control icon fa-solid fa-ellipsis-vertical"
|
||||||
|
{{#unless (and user.isGM hasCombat)}}disabled{{/unless}}></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
81
templates/combat-tracker-v2.hbs
Normal file
81
templates/combat-tracker-v2.hbs
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<ol class="combat-tracker plain">
|
||||||
|
{{#each turns}}
|
||||||
|
<li class="combatant {{ css }}" data-combatant-id="{{ id }}" data-action="activateCombatant">
|
||||||
|
{{!-- TODO: Targets --}}
|
||||||
|
|
||||||
|
{{!-- Image --}}
|
||||||
|
<img class="token-image" src="{{ img }}" alt="{{ name }}" loading="lazy">
|
||||||
|
|
||||||
|
{{!-- Name & Controls --}}
|
||||||
|
<div class="token-name">
|
||||||
|
<strong class="name">{{ name }}</strong>
|
||||||
|
<div class="combatant-controls">
|
||||||
|
{{#if @root.user.isGM}}
|
||||||
|
<button type="button" class="inline-control combatant-control icon fa-solid fa-eye-slash {{#if hidden}}active{{/if}}"
|
||||||
|
data-action="toggleHidden" data-tooltip aria-label="{{ localize "COMBAT.ToggleVis" }}"></button>
|
||||||
|
<button type="button" class="inline-control combatant-control icon fa-solid fa-skull {{#if isDefeated}}active{{/if}}"
|
||||||
|
data-action="toggleDefeated" data-tooltip
|
||||||
|
aria-label="{{ localize "COMBAT.ToggleDead" }}"></button>
|
||||||
|
{{/if}}
|
||||||
|
{{#if canPing}}
|
||||||
|
<button type="button" class="inline-control combatant-control icon fa-solid fa-bullseye-arrow"
|
||||||
|
data-action="pingCombatant" data-tooltip
|
||||||
|
aria-label="{{ localize "COMBAT.PingCombatant" }}"></button>
|
||||||
|
{{/if}}
|
||||||
|
{{#unless @root.user.isGM}}
|
||||||
|
<button type="button" class="inline-control combatant-control icon fa-solid fa-arrows-to-eye"
|
||||||
|
data-action="panToCombatant" data-tooltip
|
||||||
|
aria-label="{{ localize "COMBAT.PanToCombatant" }}"></button>
|
||||||
|
{{/unless}}
|
||||||
|
{{!-- TODO: Target Control --}}
|
||||||
|
<div class="token-effects" data-tooltip-html="{{ effects.tooltip }}">
|
||||||
|
{{#each effects.icons}}
|
||||||
|
<img class="token-effect" src="{{ img }}" alt="{{ name }}">
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Resource --}}
|
||||||
|
{{#if resource includeZero=true}}
|
||||||
|
<div class="token-resource">
|
||||||
|
<span class="resource">{{ resource }}</span>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{!-- Initiative --}}
|
||||||
|
<div class="token-initiative initiative-area">
|
||||||
|
{{#if initiative includeZero=true}}
|
||||||
|
|
||||||
|
{{!-- Decimal Initiative --}}
|
||||||
|
{{#if @root.hasDecimals}}
|
||||||
|
<span>{{ initiative }}</span>
|
||||||
|
|
||||||
|
{{!-- Simple Initiative --}}
|
||||||
|
{{else}}
|
||||||
|
<input type="text" class="initiative-input" inputmode="numeric" pattern="^[+=\-]?\d*" value="{{ initiative }}"
|
||||||
|
aria-label="{{ localize "COMBAT.InitiativeScore" }}" {{#unless @root.user.isGM}}readonly{{/unless}}>
|
||||||
|
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isOwner}}
|
||||||
|
<a data-action="initiativePlus" class="initiative-plus" data-combatant-id="{{this.id}}"><i class="fa-solid fa-hexagon-plus"></i></a>
|
||||||
|
<a data-action="initiativeMinus" class="initiative-minus" data-combatant-id="{{this.id}}"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if isMonster}}
|
||||||
|
<span class="initiative">-</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="initiative" data-tooltip="Current max. progression counter">{{progressionCount}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{!-- Roll Initiative --}}
|
||||||
|
{{else if isOwner}}
|
||||||
|
<button type="button" class="combatant-control roll" data-action="rollInitiative" data-tooltip
|
||||||
|
aria-label="{{ localize "COMBAT.InitiativeRoll" }}"
|
||||||
|
style="--initiative-icon: url('{{ @root.initiativeIcon.icon }}'); --initiative-icon-hover: url('{{ @root.initiativeIcon.hover }}');"></button>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ol>
|
@ -157,7 +157,7 @@
|
|||||||
<fieldset class="monster-characteristics monster-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
<fieldset class="monster-characteristics monster-characteristics-{{ifThen isPlayMode 'play' 'edit'}}">
|
||||||
<legend>{{localize "LETHALFANTASY.Label.characteristics"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Label.characteristics"}}</legend>
|
||||||
<div class="monster-characteristic">
|
<div class="monster-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.int"}}
|
<span>x{{localize "LETHALFANTASY.Label.int"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
{{formField systemFields.characteristics.fields.int.fields.value value=system.characteristics.int.value
|
||||||
disabled=isPlayMode data-char-id="int" }}
|
disabled=isPlayMode data-char-id="int" }}
|
||||||
|
|
||||||
@ -165,7 +165,7 @@
|
|||||||
disabled=isPlayMode type="number" }}
|
disabled=isPlayMode type="number" }}
|
||||||
</div>
|
</div>
|
||||||
<div class="monster-characteristic">
|
<div class="monster-characteristic">
|
||||||
{{localize "LETHALFANTASY.Label.dex"}}
|
<span>{{localize "LETHALFANTASY.Label.dex"}}</span>
|
||||||
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
{{formField systemFields.characteristics.fields.dex.fields.value value=system.characteristics.dex.value
|
||||||
disabled=isPlayMode data-char-id="wis" }}
|
disabled=isPlayMode data-char-id="wis" }}
|
||||||
|
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
<section>
|
|
||||||
{{!log "opponent sheet" this}}
|
|
||||||
<div class="opponent-header">
|
|
||||||
<img class="opponent-img" src="{{actor.img}}" data-edit="img" data-action="editImage" data-tooltip="{{actor.name}}" />
|
|
||||||
{{formInput fields.name value=source.name}}
|
|
||||||
<a class="control" data-action="toggleSheet" data-tooltip="TENEBRIS.ToggleSheet" data-tooltip-direction="UP">
|
|
||||||
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="opponent-main">
|
|
||||||
<div class="opponent-gauche">
|
|
||||||
<fieldset class="opponent-caracteristiques">
|
|
||||||
<legend>{{localize "TENEBRIS.Character.Label.caracteristiques"}}</legend>
|
|
||||||
{{formField systemFields.dv value=system.dv disabled=isPlayMode}}
|
|
||||||
{{formField systemFields.pv.fields.value value=system.pv.value}}
|
|
||||||
{{formField systemFields.pv.fields.max value=system.pv.max disabled=isPlayMode}}
|
|
||||||
{{formField systemFields.armure value=system.armure disabled=isPlayMode}}
|
|
||||||
{{formField systemFields.malus value=system.malus disabled=isPlayMode}}
|
|
||||||
{{formField systemFields.actions value=system.actions disabled=isPlayMode}}
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset class="opponent-attacks">
|
|
||||||
<legend>{{localize "TENEBRIS.Character.Label.attaques"}}
|
|
||||||
{{#if isEditMode}}<a class="action" data-tooltip="{{localize 'TENEBRIS.Tooltip.addAttack'}}" data-tooltip-direction="UP"><i
|
|
||||||
class="fas fa-plus"
|
|
||||||
data-action="createAttack"
|
|
||||||
></i></a>{{/if}}</legend>
|
|
||||||
{{#each attacks as |attack|}}
|
|
||||||
<div class="opponent-attack" data-drag="true" data-drag-type="attack" data-roll-value="{{attack.system.degats}}" data-roll-target="{{attack.name}}">
|
|
||||||
<div class="attack-name">
|
|
||||||
<a
|
|
||||||
class="rollable"
|
|
||||||
data-item-id="{{attack.id}}"
|
|
||||||
data-item-name="{{attack.name}}"
|
|
||||||
data-action="roll"
|
|
||||||
data-roll-type="attack"
|
|
||||||
data-roll-value="{{attack.system.degats}}"
|
|
||||||
>{{attack.system.degats}}</a>
|
|
||||||
(<span data-tooltip="{{attack.system.toolTip}}">{{attack.name}}</span>)
|
|
||||||
</div>
|
|
||||||
{{#if @root.isEditMode}}
|
|
||||||
<div class="controls">
|
|
||||||
<a data-tooltip="{{localize 'TENEBRIS.Edit'}}" data-action="edit" data-item-id="{{attack.id}}" data-item-uuid="{{attack.uuid}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a data-tooltip="{{localize 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{attack.id}}" data-item-uuid="{{attack.uuid}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
{{#if (or isEditMode (and isPlayMode hasSpells))}}
|
|
||||||
<fieldset class="opponent-spells">
|
|
||||||
<legend>{{localize "TENEBRIS.Label.spells"}}{{#if isEditMode}}<a class="action" data-tooltip="{{localize "TENEBRIS.Tooltip.addSpell"}}" data-tooltip-direction="UP"><i class="fas fa-plus" data-action="createSpell"></i></a>{{/if}}</legend>
|
|
||||||
{{#each spells as |spell|}}
|
|
||||||
<div class="opponent-spell">
|
|
||||||
<div class="name" data-tooltip="{{{spell.system.description}}}">
|
|
||||||
{{spell.name}}
|
|
||||||
</div>
|
|
||||||
{{#if @root.isEditMode}}
|
|
||||||
<div class="controls">
|
|
||||||
<a data-tooltip="{{localize 'TENEBRIS.Edit'}}" data-action="edit" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}"><i class="fas fa-edit"></i></a>
|
|
||||||
<a data-tooltip="{{localize 'TENEBRIS.Delete'}}" data-action="delete" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</fieldset>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="opponent-droite">
|
|
||||||
<fieldset class="opponent-description">
|
|
||||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
|
||||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true compact=true}}
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
@ -45,7 +45,7 @@
|
|||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<select name="visibility">
|
||||||
{{selectOptions rollModes selected=visibility}}
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
</select>
|
</select>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@
|
|||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<select name="visibility">
|
||||||
{{selectOptions rollModes selected=visibility}}
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
</select>
|
</select>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<select name="visibility">
|
||||||
{{selectOptions rollModes selected=visibility}}
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
</select>
|
</select>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
<fieldSet>
|
<fieldSet>
|
||||||
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
<legend>{{localize "LETHALFANTASY.Roll.visibility"}}</legend>
|
||||||
<select name="visibility">
|
<select name="visibility">
|
||||||
{{selectOptions rollModes selected=visibility}}
|
{{selectOptions rollModes selected=visibility localize=true}}
|
||||||
</select>
|
</select>
|
||||||
</fieldSet>
|
</fieldSet>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user