From ad863219484ad675d138e0863880bf798060b493 Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor@ccxvii.net>
Date: Sun, 19 Mar 2023 21:01:58 +0100
Subject: Save/restore current faction for some events.

---
 events.txt |  3 ++-
 rules.js   | 12 +++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/events.txt b/events.txt
index 1e19607..03230a2 100644
--- a/events.txt
+++ b/events.txt
@@ -426,9 +426,10 @@ SHADED 35
 
 EVENT 36
 	eligible (game.current)
+	save_current
 	current GOVT
 	place_farc_zone
-	# TODO: current (executing_faction())
+	restore_current
 	prompt Shift adjacent spaces toward Active Support.
 	space 2 is_pop(s) && !is_active_support(s) && is_adjacent(game.vm.farc_zone, s)
 		shift_support
diff --git a/rules.js b/rules.js
index 13463f9..4783d85 100644
--- a/rules.js
+++ b/rules.js
@@ -5609,10 +5609,20 @@ function vm_current() {
 		vm_next()
 }
 
+function vm_save_current() {
+	game.vm.faction = game.current
+	vm_next()
+}
+
+function vm_restore_current() {
+	game.current = game.vm.faction
+	vm_next()
+}
+
 states.vm_current = {
 	prompt() {
 		let list = vm_operand(1)
-		event_prompt("Select Faction to execute Event.")
+		event_prompt("Select Faction.")
 		if (list === GOVT || (Array.isArray(list) && list.includes(GOVT)))
 			view.actions.govt = 1
 		if (list === FARC || (Array.isArray(list) && list.includes(FARC)))
-- 
cgit v1.2.3