summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2020-06-12 11:22:53 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2020-06-21 23:14:16 +0200
commit6d7ed7c05019fac74ff8b63f59f298ffb51cd40c (patch)
tree8f25b4e3d975843f4d0c7d6672cecc8779daefb6 /gnu/packages/games.scm
parent3f3c61b8d558f8b35d028df7effa23fd7b67c914 (diff)
gnu: Add seahorse-adventures.
* gnu/packages/games.scm (seahorse-adventures): New variable.
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm112
1 files changed, 112 insertions, 0 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 76ddbabc2e..25ee733dc4 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1774,6 +1774,118 @@ can be explored and changed freely.")
license:gpl3+
license:silofl1.1))))
+(define-public seahorse-adventures
+ (package
+ (name "seahorse-adventures")
+ (version "1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dulsi/seahorse-adventures.git")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rnvk06npaqcpjz5z6xcmssz61i32s422lydp49vrnf3j2g4yimd"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)))
+ ;; Remove non-free (non-commercial) font.
+ (snippet
+ `(begin
+ (for-each delete-file (find-files "data/fonts" "."))
+ #t))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ;no test
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build) ;pure Python
+ (replace 'install ;no install script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share"))
+ (applications (string-append share "/applications"))
+ (data (string-append share "/seahorse-adventures")))
+ ;; Install data.
+ (for-each (lambda (f)
+ (chmod f #o555)
+ (install-file f data))
+ '("leveledit.py" "run_game.py" "tileedit.py"))
+ (for-each (lambda (dir)
+ (let ((target (string-append data "/" dir)))
+ (mkdir-p target)
+ (copy-recursively dir target)))
+ '("data" "lib"))
+ ;; Create executable.
+ (mkdir-p bin)
+ (let ((executable (string-append bin "/seahorse-adventures")))
+ (call-with-output-file executable
+ (lambda (p)
+ (format p
+ "#!~a~@
+ export PYTHONPATH=~a:~a~@
+ exec -a \"~a\" ~a \"$@\"~%"
+ (which "bash") data (getenv "PYTHONPATH")
+ (which "python3")
+ (string-append data "/run_game.py"))))
+ (chmod executable #o555))
+ ;; Add desktop file.
+ (mkdir-p applications)
+ (make-desktop-entry-file
+ (string-append applications "/seahorse-adventures.desktop")
+ #:name "Seahorse Adventures"
+ #:comment
+ '((#f "Help Barbie the seahorse float on bubbles to the moon"))
+ #:exec ,name
+ #:icon ,name
+ #:categories '("Game" "ActionGame")
+ #:keywords '("game" "retro" "platform"))
+ ;; Add icons.
+ (for-each
+ (lambda (size)
+ (let ((dir (string-append share "/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p dir)
+ (copy-file
+ (string-append "icon" size ".png")
+ (string-append dir "/searhorse-adventures.png"))))
+ '("32" "64" "128")))
+ #t))
+ (add-after 'install 'unbundle-fonts
+ ;; Unbundle Bitstream Vera font and replace deleted one.
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (data (string-append out "/share/seahorse-adventures"))
+ (vera (string-append (assoc-ref inputs "font-bitstream-vera")
+ "/share/fonts/truetype/Vera.ttf")))
+ (let ((themes-dir (string-append data "/data/themes/")))
+ (for-each
+ (lambda (theme)
+ (let ((target (string-append themes-dir theme "/Vera.ttf")))
+ (delete-file target)
+ (symlink vera target)))
+ '("default" "gray")))
+ (symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
+ (substitute* (string-append data "/lib/main.py")
+ (("f_scale = 0.35") "f_scale = 0.47")))
+ #t)))))
+ (inputs
+ `(("font-bitstream-vera" ,font-bitstream-vera)
+ ("python-pygame" ,python-pygame)))
+ (home-page "http://www.imitationpickles.org/barbie/")
+ (synopsis "Help Barbie the seahorse float on bubbles to the moon")
+ (description
+ "Barbie Seahorse Adventures is a retro style platform arcade game.
+You are Barbie the seahorse who travels through the jungle, up to the
+volcano until you float on bubbles to the moon. On the way to your
+final destination you will encounter various enemies, servants of the
+evil overlord who has stolen the galaxy crystal. Avoid getting hit
+and defeat them with your bubbles!")
+ ;; GPL2+ is for code, CC0 is for art.
+ (license (list license:gpl2+ license:cc0))))
+
(define-public superstarfighter
(package
(name "superstarfighter")