summaryrefslogtreecommitdiff
path: root/src/simulation/validity.js
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-11-11 13:46:59 -0600
committersanine <sanine.not@pm.me>2023-11-11 13:46:59 -0600
commit7a3fc898def0283ed6655b5c45a5f413638272a7 (patch)
tree5427b61d327143ea9c305f2a53dd68435c66b3bc /src/simulation/validity.js
parent50f27be0cd94744a7f217ecfae2f913803ae6c44 (diff)
prevent agents from moving into immutable tiles
Diffstat (limited to 'src/simulation/validity.js')
-rw-r--r--src/simulation/validity.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/simulation/validity.js b/src/simulation/validity.js
new file mode 100644
index 0000000..de4acd1
--- /dev/null
+++ b/src/simulation/validity.js
@@ -0,0 +1,14 @@
+export const validity = [
+ // prevent agents from moving onto immutables
+ (world, proposal) => (proposal.agent_changes || []).reduce(
+ (acc, change) => {
+ const {x, y} = change;
+ if (x !== undefined && y !== undefined && world.lattice[y][x].type === 'immutable') {
+ return false;
+ } else {
+ return acc;
+ }
+ },
+ true,
+ ),
+];