summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorJoël Simoneau <simoneaujoel@gmail.com>2025-01-22 20:31:11 -0500
committerJoël Simoneau <simoneaujoel@gmail.com>2025-01-22 20:31:11 -0500
commit435a5c4cc61da7470ad2e23e7db72d6a81d05c02 (patch)
tree740a6ed4aa24acf58f4e2a180e77de3c579987c2 /rules.js
parente85c797f7de1d3aae736fe574685f369115c4a38 (diff)
downloadvijayanagara-435a5c4cc61da7470ad2e23e7db72d6a81d05c02.tar.gz
Event 8.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js31
1 files changed, 29 insertions, 2 deletions
diff --git a/rules.js b/rules.js
index 48b4297..d3d2edc 100644
--- a/rules.js
+++ b/rules.js
@@ -2506,6 +2506,10 @@ function has_qasbah(s) {
return has_piece(s, DS, DISC)
}
+function has_ds_unit(s) {
+ return has_piece(s, DS, ELITE) || has_piece(s, DS, TROOPS)
+}
+
function is_adjacent(a, b) {
return set_has(SPACES[a].adjacent, b)
}
@@ -2530,6 +2534,10 @@ function is_qasbah(p) {
return piece_name(p) === "Qasbah"
}
+function is_piece_in_event_space(p) {
+ return piece_space(p) === game.vm.s
+}
+
/* EVENT SPECIFIC */
function has_majority_goa() {
@@ -3852,6 +3860,13 @@ function vm_free_compel() {
goto_compel_space()
}
+// VM: GOVERN
+
+function vm_free_govern() {
+ init_free_command("Govern", game.vm.s)
+ goto_govern_space()
+}
+
// VM: RALLY
function vm_free_rally() {
@@ -4025,13 +4040,25 @@ CODE[7 * 2 + 1] = [
// EVENT 8
CODE[8 * 2 + 0] = [
- [ vm_log, "NOT IMPLEMENTED" ],
+ [ vm_current, REBEL_FACTIONS ],
+ [ vm_prompt, ()=>`In each Province, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ],
+ [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && has_ds_unit(s) && can_place_piece(s, game.current, ELITE) ],
+ [ vm_piece, false, 1, 1, (p,s)=>is_ds_unit(p) && is_piece_in_event_space(p) ],
+ [ vm_remove ],
+ [ vm_auto_place, false, 0, false, ()=>(game.current), ELITE ],
+ [ vm_endpiece ],
+ [ vm_endspace ],
[ vm_return ],
]
// SHADED 8
CODE[8 * 2 + 1] = [
- [ vm_log, "NOT IMPLEMENTED" ],
+ [ vm_current, DS ],
+ [ vm_prompt, ()=>`In each Province, free Govern and then add a Troop.` ],
+ [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && can_govern_in_space(s) ],
+ [ vm_free_govern ],
+ [ vm_place, false, 1, 1, DS, TROOPS ],
+ [ vm_endspace ],
[ vm_return ],
]