summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/rules.js b/rules.js
index ebc9d88..e74e74c 100644
--- a/rules.js
+++ b/rules.js
@@ -1073,6 +1073,10 @@ function shuffle_cards() {
// === SUPPLY NETWORK ===
+function ind(d, msg, here, ...extra) {
+ //console.log(new Array(d).fill("-").join("") + msg, here, "("+hex_name[here]+")", extra.join(" "))
+}
+
var supply_defender, supply_defender_sides, supply_friendly, supply_enemy, supply_net, supply_line
var supply_visited = new Array(hexcount).fill(0)
var supply_src = new Array(hexcount).fill(0)
@@ -1108,9 +1112,11 @@ function is_supply_line_blocked(here, next, side) {
function trace_supply_highway(here, d) {
trace_total++
+ ind(d, "> highway", here)
// TODO: hoist to call sites to avoid function call overhead
if (supply_src[here]) {
+ ind(d, "! source highway", here)
return true
}
@@ -1134,12 +1140,15 @@ function trace_supply_highway(here, d) {
let road = side_road[side]
if (road === HIGHWAY) {
if (supply_friendly[next] > 1) {
+ ind(d, "? highway head", next)
if (trace_supply_chain(next, d+1, 0, 3)) {
+ ind(d, "< highway chain", here, next)
supply_line[side] = 1
has_supply = true
}
} else {
if (trace_supply_highway(next, d+1)) {
+ ind(d, "< highway", here, next)
supply_line[side] = 1
has_supply = true
}
@@ -1160,8 +1169,10 @@ function trace_supply_highway(here, d) {
function trace_supply_chain(here, d, n, range) {
trace_total++
+ ind(d, "> chain", here, n, range)
if (supply_src[here]) {
+ ind(d, "! source chain", here)
return true
}
@@ -1184,13 +1195,17 @@ function trace_supply_chain(here, d, n, range) {
let road = side_road[side]
if (road === HIGHWAY) {
+ ind(d, "? chain highway", next)
if (supply_friendly[next] > 1) {
+ ind(d, "? chain highway head", next)
if (trace_supply_chain(next, d+1, 0, 3)) {
+ ind(d, "< highway chain", here, next)
supply_line[side] = 1
has_supply = true
}
} else {
if (trace_supply_highway(next, d+1)) {
+ ind(d, "< chain highway", here, next)
supply_line[side] = 1
has_supply = true
}
@@ -1199,12 +1214,15 @@ function trace_supply_chain(here, d, n, range) {
let next_range = min(range, SUPPLY_RANGE[road])
if (n + 1 <= next_range) {
if (supply_friendly[next] > 1) {
+ ind(d, "? chain head", next)
if (trace_supply_chain(next, d+1, 0, 3)) {
+ ind(d, "< highway chain", here, next)
supply_line[side] = 1
has_supply = true
}
} else {
if (trace_supply_chain(next, d+1, n+1, next_range)) {
+ ind(d, "< chain trail", here, next_range)
supply_line[side] = 1
has_supply = true
}