diff options
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 81 |
1 files changed, 40 insertions, 41 deletions
@@ -2991,11 +2991,10 @@ function goto_move_phase() { game.forced = [] game.state = 'select_moves' init_move_summary() - if (game.phasing === AXIS) { - // Automatically select Rommel Move for 1-move turn options - if (game.turn_option !== 'offensive' && game.turn_option !== 'blitz' && game.scenario !== "1940") + + if (game.phasing === AXIS && game.scenario !== "1940" && game.rommel === 0) + if (game.turn_option !== 'offensive' && game.turn_option !== 'blitz') game.rommel = 1 - } } function show_move_commands() { @@ -3014,31 +3013,48 @@ states.select_moves = { view.prompt = `Designate second offensive move.` else view.prompt = `Designate first offensive move.` + } else if (game.turn_option === 'blitz') { + view.prompt = `Designate first blitz move.` } else { view.prompt = `Designate ${game.turn_option} move.` } - gen_action('group') - gen_action('regroup') + + if (game.phasing === AXIS && game.scenario !== "1940" && game.rommel === 0) { + if (game.turn_option === 'offensive' || game.turn_option === 'blitz') { + gen_action('group') + gen_action('regroup') + } + gen_action('group_rommel') + gen_action('regroup_rommel') + } else { + gen_action('group') + gen_action('regroup') + } + if (game.turn_option === 'pass') gen_action('end_turn') }, + group_rommel() { + push_undo() + game.rommel = (game.from1 === 0) ? 1 : 2 + goto_group() + }, group() { push_undo() game.state = 'group_move_from' }, + regroup_rommel() { + push_undo() + game.rommel = (game.from1 === 0) ? 1 : 2 + goto_regroup() + }, regroup() { push_undo() - game.state = 'regroup_move_command_point' - if (game.turn_option === 'pass') { - game.withdraw = list_valid_withdrawal_regroup_command_points() - save_withdrawal_supply_lines() - } + goto_regroup() }, end_turn() { clear_undo() - flush_move_summary() game.summary = null - reveal_visited_minefields() goto_final_supply_check() }, confirm_end_turn() { @@ -3046,9 +3062,16 @@ states.select_moves = { } } -function gen_rommel_move() { - if (game.phasing === AXIS && game.scenario !== "1940") - view.actions.rommel = game.rommel ? 0 : 1 +function goto_group() { + game.state = 'group_move_from' +} + +function goto_regroup() { + game.state = 'regroup_move_command_point' + if (game.turn_option === 'pass') { + game.withdraw = list_valid_withdrawal_regroup_command_points() + save_withdrawal_supply_lines() + } } states.group_move_from = { @@ -3056,7 +3079,6 @@ states.group_move_from = { prompt() { show_move_commands() view.prompt = `Group Move: Select hex to move from.` - gen_rommel_move() if (game.turn_option !== 'pass') { for (let x of all_hexes) { if (x === game.from1 && !game.to1) @@ -3091,13 +3113,6 @@ states.group_move_from = { } } }, - rommel() { - push_undo() - if (game.from1 === 0) - game.rommel = 1 - else - game.rommel = 2 - }, hex(x) { push_undo() if (game.from1 === 0) @@ -3144,7 +3159,6 @@ states.regroup_move_command_point = { prompt() { show_move_commands() view.prompt = `Regroup Move: Designate the command point hex.` - gen_rommel_move() if (game.turn_option !== 'pass') { for (let x of all_hexes) { if (!is_enemy_hex(x)) { @@ -3158,13 +3172,6 @@ states.regroup_move_command_point = { gen_withdrawal_regroup_command_point() } }, - rommel() { - push_undo() - if (game.from1 === 0) - game.rommel = 1 - else - game.rommel = 2 - }, hex(x) { push_undo() if (game.from1 === 0) @@ -3182,8 +3189,7 @@ states.regroup_move_destination = { prompt() { show_move_commands() view.prompt = `Regroup Move: Select destination hex.` - gen_rommel_move() - let cp, rommel = false + let cp, rommel if (game.from2 === 0) cp = game.from1, rommel = (game.rommel === 1 ? 1 : 0) else @@ -3201,13 +3207,6 @@ states.regroup_move_destination = { gen_withdrawal_regroup_destination() } }, - rommel() { - push_undo() - if (game.from2 === 0) - game.rommel = 1 - else - game.rommel = 2 - }, hex(x) { push_undo() if (game.from2 === 0) |