summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js23
1 files changed, 14 insertions, 9 deletions
diff --git a/rules.js b/rules.js
index 30c59f9..9dd728d 100644
--- a/rules.js
+++ b/rules.js
@@ -2726,17 +2726,22 @@ function lose_hero_points(faction, value) {
logi(`${get_player(faction)} -${points_lost} HP`);
}
function get_fronts_closest_to(target) {
- const values = Object.values(game.fronts).reduce((accrued, current) => {
- if (current.status === null) {
- accrued.push(current.value);
+ let minValue = 100;
+ let maxValue = -100;
+ for (let front of game.fronts) {
+ if (front.status === null) {
+ minValue = Math.min(minValue, front.value);
+ maxValue = Math.max(maxValue, front.value);
}
- return accrued;
- }, []);
- if (values.length === 0) {
- return [];
}
- const targetValue = target === data_1.CLOSEST_TO_DEFEAT ? Math.min(...values) : Math.max(...values);
- return game.fronts.findIndex((front) => front.value === targetValue);
+ if (minValue === 100)
+ return [];
+ const targetValue = target === data_1.CLOSEST_TO_DEFEAT ? minValue : maxValue;
+ const closest = [];
+ for (let i = 0; i < game.fronts.length; ++i)
+ if (game.fronts[i].value === targetValue)
+ closest.push(i);
+ return closest;
}
function log_br() {
if (game.log.length > 0 && game.log[game.log.length - 1] !== '')