summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2024-04-16 17:08:06 +0200
committerTor Andersson <tor@ccxvii.net>2024-04-16 17:13:30 +0200
commitb5df150794ddf8809dd43870aafb54d29b401d8e (patch)
tree1f10384b80ae7074a921e5465fbf7ccb6385c65d /rules.js
parent6b6d4a5349f668df2dd3a53bbf000238a677ac0d (diff)
downloadplantagenet-b5df150794ddf8809dd43870aafb54d29b401d8e.tar.gz
Use new flags to track moves for Rebel Supply Depot and Surprise Landing.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js38
1 files changed, 24 insertions, 14 deletions
diff --git a/rules.js b/rules.js
index 8a0738c..fd770bb 100644
--- a/rules.js
+++ b/rules.js
@@ -3151,6 +3151,8 @@ function goto_command() {
game.flags.surprise_landing = 0
game.flags.first_action = 1
game.flags.first_march_highway = 0
+ game.flags.march_to_port = 0
+ game.flags.sail_to_port = 0
resume_command()
}
@@ -3685,6 +3687,11 @@ states.sail = {
function do_sail(to) {
log(`Sailed to %${to}${format_group_move()}.`)
+ game.flags.march_to_port = 0
+ if (is_seaport(to))
+ game.flags.sail_to_port = 1
+ else
+ game.flags.sail_to_port = 0
for (let lord of game.group) {
set_lord_locale(lord, to)
@@ -3701,7 +3708,6 @@ function do_sail(to) {
if (has_unbesieged_enemy_lord(to))
goto_confirm_approach_sail()
else {
- game.flags.surprise_landing = 1
resume_command()
}
}
@@ -4348,6 +4354,13 @@ function end_march() {
return
}
+ let here = get_lord_locale(game.command)
+ if (is_seaport(here))
+ game.flags.march_to_port = 1
+ else
+ game.flags.march_to_port = 0
+ game.flags.sail_to_port = 0
+
game.march = 0
resume_command()
}
@@ -7971,6 +7984,8 @@ exports.setup = function (seed, scenario, options) {
bloody:0,
london_for_york:0,
surprise_landing:0,
+ sail_to_port: 0,
+ march_to_port: 0,
parliament_votes:0,
succession:0,
jack_cade:0,
@@ -11341,15 +11356,8 @@ states.aspielles = {
// === HELD EVENT: REBEL SUPPLY DEPOT ===
function can_play_rebel_supply_depot() {
- if (game.active === YORK)
- return false
- if (game.group) {
- for (let lord of game.group) {
- if (get_lord_moved(lord) && is_seaport(get_lord_locale(game.command))) {
- return true
- }
- }
- }
+ if (game.flags.sail_to_port || game.flags.march_to_port)
+ return true
return false
}
@@ -11396,13 +11404,15 @@ function end_rebel_supply_depot() {
function can_play_surprise_landing() {
let here = get_lord_locale(game.command)
- if (game.flags.surprise_landing === 0 || !is_seaport(here) || here === LOC_CALAIS || here === LOC_PEMBROKE || here === LOC_HARLECH || here === LANCASTER || is_sea(here))
- return false
- return true
+ if (game.flags.sail_to_port) {
+ if (here !== LOC_CALAIS && here !== LOC_PEMBROKE && here !== LOC_HARLECH && here !== LOC_LANCASTER)
+ return true
+ }
+ return false
}
function goto_play_surprise_landing() {
- push_state("surprise_landing")
+ game.state = "surprise_landing"
game.flags.surprise_landing = 2
game.who = NOBODY
}