diff options
author | Tor Andersson <tor@ccxvii.net> | 2024-06-05 23:12:59 +0200 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2024-06-05 23:12:59 +0200 |
commit | 203e5ccbf475135e5e177cda78f0acb00aa5f7fb (patch) | |
tree | 46f9ec1efd8e73f9b08f5c593f47f7372da02730 /rules.js | |
parent | bf604c0ad20aa4e158e744a15a321efe7cc78552 (diff) | |
download | friedrich-203e5ccbf475135e5e177cda78f0acb00aa5f7fb.tar.gz |
fixup move paths
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 31 |
1 files changed, 21 insertions, 10 deletions
@@ -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() }, } |