Browse Source

Fix for Foundry v9 + missing elements

master
Sylvain «Greewi» Dumazet 1 year ago
parent
commit
12b8f8ca92
  1. 430
      l5r4.css
  2. 5
      l5r4.js
  3. 31
      lang/en.json
  4. 31
      lang/es.json
  5. 4
      less/global.less
  6. 1
      less/l5r4.less
  7. 8
      less/pc-armor-tn.less
  8. 14
      less/pc-armors.less
  9. 100
      less/pc-equipment.less
  10. 17
      less/pc-honor-and-combat.less
  11. 10
      less/pc-sheet.less
  12. 16
      less/pc-skills.less
  13. 87
      less/pc-spells-techniques.less
  14. 246
      less/pc-stats.less
  15. 5
      less/pc-wounds.less
  16. 6
      module/L5R4Actor.js
  17. 6
      module/L5R4Item.js
  18. 15
      module/config.js
  19. 2
      module/sheets/L5R4ItemSheet.js
  20. 17
      module/sheets/L5R4PcSheet.js
  21. 4837
      package-lock.json
  22. 5
      system.json
  23. 50
      template.json
  24. 1
      templates/chat/create-equipment-dialog.hbs
  25. 6
      templates/chat/create-spell-dialog.hbs
  26. 16
      templates/partials/armor-card.hbs
  27. 6
      templates/partials/pc-armor-tn.hbs
  28. 10
      templates/partials/pc-equipment.hbs
  29. 58
      templates/partials/pc-honor-and-combat.hbs
  30. 2
      templates/partials/pc-skills.hbs
  31. 24
      templates/partials/pc-spells-techniques.hbs
  32. 171
      templates/partials/pc-stats.hbs
  33. 7
      templates/partials/spell-card.hbs
  34. 5
      templates/partials/technique-card.hbs
  35. 32
      templates/partials/weapon-card.hbs

430
l5r4.css

@ -62,16 +62,17 @@
text-align: center;
}
.l5r4.pc .ranks {
text-align: center;
text-align-last: center;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
column-gap: 1.5em;
}
.l5r4.pc .ranks .rank-name {
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: baseline;
flex: 0 1 auto;
display: grid;
grid-template-columns: 1fr min-content;
column-gap: 0.8em;
align-items: center;
text-align: right;
}
.l5r4.pc .ranks select {
font-size: 1em;
@ -79,7 +80,7 @@
.l5r4.pc .ranks input {
border: none;
margin-bottom: 0.25em;
flex-shrink: 7;
text-align: center;
}
.l5r4.pc .combat-stats .initiative-table {
display: flexbox;
@ -96,20 +97,19 @@
resize: none;
}
.l5r4.pc .main-sheet {
display: flex;
flex-flow: row;
width: fit-content;
width: 100%;
display: grid;
grid-template-columns: 1fr min-content;
column-gap: 5px;
}
.l5r4.pc .main-sheet .main-stats {
order: 1;
flex: 0 0 75%;
display: flex;
flex-direction: column;
align-items: center;
}
.l5r4.pc .main-sheet .sidebar {
order: 2;
flex: 0 0 25%;
display: flex;
flex-direction: column;
align-items: center;
@ -140,31 +140,229 @@
display: flex;
flex-direction: row;
justify-content: space-evenly;
padding: 1em;
}
.l5r4.pc .traits-rings {
display: flex;
flex-direction: row;
display: grid;
grid-template-columns: 1fr 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 1fr;
grid-template-rows: min-content 1fr 1fr 1fr 1fr 1fr min-content min-content;
align-items: center;
justify-items: center;
}
.l5r4.pc .traits-rings .ring-name {
font-size: 2em;
font-weight: bold;
margin: 0;
align-self: start;
}
.l5r4.pc .traits-rings .ring-rank {
z-index: 10;
background-color: #FFFFFF;
width: 75%;
height: 75%;
border-radius: 50%;
border: #000000 solid 3px;
align-content: center;
display: grid;
justify-content: center;
font-size: 2em;
}
.l5r4.pc .traits-rings .trait,
.l5r4.pc .traits-rings .void-points {
height: 32px;
width: 100%;
display: grid;
grid-template-columns: 1fr 32px;
grid-template-areas: "roll rank";
column-gap: 0.5em;
align-self: end;
justify-items: right;
margin: 4px 0;
}
.l5r4.pc .traits-rings .trait .trait-roll,
.l5r4.pc .traits-rings .void-points .trait-roll,
.l5r4.pc .traits-rings .trait .void-points-name,
.l5r4.pc .traits-rings .void-points .void-points-name {
grid-area: roll;
}
.l5r4.pc .traits-rings .trait .trait-rank,
.l5r4.pc .traits-rings .void-points .trait-rank,
.l5r4.pc .traits-rings .trait .void-points-amount,
.l5r4.pc .traits-rings .void-points .void-points-amount {
grid-area: rank;
z-index: 10;
background-color: #FFFFFF;
width: 100%;
height: 100%;
border-radius: 50%;
border: #000000 solid 3px;
text-align: center;
font-size: 1.5em;
}
.l5r4.pc .traits-rings .trait-reflexe,
.l5r4.pc .traits-rings .trait-awarness,
.l5r4.pc .traits-rings .trait-agility,
.l5r4.pc .traits-rings .trait-intelligence {
grid-template-columns: 32px 1fr;
grid-template-areas: "rank roll";
justify-items: left;
}
.l5r4.pc .traits-rings .trait-willpower,
.l5r4.pc .traits-rings .trait-perception,
.l5r4.pc .traits-rings .trait-awarness,
.l5r4.pc .traits-rings .trait-intelligence {
align-self: start;
}
.l5r4.pc .traits-rings .ring-name-earth {
grid-column: 5/9;
grid-row: 1/2;
}
.l5r4.pc .traits-rings .ring-rank-earth {
grid-column: 7/9;
grid-row: 3/4;
border-color: #3b1b00;
}
.l5r4.pc .traits-rings .earth-ring {
grid-column: 5/9;
grid-row: 2/4;
}
.l5r4.pc .traits-rings .earth-ring .earth-ring-img {
border: none;
content: url("assets/icons/earth.png");
}
.l5r4.pc .traits-rings .trait-stamina {
grid-column: 1/5;
grid-row: 2/3;
}
.l5r4.pc .traits-rings .trait-stamina .trait-rank {
border-color: #3b1b00;
}
.l5r4.pc .traits-rings .trait-willpower {
grid-column: 1/5;
grid-row: 3/4;
}
.l5r4.pc .traits-rings .trait-willpower .trait-rank {
border-color: #3b1b00;
}
.l5r4.pc .traits-rings .ring-name-air {
grid-column: 9/13;
grid-row: 1/2;
}
.l5r4.pc .traits-rings .ring-rank-air {
grid-column: 9/11;
grid-row: 3/4;
border-color: #002f3b;
}
.l5r4.pc .traits-rings .air-ring {
grid-column: 9/13;
grid-row: 2/4;
}
.l5r4.pc .air-ring-img {
.l5r4.pc .traits-rings .air-ring .air-ring-img {
border: none;
content: url("assets/icons/air.png");
}
.l5r4.pc .water-ring-img {
.l5r4.pc .traits-rings .trait-reflexe {
grid-column: 13/18;
grid-row: 2/3;
}
.l5r4.pc .traits-rings .trait-reflexe .trait-rank {
border-color: #002f3b;
}
.l5r4.pc .traits-rings .trait-awarness {
grid-column: 13/18;
grid-row: 3/4;
}
.l5r4.pc .traits-rings .trait-awarness .trait-rank {
border-color: #002f3b;
}
.l5r4.pc .traits-rings .ring-name-water {
grid-column: 3/6;
grid-row: 6/7;
}
.l5r4.pc .traits-rings .ring-rank-water {
grid-column: 6/8;
grid-row: 4/5;
border-color: #00183b;
}
.l5r4.pc .traits-rings .water-ring {
grid-column: 3/7;
grid-row: 4/6;
}
.l5r4.pc .traits-rings .water-ring .water-ring-img {
border: none;
content: url("assets/icons/water.png");
}
.l5r4.pc .earth-ring-img {
border: none;
content: url("assets/icons/earth.png");
.l5r4.pc .traits-rings .trait-strength {
grid-column: 1/3;
grid-row: 4/5;
}
.l5r4.pc .fire-ring-img {
.l5r4.pc .traits-rings .trait-strength .trait-rank {
border-color: #00183b;
}
.l5r4.pc .traits-rings .trait-perception {
grid-column: 1/3;
grid-row: 5/6;
}
.l5r4.pc .traits-rings .trait-perception .trait-rank {
border-color: #00183b;
}
.l5r4.pc .traits-rings .ring-name-fire {
grid-column: 12/15;
grid-row: 6/7;
}
.l5r4.pc .traits-rings .ring-rank-fire {
grid-column: 10/12;
grid-row: 4/5;
border-color: #502000;
}
.l5r4.pc .traits-rings .fire-ring {
grid-column: 11/15;
grid-row: 4/6;
}
.l5r4.pc .traits-rings .fire-ring .fire-ring-img {
border: none;
content: url("assets/icons/fire.png");
}
.l5r4.pc .void-ring-img {
.l5r4.pc .traits-rings .trait-agility {
grid-column: 15/18;
grid-row: 4/5;
}
.l5r4.pc .traits-rings .trait-agility .trait-rank {
border-color: #502000;
}
.l5r4.pc .traits-rings .trait-intelligence {
grid-column: 15/18;
grid-row: 5/6;
}
.l5r4.pc .traits-rings .trait-intelligence .trait-rank {
border-color: #502000;
}
.l5r4.pc .traits-rings .ring-name-void {
grid-column: 7/11;
grid-row: 7/8;
}
.l5r4.pc .traits-rings .ring-rank-void {
grid-column: 8/10;
grid-row: 5/6;
text-align: center;
border-color: #1b1b1b;
}
.l5r4.pc .traits-rings .void-ring {
grid-column: 7/11;
grid-row: 5/7;
}
.l5r4.pc .traits-rings .void-ring .void-ring-img {
border: none;
content: url("assets/icons/void.png");
}
.l5r4.pc .traits-rings .void-points {
grid-column: 1/18;
grid-row: 8/9;
width: max-content;
}
.l5r4.pc .traits-rings .void-points .trait-rank {
border-color: #1b1b1b;
}
.l5r4.pc h2 {
display: flex;
flex-direction: row;
@ -184,7 +382,7 @@
align-items: center;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(10, 1fr);
grid-template-areas: "wn wv wm wmv" "wl wp wt wc" "lvl0 lvl0p lvl0t lvl0c" "lvl1 lvl1p lvl1t lvl1c" "lvl2 lvl2p lvl2t lvl2c" "lvl3 lvl3p lvl3t lvl3c" "lvl4 lvl4p lvl4t lvl4c" "lvl5 lvl5p lvl5t lvl5c" "lvl6 lvl6p lvl6t lvl6c" "lvl7 lvl7p lvl7t lvl7c";
grid-template-areas: "wn wn wv wv" "wm wm wmv wmv" "wl wp wt wc" "lvl0 lvl0p lvl0t lvl0c" "lvl1 lvl1p lvl1t lvl1c" "lvl2 lvl2p lvl2t lvl2c" "lvl3 lvl3p lvl3t lvl3c" "lvl4 lvl4p lvl4t lvl4c" "lvl5 lvl5p lvl5t lvl5c" "lvl6 lvl6p lvl6t lvl6c" "lvl7 lvl7p lvl7t lvl7c";
}
.l5r4.pc .wounds-name {
grid-area: wn;
@ -325,37 +523,90 @@
margin-bottom: 0.25em;
flex-shrink: 7;
}
.l5r4.pc .equipement-title {
display: grid;
grid-template-columns: 1fr min-content min-content min-content min-content;
}
.l5r4.pc .equipement-title .wealth {
display: grid;
grid-template-columns: min-content min-content;
align-items: center;
column-gap: 0.5em;
font-size: 0.7em;
font-weight: normal;
}
.l5r4.pc .equipement-title .wealth input {
width: 3em;
}
.l5r4.pc .equipment-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
flex-direction: column;
}
.l5r4.pc .equipment-list .item {
display: grid;
grid-template-columns: 1fr max-content;
column-gap: 1em;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
}
.l5r4.pc .equipment-list .item-border {
padding-inline: 0.5rem;
.l5r4.pc .equipment-list .item h3 {
margin: 0.25rem 0;
}
.l5r4.pc .commonItems-list {
display: flex;
flex-direction: column;
}
.l5r4.pc .commonItems-list .item .commonItem-name {
display: grid;
grid-template-columns: max-content 1fr;
column-gap: 0.2em;
align-items: center;
margin-left: 20px;
}
.l5r4.pc .weapons-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: spa;
flex-direction: column;
}
.l5r4.pc .weapons-list img {
height: 1rem;
width: 1rem;
border: none;
}
.l5r4.pc .weapon-name {
display: flex;
flex-direction: row;
.l5r4.pc .weapons-list .item {
grid-template-columns: 1fr 2fr max-content;
}
.l5r4.pc .weapons-list .item .weapon-name {
display: grid;
grid-template-columns: max-content 1fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .weapons-list .item .weapon-stats {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .armors-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
flex-direction: column;
}
.l5r4.pc .armors-list .item {
grid-template-columns: 1fr 2fr max-content;
}
.l5r4.pc .armors-list .item .armor-name {
display: grid;
grid-template-columns: max-content 1fr;
column-gap: 0.2em;
align-items: center;
margin-left: 20px;
}
.l5r4.pc .armors-list input {
.l5r4.pc .armors-list .item .armor-stats {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .armors-list .item .armor-stats input {
height: 1rem;
width: 1rem;
border: none;
@ -365,13 +616,16 @@
flex-direction: column;
}
.l5r4.pc .skills h3 {
display: flex;
flex-direction: row;
justify-content: space-evenly;
display: grid;
grid-template-columns: 20px 4fr 1fr 2fr 2fr 1fr 2fr 20px;
justify-items: left;
}
.l5r4.pc .skills .skill-item {
display: flex;
flex-direction: row;
display: grid;
grid-template-columns: 20px 4fr 1fr 2fr 2fr 1fr 2fr 20px;
justify-items: center;
align-items: center;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
}
.l5r4.pc .skills .skill-item img {
height: 1rem;
@ -385,24 +639,73 @@
.l5r4.pc .skills .skill-item .skill-emphasis {
margin-top: auto;
}
.l5r4.pc .spells-list {
.l5r4.pc .special-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
flex-direction: column;
}
.l5r4.pc .spells-list .item-border {
padding-inline: 0.5rem;
.l5r4.pc .special-list .item {
display: grid;
grid-template-columns: 1fr 2fr max-content;
column-gap: 1em;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
}
.l5r4.pc .armors-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
.l5r4.pc .special-list h3 {
margin: 0.25rem 0;
}
.l5r4.pc .armors-list input {
height: 1rem;
width: 1rem;
border: none;
.l5r4.pc .advantage-list .advantage-stats {
display: grid;
grid-template-columns: 1fr 2fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .disadvantage-list .disadvantage-stats {
display: grid;
grid-template-columns: 1fr 2fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .techniques-list .technique-stats {
display: grid;
grid-template-columns: 1fr 2fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .spells-list .spell-stats {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas: "ring mastery duration" "range aoe aoe" "raises raises raises";
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .spells-list .spell-stats .spell-ring {
grid-area: ring;
}
.l5r4.pc .spells-list .spell-stats .spell-mastery {
grid-area: mastery;
}
.l5r4.pc .spells-list .spell-stats .spell-range {
grid-area: range;
}
.l5r4.pc .spells-list .spell-stats .spell-aoe {
grid-area: aoe;
}
.l5r4.pc .spells-list .spell-stats .spell-duration {
grid-area: duration;
}
.l5r4.pc .spells-list .spell-stats .spell-raises {
grid-area: raises;
}
.l5r4.pc .kata-list .kata-stats {
display: grid;
grid-template-columns: 1fr 1fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .kiho-list .kiho-stats {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 0.2em;
align-items: center;
}
.l5r4.pc .pc-armor-grid {
display: grid;
@ -412,7 +715,7 @@
align-items: center;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(4, 1fr);
grid-template-areas: "armorbase basevalue" "armorbonus bonusvalue" "armormod modvalue" "totalarmor armorvalue";
grid-template-areas: "armorbase basevalue" "armorbonus bonusvalue" "armormod modvalue" "totalarmor armorvalue" "reduction reductionvalue";
}
.l5r4.pc .armor-tn-base {
grid-area: armorbase;
@ -442,6 +745,13 @@
.l5r4.pc .armor-tn-current-value {
grid-area: armorvalue;
}
.l5r4.pc .armor-tn-reduction {
grid-area: reduction;
font-weight: bold;
}
.l5r4.pc .armor-tn-reduction-value {
grid-area: reductionvalue;
}
.l5r4.npc .editor .editor-content {
min-height: 400px;
}
@ -552,8 +862,8 @@
flex-flow: column;
}
body {
background: url("assets/textures/background.webp") no-repeat center;
background-size: cover;
/* background: url("assets/textures/background.webp") no-repeat center;
background-size: cover;*/
}
body > * {
scrollbar-width: thin;

5
l5r4.js

@ -8,11 +8,16 @@ import L5R4INpcSheet from "./module/sheets/L5R4NpcSheet.js";
async function preloadHandlebarsTemplates() {
const templatePaths = [
"systems/l5r4/templates/partials/pc-honor-and-combat.hbs",
"systems/l5r4/templates/partials/commonItem-card.hbs",
"systems/l5r4/templates/partials/armor-card.hbs",
"systems/l5r4/templates/partials/weapon-card.hbs",
"systems/l5r4/templates/partials/spell-card.hbs",
"systems/l5r4/templates/partials/skill-card.hbs",
"systems/l5r4/templates/partials/technique-card.hbs",
"systems/l5r4/templates/partials/advantage-card.hbs",
"systems/l5r4/templates/partials/disadvantage-card.hbs",
"systems/l5r4/templates/partials/kata-card.hbs",
"systems/l5r4/templates/partials/kiho-card.hbs",
"systems/l5r4/templates/partials/pc-wounds.hbs",
"systems/l5r4/templates/partials/pc-stats.hbs",
"systems/l5r4/templates/partials/pc-skills.hbs",

31
lang/en.json

@ -103,6 +103,7 @@
"wounds": "Wounds",
"armorTn": "Armor TN",
"armorTnBase": "Armor TN Base",
"armorReduction" : "Reduction",
"woundLevel": "Wounds Level",
"woundsSuffered": "Wounds suffered",
"penalty": "Penalty",
@ -136,6 +137,14 @@
"effect": "Effect",
"technique": "Technique",
"techniques": "Techniques",
"advantage": "Advantage",
"advantages": "Advantages",
"disadvantage": "Disadvantage",
"disadvantages": "Disadvantages",
"kata": "Kata",
"katas": "Katas",
"kiho": "Kiho",
"kihos": "Kihos",
"addTechSpell": "Add technique/spell",
"shugenja": "Shugenja",
"equipment": "Equipment",
@ -167,6 +176,28 @@
"humming": "Humming Bulb",
"rope": "Rope Cutter",
"willow": "Willow Leaf"
},
"wealth": {
"koku":"Koku",
"bu":"Bu",
"zeni":"Zeni"
},
"special": {
"cost" : "Cost"
},
"kiho": {
"type": "Type",
"internal" : "Internal",
"karmic" : "Karmic",
"martial" : "Martial",
"mystic" : "Mystic"
},
"advantage": {
"physical":"Physical",
"mental":"Mental",
"social":"Social",
"material":"Material",
"spiritual":"Spriritual"
}
},
"SETTINGS": {

31
lang/es.json

@ -103,6 +103,7 @@
"wounds": "Heridas",
"armorTn": "NO de Armadura",
"armorTnBase": "NO Base Armadura",
"armorReduction" : "Reducción",
"woundLevel": "Nivel Heridas",
"woundsSuffered": "Heridas sufridas",
"penalty": "Penalización",
@ -136,6 +137,14 @@
"effect": "Efecto",
"technique": "Técnica",
"techniques": "Técnicas",
"advantage": "Ventaja",
"advantages": "Ventajas",
"disadvantage": "Desventaja",
"disadvantages": "Desventajas",
"kata": "Kata",
"katas": "Katas",
"kiho": "Kiho",
"kihos": "Kihos",
"addTechSpell": "Añadir técnica/conjuro",
"shugenja": "Shugenja",
"equipment": "Equipamiento",
@ -167,6 +176,28 @@
"humming": "Zumbadora",
"rope": "Cortacuerdas",
"willow": "Hoja de Sauce"
},
"wealth": {
"koku":"Koku",
"bu":"Bu",
"zeni":"Zeni"
},
"special": {
"cost" : "Costo"
},
"kiho": {
"type": "Tipo",
"internal" : "Interna",
"karmic" : "Kármico",
"martial" : "Marcial",
"mystic" : "Místico"
},
"advantage": {
"physical":"Físico",
"mental":"Mental",
"social":"Social",
"material":"Material",
"spiritual":"Espiritual"
}
},
"SETTINGS": {

4
less/global.less

@ -1,6 +1,6 @@
body {
background: url("assets/textures/background.webp") no-repeat center;
background-size: cover;
/* background: url("assets/textures/background.webp") no-repeat center;
background-size: cover;*/
> * {
scrollbar-width: thin;
}

1
less/l5r4.less

@ -7,7 +7,6 @@
@import "./pc-equipment.less";
@import "./pc-skills.less";
@import "./pc-spells-techniques.less";
@import "./pc-armors.less";
@import "./pc-armor-tn.less";
@import "./npc-sheet.less";
@import "./npc-wounds.less";

8
less/pc-armor-tn.less

@ -12,6 +12,7 @@
"armorbonus bonusvalue"
"armormod modvalue"
"totalarmor armorvalue"
"reduction reductionvalue"
;
}
@ -43,4 +44,11 @@
.armor-tn-current-value{
grid-area: armorvalue;
}
.armor-tn-reduction{
grid-area: reduction;
font-weight: bold;
}
.armor-tn-reduction-value{
grid-area: reductionvalue;
}
}

14
less/pc-armors.less

@ -1,14 +0,0 @@
.l5r4.pc {
.armors-list{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
input{
height: 1rem;
width: 1rem;
border: none;
}
}
}

100
less/pc-equipment.less

@ -1,40 +1,102 @@
.l5r4.pc {
.equipement-title{
display : grid;
grid-template-columns: 1fr min-content min-content min-content min-content;
.wealth {
display:grid;
grid-template-columns: min-content min-content;
align-items: center;
column-gap: .5em;
font-size: .7em;
font-weight: normal;
input {
width: 3em;
}
}
}
.equipment-list{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
.item-border {
padding-inline: 0.5rem;
flex-direction: column;
.item {
display : grid;
grid-template-columns: 1fr max-content;
column-gap: 1em;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
h3 {
margin: 0.25rem 0;
}
}
}
.commonItems-list {
display: flex;
flex-direction: column;
.item {
.commonItem-name{
display: grid;
grid-template-columns: max-content 1fr;
column-gap:.2em;
align-items: center;
margin-left: 20px;
}
}
}
.weapons-list{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: spa;
flex-direction: column;
img{
height: 1rem;
width: 1rem;
border: none;
}
}
.weapon-name{
display: flex;
flex-direction: row;
.item {
grid-template-columns: 1fr 2fr max-content;
.weapon-name{
display: grid;
grid-template-columns: max-content 1fr;
column-gap:.2em;
align-items: center;
}
.weapon-stats{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap:.2em;
align-items: center;
}
}
}
.armors-list{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
flex-direction: column;
.item {
grid-template-columns: 1fr 2fr max-content;
input{
height: 1rem;
width: 1rem;
border: none;
.armor-name{
display: grid;
grid-template-columns: max-content 1fr;
column-gap:.2em;
align-items: center;
margin-left: 20px;
}
.armor-stats{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap:.2em;
align-items: center;
input{
height: 1rem;
width: 1rem;
border: none;
}
}
}
}
}

17
less/pc-honor-and-combat.less

@ -1,15 +1,16 @@
.l5r4.pc {
.ranks {
text-align: center;
text-align-last: center;
display:grid;
grid-template-columns: 1fr 1fr;
align-items: center;
column-gap: 1.5em;
.rank-name {
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: baseline;
flex: 0 1 auto;
display:grid;
grid-template-columns : 1fr min-content;
column-gap: .8em;
align-items: center;
text-align: right;
}
select {
@ -18,7 +19,7 @@
input {
border: none;
margin-bottom: 0.25em;
flex-shrink: 7;
text-align: center;
}
}

10
less/pc-sheet.less

@ -5,14 +5,13 @@
}
.main-sheet{
display: flex;
flex-flow: row;
width: fit-content;
width: 100%;
display: grid;
grid-template-columns: 1fr min-content;
column-gap: 5px;
.main-stats{
order: 1;
flex: 0 0 75%;
display: flex;
flex-direction: column;
align-items: center;
@ -20,7 +19,6 @@
.sidebar {
order: 2;
flex: 0 0 25%;
display: flex;
flex-direction: column;
align-items: center;

16
less/pc-skills.less

@ -4,21 +4,23 @@
flex-direction: column;
h3 {
display: flex;
flex-direction: row;
justify-content: space-evenly;
display: grid;
grid-template-columns: 20px 4fr 1fr 2fr 2fr 1fr 2fr 20px;
justify-items: left;
}
.skill-item {
display: flex;
flex-direction: row;
display: grid;
grid-template-columns: 20px 4fr 1fr 2fr 2fr 1fr 2fr 20px;
justify-items: center;
align-items: center;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
img{
height: 1rem;
width: 1rem;
border: none;
}
.skill-value{
width: 3ch;
text-align: center;

87
less/pc-spells-techniques.less

@ -1,11 +1,86 @@
.l5r4.pc {
.spells-list{
.special-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
//justify-content: space-evenly;
.item-border {
padding-inline: 0.5rem;
flex-direction: column;
.item {
display : grid;
grid-template-columns: 1fr 2fr max-content;
column-gap: 1em;
border-bottom: solid 1px rgba(0, 0, 0, 0.26);
}
h3 {
margin: 0.25rem 0;
}
}
.advantage-list {
.advantage-stats{
display: grid;
grid-template-columns: 1fr 2fr;
column-gap:.2em;
align-items: center;
}
}
.disadvantage-list {
.disadvantage-stats{
display: grid;
grid-template-columns: 1fr 2fr;
column-gap:.2em;
align-items: center;
}
}
.techniques-list {
.technique-stats{
display: grid;
grid-template-columns: 1fr 2fr;
column-gap:.2em;
align-items: center;
}
}
.spells-list {
.spell-stats{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas: "ring mastery duration" "range aoe aoe" "raises raises raises";
column-gap:.2em;
align-items: center;
.spell-ring {
grid-area: ring;
}
.spell-mastery {
grid-area: mastery;
}
.spell-range {
grid-area: range;
}
.spell-aoe {
grid-area: aoe;
}
.spell-duration {
grid-area: duration;
}
.spell-raises {
grid-area: raises;
}
}
}
.kata-list {
.kata-stats{
display: grid;
grid-template-columns: 1fr 1fr;
column-gap:.2em;
align-items: center;
}
}
.kiho-list {
.kiho-stats{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap:.2em;
align-items: center;
}
}
}

246
less/pc-stats.less

@ -13,34 +13,234 @@
display: flex;
flex-direction: row;
justify-content: space-evenly;
padding: 1em;
}
.traits-rings{
display: flex;
flex-direction: row;
}
display: grid;
grid-template-columns: 1fr 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 32px 1fr;
grid-template-rows: min-content 1fr 1fr 1fr 1fr 1fr min-content min-content;
align-items: center;
justify-items: center;
.air-ring-img{
border: none;
content: @air-ring-img;
}
.water-ring-img{
border: none;
content: @water-ring-img;
}
.earth-ring-img{
border: none;
content: @earth-ring-img;
}
.fire-ring-img{
border: none;
content: @fire-ring-img;
}
.void-ring-img{
border: none;
content: @void-ring-img;
// General
.ring-name {
font-size: 2em;
font-weight: bold;
margin: 0;
align-self: start;
}
.ring-rank {
z-index: 10;
background-color: #FFFFFF;
width: 75%;
height: 75%;
border-radius: 50%;
border: #000000 solid 3px;
align-content: center;
display: grid;
justify-content: center;
font-size: 2em;
}
.trait, .void-points {
height: 32px;
width: 100%;
display: grid;
grid-template-columns: 1fr 32px;
grid-template-areas: "roll rank";
column-gap: .5em;
align-self: end;
justify-items: right;
margin: 4px 0;
.trait-roll, .void-points-name {
grid-area: roll;
}
.trait-rank, .void-points-amount {
grid-area: rank;
z-index: 10;
background-color: #FFFFFF;
width: 100%;
height: 100%;
border-radius: 50%;
border: #000000 solid 3px;
text-align: center;
font-size: 1.5em;
}
}
.trait-reflexe, .trait-awarness, .trait-agility, .trait-intelligence {
grid-template-columns: 32px 1fr;
grid-template-areas: "rank roll";
justify-items: left;
}
.trait-willpower, .trait-perception, .trait-awarness, .trait-intelligence {
align-self: start;
}
// Earth
.ring-name-earth {
grid-column: ~"5/9";
grid-row: ~"1/2";
}
.ring-rank-earth {
grid-column: ~"7/9";
grid-row: ~"3/4";
border-color: #3b1b00;
}
.earth-ring {
grid-column: ~"5/9";
grid-row: ~"2/4";
.earth-ring-img{
border: none;
content: @earth-ring-img;
}
}
.trait-stamina {
grid-column: ~"1/5";
grid-row: ~"2/3";
.trait-rank {
border-color: #3b1b00;
}
}
.trait-willpower {
grid-column: ~"1/5";
grid-row: ~"3/4";
.trait-rank {
border-color: #3b1b00;
}
}
// Air
.ring-name-air {
grid-column: ~"9/13";
grid-row: ~"1/2";
}
.ring-rank-air {
grid-column: ~"9/11";
grid-row: ~"3/4";
border-color: #002f3b;
}
.air-ring {
grid-column: ~"9/13";
grid-row: ~"2/4";
.air-ring-img{
border: none;
content: @air-ring-img;
}
}
.trait-reflexe {
grid-column: ~"13/18";
grid-row: ~"2/3";
.trait-rank {
border-color: #002f3b;
}
}
.trait-awarness {
grid-column: ~"13/18";
grid-row: ~"3/4";
.trait-rank {
border-color: #002f3b;
}
}
//Water
.ring-name-water {
grid-column: ~"3/6";
grid-row: ~"6/7";
}
.ring-rank-water {
grid-column: ~"6/8";
grid-row: ~"4/5";
border-color: #00183b;
}
.water-ring {
grid-column: ~"3/7";
grid-row: ~"4/6";
.water-ring-img{
border: none;
content: @water-ring-img;
}
}
.trait-strength {
grid-column: ~"1/3";
grid-row: ~"4/5";
.trait-rank {
border-color: #00183b;
}
}
.trait-perception {
grid-column: ~"1/3";
grid-row: ~"5/6";
.trait-rank {
border-color: #00183b;
}
}
//Fire
.ring-name-fire {
grid-column: ~"12/15";
grid-row: ~"6/7";
}
.ring-rank-fire {
grid-column: ~"10/12";
grid-row: ~"4/5";
border-color: #502000;
}
.fire-ring {
grid-column: ~"11/15";
grid-row: ~"4/6";
.fire-ring-img{
border: none;
content: @fire-ring-img;
}
}
.trait-agility {
grid-column: ~"15/18";
grid-row: ~"4/5";
.trait-rank {
border-color: #502000;
}
}
.trait-intelligence {
grid-column: ~"15/18";
grid-row: ~"5/6";
.trait-rank {
border-color: #502000;
}
}
//Void
.ring-name-void {
grid-column: ~"7/11";
grid-row: ~"7/8";
}
.ring-rank-void {
grid-column: ~"8/10";
grid-row: ~"5/6";
text-align: center;
border-color: #1b1b1b;
}
.void-ring {
grid-column: ~"7/11";
grid-row: ~"5/7";
.void-ring-img{
border: none;
content: @void-ring-img;
}
}
.void-points {
grid-column: ~"1/18";
grid-row: ~"8/9";
width: max-content;
.trait-rank {
border-color: #1b1b1b;
}
}
}
h2{
display: flex;

5
less/pc-wounds.less

@ -12,8 +12,9 @@
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(10, 1fr);
grid-template-areas:
"wn wv wm wmv"
"wl wp wt wc"
"wn wn wv wv"
"wm wm wmv wmv"
"wl wp wt wc"
"lvl0 lvl0p lvl0t lvl0c"
"lvl1 lvl1p lvl1t lvl1c"
"lvl2 lvl2p lvl2t lvl2c"

6
module/L5R4Actor.js

@ -71,7 +71,7 @@ export default class L5R4Actor extends Actor {
data.armor_tn.bonus = 0;
let armorReduction = 0;
let armorData = {};
let armorBonus = 0;
armors.forEach(armor => {
@ -80,9 +80,13 @@ export default class L5R4Actor extends Actor {
if (parseInt(armorData.bonus) > armorBonus) {
armorBonus = parseInt(armorData.bonus);
}
if(parseInt(armorData.reduction) > armorReduction) {
armorReduction = parseInt(armorData.reduction);
}
}
});
data.armor_tn.bonus = armorBonus;
data.armor_tn.reduction = armorReduction;
data.armor_tn.current = data.armor_tn.base + parseInt(data.armor_tn.mod) + data.armor_tn.bonus;

6
module/L5R4Item.js

@ -5,7 +5,11 @@ export default class L5R4Item extends Item {
"skill": "systems/l5r4/templates/partials/skill-card.hbs",
"armor": "systems/l5r4/templates/partials/armor-card.hbs",
"spell": "systems/l5r4/templates/partials/spell-card.hbs",
"technique": "systems/l5r4/templates/partials/technique-card.hbs"
"technique": "systems/l5r4/templates/partials/technique-card.hbs",
"advantage": "systems/l5r4/templates/partials/advantage-card.hbs",
"disadvantage": "systems/l5r4/templates/partials/disadvantage-card.hbs",
"kata": "systems/l5r4/templates/partials/kata-card.hbs",
"kiho": "systems/l5r4/templates/partials/kiho-card.hbs",
};
prepareData() {

15
module/config.js

@ -50,4 +50,19 @@ l5r4.actionTypes = {
simple: "l5r4.mech.simple",
complex: "l5r4.mech.complex",
free: "l5r4.mech.free"
}
l5r4.kihoTypes = {
internal: "l5r4.kiho.internal",
karmic: "l5r4.kiho.karmic",
martial: "l5r4.kiho.martial",
mystic: "l5r4.kiho.mystic"
}
l5r4.advantageTypes = {
physical: "l5r4.advantage.physical",
mental: "l5r4.advantage.mental",
social: "l5r4.advantage.social",
material: "l5r4.advantage.material",
spiritual: "l5r4.advantage.spiritual"
}

2
module/sheets/L5R4ItemSheet.js

@ -3,7 +3,7 @@ export default class L5R4ItemSheet extends ItemSheet {
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
width: 530,
height: 340,
height: 540,
classes: ["l5r4", "sheet", "item"]
});
}

17
module/sheets/L5R4PcSheet.js

@ -57,15 +57,17 @@ export default class L5R4PcSheet extends ActorSheet {
items: baseData.items
}
sheetData.commonItems = sheetData.items.filter(function (item) { return item.type == "commonItem" });
sheetData.weapons = sheetData.items.filter(function (item) { return item.type == "weapon" });
sheetData.bows = sheetData.items.filter(function (item) { return item.type == "bow" });
sheetData.armors = sheetData.items.filter(function (item) { return item.type == "armor" });
sheetData.skills = sheetData.items.filter(function (item) { return item.type == "skill" });
sheetData.spells = sheetData.items.filter(function (item) { return item.type == "spell" });
sheetData.techniques = sheetData.items.filter(function (item) { return item.