summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorJoël Simoneau <simoneaujoel@gmail.com>2025-03-08 21:35:47 -0500
committerJoël Simoneau <simoneaujoel@gmail.com>2025-03-08 21:35:47 -0500
commit01dfeaf0e26d6c46e8d727a6db4e9985059749b8 (patch)
tree970fabf0deac6b81ac9ef3bfd6ead9bfe4d2d5ad /rules.js
parent838426d230359ab5afcb6da546cf6d1be4808aa6 (diff)
downloadvijayanagara-01dfeaf0e26d6c46e8d727a6db4e9985059749b8.tar.gz
Event 12.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js51
1 files changed, 38 insertions, 13 deletions
diff --git a/rules.js b/rules.js
index aa85963..cf363f5 100644
--- a/rules.js
+++ b/rules.js
@@ -266,7 +266,7 @@ exports.setup = function (seed, scenario, _options) {
}
function setup_deck() {
- game.deck = [ 38, 4, 2, 6, 7, 21, 39, 4, 29, 15, 17, 16, 18, 5, 3, 36, 10, 37, 11, 2, 10, 1, 12, 13, 14 ]
+ game.deck = [ 38, 4, 12, 13, 6, 7, 21, 28, 29, 30, 31 ]
}
function setup_standard() {
@@ -444,11 +444,13 @@ function goto_cavalry(n, next) {
if (game.cav.n !== 0)
game.state = "cavalry"
else {
- pop_summary()
- if (game.vm)
+ if (game.vm) {
+ upop_summary()
vm_next()
- else
+ } else {
+ pop_summary()
game.states = game.cav.next
+ }
}
}
@@ -628,13 +630,16 @@ states.cavalry = {
set_cavalry_faction(c, game.current)
},
end_cavalry() {
- pop_summary()
- if (game.vm)
+ if (game.vm) {
+ upop_summary()
vm_next()
- else if (game.cav.next)
+ } else if (game.cav.next) {
+ pop_summary()
game.state = game.cav.next
- else
+ } else {
+ pop_summary()
goto_eligible()
+ }
}
}
@@ -1913,7 +1918,6 @@ states.campaign = {
view.prompt = "Campaign: Select four contiguous spaces, finishing adjacent to Warangal"
if (game.decree.campaign.length === 0) {
for (let s = first_space; s <= last_space; ++s) {
- console.log("TEST! ", SPACE_NAME[s], is_n_from_warangal(3, s))
if (can_start_campaign_in_space(s) && is_n_from_warangal(3, s))
gen_action_space(s)
}
@@ -4484,7 +4488,6 @@ function vm_shaded_6() {
}
function vm_shaded_6_2() {
- console.log(game)
game.state = "shaded_6_2"
}
@@ -4870,13 +4873,35 @@ CODE[11 * 2 + 1] = [
// EVENT 12
CODE[12 * 2 + 0] = [
- [ vm_log, "NOT IMPLEMENTED" ],
+ [ vm_current, REBEL_FACTIONS ],
+ [ vm_gain_cavalry, 2 ],
+ [ vm_prompt, "Remove 4 Delhi Sultantes pieces from Provinces adjacent to Warangal." ],
+ [ vm_piece, false, 4, 4, (p,s)=>(is_adjacent_to_city(C_WARANGAL, piece_space(p)) && piece_faction(p) === DS) ],
+ [ vm_remove ],
+ [ vm_endpiece ],
[ vm_return ],
]
// SHADED 12
CODE[12 * 2 + 1] = [
- [ vm_log, "NOT IMPLEMENTED" ],
+ [ vm_current, DS ],
+ [ vm_gain_cavalry, 2 ],
+ [ vm_prompt, "Place a Qasbah in a Province adjacent to Warangal." ],
+ [ vm_space, true, 0, 1, (s)=>is_adjacent_to_city(C_WARANGAL, s) && can_place_piece(s, DS, DISC) ],
+ [ vm_auto_place, false, 0, false, DS, DISC ],
+ [ vm_endspace ],
+ [ vm_asm, ()=>game.vm.count = 0 ],
+ [ vm_repeat, 4 ],
+ [ vm_prompt, ()=>`Place up to ${4-game.vm.count} Troops adjacent to Warangal.` ],
+ [ vm_space, true, 0, 1, (s)=>is_adjacent_to_city(C_WARANGAL, s) && can_place_piece(s, DS, TROOPS) ],
+ [ vm_auto_place, false, 0, false, DS, TROOPS ],
+ [ vm_asm, ()=>(game.vm.count += 1) ],
+ [ vm_endspace ],
+ [ vm_endrepeat ],
+ [ vm_prompt, "Make a free Attack in one Province adjacent to Warangal." ],
+ [ vm_space, true, 1, 1, (s)=>(is_adjacent_to_city(C_WARANGAL, s) && can_attack_in_space(s)) ],
+ [ vm_free_attack ],
+ [ vm_endspace ],
[ vm_return ],
]
@@ -4915,7 +4940,7 @@ CODE[14 * 2 + 0] = [
CODE[14 * 2 + 1] = [
[ vm_current, DS ],
[ vm_gain_cavalry, 3 ],
- [ vm_prompt, "Place up to 4 Troops and 1 Governor in a province adjacent to Vijayanagara and Demand Obedience there." ],
+ [ vm_prompt, "Place up to 4 Troops and a Governor in a province adjacent to Vijayanagara and Demand Obedience there." ],
[ vm_space, true, 0, 1, (s)=>is_adjacent_to_city(C_VIJAYANAGARA, s) ],
[ vm_place, false, 1, 4, DS, TROOPS ],
[ vm_place, false, 1, 1, DS, ELITE ],