From f91e56672798e270696439c7e8d5c631a9f534d9 Mon Sep 17 00:00:00 2001
From: Jaidyn Ann <10477760+JadedCtrl@users.noreply.github.com>
Date: Fri, 14 Jul 2023 00:49:34 -0500
Subject: [PATCH] Begin military-base map
---
flora-search-aurora.asd | 3 +-
flora-search-aurora.lisp | 31 ++++++++++--
res/maps/base.tmx | 104 +++++++++++++++++++++++++++++++++++++++
res/maps/outdoors.tmx | 16 +++++-
res/maps/tmx→lisp.lisp | 2 +-
5 files changed, 148 insertions(+), 8 deletions(-)
create mode 100644 res/maps/base.tmx
diff --git a/flora-search-aurora.asd b/flora-search-aurora.asd
index 13d391a..13eef1f 100644
--- a/flora-search-aurora.asd
+++ b/flora-search-aurora.asd
@@ -15,8 +15,9 @@
(:file "dialogue")
(:file "engine")
(:file "res/clocks")
+ (:file "res/maps/base.tmx")
(:file "res/maps/casino.tmx")
- (:file "res/maps/outdoors.tmx")
(:file "res/maps/flashback-casino.tmx")
(:file "res/maps/flashback-school.tmx")
+ (:file "res/maps/outdoors.tmx")
(:file "flora-search-aurora")))
diff --git a/flora-search-aurora.lisp b/flora-search-aurora.lisp
index 1f9862a..c13036e 100644
--- a/flora-search-aurora.lisp
+++ b/flora-search-aurora.lisp
@@ -130,7 +130,28 @@ Useful for making barriers the player character refuses to traverse."
"A trigger that can be used to move the user from one MAP to another, via the
:MAP property in a trigger’s Tiled entity."
(list :parameters
- (list :map (🌍:merge-maps map (symbol-value (read-from-string (getf trigger-plist :map)))))))
+ (list :map (🌍:merge-maps
+ map (symbol-value (read-from-string (getf trigger-plist :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."
+ (let ((new-parameters
+ (list :map
+ (merge-maps
+ map (symbol-value (read-from-string (getf-entity-data map interactee :map)))))))
+ (if (getf-entity-data map interactee :desc-en)
+ (make-dialogue-state
+ map
+ (apply
+ #'start-dialogue
+ (append
+ (loop for en-line in (str:lines (getf-entity-data map interactee :desc-en))
+ for eo-line in (str:lines (getf-entity-data map interactee :desc-eo))
+ collect (💬:mumble 'player :en en-line :eo eo-line))
+ `(((:parameters ,new-parameters))))))
+ `(:parameters ,new-parameters))))
(defun item-refusal-lines (string item)
@@ -268,7 +289,7 @@ run the :USE function of the nearest entity, if it has any."
(let ((sasha 'childhood-friend))
(case (getf-act map :sasha-greetings)
(0
- (💬:start-dialogue
+ (start-dialogue
(💬:mumble sasha :en "...")
(💬:say 'player :eo "Kielas apud la mar'?"
:en "How's the view?")
@@ -914,10 +935,11 @@ avoid triggering this."
Initializes the current instance of the game, and such."
;; We’ve gotta make fresh copies of the maps, in case the user’s restarted the game.
;; metacopy, I love you <3 <3 <3
- (defparameter *outdoors-map* (🌍:plist->map (metacopy:copy-thing *outdoors-map-plist*)))
+ (defparameter *base-map* (🌍:plist->map (metacopy:copy-thing *base-map-plist*)))
(defparameter *casino-map* (🌍:plist->map (metacopy:copy-thing *casino-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*)))
+ (defparameter *outdoors-map* (🌍:plist->map (metacopy:copy-thing *outdoors-map-plist*)))
(make-flashback-function (alexandria:random-elt (flashbacks))))
@@ -950,7 +972,8 @@ engine.lisp, that is. Cheers! :D"
(⚙:main (list (📋:make-menu-function (main-menu)))))
+;; *Knock-knock*
;; — Who’s there?
;; — Yo momma!
;; — “Yo momma” who?
-;; — Yo momma’s a sweet lady, and I’d like to take her out for some tea!
+;; — Yo momma’s a sweet lady, and I’d like to take her out for coffee sometime!
diff --git a/res/maps/base.tmx b/res/maps/base.tmx
new file mode 100644
index 0000000..7f2ddfe
--- /dev/null
+++ b/res/maps/base.tmx
@@ -0,0 +1,104 @@
+
+
diff --git a/res/maps/outdoors.tmx b/res/maps/outdoors.tmx
index e4ffdca..d19d418 100644
--- a/res/maps/outdoors.tmx
+++ b/res/maps/outdoors.tmx
@@ -1,5 +1,5 @@
-