summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2024-06-05 23:12:59 +0200
committerTor Andersson <tor@ccxvii.net>2024-06-05 23:12:59 +0200
commit203e5ccbf475135e5e177cda78f0acb00aa5f7fb (patch)
tree46f9ec1efd8e73f9b08f5c593f47f7372da02730 /rules.js
parentbf604c0ad20aa4e158e744a15a321efe7cc78552 (diff)
downloadfriedrich-203e5ccbf475135e5e177cda78f0acb00aa5f7fb.tar.gz
fixup move paths
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js31
1 files changed, 21 insertions, 10 deletions
diff --git a/rules.js b/rules.js
index 7036bd1..29f277d 100644
--- a/rules.js
+++ b/rules.js
@@ -858,10 +858,8 @@ function retire_general(p) {
n -= x
}
}
- if (n > 1)
+ if (n > 0)
log("P" + p + " removed from S" + s + " with " + n + " troops.")
- else if (n === 1)
- log("P" + p + " removed from S" + s + " with 1 troop.")
else
log("P" + p + " removed.")
} else {
@@ -869,8 +867,11 @@ function retire_general(p) {
}
}
-function eliminate_general(p) {
- log(">P" + p + " eliminated")
+function eliminate_general(p, indent) {
+ if (indent)
+ log(">P" + p + " eliminated")
+ else
+ log("P" + p + " eliminated.")
game.pos[p] = ELIMINATED
game.troops[p] = 0
set_in_supply(p)
@@ -1585,7 +1586,10 @@ function move_general_to(to) {
// eliminate supply train
for (let p of all_enemy_trains[pow]) {
if (game.pos[p] === to) {
- eliminate_train(p)
+ if (!game.move_elim)
+ game.move_elim = []
+ set_add(game.move_elim, p)
+ game.pos[p] = ELIMINATED
stop = true
}
}
@@ -1828,6 +1832,12 @@ states.move_give = {
function end_move_piece() {
log_selected_move_path()
+ if (game.move_elim) {
+ for (let p of game.move_elim)
+ log("P" + p + " eliminated.")
+ delete game.move_elim
+ }
+
delete game.move_path
game.selected = null
game.state = "movement"
@@ -2683,7 +2693,7 @@ states.retreat_eliminate_hits = {
gen_action_piece(p)
},
piece(p) {
- eliminate_general(p)
+ eliminate_general(p, false)
set_delete(game.selected, p)
resume_retreat()
},
@@ -2697,9 +2707,9 @@ states.retreat_eliminate_trapped = {
gen_action_piece(p)
},
piece(_) {
- log("Trapped")
+ log("Trapped.")
for (let p of game.selected)
- eliminate_general(p)
+ eliminate_general(p, false)
next_combat()
},
}
@@ -3029,7 +3039,8 @@ states.supply_eliminate = {
for (let p of all_power_generals[game.power])
if (game.pos[p] === s)
- eliminate_general(p)
+ eliminate_general(p, true)
+
resume_supply_eliminate()
},
}