From 7819067c0b154f5eebb96f7dfe8da7aef89a0e50 Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Wed, 23 Jun 2021 14:26:01 +0200
Subject: [PATCH] Better error message when RA custom conditions fail.

---
 src/js/rulesAssistant.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index 2e19e7e90c7..a0cff070126 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -151,7 +151,12 @@ globalThis.ruleAppliesP = function(rule, slave) {
 			break;
 		case "custom": // user provided JS function
 			// TODO: This should use a cached Function instead of 'eval'ing
-			flag = eval(cond.data)(slave);
+			try {
+				flag = eval(cond.data)(slave);
+			} catch (e) {
+				// Put together a more useful message for the player. Does mean we are losing the stacktrace.
+				throw new Error(`Rule '${rule.name}' custom condition failed: '${e.message}'`);
+			}
 			break;
 	}
 	if (!flag) {
-- 
GitLab