diff options
author | Tor Andersson <tor@ccxvii.net> | 2022-01-21 14:41:07 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2023-02-18 11:54:52 +0100 |
commit | d7ef31c3d510d4d7469bbbb75e51c9b1124278b5 (patch) | |
tree | 9b11837a267e7b82c318a6eb81d96c9beffaa03b | |
parent | 700be1ac8d35db83f1fe7d6d2ba960403eab5607 (diff) | |
download | wilderness-war-d7ef31c3d510d4d7469bbbb75e51c9b1124278b5.tar.gz |
Remaining response events.
-rw-r--r-- | rules.js | 25 |
1 files changed, 20 insertions, 5 deletions
@@ -9,6 +9,7 @@ // TODO: show discard/removed card list in UI // TODO: re-evaluate fortress ownership and VP when pieces move or are eliminated +// TODO: add/remove 'next' steps at end of states // TODO: rename node/space -> location/space or raw_space/space or box/space? // TODO: replace piece[p].type lookups with index range checks @@ -425,10 +426,10 @@ const SOUTHERN_COLONIAL_MILITIAS = find_space("Southern Colonial Militias"); const SURRENDER = 6; const MASSACRE = 7; const COEHORNS = 8; -const first_fieldworks_card = 9; -const last_fieldworks_card = 10; -const first_ambush_card = 11; -const last_ambush_card = 12; +const FIELDWORKS_1 = 9; +const FIELDWORKS_2 = 10; +const AMBUSH_1 = 11; +const AMBUSH_2 = 12; const BLOCKHOUSES = 13; const FOUL_WEATHER = 14; const LAKE_SCHOONER = 15; @@ -2442,6 +2443,8 @@ states.define_force = { // MOVE function goto_move_piece(who) { + // TODO: RESPONSE - Foul Weather + console.log("GOTO_MOVE_PIECE", piece_name(who)); log(`Move ${piece_name(who)}.`); let from = piece_space(who); @@ -2621,6 +2624,8 @@ states.move = { // remember where we came from so we can retreat after battle game.raid.from[to] = game.move.path[to]; + // TODO: RESPONSE - Lake Schooner + // TODO: except space moved into, if it is guarded! if (force_has_drilled_troops(who)) remove_enemy_forts_uc_in_path(game.move.path, to); @@ -2709,6 +2714,7 @@ function end_move_step(final) { if (has_enemy_stockade(where)) { if (force_has_drilled_troops(who)) { capture_enemy_stockade(where) + // TODO: RESPONSE - Massacre! } } end_move(); @@ -3199,8 +3205,14 @@ states.militia_in_battle = { function goto_battle_events() { set_active(game.battle.attacker); + // TODO: attacker then defender play events + // TODO: RESPONSE - Ambush + // TODO: RESPONSE - Coehorns + // TODO: RESPONSE - Fieldworks + // TODO: attacker MAY participate besieged units if breaking the siege + goto_battle_roll(); } @@ -3594,9 +3606,11 @@ function determine_winner_assault() { remove_siege_marker(where); if (has_enemy_fortress(where)) { capture_enemy_fortress(where); + // TODO: RESPONSE - Massacre! } if (has_enemy_fort(where)) { capture_enemy_fort(where); + // TODO: RESPONSE - Massacre! } } else { log("DEFENDER WON ASSAULT"); @@ -3908,8 +3922,9 @@ function goto_surrender() { delete game.sieges[game.siege_where]; if (has_enemy_fort(game.siege_where)) capture_enemy_fort_intact(game.siege_where); - else if (has_enemy_fortress(game.siege_where)) + else capture_enemy_fortress(game.siege_where); + // TODO: RESPONSE - Massacre! set_active(enemy()); game.state = 'surrender'; game.surrender = find_closest_friendly_unbesieged_fortification(game.siege_where); |