summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoël Simoneau <simoneaujoel@gmail.com>2025-04-01 16:22:04 -0400
committerJoël Simoneau <simoneaujoel@gmail.com>2025-04-01 16:22:04 -0400
commitb9a101047c7b3f48fce4bfb28efd7ae505386b3d (patch)
tree63aad80e160a1af52de46301554156396f05b9ee
parentaabe06db6f5bef5b1d05afadc80ac588762764d4 (diff)
downloadvijayanagara-b9a101047c7b3f48fce4bfb28efd7ae505386b3d.tar.gz
Mongol Invaders as cubes
-rw-r--r--play.css1
-rw-r--r--play.js2
-rw-r--r--rules.js23
3 files changed, 22 insertions, 4 deletions
diff --git a/play.css b/play.css
index 9ffaea9..19625de 100644
--- a/play.css
+++ b/play.css
@@ -165,6 +165,7 @@ img.f {
#log .h2.ve { background-color: #e4ba6e }
#log .h2.mi { background-color: #ebc9be }
+#log img.c { height: 15px; vertical-align: -3px }
#log img.f { height: 16px; vertical-align: -2px }
#log { font-variant-numeric: tabular-nums; }
diff --git a/play.js b/play.js
index 6e7eef0..67d15ca 100644
--- a/play.js
+++ b/play.js
@@ -1364,6 +1364,7 @@ function sub_space(match, p1) {
return `<span class="tip" onmouseenter="on_focus_space_tip(${x})" onmouseleave="on_blur_space_tip(${x})" onmousedown="on_click_space_tip(${x})">${n}</span>`
}
+const C_MI = '<img class="c" src="pieces/mongol_invader.svg">'
const F_DS = '<img class="f" src="images/Flags_DS.png">'
const F_BK = '<img class="f" src="images/Flags_BK.png">'
const F_VE = '<img class="f" src="images/Flags_VE.png">'
@@ -1382,6 +1383,7 @@ function on_log(text) {
text = text.replace(/</g, "&lt;")
text = text.replace(/>/g, "&gt;")
+ text = text.replace(/\bCMI\b/g, C_MI)
text = text.replace(/\bFDS\b/g, F_DS)
text = text.replace(/\bFBK\b/g, F_BK)
text = text.replace(/\bFVE\b/g, F_VE)
diff --git a/rules.js b/rules.js
index 10f25d4..e6acad5 100644
--- a/rules.js
+++ b/rules.js
@@ -3024,6 +3024,15 @@ function piece_faction(p) {
throw "IMPOSSIBLE - piece_faction"
}
+function piece_symbol(p) {
+ let f = piece_faction(p)
+ let t = piece_type(p)
+ if (PIECE_FACTION_TYPE_SYMBOL[f][t] !== null)
+ return PIECE_FACTION_TYPE_SYMBOL[f][t]
+ else
+ return PIECE_FACTION_TYPE_NAME[f][t]
+}
+
function piece_name(p) {
return PIECE_FACTION_TYPE_NAME[piece_faction(p)][piece_type(p)]
}
@@ -3800,17 +3809,17 @@ function placed_summary(type="") {
function log_summary_place(p) {
let from = piece_space(p)
if (from !== AVAILABLE)
- log_summary("% " + piece_name(p) + " from S" + from)
+ log_summary("% " + piece_symbol(p) + " from S" + from)
else
- log_summary("% " + piece_name(p))
+ log_summary("% " + piece_symbol(p))
}
function log_summary_move_from(p) {
- log_summary("% " + piece_name(p) + " from S" + piece_space(p))
+ log_summary("% " + piece_symbol(p) + " from S" + piece_space(p))
}
function log_summary_remove(p) {
- log_summary("Removed % " + piece_name(p))
+ log_summary("Removed % " + piece_symbol(p))
}
function log_summary_cavalry(c) {
@@ -5675,6 +5684,12 @@ const PIECE_FACTION_TYPE_NAME = [
[ "Temple", "Raja", null ],
[ null, null, "Invader" ]
]
+const PIECE_FACTION_TYPE_SYMBOL = [
+ [ null, null, null ],
+ [ null, null, null ],
+ [ null, null, null ],
+ [ null, null, CMI ]
+]
const LAST_CAVALRY = 9
// Sequence of Play options