Subject: [PATCH v3 7/7] gnu: Add tuxemon.

From: Adam Faiz <[email-masked]>
Date: Mon, 18 Dec 2023 23:21:03 +0800

>From e73f2b26c294c32f791774a8f6f44385f650a96f Mon Sep 17 00:00:00 2001
Message-ID: <e[email-masked]>
In-Reply-To: <9[email-masked]>
References: <9[email-masked]>
From: AwesomeAdam54321 <[email-masked]>
Date: Mon, 13 Nov 2023 11:53:06 +0800
Subject: [PATCH v3 7/7] gnu: Add tuxemon.

* gnu/packages/games.scm (tuxemon): New variable.
---
 gnu/packages/games.scm | 64 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 9936f96e6b..66739d7a6b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -79,6 +79,7 @@
 ;;; Copyright © 2023 Florian Pelz <[email-masked]>
 ;;; Copyright © 2023 Ivana Drazovic <[email-masked]>
 ;;; Copyright © 2023 gemmaro <[email-masked]>
+;;; Copyright © 2023 Adam Faiz <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5922,6 +5923,69 @@ (define-public chromium-bsu
     ;; by the Expat License.
     (license (list license:clarified-artistic license:expat))))
 
+(define-public tuxemon
+  (let ((commit "068b9c44345a86e83b35383a2e372629214f51f3")
+        (revision "0"))
+  (package
+    (name "tuxemon")
+    (version (git-version "0.4.34" revision commit))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/Tuxemon/Tuxemon")
+              (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1nsq26zx355w0sr2rc74kv2gnllqgki9fc5rgdiqcgiqsksbrhfy"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            (substitute* "setup.py"
+              (("# build_translations..") "build_translations()")
+              (("tuxemon.core.locale") "tuxemon.locale"))
+            (substitute* "requirements.txt"
+              (("pygame-ce") "pygame") ; The pygame-ce fork isn't packaged in Guix
+              (("pygame-menu-ce") "pygame-menu")
+              (("==") ">="))
+            (substitute* "tuxemon/constants/paths.py"
+              (("LIBDIR, ....,") "LIBDIR,"))))))
+    (build-system pyproject-build-system)
+    (propagated-inputs
+     (list python-babel
+           python-cbor
+           python-neteria
+           python-natsort
+           python-pygame
+           python-pyscroll
+           python-pytmx
+           python-pillow
+           python-prompt-toolkit
+           python-pydantic
+           python-pygame-menu
+           python-pyyaml
+           python-requests))
+    (arguments
+     (list #:tests? #f ; Some tests are outdated because of API changes
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-mods
+                 (lambda _
+                   (let ((site (string-append #$output "/lib/python"
+                                              #$(version-major+minor
+                                                 (package-version python))
+                                              "/site-packages/tuxemon/mods")))
+                     (mkdir-p site)
+                     (copy-recursively "mods" site)))))))
+    (home-page "https://www.tuxemon.org/")
+    (synopsis "Monster-fighting RPG")
+    (description
+     "Tuxemon is a monster-fighting RPG.
+In the spirit of other clones like SuperTux and SuperTuxKart,
+Tuxemon aims to create a game with its own unique style
+that sets it apart from other monster fighting RPGs.")
+    (license license:gpl3+))))
+
 (define-public tuxpaint
   (package
     (name "tuxpaint")
-- 
2.41.0