diff options
-rw-r--r-- | data.js | 103 | ||||
-rw-r--r-- | play.css | 208 | ||||
-rw-r--r-- | play.js | 362 | ||||
-rw-r--r-- | rules.ts | 2 | ||||
-rw-r--r-- | tools/gendata.js | 98 | ||||
-rw-r--r-- | tools/layout.svg | 106 |
6 files changed, 456 insertions, 423 deletions
@@ -74,7 +74,7 @@ locales:[ {"name":"York","type":"city","region":"England","adjacent":[1,47,49,56,57],"highways":[1,49],"roads":[56,57],"paths":[47],"not_paths":[1,49,56,57],"box":{"x":705,"y":625,"w":58,"h":64}}, {"name":"Calais","type":"calais","region":"England","adjacent":[],"highways":[],"roads":[],"paths":[],"not_paths":[],"box":{"x":1137,"y":1411,"w":63,"h":58}}, {"name":"France","type":"exile_box","region":null,"adjacent":[],"highways":[],"roads":[],"paths":[],"not_paths":[],"box":{"x":888,"y":1428,"w":113,"h":132}}, -{"name":"Scotland","type":"exile_box","region":null,"adjacent":[],"highways":[],"roads":[],"paths":[0,4],"not_paths":[],"box":{"x":448,"y":277,"w":113,"h":132}}, +{"name":"Scotland","type":"exile_box","region":null,"adjacent":[],"highways":[],"roads":[],"paths":[0,4],"not_paths":[],"box":{"x":449,"y":277,"w":113,"h":132}}, {"name":"Ireland","type":"exile_box","region":null,"adjacent":[],"highways":[],"roads":[],"paths":[],"not_paths":[],"box":{"x":48,"y":950,"w":113,"h":132}}, {"name":"Burgundy","type":"exile_box","region":null,"adjacent":[],"highways":[],"roads":[],"paths":[],"not_paths":[],"box":{"x":993,"y":684,"w":113,"h":132}}, {"name":"Scarborough","type":"town","region":"North","adjacent":[1,50],"highways":[],"roads":[1,50],"paths":[],"not_paths":[1,50],"box":{"x":809,"y":546,"w":50,"h":40}}, @@ -177,25 +177,25 @@ lords:[ {"side":"Lancaster","name":"Warwick L","short_name":"Warwick","full_name":"Richard Neville","title":"Earl of Warwick","seat":51,"marshal":1,"influence":5,"lordship":3,"command":2,"valour":2,"forces":{"retinue":1,"men_at_arms":3,"longbowmen":3},"assets":{"cart":2,"prov":2,"coin":2},"ships":2,"id":"lord_warwick_l"}, ], vassals:[ -{"service":3,"name":"Westmoreland","seat":2,"influence":0}, -{"service":1,"name":"Stanley","seat":44,"influence":0}, -{"service":1,"name":"Dudley","seat":42,"influence":0}, -{"service":2,"name":"Shrewsbury","seat":10,"influence":-1}, -{"service":3,"name":"Worcester","seat":46,"influence":0}, -{"service":2,"name":"Oxford","seat":28,"influence":0}, -{"service":1,"name":"Essex","seat":31,"influence":0}, -{"service":3,"name":"Suffolk","seat":35,"influence":1}, -{"service":3,"name":"Fauconberg","seat":17,"influence":2}, -{"service":1,"name":"Norfolk","seat":14,"influence":0}, -{"service":2,"name":"Devon","seat":21,"influence":-1}, -{"service":1,"name":"Bonville","seat":23,"influence":1}, -{"service":1,"name":"Beaumont","seat":49,"influence":-2}, -{"service":0,"name":"Trollope","seat":-1,"influence":0,"capability":"Andrew Trollope"}, -{"service":0,"name":"Clifford","seat":-1,"influence":0,"capability":"My father's blood"}, -{"service":0,"name":"Edward","seat":-1,"influence":0,"capability":"Edward"}, -{"service":0,"name":"Thomas Stanley","seat":-1,"influence":0,"capability":"Thomas Stanley"}, -{"service":0,"name":"Montagu","seat":-1,"influence":0,"capability":"Alice Montagu"}, -{"service":0,"name":"Hastings","seat":-1,"influence":0,"capability":"Hastings"}, +{"service":3,"name":"Westmoreland","seat":2,"influence":0,"box":{"x":598,"y":488,"w":27,"h":30}}, +{"service":1,"name":"Stanley","seat":44,"influence":0,"box":{"x":631,"y":862,"w":27,"h":30}}, +{"service":1,"name":"Dudley","seat":42,"influence":0,"box":{"x":727,"y":921,"w":27,"h":30}}, +{"service":2,"name":"Shrewsbury","seat":10,"influence":-1,"box":{"x":480,"y":900,"w":27,"h":30}}, +{"service":3,"name":"Worcester","seat":46,"influence":0,"box":{"x":621,"y":1014,"w":27,"h":30}}, +{"service":2,"name":"Oxford","seat":28,"influence":0,"box":{"x":772,"y":1132,"w":27,"h":30}}, +{"service":1,"name":"Essex","seat":31,"influence":0,"box":{"x":959,"y":1103,"w":27,"h":30}}, +{"service":3,"name":"Suffolk","seat":35,"influence":1,"box":{"x":1161,"y":1043,"w":27,"h":30}}, +{"service":3,"name":"Fauconberg","seat":17,"influence":2,"box":{"x":1095,"y":1297,"w":27,"h":30}}, +{"service":1,"name":"Norfolk","seat":14,"influence":0,"box":{"x":848,"y":1353,"w":27,"h":30}}, +{"service":2,"name":"Devon","seat":21,"influence":-1,"box":{"x":406,"y":1400,"w":27,"h":30}}, +{"service":1,"name":"Bonville","seat":23,"influence":1,"box":{"x":174,"y":1377,"w":27,"h":30}}, +{"service":1,"name":"Beaumont","seat":49,"influence":-2,"box":{"x":753,"y":787,"w":27,"h":30}}, +{"service":0,"name":"Trollope","seat":-1,"influence":0,"capability":"Andrew Trollope","box":null}, +{"service":0,"name":"Clifford","seat":-1,"influence":0,"capability":"My father's blood","box":null}, +{"service":0,"name":"Edward","seat":-1,"influence":0,"capability":"Edward","box":null}, +{"service":0,"name":"Thomas Stanley","seat":-1,"influence":0,"capability":"Thomas Stanley","box":null}, +{"service":0,"name":"Montagu","seat":-1,"influence":0,"capability":"Alice Montagu","box":null}, +{"service":0,"name":"Hastings","seat":-1,"influence":0,"capability":"Hastings","box":null}, ], cards:[ {"name":"Y1","event":"Leeward Battle Line","roses":0,"when":"hold","capability":"Culverins and falconets","lords":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}, @@ -274,49 +274,34 @@ cards:[ {"name":"L37","event":"The Earl of Richmond","roses":3,"when":"this_levy","capability":"Madame La Grande","lords":[23,24,25,26]}, ], seat:[ -{"name":"seat york lord_york","box":{"x":908,"y":937,"w":50,"h":50}}, -{"name":"seat york lord_march","box":{"x":435,"y":955,"w":50,"h":50}}, -{"name":"seat york lord_edward_iv","box":{"x":899,"y":1149,"w":50,"h":50}}, -{"name":"seat york lord_salisbury","box":{"x":653,"y":643,"w":50,"h":50}}, -{"name":"seat york lord_rutland","box":{"x":1096,"y":1189,"w":50,"h":50}}, -{"name":"seat york lord_pembroke","box":{"x":139,"y":1106,"w":50,"h":50}}, -{"name":"seat york lord_devon","box":{"x":315,"y":1353,"w":50,"h":50}}, -{"name":"seat york lord_northumberland_y1","box":{"x":391,"y":423,"w":50,"h":50}}, -{"name":"seat york lord_northumberland_y2","box":{"x":391,"y":423,"w":50,"h":50}}, -{"name":"seat york lord_gloucester_1","box":{"x":604,"y":1074,"w":50,"h":50}}, -{"name":"seat york lord_gloucester_2","box":{"x":933,"y":1158,"w":50,"h":50}}, -{"name":"seat york lord_richard_iii","box":{"x":933,"y":1158,"w":50,"h":50}}, +{"name":"seat york lord_york","box":{"x":906,"y":937,"w":50,"h":50}}, +{"name":"seat york lord_march","box":{"x":427,"y":969,"w":50,"h":50}}, +{"name":"seat york lord_edward_iv","box":{"x":929,"y":1164,"w":50,"h":50}}, +{"name":"seat york lord_salisbury","box":{"x":770,"y":636,"w":50,"h":50}}, +{"name":"seat york lord_rutland","box":{"x":1125,"y":1214,"w":50,"h":50}}, +{"name":"seat york lord_pembroke","box":{"x":132,"y":1095,"w":50,"h":50}}, +{"name":"seat york lord_devon","box":{"x":359,"y":1318,"w":50,"h":50}}, +{"name":"seat york lord_northumberland_y1","box":{"x":391,"y":431,"w":50,"h":50}}, +{"name":"seat york lord_northumberland_y2","box":{"x":391,"y":431,"w":50,"h":50}}, +{"name":"seat york lord_gloucester_1","box":{"x":609,"y":1074,"w":50,"h":50}}, +{"name":"seat york lord_gloucester_2","box":{"x":930,"y":1165,"w":50,"h":50}}, +{"name":"seat york lord_richard_iii","box":{"x":930,"y":1165,"w":50,"h":50}}, {"name":"seat york lord_norfolk","box":{"x":795,"y":1398,"w":50,"h":50}}, {"name":"seat york lord_warwick_y","box":{"x":1150,"y":1349,"w":50,"h":50}}, -{"name":"seat lancaster lord_henry_vi","box":{"x":840,"y":1168,"w":50,"h":50}}, -{"name":"seat lancaster lord_margaret","box":{"x":847,"y":1153,"w":50,"h":50}}, -{"name":"seat lancaster lord_somerset_1","box":{"x":457,"y":1275,"w":50,"h":50}}, -{"name":"seat lancaster lord_somerset_2","box":{"x":457,"y":1275,"w":50,"h":50}}, -{"name":"seat lancaster lord_exeter_1","box":{"x":345,"y":1329,"w":50,"h":50}}, -{"name":"seat lancaster lord_exeter_2","box":{"x":345,"y":1329,"w":50,"h":50}}, +{"name":"seat lancaster lord_henry_vi","box":{"x":865,"y":1166,"w":50,"h":50}}, +{"name":"seat lancaster lord_margaret","box":{"x":864,"y":1166,"w":50,"h":50}}, +{"name":"seat lancaster lord_somerset_1","box":{"x":453,"y":1277,"w":50,"h":50}}, +{"name":"seat lancaster lord_somerset_2","box":{"x":452,"y":1276,"w":50,"h":50}}, +{"name":"seat lancaster lord_exeter_1","box":{"x":300,"y":1333,"w":50,"h":50}}, +{"name":"seat lancaster lord_exeter_2","box":{"x":300,"y":1333,"w":50,"h":50}}, {"name":"seat lancaster lord_buckingham","box":{"x":714,"y":975,"w":50,"h":50}}, -{"name":"seat lancaster lord_northumberland_l","box":{"x":392,"y":422,"w":50,"h":50}}, -{"name":"seat lancaster lord_clarence","box":{"x":656,"y":613,"w":50,"h":50}}, -{"name":"seat lancaster lord_jasper_tudor_1","box":{"x":192,"y":1077,"w":50,"h":50}}, -{"name":"seat lancaster lord_jasper_tudor_2","box":{"x":340,"y":926,"w":50,"h":50}}, -{"name":"seat lancaster lord_henry_tudor","box":{"x":831,"y":1186,"w":50,"h":50}}, -{"name":"seat lancaster lord_oxford","box":{"x":692,"y":1085,"w":50,"h":50}}, +{"name":"seat lancaster lord_northumberland_l","box":{"x":392,"y":430,"w":50,"h":50}}, +{"name":"seat lancaster lord_clarence","box":{"x":650,"y":637,"w":50,"h":50}}, +{"name":"seat lancaster lord_jasper_tudor_1","box":{"x":190,"y":1066,"w":50,"h":50}}, +{"name":"seat lancaster lord_jasper_tudor_2","box":{"x":346,"y":921,"w":50,"h":50}}, +{"name":"seat lancaster lord_henry_tudor","box":{"x":864,"y":1166,"w":50,"h":50}}, +{"name":"seat lancaster lord_oxford","box":{"x":678,"y":1078,"w":50,"h":50}}, {"name":"seat lancaster lord_warwick_l","box":{"x":1150,"y":1350,"w":50,"h":50}}, ], -vassalbox:[ -{"name":"vassal vassal_westmoreland","box":{"x":598,"y":488,"w":27,"h":30}}, -{"name":"vassal vassal_stanley","box":{"x":631,"y":862,"w":27,"h":30}}, -{"name":"vassal vassal_dudley","box":{"x":727,"y":921,"w":27,"h":30}}, -{"name":"vassal vassal_shrewsbury","box":{"x":480,"y":900,"w":27,"h":30}}, -{"name":"vassal vassal_worcester","box":{"x":621,"y":1014,"w":27,"h":30}}, -{"name":"vassal vassal_oxford","box":{"x":772,"y":1132,"w":27,"h":30}}, -{"name":"vassal vassal_essex","box":{"x":959,"y":1103,"w":27,"h":30}}, -{"name":"vassal vassal_suffolk","box":{"x":1161,"y":1043,"w":27,"h":30}}, -{"name":"vassal vassal_fauconberg","box":{"x":1095,"y":1297,"w":27,"h":30}}, -{"name":"vassal vassal_norfolk","box":{"x":848,"y":1353,"w":27,"h":30}}, -{"name":"vassal vassal_devon","box":{"x":406,"y":1400,"w":27,"h":30}}, -{"name":"vassal vassal_bonville","box":{"x":174,"y":1377,"w":27,"h":30}}, -{"name":"vassal vassal_beaumont","box":{"x":753,"y":787,"w":27,"h":30}}, -], } if (typeof module !== 'undefined') module.exports = data @@ -247,6 +247,11 @@ body.Lancaster #plan_actions .york { display: none } position: absolute; } +.marker.exile_rose { + border-radius: 50%; + position: absolute; +} + .marker.depexh { position: absolute; border-radius: 0px; } .marker.depleted { position: absolute; border-radius: 0px; } .marker.exhausted { position: absolute; border-radius: 0px; } @@ -255,22 +260,49 @@ body.Lancaster #plan_actions .york { display: none } box-sizing: border-box; position: absolute; border: 3px solid transparent; + border-radius: 50% 50% 0 0; } -.locale.town { border-radius: 50% } -.locale.city { border-radius: 50% } -.locale.fortress { border-radius: 0 0 0 0 } -.locale.calais { border-radius: 0 0 0 0 } +.locale.fortress { border-radius: 0% 0% 0 0 } .locale.sea { border-radius: 50% } -.locale.exile { border-radius: 0 0 50% 50% } +.locale.exile_box { border-radius: 0 0 50% 50% } + +/* +.locale.action.south { background-color: steelblue } +.locale.action.north { background-color: darkgoldenrod } +.locale.action.wales { background-color: olivedrab } +.locale.action.england { background-color: gray } +*/ + +.locale.action.south { background-color: #4682b480 } +.locale.action.north { background-color: #b8860b80 } +.locale.action.wales { background-color: #6b8e2380 } +.locale.action.england { background-color: #80808080 } +.locale.action.sea { background-color: #b0c4de80 } + +.locale.selected.south { background-color: #4682b480 } +.locale.selected.north { background-color: #b8860b80 } +.locale.selected.wales { background-color: #6b8e2380 } +.locale.selected.england { background-color: #80808080 } +.locale.selected.sea { background-color: #b0c4de80 } + +.locale.action.south { border-color: powderblue } +.locale.action.north { border-color: navajowhite } +.locale.action.wales { border-color: palegreen } +.locale.action.england { border-color: whitesmoke } +.locale.action.sea { border-color: lightblue } + +.locale.action.exile_box.scotland { border-color: lemonchiffon } +.locale.action.exile_box.burgundy { border-color: wheat } +.locale.action.exile_box.france { border-color: lightblue } +.locale.action.exile_box.ireland { border-color: lightgreen } .locale.action { border-color: white; - z-index: 100; } .locale.selected { - border-color: cyan; + border-color: yellow; } .locale.tip { @@ -332,11 +364,9 @@ body.Lancaster #plan_actions .york { display: none } drop-shadow(-2px 0px 0px gold); } -.cylinder > .exile { +.marker.exile { position: absolute; - top: 6px; - left: 20px; - transform: rotate(45deg); + /* transform: rotate(45deg); */ } .marker.seat { @@ -374,7 +404,7 @@ body.Lancaster #plan_actions .york { display: none } .unit.shape { width: 43px; height: 35px; - margin: -26px 0 0px 0px; + margin: -20px 0 0px 0px; } .unit.men_at_arms { background-image: url(images/unit_men_at_arms.svg) } @@ -383,6 +413,19 @@ body.Lancaster #plan_actions .york { display: none } .unit.mercenaries { background-image: url(images/unit_mercenaries.svg) } .unit.burgundians { background-image: url(images/unit_handgunners.svg) } +/* +.men_at_arms + .longbowmen { margin-right: 0; } +.men_at_arms + .militia { margin-right: 0; } +.men_at_arms + .mercenaries { margin-right: 0; } +.men_at_arms + .burgundians { margin-right: 0; } +.longbowmen + .militia { margin-right: 0; } +.longbowmen + .mercenaries { margin-right: 0; } +.longbowmen + .burgundians { margin-right: 0; } +.militia + .mercenaries { margin-right: 0; } +.militia + .burgundians { margin-right: 0; } +.mercenaries + .burgundians { margin-right: 0; } +*/ + .unit.retinue { border: 2px solid gray; width: 46px; @@ -528,10 +571,10 @@ body.shift .mat .capabilities { .mat .board .troops { position: absolute; - top: 80px; + top: 50px; right: 0px; width: 170px; - height: 60px; + height: 90px; display: flex; flex-wrap: wrap; flex-direction: column-reverse; @@ -542,10 +585,10 @@ body.shift .mat .capabilities { .mat .board .routed_troops { position: absolute; - top: 170px; + top: 145px; right: 0px; width: 170px; - height: 60px; + height: 90px; display: flex; flex-wrap: wrap; flex-direction: column-reverse; @@ -701,8 +744,8 @@ body.shift .mat .capabilities { .marker.feed.x3 { background-image: url(images/feed_x3.png) } .marker.fled { background-image: url(images/fled.png) } .marker.exile { background-image: url(images/exile.png) } -.marker.exile_lancaster { background-image: url(images/exile_lancaster.png) } -.marker.exile_york { background-image: url(images/exile_york.png) } +.marker.exile_rose.lancaster { background-image: url(images/exile_lancaster.png) } +.marker.exile_rose.york { background-image: url(images/exile_york.png) } .marker.exhausted { background-image: url(images/exhausted.png) } .marker.end { background-image: url(images/end.png) } .marker.depleted { background-image: url(images/depleted.png) } @@ -844,70 +887,71 @@ body.shift .mat .capabilities { border-color: hsl(37,28%,46%) hsl(37,28%,66%) hsl(37,28%,66%) hsl(37,28%,46%); } -.mat .board { background-color: hsl(37,28%,56%); border-color: hsl(37,28%,66%) hsl(37,28%,46%) hsl(37,28%,46%) hsl(37,28%,66%); box-shadow: 0 0 0 1px hsl(37,28%,19%), 0px 1px 4px #0008; } -.marker.battle { background-color: hsl(34,16%,49%); border-color: hsl(34,16%,59%) hsl(34,16%,39%) hsl(34,16%,39%) hsl(34,16%,59%); box-shadow: 0 0 0 1px hsl(34,16%,16%), 0px 1px 4px #0008; } -.marker.campaign { background-color: hsl(198,33%,38%); border-color: hsl(198,33%,48%) hsl(198,33%,28%) hsl(198,33%,28%) hsl(198,33%,48%); box-shadow: 0 0 0 1px hsl(198,33%,12%), 0px 1px 4px #0008; } -.marker.levy { background-color: hsl(33,35%,44%); border-color: hsl(33,35%,54%) hsl(33,35%,34%) hsl(33,35%,34%) hsl(33,35%,54%); box-shadow: 0 0 0 1px hsl(33,35%,14%), 0px 1px 4px #0008; } -.asset.cart.x1 { background-color: hsl(36,52%,70%); border-color: hsl(36,52%,80%) hsl(36,52%,60%) hsl(36,52%,60%) hsl(36,52%,80%); box-shadow: 0 0 0 1px hsl(36,52%,23%), 0px 1px 4px #0008; } -.asset.cart.x2 { background-color: hsl(34,51%,64%); border-color: hsl(34,51%,74%) hsl(34,51%,54%) hsl(34,51%,54%) hsl(34,51%,74%); box-shadow: 0 0 0 1px hsl(34,51%,21%), 0px 1px 4px #0008; } -.asset.cart.x3 { background-color: hsl(34,47%,56%); border-color: hsl(34,47%,66%) hsl(34,47%,46%) hsl(34,47%,46%) hsl(34,47%,66%); box-shadow: 0 0 0 1px hsl(34,47%,19%), 0px 1px 4px #0008; } -.asset.cart.x4 { background-color: hsl(26,32%,50%); border-color: hsl(26,32%,60%) hsl(26,32%,40%) hsl(26,32%,40%) hsl(26,32%,60%); box-shadow: 0 0 0 1px hsl(26,32%,16%), 0px 1px 4px #0008; } -.asset.coin.x1 { background-color: hsl(160,3%,83%); border-color: hsl(160,3%,93%) hsl(160,3%,73%) hsl(160,3%,73%) hsl(160,3%,93%); box-shadow: 0 0 0 1px hsl(160,3%,27%), 0px 1px 4px #0008; } -.asset.coin.x2 { background-color: hsl(120,1%,74%); border-color: hsl(120,1%,84%) hsl(120,1%,64%) hsl(120,1%,64%) hsl(120,1%,84%); box-shadow: 0 0 0 1px hsl(120,1%,24%), 0px 1px 4px #0008; } -.asset.coin.x3 { background-color: hsl(300,1%,65%); border-color: hsl(300,1%,75%) hsl(300,1%,55%) hsl(300,1%,55%) hsl(300,1%,75%); box-shadow: 0 0 0 1px hsl(300,1%,21%), 0px 1px 4px #0008; } -.asset.coin.x4 { background-color: hsl(0,0%,56%); border-color: hsl(0,0%,66%) hsl(0,0%,46%) hsl(0,0%,46%) hsl(0,0%,66%); box-shadow: 0 0 0 1px hsl(0,0%,19%), 0px 1px 4px #0008; } -.asset.prov.x1 { background-color: hsl(44,100%,79%); border-color: hsl(44,100%,89%) hsl(44,100%,69%) hsl(44,100%,69%) hsl(44,100%,89%); box-shadow: 0 0 0 1px hsl(44,100%,26%), 0px 1px 4px #0008; } -.asset.prov.x2 { background-color: hsl(42,100%,75%); border-color: hsl(42,100%,85%) hsl(42,100%,65%) hsl(42,100%,65%) hsl(42,100%,85%); box-shadow: 0 0 0 1px hsl(42,100%,25%), 0px 1px 4px #0008; } -.asset.prov.x3 { background-color: hsl(40,100%,70%); border-color: hsl(40,100%,80%) hsl(40,100%,60%) hsl(40,100%,60%) hsl(40,100%,80%); box-shadow: 0 0 0 1px hsl(40,100%,23%), 0px 1px 4px #0008; } -.asset.prov.x4 { background-color: hsl(39,82%,63%); border-color: hsl(39,82%,73%) hsl(39,82%,53%) hsl(39,82%,53%) hsl(39,82%,73%); box-shadow: 0 0 0 1px hsl(39,82%,21%), 0px 1px 4px #0008; } -.asset.ship.x1 { background-color: hsl(209,61%,74%); border-color: hsl(209,61%,84%) hsl(209,61%,64%) hsl(209,61%,64%) hsl(209,61%,84%); box-shadow: 0 0 0 1px hsl(209,61%,24%), 0px 1px 4px #0008; } -.asset.ship.x2 { background-color: hsl(205,52%,60%); border-color: hsl(205,52%,70%) hsl(205,52%,50%) hsl(205,52%,50%) hsl(205,52%,70%); box-shadow: 0 0 0 1px hsl(205,52%,20%), 0px 1px 4px #0008; } -.unit.retinue { background-color: hsl(0,0%,67%); border-color: hsl(0,0%,77%) hsl(0,0%,57%) hsl(0,0%,57%) hsl(0,0%,77%); box-shadow: 0 0 0 1px hsl(0,0%,22%), 0px 1px 4px #0008; } -.marker.cities.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%), 0px 1px 4px #0008; } -.marker.fortresses.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%), 0px 1px 4px #0008; } -.marker.ip.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%), 0px 1px 4px #0008; } -.marker.towns.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%), 0px 1px 4px #0008; } -.marker.cities.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%), 0px 1px 4px #0008; } -.marker.fortresses.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%), 0px 1px 4px #0008; } -.marker.ip.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%), 0px 1px 4px #0008; } -.marker.towns.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%), 0px 1px 4px #0008; } -.marker.depleted { background-color: hsl(204,6%,85%); border-color: hsl(204,6%,95%) hsl(204,6%,75%) hsl(204,6%,75%) hsl(204,6%,95%); box-shadow: 0 0 0 1px hsl(204,6%,28%), 0px 1px 4px #0008; } -.marker.end { background-color: hsl(33,35%,44%); border-color: hsl(33,35%,54%) hsl(33,35%,34%) hsl(33,35%,34%) hsl(33,35%,54%); box-shadow: 0 0 0 1px hsl(33,35%,14%), 0px 1px 4px #0008; } -.marker.exhausted { background-color: hsl(283,4%,31%); border-color: hsl(283,4%,41%) hsl(283,4%,21%) hsl(283,4%,21%) hsl(283,4%,41%); box-shadow: 0 0 0 1px hsl(283,4%,10%), 0px 1px 4px #0008; } -.marker.exile { background-color: hsl(86,41%,39%); border-color: hsl(86,41%,49%) hsl(86,41%,29%) hsl(86,41%,29%) hsl(86,41%,49%); box-shadow: 0 0 0 1px hsl(86,41%,13%), 0px 1px 4px #0008; } -.marker.exile.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.exile.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%), 0px 1px 4px #0008; } -.marker.feed.x2 { background-color: hsl(204,100%,37%); border-color: hsl(204,100%,47%) hsl(204,100%,27%) hsl(204,100%,27%) hsl(204,100%,47%); box-shadow: 0 0 0 1px hsl(204,100%,12%), 0px 1px 4px #0008; } -.marker.feed.x3 { background-color: hsl(200,100%,29%); border-color: hsl(200,100%,39%) hsl(200,100%,19%) hsl(200,100%,19%) hsl(200,100%,39%); box-shadow: 0 0 0 1px hsl(200,100%,9%), 0px 1px 4px #0008; } -.marker.fled { background-color: hsl(347,47%,4%); border-color: hsl(347,47%,14%) hsl(347,47%,0%) hsl(347,47%,0%) hsl(347,47%,14%); box-shadow: 0 0 0 1px hsl(347,47%,1%), 0px 1px 4px #0008; } -.marker.hits.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.hits.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%), 0px 1px 4px #0008; } -.marker.rose.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.rose.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%), 0px 1px 4px #0008; } -.marker.source { background-color: hsl(41,30%,71%); border-color: hsl(41,30%,81%) hsl(41,30%,61%) hsl(41,30%,61%) hsl(41,30%,81%); box-shadow: 0 0 0 1px hsl(41,30%,23%), 0px 1px 4px #0008; } -.marker.valour { background-color: hsl(288,29%,51%); border-color: hsl(288,29%,61%) hsl(288,29%,41%) hsl(288,29%,41%) hsl(288,29%,61%); box-shadow: 0 0 0 1px hsl(288,29%,17%), 0px 1px 4px #0008; } -.marker.victory_check { background-color: hsl(51,97%,53%); border-color: hsl(51,97%,63%) hsl(51,97%,43%) hsl(51,97%,43%) hsl(51,97%,63%); box-shadow: 0 0 0 1px hsl(51,97%,18%), 0px 1px 4px #0008; } -.marker.moved_fought { background-color: hsl(204,100%,37%); border-color: hsl(204,100%,47%) hsl(204,100%,27%) hsl(204,100%,27%) hsl(204,100%,47%); box-shadow: 0 0 0 1px hsl(204,100%,12%), 0px 1px 4px #0008; } -.marker.number.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.number.york { background-color: hsl(0,0%,100%); border-color: hsl(0,0%,100%) hsl(0,0%,90%) hsl(0,0%,90%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,33%), 0px 1px 4px #0008; } -.marker.seat.lancaster { background-color: hsl(358,76%,50%); border-color: hsl(358,76%,60%) hsl(358,76%,40%) hsl(358,76%,40%) hsl(358,76%,60%); box-shadow: 0 0 0 1px hsl(358,76%,17%), 0px 1px 4px #0008; } -.marker.seat.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%), 0px 1px 4px #0008; } -.marker.vassal { background-color: hsl(58,34%,73%); border-color: hsl(58,34%,83%) hsl(58,34%,63%) hsl(58,34%,63%) hsl(58,34%,83%); box-shadow: 0 0 0 1px hsl(58,34%,24%), 0px 1px 4px #0008; } -.marker.vassal.back { background-color: hsl(57,48%,75%); border-color: hsl(57,48%,85%) hsl(57,48%,65%) hsl(57,48%,65%) hsl(57,48%,85%); box-shadow: 0 0 0 1px hsl(57,48%,25%), 0px 1px 4px #0008; } -.marker.vassal.vassal_hastings { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%), 0px 1px 4px #0008; } -.marker.vassal.vassal_clifford { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.vassal.vassal_edward { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.vassal.vassal_montagu { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.vassal.vassal_thomas_stanley { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.marker.vassal.vassal_trollope { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.unit.vassal { background-color: hsl(58,34%,73%); border-color: hsl(58,34%,83%) hsl(58,34%,63%) hsl(58,34%,63%) hsl(58,34%,83%); box-shadow: 0 0 0 1px hsl(58,34%,24%), 0px 1px 4px #0008; } -.unit.vassal.back { background-color: hsl(57,48%,75%); border-color: hsl(57,48%,85%) hsl(57,48%,65%) hsl(57,48%,65%) hsl(57,48%,85%); box-shadow: 0 0 0 1px hsl(57,48%,25%), 0px 1px 4px #0008; } -.unit.vassal.vassal_hastings { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%), 0px 1px 4px #0008; } -.unit.vassal.vassal_clifford { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.unit.vassal.vassal_edward { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.unit.vassal.vassal_montagu { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.unit.vassal.vassal_thomas_stanley { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } -.unit.vassal.vassal_trollope { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%), 0px 1px 4px #0008; } +.mat .board { background-color: hsl(37,28%,56%); border-color: hsl(37,28%,66%) hsl(37,28%,46%) hsl(37,28%,46%) hsl(37,28%,66%); box-shadow: 0 0 0 1px hsl(37,28%,19%), 0px 0px 4px #0008; } + +.marker.battle { background-color: hsl(34,16%,49%); border-color: hsl(34,16%,59%) hsl(34,16%,39%) hsl(34,16%,39%) hsl(34,16%,59%); box-shadow: 0 0 0 1px hsl(34,16%,16%); } +.marker.campaign { background-color: hsl(198,33%,38%); border-color: hsl(198,33%,48%) hsl(198,33%,28%) hsl(198,33%,28%) hsl(198,33%,48%); box-shadow: 0 0 0 1px hsl(198,33%,12%); } +.marker.levy { background-color: hsl(33,35%,44%); border-color: hsl(33,35%,54%) hsl(33,35%,34%) hsl(33,35%,34%) hsl(33,35%,54%); box-shadow: 0 0 0 1px hsl(33,35%,14%); } +.asset.cart.x1 { background-color: hsl(36,52%,70%); border-color: hsl(36,52%,80%) hsl(36,52%,60%) hsl(36,52%,60%) hsl(36,52%,80%); box-shadow: 0 0 0 1px hsl(36,52%,23%); } +.asset.cart.x2 { background-color: hsl(34,51%,64%); border-color: hsl(34,51%,74%) hsl(34,51%,54%) hsl(34,51%,54%) hsl(34,51%,74%); box-shadow: 0 0 0 1px hsl(34,51%,21%); } +.asset.cart.x3 { background-color: hsl(34,47%,56%); border-color: hsl(34,47%,66%) hsl(34,47%,46%) hsl(34,47%,46%) hsl(34,47%,66%); box-shadow: 0 0 0 1px hsl(34,47%,19%); } +.asset.cart.x4 { background-color: hsl(26,32%,50%); border-color: hsl(26,32%,60%) hsl(26,32%,40%) hsl(26,32%,40%) hsl(26,32%,60%); box-shadow: 0 0 0 1px hsl(26,32%,16%); } +.asset.coin.x1 { background-color: hsl(160,3%,83%); border-color: hsl(160,3%,93%) hsl(160,3%,73%) hsl(160,3%,73%) hsl(160,3%,93%); box-shadow: 0 0 0 1px hsl(160,3%,27%); } +.asset.coin.x2 { background-color: hsl(120,1%,74%); border-color: hsl(120,1%,84%) hsl(120,1%,64%) hsl(120,1%,64%) hsl(120,1%,84%); box-shadow: 0 0 0 1px hsl(120,1%,24%); } +.asset.coin.x3 { background-color: hsl(300,1%,65%); border-color: hsl(300,1%,75%) hsl(300,1%,55%) hsl(300,1%,55%) hsl(300,1%,75%); box-shadow: 0 0 0 1px hsl(300,1%,21%); } +.asset.coin.x4 { background-color: hsl(0,0%,56%); border-color: hsl(0,0%,66%) hsl(0,0%,46%) hsl(0,0%,46%) hsl(0,0%,66%); box-shadow: 0 0 0 1px hsl(0,0%,19%); } +.asset.prov.x1 { background-color: hsl(44,100%,79%); border-color: hsl(44,100%,89%) hsl(44,100%,69%) hsl(44,100%,69%) hsl(44,100%,89%); box-shadow: 0 0 0 1px hsl(44,100%,26%); } +.asset.prov.x2 { background-color: hsl(42,100%,75%); border-color: hsl(42,100%,85%) hsl(42,100%,65%) hsl(42,100%,65%) hsl(42,100%,85%); box-shadow: 0 0 0 1px hsl(42,100%,25%); } +.asset.prov.x3 { background-color: hsl(40,100%,70%); border-color: hsl(40,100%,80%) hsl(40,100%,60%) hsl(40,100%,60%) hsl(40,100%,80%); box-shadow: 0 0 0 1px hsl(40,100%,23%); } +.asset.prov.x4 { background-color: hsl(39,82%,63%); border-color: hsl(39,82%,73%) hsl(39,82%,53%) hsl(39,82%,53%) hsl(39,82%,73%); box-shadow: 0 0 0 1px hsl(39,82%,21%); } +.asset.ship.x1 { background-color: hsl(209,61%,74%); border-color: hsl(209,61%,84%) hsl(209,61%,64%) hsl(209,61%,64%) hsl(209,61%,84%); box-shadow: 0 0 0 1px hsl(209,61%,24%); } +.asset.ship.x2 { background-color: hsl(205,52%,60%); border-color: hsl(205,52%,70%) hsl(205,52%,50%) hsl(205,52%,50%) hsl(205,52%,70%); box-shadow: 0 0 0 1px hsl(205,52%,20%); } +.unit.retinue { background-color: hsl(0,0%,67%); border-color: hsl(0,0%,77%) hsl(0,0%,57%) hsl(0,0%,57%) hsl(0,0%,77%); box-shadow: 0 0 0 1px hsl(0,0%,22%); } +.marker.cities.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%); } +.marker.fortresses.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%); } +.marker.ip.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%); } +.marker.towns.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%); } +.marker.cities.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%); } +.marker.fortresses.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%); } +.marker.ip.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%); } +.marker.towns.lancaster { background-color: hsl(359,85%,53%); border-color: hsl(359,85%,63%) hsl(359,85%,43%) hsl(359,85%,43%) hsl(359,85%,63%); box-shadow: 0 0 0 1px hsl(359,85%,17%); } +.marker.depleted { background-color: hsl(204,6%,85%); border-color: hsl(204,6%,95%) hsl(204,6%,75%) hsl(204,6%,75%) hsl(204,6%,95%); box-shadow: 0 0 0 1px hsl(204,6%,28%); } +.marker.end { background-color: hsl(33,35%,44%); border-color: hsl(33,35%,54%) hsl(33,35%,34%) hsl(33,35%,34%) hsl(33,35%,54%); box-shadow: 0 0 0 1px hsl(33,35%,14%); } +.marker.exhausted { background-color: hsl(283,4%,31%); border-color: hsl(283,4%,41%) hsl(283,4%,21%) hsl(283,4%,21%) hsl(283,4%,41%); box-shadow: 0 0 0 1px hsl(283,4%,10%); } +.marker.exile { background-color: hsl(86,41%,39%); border-color: hsl(86,41%,49%) hsl(86,41%,29%) hsl(86,41%,29%) hsl(86,41%,49%); box-shadow: 0 0 0 1px hsl(86,41%,13%); } +.marker.exile_rose.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.exile_rose.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%); } +.marker.feed.x2 { background-color: hsl(204,100%,37%); border-color: hsl(204,100%,47%) hsl(204,100%,27%) hsl(204,100%,27%) hsl(204,100%,47%); box-shadow: 0 0 0 1px hsl(204,100%,12%); } +.marker.feed.x3 { background-color: hsl(200,100%,29%); border-color: hsl(200,100%,39%) hsl(200,100%,19%) hsl(200,100%,19%) hsl(200,100%,39%); box-shadow: 0 0 0 1px hsl(200,100%,9%); } +.marker.fled { background-color: hsl(347,47%,4%); border-color: hsl(347,47%,14%) hsl(347,47%,0%) hsl(347,47%,0%) hsl(347,47%,14%); box-shadow: 0 0 0 1px hsl(347,47%,1%); } +.marker.hits.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.hits.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%); } +.marker.rose.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.rose.york { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%); } +.marker.source { background-color: hsl(41,30%,71%); border-color: hsl(41,30%,81%) hsl(41,30%,61%) hsl(41,30%,61%) hsl(41,30%,81%); box-shadow: 0 0 0 1px hsl(41,30%,23%); } +.marker.valour { background-color: hsl(288,29%,51%); border-color: hsl(288,29%,61%) hsl(288,29%,41%) hsl(288,29%,41%) hsl(288,29%,61%); box-shadow: 0 0 0 1px hsl(288,29%,17%); } +.marker.victory_check { background-color: hsl(51,97%,53%); border-color: hsl(51,97%,63%) hsl(51,97%,43%) hsl(51,97%,43%) hsl(51,97%,63%); box-shadow: 0 0 0 1px hsl(51,97%,18%); } +.marker.moved_fought { background-color: hsl(204,100%,37%); border-color: hsl(204,100%,47%) hsl(204,100%,27%) hsl(204,100%,27%) hsl(204,100%,47%); box-shadow: 0 0 0 1px hsl(204,100%,12%); } +.marker.number.lancaster { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.number.york { background-color: hsl(0,0%,100%); border-color: hsl(0,0%,100%) hsl(0,0%,90%) hsl(0,0%,90%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,33%); } +.marker.seat.lancaster { background-color: hsl(358,76%,50%); border-color: hsl(358,76%,60%) hsl(358,76%,40%) hsl(358,76%,40%) hsl(358,76%,60%); box-shadow: 0 0 0 1px hsl(358,76%,17%); } +.marker.seat.york { background-color: hsl(0,0%,96%); border-color: hsl(0,0%,100%) hsl(0,0%,86%) hsl(0,0%,86%) hsl(0,0%,100%); box-shadow: 0 0 0 1px hsl(0,0%,32%); } +.marker.vassal { background-color: hsl(58,34%,73%); border-color: hsl(58,34%,83%) hsl(58,34%,63%) hsl(58,34%,63%) hsl(58,34%,83%); box-shadow: 0 0 0 1px hsl(58,34%,24%); } +.marker.vassal.back { background-color: hsl(57,48%,75%); border-color: hsl(57,48%,85%) hsl(57,48%,65%) hsl(57,48%,65%) hsl(57,48%,85%); box-shadow: 0 0 0 1px hsl(57,48%,25%); } +.marker.vassal.vassal_hastings { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%); } +.marker.vassal.vassal_clifford { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.vassal.vassal_edward { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.vassal.vassal_montagu { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.vassal.vassal_thomas_stanley { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.marker.vassal.vassal_trollope { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.unit.vassal { background-color: hsl(58,34%,73%); border-color: hsl(58,34%,83%) hsl(58,34%,63%) hsl(58,34%,63%) hsl(58,34%,83%); box-shadow: 0 0 0 1px hsl(58,34%,24%); } +.unit.vassal.back { background-color: hsl(57,48%,75%); border-color: hsl(57,48%,85%) hsl(57,48%,65%) hsl(57,48%,65%) hsl(57,48%,85%); box-shadow: 0 0 0 1px hsl(57,48%,25%); } +.unit.vassal.vassal_hastings { background-color: hsl(217,53%,88%); border-color: hsl(217,53%,98%) hsl(217,53%,78%) hsl(217,53%,78%) hsl(217,53%,98%); box-shadow: 0 0 0 1px hsl(217,53%,29%); } +.unit.vassal.vassal_clifford { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.unit.vassal.vassal_edward { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.unit.vassal.vassal_montagu { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.unit.vassal.vassal_thomas_stanley { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } +.unit.vassal.vassal_trollope { background-color: hsl(358,83%,91%); border-color: hsl(358,83%,100%) hsl(358,83%,81%) hsl(358,83%,81%) hsl(358,83%,100%); box-shadow: 0 0 0 1px hsl(358,83%,30%); } /* ULTRA-WIDE SCREEN LAYOUTS */ @@ -139,18 +139,7 @@ function on_blur() { } function get_locale_tip(id) { - let loc = data.locales[id] - let tip = loc.name - if (set_has(data.seaports, id)) - tip += " - Port" - let list = [] - for (let lord = 0; lord < data.lords.length; ++lord) { - if (data.lords[lord].seat === id) - list.push(data.lords[lord].short_name) - } - if (list.length > 0) - tip += " - " + list.join(", ") - return tip + return data.locales[id].name } function on_focus_cylinder(evt) { @@ -346,9 +335,6 @@ const track_xy = [] const calendar_xy = [] const locale_xy = [] -let expand_calendar = -1 -let expand_track = -1 - const ui = { favicon: document.getElementById("favicon"), locale: [], @@ -368,6 +354,7 @@ const ui = { lord_exile: [], vassal_cal: [], // token on calendar vassal_map: [], // token on map + vassal_mat: [], // token on mat valour_area: [], marker_area: [], @@ -431,9 +418,11 @@ const ui = { ], } -let locale_layout = [] +let locale_layout_york = [] +let locale_layout_lanc = [] let calendar_layout_vassal = [] -let calendar_layout_cylinder = [] +let calendar_layout_york = [] +let calendar_layout_lanc = [] function clean_name(name) { return name.toLowerCase().replaceAll("&", "and").replaceAll(" ", "_") @@ -506,66 +495,83 @@ function build_plan() { ui.plan_actions.appendChild(elt) } -const locale_size = { - town: [ 100, 100 ], - city: [ 100, 100 ], - fortress: [ 100, 100 ], - harlech: [ 100, 100 ], - calais: [ 100, 100 ], - london: [ 150, 150 ], - exile: [ 150, 200 ], - sea: [ 100, 100 ], -} - function build_map() { - for (let i = 0; i < data.locales.length; ++i) - locale_layout[i] = [] + for (let i = 0; i <= 16; ++i) { + calendar_layout_york[i] = [] + calendar_layout_lanc[i] = [] + calendar_layout_vassal[i] = [] + } + + for (let i = 0; i < data.locales.length; ++i) { + locale_layout_york[i] = [] + locale_layout_lanc[i] = [] + } data.locales.forEach((locale, ix) => { let region = locale.region ? clean_name(locale.region) : "" let { x, y, w, h } = locale.box + let ax, ay, aw, ah let xc = Math.round(x + w / 2) let yc = Math.round(y + h / 2) let e - let small = 40 - let offsetdeplete = 10 locale_xy[ix] = [ xc, yc ] + if (locale.type === "exile_box") { + locale_xy[ix] = [ xc, y + 45 ] + ax = x + 6 + ay = y + 6 + aw = w - 13 + ah = h - 21 + } else { + ax = x - 6 + ay = y - 6 + aw = w + 12 + ah = h + 8 + } + // Main Area e = ui.locale[ix] = document.createElement("div") - e.className = "locale " + locale.type + " " + region - e.style.left = x + "px" - e.style.top = y + "px" - e.style.width = w + "px" - e.style.height = h + "px" + if (locale.type === "exile_box") + e.className = "locale " + locale.type + " " + locale.name.toLowerCase() + else + e.className = "locale " + locale.type + " " + region.toLowerCase() + e.style.left = ax + "px" + e.style.top = ay + "px" + e.style.width = aw + "px" + e.style.height = ah + "px" register_action(e, "locale", ix, "laden_march") register_tooltip(e, get_locale_tip(ix)) document.getElementById("locales").appendChild(e) - // Locale Markers - e = ui.locale_markers_rose[ix] = document.createElement("div") - e.className = "marker rose favour " + locale.name // York/Lancaster to add favour - e.style.top = y + h - small + "px" - e.style.left = x + (w - small) / 2 + "px" - e.style.width = small + "px" - e.style.height = small + "px" - e.style.zIndex = "-20" - // e.style.border = "2px solid aqua" // to be changed depending on the favour marker - e.style.backgroundSize = small + "px" - document.getElementById("pieces").appendChild(e) + // Favour + if (locale.type === "exile_box") { + e = ui.locale_markers_rose[ix] = document.createElement("div") + e.className = "marker circle exile_rose " + //e.style.top = (y - 8) + "px" + //e.style.left = (x + w - 54 + 8) + "px" + e.style.top = (y + h - 50) + "px" + e.style.left = (xc - 27) + "px" + e.style.pointerEvents = "none" + document.getElementById("pieces").appendChild(e) + } else { + e = ui.locale_markers_rose[ix] = document.createElement("div") + e.className = "marker small rose" + //e.style.top = y + h - 41 + "px" + e.style.top = yc - 20 + "px" + e.style.left = xc - 20 + "px" + e.style.pointerEvents = "none" + document.getElementById("pieces").appendChild(e) + } - // Depleted markers + // Depleted/Exhausted e = ui.locale_markers[ix] = document.createElement("div") - e.className = "depexh marker " + locale.name // depleted or exhausted to add markers - e.style.top = y + h - small - offsetdeplete + "px" - e.style.left = offsetdeplete + x + (w - small) / 2 + "px" - e.style.width = small + "px" - e.style.height = small + "px" - e.style.zIndex = "-15" - // e.style.border = "2px solid aqua" - e.style.backgroundSize = small + "px" + e.className = "marker small depexh " + locale.name + e.style.top = yc - 20 - 13 + "px" + e.style.left = xc - 20 + 13 + "px" + e.style.pointerEvents = "none" document.getElementById("pieces").appendChild(e) + }) // Lord seats @@ -582,7 +588,7 @@ function build_map() { e.style.width = 46 + "px" e.style.height = 46 + "px" e.style.backgroundSize = small + "px" - e.style.transform = "rotate(315deg)" + //e.style.transform = "rotate(315deg)" e.style.zIndex = "-50" register_tooltip(e, data.seat[ix].name) document.getElementById("pieces").appendChild(e) @@ -596,10 +602,10 @@ function build_map() { register_tooltip(e, on_focus_cylinder) document.getElementById("pieces").appendChild(e) - // TODO: remove this when not in exile let exile = ui.lord_exile[ix] = document.createElement("div") exile.className = "marker small exile hide" - e.appendChild(exile) + exile.style.zIndex=1 + document.getElementById("pieces").appendChild(exile) build_lord_mat(lord, ix, side, lord.id) }) @@ -608,36 +614,34 @@ function build_map() { ui.captured_king.className = "cylinder lancaster " + data.lords[LORD_HENRY_VI].id ui.captured_king.style.position = "static" - data.vassalbox.forEach((vassal, ix) => { - let e = ui.vassal_map[ix] = document.createElement("div") - let { x, y, w, h } = vassal.box - let xc = Math.round(x + w / 2) - let yc = Math.round(y + h / 2) - let small = 46 - e.className = "hide unit " + vassal.name + data.vassals.forEach((vassal, ix) => { + let e + + if (vassal.box) { + let { x, y, w, h } = vassal.box + e = ui.vassal_map[ix] = document.createElement("div") + let xc = Math.round(x + w / 2) + let yc = Math.round(y + h / 2) + e.className = "hide unit vassal vassal_" + vassal.name.toLowerCase() + e.style.position = "absolute" + e.style.top = yc - 27 + "px" + e.style.left = xc - 27 + "px" + register_action(e, "vassal", ix) + register_tooltip(e, data.vassals[ix].name) + document.getElementById("pieces").appendChild(e) + } + + e = ui.vassal_cal[ix] = document.createElement("div") + e.className = "hide unit vassal + vassal_" + vassal.name.toLowerCase() e.style.position = "absolute" - e.style.top = y + "px" - e.style.left = x + "px" - e.style.width = 46 + "px" - e.style.height = 46 + "px" - e.style.backgroundSize = small + "px" register_action(e, "vassal", ix) register_tooltip(e, data.vassals[ix].name) document.getElementById("pieces").appendChild(e) - }) - - data.vassals.forEach((vassal, ix) => { - let e = ui.vassal_cal[ix] = document.createElement("div") - e.className = "hide marker square back vassal vassal_" + clean_name(vassal.name) - e.style.position = "absolute" - e.style.width = 46 + "px" - e.style.height = 46 + "px" - e.style.backgroundSize = 46 + "px" + e = ui.vassal_mat[ix] = document.createElement("div") + e.className = "unit vassal + vassal_" + vassal.name.toLowerCase() register_action(e, "vassal", ix) register_tooltip(e, data.vassals[ix].name) - - document.getElementById("pieces").appendChild(e) }) for (let i = 1; i <= 16; ++i) { @@ -646,7 +650,7 @@ function build_map() { let y = calendar_boxes[name][1] let w = calendar_boxes[name][2] let h = calendar_boxes[name][3] - calendar_xy[i] = [ x, y ] + calendar_xy[i] = [ x, y, w, h ] let e = ui.calendar[i] = document.createElement("div") e.className = "calendar box " + name @@ -746,122 +750,104 @@ function update_current_card_display() { } } -function layout_locale_item(loc, e, is_upper) { - locale_layout[loc].push([e, is_upper]) -} - -function layout_locale_cylinders(loc) { +function layout_locale_cylinders(loc, list, dx) { let [xc, yc] = locale_xy[loc] - - let n = 0 - for (let [e,is_upper] of locale_layout[loc]) - if (!is_upper) - ++n - - let wrap = 2 - switch (data.locales[loc].type) { - case "london": - wrap = 3 - break + let dy = (list.length - 1) * -15 + let x = xc + dx + let y = yc + dy + let z = 5 + for (let ix of list) { + let e = ui.lord_cylinder[ix] + e.style.top = (y - 23) + "px" + e.style.left = (x - 23) + "px" + e.style.zIndex = z++ + y += 30 } +} - let m = Math.floor((n-1) / wrap) - let i = 0 - let k = 0 - for (let [e,is_upper] of locale_layout[loc]) { - let nn = n - if (nn > wrap) - nn = wrap - let x = xc + (i - (nn-1)/2) * 44 + k * 22 - let y = yc + (k * 32) - m * 32 - let z = 1 - if (is_upper) { - y -= 18 - z = 2 - } - if (e === ui.legate) { - y -= 16 - z = 3 - } +function layout_exile_box_cylinders(loc, list, dy) { + let [xc, yc] = locale_xy[loc] + let dx = (list.length - 1) * -23 + let x = xc + dx + let y = yc + dy + let z = 5 + for (let ix of list) { + let e = ui.lord_cylinder[ix] e.style.top = (y - 23) + "px" e.style.left = (x - 23) + "px" - e.style.zIndex = z - if (!is_upper) - ++i - if (i >= wrap) { - i = 0 - ++k - } + e.style.zIndex = z++ + x += 46 } } function layout_calendar() { for (let loc = 1; loc <= 16; ++loc) { let [cx, cy] = calendar_xy[loc] - let list = calendar_layout_vassal[loc] + let list + + list = calendar_layout_lanc[loc] for (let i = 0; i < list.length; ++i) { - let e = list[i] - let x = cx, y = cy, z = 60 - i - let d = 46 - 24 - if (loc === expand_calendar) { - d = 46 - z += 100 + let e = ui.lord_cylinder[list[i]] + let x = cx, y = cy, z = 30 + x += 5 + y += i * 30 - 2 + e.style.top = y + "px" + e.style.left = x + "px" + e.style.zIndex = z + + // cylinder is 44x48, exile marker is 39 + if (is_lord_in_exile(list[i])) { + e = ui.lord_exile[list[i]] + e.style.top = y + 5 + "px" + e.style.left = x + 3 - 20 + "px" + e.style.zIndex = z - 1 } - x += 10 - y += i * d + } + + list = calendar_layout_york[loc] + for (let i = 0; i < list.length; ++i) { + // ui.lord_exile[ix].classList.toggle("hide", !is_lord_in_exile(ix)) + let e = ui.lord_cylinder[list[i]] + let x = cx, y = cy, z = 30 + x += 50 + y += i * 30 - 2 e.style.top = y + "px" e.style.left = x + "px" e.style.zIndex = z + + // cylinder is 44, exile marker is 39 + if (is_lord_in_exile(list[i])) { + e = ui.lord_exile[list[i]] + e.style.top = y + "px" + e.style.left = x + 3 + 20 + "px" + e.style.zIndex = z - 1 + } } - list = calendar_layout_cylinder[loc] + list = calendar_layout_vassal[loc] for (let i = 0; i < list.length; ++i) { let e = list[i] - let x = cx, y = cy, z = 61 + i - x += 10 - y += i * 32 - 3 + let x = cx, y = cy, z = 20 - i + let len_lanc = calendar_layout_lanc[loc].length + let len_york = calendar_layout_york[loc].length + if (len_lanc <= len_york) { + y += len_lanc * 30 + 48-30 + 3 + i * 20 + x += 7 + } else { + y += len_york * 30 + 48-30 + 3 + i * 20 + x += 42 + } e.style.top = y + "px" e.style.left = x + "px" e.style.zIndex = z } + } } function add_vassal(parent, vassal, lord, routed) { - let elt - if (routed) { - if (is_action(force_action_name[VASSAL], vassal)) - elt = get_cached_element( - "action unit " + force_class_name[VASSAL] + " vassal_" + clean_name(data.vassals[vassal].name), - force_action_name[VASSAL], - vassal - ) - else - elt = get_cached_element( - "unit " + force_class_name[VASSAL] + " vassal_" + clean_name(data.vassals[vassal].name), - force_action_name[VASSAL], - vassal - ) - } else { - if (is_action(force_action_name[VASSAL], vassal)) - elt = get_cached_element( - "action unit " + force_class_name[VASSAL] + " vassal_" + clean_name(data.vassals[vassal].name), - force_action_name[VASSAL], - vassal - ) - else if (view.vassal === vassal || set_has(view.vassal, vassal)) - elt = get_cached_element( - "unit " + force_class_name[VASSAL] + " selected vassal_" + clean_name(data.vassals[vassal].name), - force_action_name[VASSAL], - vassal - ) - else - elt = get_cached_element( - "unit " + force_class_name[VASSAL] + " vassal_" + clean_name(data.vassals[vassal].name), - force_action_name[VASSAL], - vassal - ) - } + let elt = ui.vassal_mat[vassal] + elt.classList.toggle("selected", view.vassal === vassal || set_has(view.vassal, vassal)) parent.appendChild(elt) } @@ -1008,13 +994,19 @@ function update_lord(ix) { return } if (locale < CALENDAR) { - layout_locale_item(locale, ui.lord_cylinder[ix]) + if (is_york_lord(ix)) + locale_layout_york[locale].push(ix) + else + locale_layout_lanc[locale].push(ix) ui.lord_cylinder[ix].classList.remove("hide") update_lord_mat(ix) ui.lord_exile[ix].classList.add("hide") } else if (locale <= CALENDAR_EXILE + 16) { let t = locale > CALENDAR_EXILE ? locale - CALENDAR_EXILE : locale - CALENDAR - calendar_layout_cylinder[t].push(ui.lord_cylinder[ix]) + if (is_york_lord(ix)) + calendar_layout_york[t].push(ix) + else + calendar_layout_lanc[t].push(ix) ui.lord_cylinder[ix].classList.remove("hide") ui.lord_exile[ix].classList.toggle("hide", !is_lord_in_exile(ix)) } @@ -1031,7 +1023,13 @@ function update_lord(ix) { } function update_locale(loc) { - layout_locale_cylinders(loc) + if (data.locales[loc].type === "exile_box") { + layout_exile_box_cylinders(loc, locale_layout_lanc[loc], 0) + layout_exile_box_cylinders(loc, locale_layout_york[loc], 30) + } else { + layout_locale_cylinders(loc, locale_layout_lanc[loc], -30) + layout_locale_cylinders(loc, locale_layout_york[loc], 30) + } ui.locale[loc].classList.toggle("action", is_action("locale", loc) || is_action("laden_march", loc)) ui.locale[loc].classList.toggle("selected", view.where === loc || set_has(view.where, loc)) @@ -1271,13 +1269,14 @@ function update_vassals() { if (ui.vassal_map[v]) { ui.vassal_map[v].classList.remove("hide") ui.vassal_map[v].classList.toggle("action", is_action("vassal", v)) - ui.vassal_map[v].classList.toggle("selected", v === view.vassal) + ui.vassal_map[v].classList.toggle("selected", v === view.vassal || set_has(view.vassal, v)) } } else { // on calendar (+ maybe on lord mat) if (data.vassals[v].service > 0) { ui.vassal_cal[v].classList.remove("hide") ui.vassal_cal[v].classList.toggle("action", is_action("vassal", v)) + ui.vassal_cal[v].classList.toggle("selected", v === view.vassal || set_has(view.vassal, v)) calendar_layout_vassal[srv].push(ui.vassal_cal[v]) } else { // special vassal not on calendar @@ -1328,12 +1327,15 @@ function on_update() { } for (let i = 0; i <= 16; ++i) { - calendar_layout_cylinder[i] = [] - calendar_layout_vassal[i] = [] + calendar_layout_york[i].length = 0 + calendar_layout_lanc[i].length = 0 + calendar_layout_vassal[i].length = 0 } - for (let i = 0; i < data.locales.length; ++i) - locale_layout[i].length = 0 + for (let i = 0; i < data.locales.length; ++i) { + locale_layout_york[i].length = 0 + locale_layout_lanc[i].length = 0 + } track_offset.fill(0) @@ -5069,6 +5069,8 @@ states.intercept = { prompt() { view.prompt = `Intercept: Choose lords to intercept at ${locale_name[game.march.to]}.` + view.where = game.march.to + if (game.active === YORK) gen_action_card_if_held(EVENT_YORK_FLANK_ATTACK) else diff --git a/tools/gendata.js b/tools/gendata.js index 0b676ec..ade9bbf 100644 --- a/tools/gendata.js +++ b/tools/gendata.js @@ -42,7 +42,7 @@ const boxes = { "Harlech": [282,919,57,52], "London": [878,1159,89,73], "Calais": [1137,1411,63,58], - "Scotland": [448,277,113,132], + "Scotland": [449,277,113,132], "France": [888,1428,113,132], "Ireland": [48,950,113,132], "Burgundy": [993,684,113,132], @@ -113,34 +113,34 @@ const boxes = { "vassal vassal_devon": [406,1400,27,30], "vassal vassal_bonville": [174,1377,27,30], "vassal vassal_beaumont": [753,787,27,30], - "seat lancaster lord_henry_vi": [840,1168,50,50], - "seat lancaster lord_margaret": [847,1153,50,50], - "seat lancaster lord_henry_tudor": [831,1186,50,50], - "seat lancaster lord_clarence": [656,613,50,50], - "seat lancaster lord_northumberland_l": [392,422,50,50], + "seat lancaster lord_henry_vi": [865,1166,50,50], + "seat lancaster lord_margaret": [864,1166,50,50], + "seat lancaster lord_henry_tudor": [864,1166,50,50], + "seat lancaster lord_clarence": [650,637,50,50], + "seat lancaster lord_northumberland_l": [392,430,50,50], "seat lancaster lord_buckingham": [714,975,50,50], - "seat lancaster lord_jasper_tudor_2": [340,926,50,50], - "seat lancaster lord_jasper_tudor_1": [192,1077,50,50], - "seat lancaster lord_oxford": [692,1085,50,50], + "seat lancaster lord_jasper_tudor_2": [346,921,50,50], + "seat lancaster lord_jasper_tudor_1": [190,1066,50,50], + "seat lancaster lord_oxford": [678,1078,50,50], "seat lancaster lord_warwick_l": [1150,1350,50,50], - "seat lancaster lord_exeter_1": [345,1329,50,50], - "seat lancaster lord_somerset_1": [457,1275,50,50], - "seat york lord_edward_iv": [899,1149,50,50], - "seat york lord_gloucester_2": [933,1158,50,50], - "seat york lord_gloucester_1": [604,1074,50,50], - "seat york lord_salisbury": [653,643,50,50], - "seat york lord_march": [435,955,50,50], - "seat york lord_rutland": [1096,1189,50,50], - "seat york lord_devon": [315,1353,50,50], - "seat york lord_pembroke": [139,1106,50,50], + "seat lancaster lord_exeter_1": [300,1333,50,50], + "seat lancaster lord_somerset_1": [453,1277,50,50], + "seat york lord_edward_iv": [929,1164,50,50], + "seat york lord_gloucester_2": [930,1165,50,50], + "seat york lord_gloucester_1": [609,1074,50,50], + "seat york lord_salisbury": [770,636,50,50], + "seat york lord_march": [427,969,50,50], + "seat york lord_rutland": [1125,1214,50,50], + "seat york lord_devon": [359,1318,50,50], + "seat york lord_pembroke": [132,1095,50,50], "seat york lord_norfolk": [795,1398,50,50], - "seat york lord_northumberland_y1": [391,423,50,50], + "seat york lord_northumberland_y1": [391,431,50,50], "seat york lord_warwick_y": [1150,1349,50,50], - "seat york lord_york": [908,937,50,50], - "seat york lord_northumberland_y2": [391,423,50,50], - "seat york lord_richard_iii": [933,1158,50,50], - "seat lancaster lord_somerset_2": [457,1275,50,50], - "seat lancaster lord_exeter_2": [345,1329,50,50], + "seat york lord_york": [906,937,50,50], + "seat york lord_northumberland_y2": [391,431,50,50], + "seat york lord_richard_iii": [930,1165,50,50], + "seat lancaster lord_somerset_2": [452,1276,50,50], + "seat lancaster lord_exeter_2": [300,1333,50,50], } let data = [] @@ -154,7 +154,6 @@ var locmap = {} var locales = [] var ways = [] var seat = [] -var vassalbox = [] const scale = 1 var is = { stronghold: [] } @@ -189,13 +188,6 @@ function defseat(name) { } function defvassal(name) { - let [x, y, w, h] = boxes[name] - x = Math.floor(x) - y = Math.floor(y) - w = Math.ceil(w) - h = Math.ceil(h) - locmap[name] = locales.length - vassalbox.push({ name, box: { x, y, w, h } }) } @@ -339,22 +331,21 @@ defseat("seat lancaster lord_henry_tudor") defseat("seat lancaster lord_oxford") defseat("seat lancaster lord_warwick_l") - // VASSAL SEAT -defvassal("vassal vassal_westmoreland") -defvassal("vassal vassal_stanley") -defvassal("vassal vassal_dudley") -defvassal("vassal vassal_shrewsbury") -defvassal("vassal vassal_worcester") -defvassal("vassal vassal_oxford") -defvassal("vassal vassal_essex") -defvassal("vassal vassal_suffolk") -defvassal("vassal vassal_fauconberg") -defvassal("vassal vassal_norfolk") -defvassal("vassal vassal_devon") -defvassal("vassal vassal_bonville") -defvassal("vassal vassal_beaumont") +defvassal("Westmoreland") +defvassal("Stanley") +defvassal("Dudley") +defvassal("Shrewsbury") +defvassal("Worcester") +defvassal("Oxford") +defvassal("Essex") +defvassal("Suffolk") +defvassal("Fauconberg") +defvassal("Norfolk") +defvassal("Devon") +defvassal("Bonville") +defvassal("Beaumont") //WAYS BETWEEN LOCALES @@ -1402,7 +1393,17 @@ arts_of_war_roses(3, "L", 32, 37) let vassals = [] function vassal(service, name, seat, influence, capability) { - vassals.push({service, name, seat, influence, capability }) + let boxname = "vassal vassal_" + name.toLowerCase() + let box = null + if (boxname in boxes) { + let [x, y, w, h] = boxes[boxname] + x = Math.floor(x) + y = Math.floor(y) + w = Math.ceil(w) + h = Math.ceil(h) + box = { x, y, w, h } + } + vassals.push({service, name, seat, influence, capability, box }) } lords.forEach(lord => { @@ -1469,7 +1470,6 @@ dumplist("cards", cards) // layout client only dumplist("seat", seat) -dumplist("vassalbox", vassalbox) print("}") diff --git a/tools/layout.svg b/tools/layout.svg index bb1da3a..8e9ca6b 100644 --- a/tools/layout.svg +++ b/tools/layout.svg @@ -38,9 +38,9 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" showgrid="false" - inkscape:zoom="0.73946615" - inkscape:cx="765.1019" - inkscape:cy="825.23435" + inkscape:zoom="2.2194061" + inkscape:cx="833.37458" + inkscape:cy="1115.5331" inkscape:window-width="1920" inkscape:window-height="991" inkscape:window-x="-9" @@ -104,7 +104,7 @@ id="rect785" width="113" height="132" - x="448.42093" + x="448.64621" y="277.33926" inkscape:label="Scotland" /> <rect @@ -699,8 +699,8 @@ id="rect1042" width="50" height="50" - x="839.82922" - y="1167.6871" + x="864.83679" + y="1165.5977" rx="0" ry="0" inkscape:label="seat lancaster lord_henry_vi" /> @@ -709,8 +709,8 @@ id="rect1044" width="50" height="50" - x="846.57922" - y="1153.4371" + x="863.80273" + y="1165.8037" rx="0" ry="0" inkscape:label="seat lancaster lord_margaret" /> @@ -719,8 +719,8 @@ id="rect1046" width="50" height="50" - x="830.82922" - y="1186.1871" + x="864.17682" + y="1165.7495" rx="0" ry="0" inkscape:label="seat lancaster lord_henry_tudor" /> @@ -729,8 +729,8 @@ id="rect1056" width="50" height="50" - x="655.61737" - y="612.94305" + x="649.81378" + y="636.87598" rx="0" ry="0" inkscape:label="seat lancaster lord_clarence" /> @@ -739,8 +739,8 @@ id="rect1058" width="50" height="50" - x="392.328" - y="422.1658" + x="391.6908" + y="430.44946" rx="0" ry="0" inkscape:label="seat lancaster lord_northumberland_l" /> @@ -759,8 +759,8 @@ id="rect1066" width="50" height="50" - x="339.72382" - y="925.52167" + x="346.1814" + y="920.9292" rx="0" ry="0" inkscape:label="seat lancaster lord_jasper_tudor_2" /> @@ -769,8 +769,8 @@ id="rect1068" width="50" height="50" - x="192.24489" - y="1076.7739" + x="190.02089" + y="1066.2098" rx="0" ry="0" inkscape:label="seat lancaster lord_jasper_tudor_1" /> @@ -779,8 +779,8 @@ id="rect1070" width="50" height="50" - x="691.93689" - y="1085.2159" + x="677.88678" + y="1078.3939" rx="0" ry="0" inkscape:label="seat lancaster lord_oxford" /> @@ -799,8 +799,8 @@ id="rect1076" width="50" height="50" - x="344.55917" - y="1329.3937" + x="300.21649" + y="1333.0049" rx="0" ry="0" inkscape:label="seat lancaster lord_exeter_1" /> @@ -809,8 +809,8 @@ id="rect1082" width="50" height="50" - x="457.35245" - y="1274.7346" + x="452.98563" + y="1276.9834" rx="0" ry="0" inkscape:label="seat lancaster lord_somerset_1" /> @@ -819,8 +819,8 @@ id="rect1048" width="50" height="50" - x="898.57922" - y="1149.0419" + x="929.32196" + y="1164.1428" rx="0" ry="0" inkscape:label="seat york lord_edward_iv" /> @@ -829,8 +829,8 @@ id="rect1050" width="50" height="50" - x="933.07922" - y="1157.7919" + x="929.90576" + y="1164.5527" rx="0" ry="0" inkscape:label="seat york lord_gloucester_2" /> @@ -839,8 +839,8 @@ id="rect1052" width="50" height="50" - x="603.96716" - y="1074.3378" + x="608.6463" + y="1074.3502" rx="0" ry="0" inkscape:label="seat york lord_gloucester_1" /> @@ -849,8 +849,8 @@ id="rect1054" width="50" height="50" - x="653.27295" - y="642.50726" + x="769.72131" + y="636.0224" rx="0" ry="0" inkscape:label="seat york lord_salisbury" /> @@ -859,8 +859,8 @@ id="rect1064" width="50" height="50" - x="434.75497" - y="954.68988" + x="427.02731" + y="968.99597" rx="0" ry="0" inkscape:label="seat york lord_march" /> @@ -869,8 +869,8 @@ id="rect1072" width="50" height="50" - x="1095.96" - y="1188.509" + x="1124.8721" + y="1214.0852" rx="0" ry="0" inkscape:label="seat york lord_rutland" /> @@ -879,8 +879,8 @@ id="rect1078" width="50" height="50" - x="315.2449" - y="1353.4467" + x="358.9256" + y="1318.0125" rx="0" ry="0" inkscape:label="seat york lord_devon" /> @@ -889,8 +889,8 @@ id="rect1080" width="50" height="50" - x="138.9648" - y="1105.7858" + x="131.73676" + y="1095.2217" rx="0" ry="0" inkscape:label="seat york lord_pembroke" /> @@ -899,8 +899,8 @@ id="rect1084" width="50" height="50" - x="794.68335" - y="1398.1376" + x="795.47052" + y="1398.2999" rx="0" ry="0" inkscape:label="seat york lord_norfolk" /> @@ -909,8 +909,8 @@ id="rect440" width="50" height="50" - x="391.49115" - y="423.03864" + x="390.85394" + y="431.3223" rx="0" ry="0" inkscape:label="seat york lord_northumberland_y1" /> @@ -929,7 +929,7 @@ id="rect446" width="50" height="50" - x="907.82666" + x="905.60266" y="937.26581" rx="0" ry="0" @@ -939,8 +939,8 @@ id="rect106" width="50" height="50" - x="391.49115" - y="423.03864" + x="390.85394" + y="431.3223" rx="0" ry="0" inkscape:label="seat york lord_northumberland_y2" /> @@ -949,8 +949,8 @@ id="rect108" width="50" height="50" - x="933.07922" - y="1157.7919" + x="929.90576" + y="1165.1088" rx="0" ry="0" inkscape:label="seat york lord_richard_iii" /> @@ -959,8 +959,8 @@ id="rect110" width="50" height="50" - x="457.35245" - y="1274.7346" + x="452.42963" + y="1276.4276" rx="0" ry="0" inkscape:label="seat lancaster lord_somerset_2" /> @@ -969,8 +969,8 @@ id="rect112" width="50" height="50" - x="344.55917" - y="1329.3937" + x="299.66049" + y="1333.0049" rx="0" ry="0" inkscape:label="seat lancaster lord_exeter_2" /> |