2023-06-28 10:15:23 -05:00
|
|
|
|
;;;; Copyright © 2023, Jaidyn Ann <jadedctrl@posteo.at>
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; This program is free software: you can redistribute it and/or
|
|
|
|
|
;;;; modify it under the terms of the GNU General Public License as
|
|
|
|
|
;;;; published by the Free Software Foundation, either version 3 of
|
|
|
|
|
;;;; the License, or (at your option) any later version.
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; This program is distributed in the hope that it will be useful,
|
|
|
|
|
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;;;; GNU General Public License for more details.
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;;;; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
;;;; This contains package definitions for Flora Serĉ’ Kolora.
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.util
|
|
|
|
|
(:nicknames :fsa.utl :util :…)
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(:use :cl)
|
2023-07-01 12:50:24 -05:00
|
|
|
|
(:export #:linewrap-string #:fit-lines
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:plist=
|
|
|
|
|
#:incf-0
|
|
|
|
|
#:at-least #:at-most
|
2023-07-12 18:29:49 -05:00
|
|
|
|
#:string->symbol
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:system-language #:langcode->keysym #:getf-lang))
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.input
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:nicknames :fsa.imp :input :⌨)
|
|
|
|
|
(:export #:read-char-plist #:read-gamefied-char-plist
|
|
|
|
|
#:normalize-char-plist #:gameify-char-plist
|
|
|
|
|
#:plist-char-p
|
2023-06-29 15:50:15 -05:00
|
|
|
|
:control :meta :shift
|
|
|
|
|
+qwerty-layout+ +dvorak-layout+
|
|
|
|
|
+arrows-game-layout+ +wasd-game-layout+ +ijkl-game-layout+
|
2023-07-02 09:57:32 -05:00
|
|
|
|
:↑ :← :→ :↓ :↰ :↱ :↲ :↳ :🆗 :❎))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.display
|
|
|
|
|
(:nicknames :fsa.d :display :✎)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:make-screen-matrix #:print-screen-matrix #:matrix-delta
|
2023-06-30 13:48:17 -05:00
|
|
|
|
#:render-line #:render-string #:render-string-verbatim #:render-string-partially
|
2023-07-01 12:50:24 -05:00
|
|
|
|
#:render-fill-rectangle
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:hide-cursor #:show-cursor #:clear-screen))
|
|
|
|
|
|
2023-07-02 12:05:29 -05:00
|
|
|
|
(defpackage :flora-search-aurora.menu
|
|
|
|
|
(:nicknames :fsa.men :menu :📋)
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(:use :cl)
|
2023-07-02 20:47:31 -05:00
|
|
|
|
(:export #:menu-state #:menu-state-update #:menu-state-draw #:make-menu-state
|
2023-07-03 11:55:09 -05:00
|
|
|
|
#:selected-menu-item
|
2023-06-30 13:48:17 -05:00
|
|
|
|
:label :selection :selected))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.dialogue
|
|
|
|
|
(:nicknames :fsa.dia :dialogue :💬)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:dialogue-state #:make-dialogue-state
|
|
|
|
|
#:start-dialogue #:face #:say #:mumble #:move
|
2023-06-29 15:50:15 -05:00
|
|
|
|
:normal-face :talking-face))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.inventory
|
|
|
|
|
(:nicknames :fsa.inv :inventory :🎒)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:inventory-state #:make-inventory-state))
|
|
|
|
|
|
2023-06-30 13:48:17 -05:00
|
|
|
|
(defpackage :flora-search-aurora.intermission
|
|
|
|
|
(:nicknames :fsa.int :intermission :🎭)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export :*standard-font* :*small-font*))
|
|
|
|
|
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(defpackage :flora-search-aurora.overworld.util
|
|
|
|
|
(:nicknames :fsa.o.u :overworld.util :🌍.…)
|
|
|
|
|
(:use :cl)
|
|
|
|
|
(:export #:coords->symbol #:symbol->coords
|
2023-06-29 15:50:15 -05:00
|
|
|
|
#:world-coords->screen-coords
|
|
|
|
|
#:world-coords-chunk
|
|
|
|
|
#:map->plist #:plist->map
|
|
|
|
|
#:save-map-to-file))
|
2023-06-28 10:15:23 -05:00
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.overworld
|
|
|
|
|
(:nicknames :fsa.o :overworld :🌍)
|
|
|
|
|
(:use :cl
|
|
|
|
|
:flora-search-aurora.overworld.util)
|
2023-07-02 20:47:31 -05:00
|
|
|
|
(:export #:overworld-state #:overworld-state-draw #:make-overworld-state
|
2023-06-28 10:15:23 -05:00
|
|
|
|
#:merge-maps
|
|
|
|
|
#:world-coords->screen-coords
|
|
|
|
|
#:getf-entity #:getf-entity-data #:removef-entity
|
|
|
|
|
#:aget-item #:getf-act #:getf-know
|
|
|
|
|
#:move-entity-to #:move-entity
|
|
|
|
|
#:plist->map
|
|
|
|
|
:left :right))
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora.engine
|
|
|
|
|
(:nicknames :fsa.eng :engine :⚙)
|
|
|
|
|
(:export #:state-loop #:main)
|
|
|
|
|
(:use :cl))
|
|
|
|
|
|
|
|
|
|
(defpackage :flora-search-aurora
|
|
|
|
|
(:nicknames :fsa :✿)
|
|
|
|
|
(:export #:main
|
2023-06-29 15:50:15 -05:00
|
|
|
|
:player)
|
2023-06-28 10:15:23 -05:00
|
|
|
|
(:use :cl
|
|
|
|
|
:flora-search-aurora.input :flora-search-aurora.display
|
|
|
|
|
:flora-search-aurora.overworld :flora-search-aurora.dialogue
|
2023-07-02 12:05:29 -05:00
|
|
|
|
:flora-search-aurora.menu))
|