summaryrefslogtreecommitdiff
path: root/characters
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2021-03-01 00:08:40 +0100
committerRicardo Wurmus <rekado@elephly.net>2021-03-09 11:40:28 +0100
commitbc2ecb951a837db673b13def15f2c31f7134415a (patch)
tree6a27f6aefe9660ec73d6b6747e45a3c1178c530b /characters
WIP
Diffstat (limited to 'characters')
-rw-r--r--characters/lorenzo.scm50
-rw-r--r--characters/reaper.scm126
2 files changed, 176 insertions, 0 deletions
diff --git a/characters/lorenzo.scm b/characters/lorenzo.scm
new file mode 100644
index 0000000..237ce6a
--- /dev/null
+++ b/characters/lorenzo.scm
@@ -0,0 +1,50 @@
+;;; The Inevitable Game
+;;; Copyright © 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; 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
+;;; <http://www.gnu.org/licenses/>.
+
+(define-module (characters lorenzo)
+ #:use-module (chickadee graphics texture)
+ #:use-module (chickadee graphics color)
+ #:use-module (chickadee math rect)
+ #:use-module (chickadee math vector)
+ #:use-module (engine assets)
+ #:use-module (utils)
+ #:use-module (oop goops)
+ #:export (lorenzo))
+
+(define-asset player-atlas
+ (load-tileset "assets/images/lorenzo.png" 32 32))
+
+(define* (lorenzo #:key
+ (start-position (vec2 0 0))
+ (dead? #f))
+ (make <character>
+ #:name 'lorenzo
+ #:position start-position
+ #:atlas player-atlas
+ #:tint (if dead?
+ (make-color 1.0 1.0 1.0 0.0)
+ (make-color 1.0 1.0 1.0 1.0))
+ #:animations '((idle-right . #(24 24 24 24 24 39 39 39 39 39))
+ (idle-left . #(32 32 32 32 32 31 31 31 31 31))
+ (idle-front . #(8 8 8 8 8 0 0 0 0 0))
+ (idle-back . #(16))
+ (left . #(33 3 34 3))
+ (right . #(25 2 26 2))
+ (up . #(17 16 18 16))
+ (down . #(9 8 10 8)))
+ #:current-animation 'idle-front
+ #:frame-duration 130))
diff --git a/characters/reaper.scm b/characters/reaper.scm
new file mode 100644
index 0000000..25ee84f
--- /dev/null
+++ b/characters/reaper.scm
@@ -0,0 +1,126 @@
+;;; The Inevitable Game
+;;; Copyright © 2018, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; 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
+;;; <http://www.gnu.org/licenses/>.
+
+(define-module (characters reaper)
+ #:use-module (chickadee graphics texture)
+ #:use-module (chickadee graphics color)
+ #:use-module (chickadee math rect)
+ #:use-module (chickadee math vector)
+ #:use-module (engine assets)
+ #:use-module (utils)
+ #:use-module (oop goops)
+ #:export (reaper))
+
+(define-asset reaper-atlas
+ (load-tileset "assets/images/reaper.png" 32 32))
+
+(define* (reaper #:key
+ (start-position (vec2 0 0)))
+ (make <character>
+ #:name 'reaper
+ #:position start-position
+ #:atlas reaper-atlas
+ #:animations
+ '((idle . #(12 12 12 13 13 13 5 13 13 13 4 4 4 4 4 4 9 8 8 8 12 12 12 15 15))
+ (pause . #(8 8 8 8 8 8 8 9))
+ (talk . #(12 15 14 11 9 8 10 9 15 14 14 14 8 8 12 12 12))
+ (up . #(7 3 7 0 2 6 2 1)))
+ #:current-animation 'idle
+ #:frame-duration 200
+ #:conversations
+ '((hello
+ "Salutations!"
+ ((who-are-you? "Who are you?")
+ (bye "I have to leave now. Bye!"
+ #:resume
+ (hello "Hi again!"))))
+ (who-are-you?
+ "People have given me too many names to recount.
+Paul Celan called me a master from Germany, but he must have confused
+me with somebody else. Some call me a part of life, but I think that's
+missing the point. Others call me the grim reaper, but do I look grim
+to you?"
+ ((grim-no "No, not at all.")
+ (grim-yes "Well, actually you kinda do...")
+ (grim-bye "I can't answer, I need to go."
+ #:resume
+ (what-do-you-do? "Could you tell me what you are doing here?"))))
+ (grim-bye
+ "Well, I guess that's a 'yes'..."
+ ())
+ (grim-no
+ "Ah, that's a relief!"
+ ((what-do-you-do?
+ "I hope you don't mind me asking: what is it you're
+doing here?")
+ (bye
+ "Well, it was nice meeting you. See you around!"
+ #:resume
+ (what-do-you-do? "Could you tell me what you are doing here?"))))
+ (grim-yes
+ "Hmm, that's very unfortunate. I just can't figure out
+why people have that impression. It's rather depressing."
+ ((its-the-robe "Maybe it's the robe?")
+ (dont-worry "Aww, don't feel bad about it!")
+ (bye "I'm sure you'll be okay. Gotta go!"
+ #:resume
+ (what-do-you-do?
+ "So... what do you do around here?"))))
+ (its-the-robe
+ "I don't see how this comfortable robe could have that
+effect. The fabric is a little coarse, I admit, but it's really
+durable and doesn't chafe on my bones. Excellent quality."
+ ((what-do-you-do?
+ "So... what do you do around here?")
+ (bye "That's really interesting, but I'm afraid I need
+to hurry. Bye!"
+ #:resume
+ (what-do-you-do?
+ "So... what do you do around here?"))))
+ (dont-worry
+ "Yeah, I guess I shouldn't. It just tears me
+down. Luckily, the garden keeps me distracted."
+ ((what-do-you-grow? "Oh, you have a garden? What do you
+grow there?")
+ (bye "That's good. Well, I should go now. Bye!"
+ #:resume
+ (what-do-you-grow?
+ "You mentioned a garden. What do you grow there?"))))
+ (what-do-you-do?
+ "Well, you may have noticed the garden behind the house.
+For the past few eons I have been tending to it."
+ ((eons? "Did you say 'eons'?")
+ (what-do-you-grow? "Oh, that's nice! What do you grow there?")
+ (bye "I see. Unfortunately, I must get going now."
+ #:resume
+ (bye "Sorry, I didn't mean to disturb you."))))
+ (eons?
+ "Oh yes, I have been here long before you appeared and
+I will be here long after you will have rejoined the void. You could
+say that I am the void, occasionally receding just enough for a little
+bit of inconsequential folly before eventually and invariably
+restoring equilibrium."
+ ;; TODO
+ ())
+ (what-do-you-grow?
+ "You know, this and that. I enjoy soul food, and it's
+best when the ingredients are fresh."
+ ())
+ (bye
+ "Farewell! Don't be afraid, for I'm always here for
+you. I'm sure we will meet again sooner than you expect."
+ ()))))