summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoël Simoneau <simoneaujoel@gmail.com>2025-03-24 16:16:16 -0400
committerJoël Simoneau <simoneaujoel@gmail.com>2025-03-24 16:16:16 -0400
commit3657c836555028cfc2927d291a7903734d37a9c2 (patch)
tree0e27eecc6c23f930ad65018bd0898f8384c82000
parentfe961a6bf575703da23de8f7dfb628b5b573a646 (diff)
downloadvijayanagara-3657c836555028cfc2927d291a7903734d37a9c2.tar.gz
Fix attack
-rw-r--r--rules.js8
1 files changed, 5 insertions, 3 deletions
diff --git a/rules.js b/rules.js
index f119c22..798b884 100644
--- a/rules.js
+++ b/rules.js
@@ -2916,7 +2916,7 @@ function has_unmoved_piece(space, faction) {
function has_valid_attackers(s, faction) {
let valid_attacker = false
for_each_movable(faction, p => {
- if (piece_space(p) === s && (!game.cmd || !set_has(game.cmd.pieces, p)))
+ if (piece_space(p) === s && (!game.cmd || !game.cmd.pieces || !set_has(game.cmd.pieces, p)))
valid_attacker = true
if (piece_space(p) === s || (has_piece(piece_space(p), faction, DISC) && SPACES[s].adjacent.includes(piece_space(p))))
if (!game.cmd.pieces || game.cmd.pieces.length === 0)
@@ -5144,9 +5144,9 @@ function vm_free_attack() {
where: game.vm.s,
}
- if (!can_attack_in_space(game.vm.s) && !(game.cmd && game.cmd.pieces))
+ if (!can_attack_in_space(game.vm.s) && !(game.cmd && game.cmd.pieces)) {
vm_next()
- else {
+ } else {
log_space(game.vm.s, "Attack")
if (is_timurid())
game.cmd.attacker = MI
@@ -5551,6 +5551,7 @@ states.shaded_6_2 = {
gen_action_resources(VE)
},
resources(f) {
+ push_undo()
let n = Math.min(game.resources[f], 3)
add_resources(f, -n)
add_resources(DS, n)
@@ -5626,6 +5627,7 @@ states.shaded_29 = {
view.actions.next = 1
},
token(c) {
+ push_undo()
game.cmd.count -= 1
add_resources(game.current, -1)
log_summary_cavalry(c)