diff --git a/flora-search-aurora.asd b/flora-search-aurora.asd
index 0b48036..16242f4 100644
--- a/flora-search-aurora.asd
+++ b/flora-search-aurora.asd
@@ -18,6 +18,7 @@
(:file "res/clocks")
(:file "res/maps/base.tmx")
(:file "res/maps/casino.tmx")
+ (:file "res/maps/factory.tmx")
(:file "res/maps/flashback-base.tmx")
(:file "res/maps/flashback-casino.tmx")
(:file "res/maps/flashback-school.tmx")
diff --git a/flora-search-aurora.lisp b/flora-search-aurora.lisp
index 621a4d2..37e4ebd 100644
--- a/flora-search-aurora.lisp
+++ b/flora-search-aurora.lisp
@@ -134,6 +134,14 @@ Useful for making barriers the player character refuses to traverse."
map (symbol-value (read-from-string (getf trigger-plist :map)))))))
+(defun avatar-change-trigger (map &optional trigger-plist)
+ "A somewhat weird trigger that changes the player's face or avatar."
+ (setf (getf-entity-data map 'player :talking-face) (getf trigger-plist :talking-face))
+ (setf (getf-entity-data map 'player :face) (getf trigger-plist :face))
+ (setf (getf-entity-data map 'player :avatar) (getf trigger-plist :avatar))
+ (list :parameters (list :map map)))
+
+
(defun entrance-interact (map interactee)
"An interact function that can be used to move the user from one MAP to another,
via the :MAP property in the INTERACTEE’s Tiled entity."
@@ -212,21 +220,6 @@ run the :USE function of the nearest entity, if it has any."
;;; ———————————————————————————————————
;;; The Outside World™
;;; ———————————————————————————————————
-
-(defun factory-window-interact (&optional map interactee-id)
- (make-dialogue-state
- map
- (start-dialogue
- (💬:face 'player "` `" "`o`")
- (💬:mumble 'player :eo "(Al ĉi tiu fenesto tute mankas vitro!)"
- :en "(This window's got no pane at all!)")
- (💬:mumble 'player :eo "(Mi kredeble povus grimpi tien, fakte...)"
- :en "(I could probably fit my way in there, actually...)")
- (💬:mumble 'player :eo "(... sed ĉu vere farindas?)"
- :en "(... but should I?)"
- :face "`o`"))))
-
-
;;; ———————————————————————————————————
;;; Random outdoors NPCs
@@ -818,6 +811,24 @@ avoid triggering this."
:map *flashback-base-map*))
+
+;;; ———————————————————————————————————
+;;; Factory!
+;;; ———————————————————————————————————
+(defun factory-window-interact (&optional map interactee-id)
+ (make-dialogue-state
+ map
+ (start-dialogue
+ (💬:face 'player "` `" "`o`")
+ (💬:mumble 'player :eo "(Al ĉi tiu fenesto tute mankas vitro!)"
+ :en "(This window's got no pane at all!)")
+ (💬:mumble 'player :eo "(Mi kredeble povus grimpi tien, fakte...)"
+ :en "(I could probably fit my way in there, actually...)")
+ (💬:mumble 'player :eo "(... sed ĉu vere farindas?)"
+ :en "(... but should I?)"
+ :face "`o`"))))
+
+
;;; ———————————————————————————————————
;;; Casino!
@@ -1204,6 +1215,7 @@ Initializes the current instance of the game, and such."
(lambda (matrix)
(defparameter *base-map* (🌍:plist->map (metacopy:copy-thing *base-map-plist*)))
(defparameter *casino-map* (🌍:plist->map (metacopy:copy-thing *casino-map-plist*)))
+ (defparameter *factory-map* (🌍:plist->map (metacopy:copy-thing *factory-map-plist*)))
(defparameter *flashback-base-map* (🌍:plist->map (metacopy:copy-thing *flashback-base-map-plist*)))
(defparameter *flashback-casino-map* (🌍:plist->map (metacopy:copy-thing *flashback-casino-map-plist*)))
(defparameter *flashback-school-map* (🌍:plist->map (metacopy:copy-thing *flashback-school-map-plist*)))
diff --git a/res/maps/factory.tmx b/res/maps/factory.tmx
new file mode 100644
index 0000000..7239214
--- /dev/null
+++ b/res/maps/factory.tmx
@@ -0,0 +1,67 @@
+
+
diff --git a/res/maps/outdoors.tmx b/res/maps/outdoors.tmx
index d19d418..94ee265 100644
--- a/res/maps/outdoors.tmx
+++ b/res/maps/outdoors.tmx
@@ -1576,13 +1576,17 @@
@@ -1872,7 +1876,7 @@ DANĜERA LOKO - VENENA MATERIO
-