summaryrefslogtreecommitdiff
path: root/play.js
diff options
context:
space:
mode:
Diffstat (limited to 'play.js')
-rw-r--r--play.js66
1 files changed, 39 insertions, 27 deletions
diff --git a/play.js b/play.js
index 85c61e3..4b3c4a3 100644
--- a/play.js
+++ b/play.js
@@ -732,16 +732,16 @@ function layout_influence() {
e.style.left = 25 + 71 * view.inf[VE] + "px"
}
-function layout_pieces(list, xorig, yorig, discs, s) {
+function layout_pieces(mains, xorig, yorig, discs, s, others) {
const dx = 17
const dy = 11
let off_x = 0
let off_y = 0
- function layout_piece_rowcol(nrow, ncol, row, col, e, z) {
+ function layout_piece_rowcol(nrow, ncol, row, col, e, z, offset_x, offset_y) {
// basic piece size = 29x36
- let x = xorig - (row * dx - col * dx) - 15 + off_x
- let y = yorig - (row * dy + col * dy) - 24 + off_y
+ let x = xorig - (row * dx - col * dx) - 15 + off_x + offset_x
+ let y = yorig - (row * dy + col * dy) - 24 + off_y + offset_y
let xo = e.my_x_offset
let yo = e.my_y_offset
e.style.left = (xo + x) + "px"
@@ -752,7 +752,7 @@ function layout_pieces(list, xorig, yorig, discs, s) {
e.my_z = z
}
- if (list.length > 0) {
+ function layout_p(list, offset_x=0, offset_y=0) {
let nrow = Math.round(Math.sqrt(list.length))
let ncol = Math.ceil(list.length / nrow)
let z = 50
@@ -764,11 +764,21 @@ function layout_pieces(list, xorig, yorig, discs, s) {
for (let row = 0; row < nrow; ++row)
for (let col = 0; col < ncol; ++col)
if (i < list.length)
- layout_piece_rowcol(nrow, ncol, row, col, list[list.length-(++i)], z--)
+ layout_piece_rowcol(nrow, ncol, row, col, list[list.length-(++i)], z--, offset_x, offset_y)
}
+ if (mains.length > 0) { layout_p(mains) }
+
if (discs)
layout_discs(discs, xorig + off_x, yorig + 12 + off_y, s)
+
+ if (others && others.length > 0) {
+ let nrow = Math.round(Math.sqrt(mains.length))
+ let ncol = Math.ceil(mains.length / nrow)
+ console.log(nrow, ncol)
+ layout_p(others, 21 + 5*nrow, 17 + 9*ncol)
+ }
+
}
function place_piece(p, x, y, z) {
@@ -783,7 +793,7 @@ function place_piece(p, x, y, z) {
function layout_discs(list, xc, yc, s) {
if (list.length === 1) {
- place_piece(list[0], xc - 20 + 32, yc - 10, 52)
+ place_piece(list[0], xc - 20 - 32, yc - 10, 52)
}
if (list.length === 2) {
place_piece(list[0], xc - 20 + 18, yc - 0, 52)
@@ -1064,35 +1074,37 @@ function on_update() {
layout_score()
- let items = [ ]
+ let elites = [ ]
+ let troops = [ ]
let discs = [ ]
+ let items = [ ]
for (let s = 0; s < data.spaces.length; ++s) {
let xy
if (s <= last_province) {
- items.length = discs.length = 0
+ troops.length = elites.length = discs.length = 0
filter_piece_list(discs, s, DS, DISC)
- filter_piece_list(items, s, DS, ELITE)
- filter_piece_list(items, s, DS, TROOPS)
+ filter_piece_list(elites, s, DS, ELITE)
+ filter_piece_list(troops, s, DS, TROOPS)
xy = get_layout_xy(s, "DS")
- layout_pieces(items, xy[0], xy[1], discs, DS)
+ layout_pieces(troops, xy[0], xy[1], discs, DS, elites)
- items.length = discs.length = 0
+ troops.length = elites.length = discs.length = 0
filter_piece_list(discs, s, BK, DISC)
- filter_piece_list(items, s, BK, ELITE)
+ filter_piece_list(elites, s, BK, ELITE)
xy = get_layout_xy(s, "BK")
- layout_pieces(items, xy[0], xy[1], discs, BK)
+ layout_pieces(elites, xy[0], xy[1], discs, BK)
- items.length = discs.length = 0
+ troops.length = elites.length = discs.length = 0
filter_piece_list(discs, s, VE, DISC)
- filter_piece_list(items, s, VE, ELITE)
+ filter_piece_list(elites, s, VE, ELITE)
xy = get_layout_xy(s, "VE")
- layout_pieces(items, xy[0], xy[1], discs, VE)
+ layout_pieces(elites, xy[0], xy[1], discs, VE)
- items.length = discs.length = 0
- filter_piece_list(items, s, MI, TROOPS)
+ troops.length = elites.length = discs.length = 0
+ filter_piece_list(troops, s, MI, TROOPS)
xy = get_layout_xy(s, "mongols")
- layout_pieces(items, xy[0], xy[1], discs, MI)
+ layout_pieces(troops, xy[0], xy[1], discs, MI)
} else if (s <= S_VE_AVAILABLE) {
ui.spaces[s].classList.toggle("action", is_action("space", s))
} else if (s <= S_BK_INF_4) {
@@ -1133,19 +1145,19 @@ function on_update() {
// layout cavalry
items.length = 0
filter_calvary_tokens(items, DS)
- layout_cavalry(items, 1125, 120, 14)
+ layout_cavalry(items, 1125, 100, 14)
items.length = 0
filter_calvary_tokens(items, BK)
- layout_cavalry(items, 200, 935, 14)
+ layout_cavalry(items, 265, 920, 14)
items.length = 0
filter_calvary_tokens(items, VE)
- layout_cavalry(items, 200, 1435, 14)
+ layout_cavalry(items, 265, 1420, 14)
items.length = 0
filter_calvary_tokens(items, AVAILABLE)
- layout_cavalry(items, 725, 90, 14)
+ layout_cavalry(items, 1186, 1080, 17)
// layout pieces
items.length = 0
@@ -1157,12 +1169,12 @@ function on_update() {
items.length = 0
filter_piece_list(items, AVAILABLE, BK, DISC)
layout_available_bases(items, 258, 1060, 1, 45, 0)
- layout_available(BK, ELITE, 135, 975)
+ layout_available(BK, ELITE, 125, 1000)
items.length = 0
filter_piece_list(items, AVAILABLE, VE, DISC)
layout_available_bases(items, 258, 1560, 1, 45, 0)
- layout_available(VE, ELITE, 135, 1475)
+ layout_available(VE, ELITE, 125, 1500)
layout_available(MI, TROOPS, 100, 155)