From bc2ecb951a837db673b13def15f2c31f7134415a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 1 Mar 2021 00:08:40 +0100 Subject: WIP --- characters/lorenzo.scm | 50 ++++++++++++++++++++ characters/reaper.scm | 126 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 characters/lorenzo.scm create mode 100644 characters/reaper.scm (limited to 'characters') 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 +;;; +;;; 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 +;;; . + +(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 + #: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 +;;; +;;; 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 +;;; . + +(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 + #: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." + ())))) -- cgit v1.2.3