From a99e4a27e0e4c82611ef99c122229fbbba17ba7d Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 15:03:43 +0100 Subject: [PATCH 01/20] Begin Sphinx documentation --- .gitignore | 3 +++ docs/Makefile | 20 +++++++++++++++ docs/conf.py | 59 +++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 20 +++++++++++++++ docs/requirements.txt | 1 + 5 files changed, 103 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/requirements.txt diff --git a/.gitignore b/.gitignore index 53db978..f30aa49 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,6 @@ settings.json # Don't commit game save save.json + +# Don't commit docs output +docs/_build diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..bcd87db --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,59 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'Squirrel Battle' +copyright = "2020" +author = "Yohann D'ANELLO, Mathilde DEPRÈS, Nicolas MARGULIES, Charles PEYRAT" + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'fr' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..2c73f2e --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +.. Squirrel Battle documentation master file, created by + sphinx-quickstart on Thu Nov 19 15:00:26 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Squirrel Battle's documentation! +=========================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..6966869 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +sphinx From f83e712948e23d25f369a745d53bdbcf11c059cc Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 15:21:10 +0100 Subject: [PATCH 02/20] Try to have an index page --- docs/index.rst | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 2c73f2e..eb45600 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,9 +1,4 @@ -.. Squirrel Battle documentation master file, created by - sphinx-quickstart on Thu Nov 19 15:00:26 2020. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to Squirrel Battle's documentation! +Bienvenue dans la documentation de Squirrel Battle ! =========================================== .. toctree:: From a784c2590132434faa5893ead877381279782adc Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 15:36:44 +0100 Subject: [PATCH 03/20] Add Emoji troubleshooting page --- docs/index.rst | 2 +- docs/troubleshooting.rst | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 docs/troubleshooting.rst diff --git a/docs/index.rst b/docs/index.rst index eb45600..cc0d0f7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,5 +1,5 @@ Bienvenue dans la documentation de Squirrel Battle ! -=========================================== +==================================================== .. toctree:: :maxdepth: 2 diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst new file mode 100644 index 0000000..0afb0e5 --- /dev/null +++ b/docs/troubleshooting.rst @@ -0,0 +1,59 @@ +#################### +Résolution d'erreurs +#################### + +====== +Émojis +====== + +Le jeu s'exécutant en terminal, il est courant d'obtenir des problèmes d'affichage. +Sous Windows, les émojis s'affichent normalement correctement. Il suffit en +général d'installer les bons paquets de police. + +--------------- +Sous Arch Linux +--------------- + +Il est recommandé d'utiliser le terminal `xfce4-terminal`. Il suffit d'installer +le paquets de polices : + +.. code:: bash + + sudo pacman -Sy noto-fonts-emoji + +Le jeu doit ensuite se lancer normalement sans action supplémentaire. + +------------------ +Sous Ubuntu/Debian +------------------ + +À nouveau, le terminal `xfce4-terminal` est recommandé. Le paquet +`fonts-noto-color-emoji`. Toutefois, le rythme de mise à jour de Debian étant +lent, le paquet le plus récent ne contient pas tous les émojis. Sur Debian, +il faudra donc installer le paquet le plus récent, ce qui fonctionne sans +dépendance supplémentaire : + + +.. code:: bash + + wget http://ftp.fr.debian.org/debian/pool/main/f/fonts-noto-color-emoji/fonts-noto-color-emoji_0~20200916-1_all.deb + dpkg -i fonts-noto-color-emoji_0~20200916-1_all.deb + rm fonts-noto-color-emoji_0~20200916-1_all.deb + +Il reste le problème de l'écureuil. Sous Ubuntu et Debian, le caractère écureuil +existe déjà, mais ne s'affiche pas proprement. On peut appliquer un patch qui +permet d'afficher les émojis correctement dans son terminal. Pour cela, il +suffit de faire : + +.. code:: bash + + ln -s $PWD/fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf + ln -s /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf /etc/fonts/conf.d/75-fix-squirrel-emojis.conf + +Après redémarrage du terminal, l'écureuil devrait s'afficher correctement. + +Pour supprimer le patch : + +.. code:: bash + + rm /etc/fonts/conf.d/75-fix-squirrel-emojis.conf From 18fad64b1ac07bdf2e21869471591df97dbe063a Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 15:56:22 +0100 Subject: [PATCH 04/20] Use ReadTheDocs doc theme --- docs/conf.py | 3 ++- docs/requirements.txt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index bcd87db..7be9f27 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -28,6 +28,7 @@ author = "Yohann D'ANELLO, Mathilde DEPRÈS, Nicolas MARGULIES, Charles PEYRAT" # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + "sphinx_rtd_theme", ] # Add any paths that contain templates here, relative to this directory. @@ -51,7 +52,7 @@ exclude_patterns = ['_build'] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/requirements.txt b/docs/requirements.txt index 6966869..cbf1e36 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1,2 @@ sphinx +sphinx-rtd-theme From 75fd97c028feb87f80bad92824c7bf6babc23c5b Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 16:15:12 +0100 Subject: [PATCH 05/20] Add table of content tree --- docs/index.rst | 11 ++--------- docs/troubleshooting.rst | 12 ++++-------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index cc0d0f7..b3d7625 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,13 +3,6 @@ Bienvenue dans la documentation de Squirrel Battle ! .. toctree:: :maxdepth: 2 - :caption: Contents: + :caption: Squirrel Battle - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` + troubleshooting diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 0afb0e5..3f401f8 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -1,18 +1,15 @@ -#################### Résolution d'erreurs -#################### +==================== -====== Émojis -====== +------ Le jeu s'exécutant en terminal, il est courant d'obtenir des problèmes d'affichage. Sous Windows, les émojis s'affichent normalement correctement. Il suffit en général d'installer les bons paquets de police. ---------------- Sous Arch Linux ---------------- +^^^^^^^^^^^^^^^ Il est recommandé d'utiliser le terminal `xfce4-terminal`. Il suffit d'installer le paquets de polices : @@ -23,9 +20,8 @@ le paquets de polices : Le jeu doit ensuite se lancer normalement sans action supplémentaire. ------------------- Sous Ubuntu/Debian ------------------- +^^^^^^^^^^^^^^^^^^ À nouveau, le terminal `xfce4-terminal` est recommandé. Le paquet `fonts-noto-color-emoji`. Toutefois, le rythme de mise à jour de Debian étant From 1ec24a1fa877f0c310746e2d325243e9c1d97241 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 17:46:24 +0100 Subject: [PATCH 06/20] Include emoji fix in Debian package --- debian/postinst | 3 +++ debian/prerm | 3 +++ 2 files changed, 6 insertions(+) create mode 100755 debian/postinst create mode 100755 debian/prerm diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..b026ba1 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,3 @@ +#!/bin/sh +cp fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf +ln -s /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf /etc/fonts/conf.d/75-fix-squirrel-emojis.conf diff --git a/debian/prerm b/debian/prerm new file mode 100755 index 0000000..2dc2425 --- /dev/null +++ b/debian/prerm @@ -0,0 +1,3 @@ +#!/bin/sh +rm /etc/fonts/conf.d/75-fix-squirrel-emojis.conf +rm /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf From 2e95edab83aa0505410189692cbeda924d262e22 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 19:00:23 +0100 Subject: [PATCH 07/20] Fix emoji fix for Debian-based systems installation --- .../75-fix-squirrel-emojis.conf | 0 debian/changelog | 2 +- debian/control | 4 ++-- debian/install | 2 ++ debian/postinst | 3 --- debian/prerm | 3 --- 6 files changed, 5 insertions(+), 9 deletions(-) rename fix-squirrel-emojis.conf => debian/75-fix-squirrel-emojis.conf (100%) create mode 100644 debian/install delete mode 100755 debian/postinst delete mode 100755 debian/prerm diff --git a/fix-squirrel-emojis.conf b/debian/75-fix-squirrel-emojis.conf similarity index 100% rename from fix-squirrel-emojis.conf rename to debian/75-fix-squirrel-emojis.conf diff --git a/debian/changelog b/debian/changelog index 7686c57..d1afdad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -python3-squirrelbattle (3.14) beta; urgency=low +python3-squirrel-battle (3.14) beta; urgency=low * Initial release. diff --git a/debian/control b/debian/control index cbd3846..e36e424 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: python3-squirrelbattle +Source: python3-squirrel-battle Section: devel Priority: optional Maintainer: ynerant @@ -8,7 +8,7 @@ Standards-Version: 4.1.4 Homepage: https://gitlab.crans.org/ynerant/squirrel-battle X-Python3-Version: >= 3.6 -Package: python3-squirrelbattle +Package: python3-squirrel-battle Architecture: all Multi-Arch: foreign Depends: fonts-noto-color-emoji, ${python3:Depends} diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..628e923 --- /dev/null +++ b/debian/install @@ -0,0 +1,2 @@ +debian/75-fix-squirrel-emojis.conf etc/fonts/conf.avail +debian/75-fix-squirrel-emojis.conf etc/fonts/conf.d \ No newline at end of file diff --git a/debian/postinst b/debian/postinst deleted file mode 100755 index b026ba1..0000000 --- a/debian/postinst +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cp fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf -ln -s /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf /etc/fonts/conf.d/75-fix-squirrel-emojis.conf diff --git a/debian/prerm b/debian/prerm deleted file mode 100755 index 2dc2425..0000000 --- a/debian/prerm +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm /etc/fonts/conf.d/75-fix-squirrel-emojis.conf -rm /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf From a8e784ef4efecae8757d83822e16c4e72f5bec37 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 19:29:55 +0100 Subject: [PATCH 08/20] Declare package data in setup.py --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index f2c27bc..dfb15ef 100644 --- a/setup.py +++ b/setup.py @@ -32,8 +32,7 @@ setup( ], python_requires='>=3.6', include_package_data=True, - data_files=["squirrelbattle/assets/" + file - for file in os.listdir("squirrelbattle/assets")], + package_data={"squirrelbattle": ["assets/*"]}, entry_points={ "console_scripts": [ "squirrel-battle = squirrelbattle.bootstrap:Bootstrap.run_game", From c6453174e584f51bea5311755db51933c4cc5baf Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 19:50:01 +0100 Subject: [PATCH 09/20] Installation documentation --- docs/index.rst | 11 ++++- docs/install-dev.rst | 31 ++++++++++++++ docs/install.rst | 90 ++++++++++++++++++++++++++++++++++++++++ docs/troubleshooting.rst | 5 ++- 4 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 docs/install-dev.rst create mode 100644 docs/install.rst diff --git a/docs/index.rst b/docs/index.rst index b3d7625..5f45fde 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,7 +2,14 @@ Bienvenue dans la documentation de Squirrel Battle ! ==================================================== .. toctree:: - :maxdepth: 2 - :caption: Squirrel Battle + :maxdepth: 3 + :caption: Développer + install-dev + +.. toctree:: + :maxdepth: 3 + :caption: Jouer + + install troubleshooting diff --git a/docs/install-dev.rst b/docs/install-dev.rst new file mode 100644 index 0000000..db611e0 --- /dev/null +++ b/docs/install-dev.rst @@ -0,0 +1,31 @@ +Installation d'un environnement de développement +================================================ + +Il est toujours préférable de travailler dans un environnement Python isolé du reste de son instalation. + +1. **Installation des dépendances de la distribution.** + Vous devez déjà installer Python et le module qui permet de créer des environnements virtuels. + On donne ci-dessous l'exemple pour une distribution basée sur Debian, mais vous pouvez facilement adapter pour ArchLinux ou autre. + +.. code:: bash + + $ sudo apt update + $ sudo apt install --no-install-recommends -y python3-setuptools python3-venv python3-dev git + +2. **Clonage du dépot** là où vous voulez : + +.. code:: bash + + $ git clone git@gitlab.crans.org:ynerant/squirrel-battle.git && cd squirrel-battle + +3. **Création d'un environment de travail Python décorrélé du système.** + On n'utilise pas `--system-site-packages` ici pour ne pas avoir des clashs de versions de modules avec le système. + +.. code:: bash + + $ python3 -m venv env + $ source env/bin/activate # entrer dans l'environnement + (env)$ pip3 install -r requirements.txt + (env)$ deactivate # sortir de l'environnement + +Le lancement du jeu se fait en lançant la commande ``python3 main.py``. \ No newline at end of file diff --git a/docs/install.rst b/docs/install.rst new file mode 100644 index 0000000..0b2e7ff --- /dev/null +++ b/docs/install.rst @@ -0,0 +1,90 @@ +Installation client +=================== + +Installation +------------ + +Différents paquets sont déployés, dans PyPI pour tout système utilisant Python, +un paquet Debian et un paquet Arch Linux. + +Depuis PIP +~~~~~~~~~~ + +.. _PyPI: https://pypi.org/project/squirrel-battle/ + +Le projet `Squirrel Battle` est déployé dans PyPI_. Il suffit d'installer +Squirrel Battle en exécutant : + +.. code:: bash + + pip install --user squirrel-battle + +Les mises à jour s'obtiennent également via PIP en exécutant : + +.. code:: bash + + pip install --user --upgrade squirrel-battle + +Le jeu peut se lancer ensuite en exécutant la commande ``squirrel-battle``. + +Toutefois, le paquet PyPI n'inclut pas les polices d'émojis. Il est recommandé +d'installer des polices telles que ``noto-fonts-emoji`` afin de prendre en charge +les émojis dans votre terminal. + + +Sur Arch Linux +~~~~~~~~~~~~~~ + +.. _AUR: https://aur.archlinux.org/ +.. _python-squirrel-battle: https://aur.archlinux.org/packages/python-squirrel-battle/ +.. _python-squirrel-battle-git: https://aur.archlinux.org/packages/python-squirrel-battle-git/ +.. _yay: https://aur.archlinux.org/packages/yay/ + +Deux paquets sont publiés dans l'AUR_ (Arch User Repository) : + +- python-squirrel-battle_ +- python-squirrel-battle-git_ + +Le premier paquet est mis à jour à chaque nouvelle version déployée, le second +est utile pour des fins de développement et est en permanence à jour +avec la branche ``master`` du Git. + +Les deux ne sont pas présents dans les dépôts officiels de Arch Linux, mais vous +pouvez les récupérer avec un outil tel que yay_. + +Les paquets incluent la dépendance ``noto-fonts-emoji``, qui permet d'afficher +les émojis dans le terminal. + +Le jeu peut être ensuite lancé via la commande ``squirrel-battle``. + + +Sur Ubuntu/Debian +^^^^^^^^^^^^^^^^^ + +.. _paquet: https://gitlab.crans.org/ynerant/squirrel-battle/-/jobs/artifacts/master/raw/build/python3-squirrelbattle_3.14_all.deb?job=build-deb + +Un paquet_ est généré par l'intégration continue de Gitlab à chaque commit. +Ils sont également attachés à chaque nouvelle release. + +Il dépend du paquet ``fonts-noto-color-emoji``, permettant d'afficher les émojis +dans le terminal. Il peut être installé via APT normalement sur une distribution +récente, toutefois sur les versions les plus vieilles, incluant Debian Buster, +certains émojis n'apparaissent pas. Il est essentiel de maintenir ce paquet à +jour. Pour installer manuellement la dernière version de ce paquet, +il suffit d'exécuter : + +.. code:: bash + + wget http://ftp.fr.debian.org/debian/pool/main/f/fonts-noto-color-emoji/fonts-noto-color-emoji_0~20200916-1_all.deb + dpkg -i fonts-noto-color-emoji_0~20200916-1_all.deb + rm fonts-noto-color-emoji_0~20200916-1_all.deb + +Pour installer ce paquet, il suffit de le télécharger et d'appeler ``dpkg`` : + +.. code:: bash + + dpkg -i python3-squirrelbattle_3.14_all.deb + +Ce paquet inclut un patch pour afficher les émojis écureuil correctement. + +Après cela, le jeu peut être lancé grâce à la commande ``squirrel-battle``. diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 3f401f8..8a26c19 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -29,7 +29,6 @@ lent, le paquet le plus récent ne contient pas tous les émojis. Sur Debian, il faudra donc installer le paquet le plus récent, ce qui fonctionne sans dépendance supplémentaire : - .. code:: bash wget http://ftp.fr.debian.org/debian/pool/main/f/fonts-noto-color-emoji/fonts-noto-color-emoji_0~20200916-1_all.deb @@ -43,7 +42,7 @@ suffit de faire : .. code:: bash - ln -s $PWD/fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf + ln -s $PWD/debian/75-fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf ln -s /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf /etc/fonts/conf.d/75-fix-squirrel-emojis.conf Après redémarrage du terminal, l'écureuil devrait s'afficher correctement. @@ -53,3 +52,5 @@ Pour supprimer le patch : .. code:: bash rm /etc/fonts/conf.d/75-fix-squirrel-emojis.conf + +À noter que ce patch est inclus dans le paquet Debian. From e4b8cc0654f431094b459757ae615d163a6e18ad Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 19:52:24 +0100 Subject: [PATCH 10/20] Fix section heading --- docs/install.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install.rst b/docs/install.rst index 0b2e7ff..d73b5a9 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -59,7 +59,7 @@ Le jeu peut être ensuite lancé via la commande ``squirrel-battle``. Sur Ubuntu/Debian -^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~ .. _paquet: https://gitlab.crans.org/ynerant/squirrel-battle/-/jobs/artifacts/master/raw/build/python3-squirrelbattle_3.14_all.deb?job=build-deb From be6252881fc0fa8094f280e0e19f7e0d01e23afe Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 20:01:27 +0100 Subject: [PATCH 11/20] Add entity pages --- docs/entities/index.rst | 10 ++++++++++ docs/entities/items.rst | 2 ++ docs/entities/monsters.rst | 2 ++ docs/entities/player.rst | 2 ++ docs/index.rst | 1 + 5 files changed, 17 insertions(+) create mode 100644 docs/entities/index.rst create mode 100644 docs/entities/items.rst create mode 100644 docs/entities/monsters.rst create mode 100644 docs/entities/player.rst diff --git a/docs/entities/index.rst b/docs/entities/index.rst new file mode 100644 index 0000000..d8392ed --- /dev/null +++ b/docs/entities/index.rst @@ -0,0 +1,10 @@ +Entités +======= + +.. toctree:: + :maxdepth: 3 + :caption: Entités + + player + monsters + items \ No newline at end of file diff --git a/docs/entities/items.rst b/docs/entities/items.rst new file mode 100644 index 0000000..0f8b42d --- /dev/null +++ b/docs/entities/items.rst @@ -0,0 +1,2 @@ +Objets +====== diff --git a/docs/entities/monsters.rst b/docs/entities/monsters.rst new file mode 100644 index 0000000..0dcfb1e --- /dev/null +++ b/docs/entities/monsters.rst @@ -0,0 +1,2 @@ +Monstres +======== diff --git a/docs/entities/player.rst b/docs/entities/player.rst new file mode 100644 index 0000000..5a56870 --- /dev/null +++ b/docs/entities/player.rst @@ -0,0 +1,2 @@ +Joueur +====== diff --git a/docs/index.rst b/docs/index.rst index 5f45fde..ed7a713 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,4 +12,5 @@ Bienvenue dans la documentation de Squirrel Battle ! :caption: Jouer install + entities/index troubleshooting From 3662d482d36eb1e26b1e58b918e4736f192e4f38 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 21:14:56 +0100 Subject: [PATCH 12/20] Add documentation for entities --- docs/entities/index.rst | 71 +++++++++++++++++++++++++++++++++++++- docs/entities/items.rst | 48 ++++++++++++++++++++++++++ docs/entities/monsters.rst | 53 ++++++++++++++++++++++++++++ docs/entities/player.rst | 50 +++++++++++++++++++++++++++ 4 files changed, 221 insertions(+), 1 deletion(-) diff --git a/docs/entities/index.rst b/docs/entities/index.rst index d8392ed..1d63bbf 100644 --- a/docs/entities/index.rst +++ b/docs/entities/index.rst @@ -7,4 +7,73 @@ Entités player monsters - items \ No newline at end of file + items + +Entité +------ + +Une entité est un élément placé sur la carte. Ce peut être le joueur, un monstre +ou bien un objet sur la carte. Chaque entité dispose des attributs suivants : + +* ``name: str`` + + Il s'agit du type de l'entité. + +* ``y: int`` +* ``x: int`` + + Cela représente les coordonnées de l'entité sur la carte. + +* ``map: Map`` + + Il s'agit de la carte sur laquelle est placée l'entité. + +.. _objet: items.html + +Il existe à l'heure actuelle deux types d'entité : une `entité attaquante`_ ou +bien un objet_. + + +Entité attaquante +----------------- + +.. _monstre: monsters.html +.. _joueur: player.html + +Une entité attaquante (``FightingEntity``) est un type d'entités représentant +les personnages présents sur la carte, pouvant alors se battre. Ce peut être +un monstre_ ou bien le joueur_. + +Elles disposent toutes, en plus des paramètres d'entité, des attributs suivants : + +* ``maxhealth: int`` + + Représente la vie maximale de l'entité, qui est aussi la vie de départ. + +* ``health: int`` + + Représente la vie actuelle de l'entité. + +* ``strength: int`` + + Représente la force de l'entité, le nombre de dégâts à faire à chaque coup. + +* ``intelligence: int`` +* ``charisma: int`` +* ``dexterity: int`` +* ``constitution: int`` + + Tous ces paramètres sont des statistiques de l'entité, n'ayant pas de réelle + influence pour le moment. + +* ``level: int`` + + Niveau de l'entité. + +Chaque type d'entité disposera de ses propres attributs de départ. + +On considère une entité comme morte à partir du moment où sa vie descend +en-dessous de 0 point de vie. À ce moment-là, l'entité est retirée de la carte. + +Lorsqu'une entité en frappe une autre, celle-ci inflige autant de dégâts qu'elle +n'a de force, et autant de points de vie sont perdus. diff --git a/docs/entities/items.rst b/docs/entities/items.rst index 0f8b42d..521ca91 100644 --- a/docs/entities/items.rst +++ b/docs/entities/items.rst @@ -1,2 +1,50 @@ Objets ====== + +.. _joueur: player.html +.. _pack de textures: ../texture_pack.html + +Un objet est une entité présente sur la carte que le joueur_ peut ramasser. +Il lui suffit pour cela de s'approcher, et une fois sur la case de l'objet, +celui-ci est placé dans l'inventaire. + +Un objet dispose de deux paramètres : + +* ``held: bool`` + + Indique si l'objet est placé dans l'inventaire ou s'il est au sol. + +* ``held_by: Optional[Player]`` + + Si l'objet est dans l'inventaire, renvoie son propriétaire. + + +Deux types d'objets sont pour l'instant présents : + + +Bombe +----- + +.. _entités attaquantes: index.html#entite-attaquante + +Une bombe est un objet que l'on peut ramasser. Une fois ramassée, elle est placée +dans l'inventaire. Le joueur peut ensuite lâcher la bombe, qui fera alors +3 dégâts à toutes les `entités attaquantes`_ situées à moins de une case. + +Elle est représentée dans le `pack de textures`_ ASCII par le caractère ``o`` +et dans le `pack de textures`_ écureuil par l'émoji ``💣``. + +.. note:: + + La gestion de l'inventaire n'ayant pas encore été implémentée, il n'est à + l'heure actuelle pas possible de lancer une bombe. + + +Cœur +---- + +Une cœur est un objet que l'on ne peut pas ramasser. Dès que le joueur s'en +approche, il est régénéré automatiquement de 3 points de vie, et le cœur disparaît. + +Elle est représentée dans le `pack de textures`_ ASCII par le caractère ``❤`` +et dans le `pack de textures`_ écureuil par l'émoji ``💜``. diff --git a/docs/entities/monsters.rst b/docs/entities/monsters.rst index 0dcfb1e..b719c1b 100644 --- a/docs/entities/monsters.rst +++ b/docs/entities/monsters.rst @@ -1,2 +1,55 @@ Monstres ======== + +.. _`entité attaquante`: index.html#entites-attaquantes +.. _`pack de textures`: ../texture-pack.html + +Chaque monstre est une `entité attaquante`_, et hérite donc de ses attributs. + +À chaque tick de jeu, chaque monstre se déplace d'une case, si possible. +Si le monstre est loin du joueur, ce déplacement est fait aléatoirement. +Sinon, si le monstre est à moins de 5 cases du joueur, alors il se dirige +au plus vite sur le joueur pour le frapper selon l'algorithme de Dijkstra, +et s'il est suffisamment proche frappe le joueur et lui fait autant de dégâts +qu'il n'a de force. + +On dénombre actuellement 4 types de monstres : + +Hérisson +-------- + +Son nom est fixé à `hedghog`. Il a par défaut une force à **3** et **10** points de vie. + +Dans le `pack de textures`_ ASCII, il est représenté par le caractère ``*``. + +Dans le `pack de textures`_ écureuil, il est représenté par l'émoji ``🦔``. + + +Castor +------ + +Son nom est fixé à `beaver`. Il a par défaut une force à **2** et **20** points de vie. + +Dans le `pack de textures`_ ASCII, il est représenté par le caractère ``_``. + +Dans le `pack de textures`_ écureuil, il est représenté par l'émoji ``🦫``. + + +Lapin +----- + +Son nom est fixé à `rabbit`. Il a par défaut une force à **1** et **15** points de vie. + +Dans le `pack de textures`_ ASCII, il est représenté par le caractère ``Y``. + +Dans le `pack de textures`_ écureuil, il est représenté par l'émoji ``🐇``. + + +Nounours +-------- + +Son nom est fixé à `teddy_bear`. Il n'a pas de force et **50** points de vie. + +Dans le `pack de textures`_ ASCII, il est représenté par le caractère ``8``. + +Dans le `pack de textures`_ écureuil, il est représenté par l'émoji ``🧸``. diff --git a/docs/entities/player.rst b/docs/entities/player.rst index 5a56870..3b115d4 100644 --- a/docs/entities/player.rst +++ b/docs/entities/player.rst @@ -1,2 +1,52 @@ Joueur ====== + +.. _`entité attaquante`: index.html#entites-attaquantes +.. _`paramètres`: ../settings.html +.. _`pack de textures`: ../texture-pack.html +.. _`objet`: items.html + +Le joueur est une `entité attaquante`_, contrôlée par l'utilisateur humain. + +Il est représenté dans le `pack de textures`_ ASCII par le caractère ``@``, +et dans le `pack de textures`_ écureuil par le fameux émoji écureuil ``🐿``. + +En plus des attributs d'une `entité attaquante`_, le joueur dispose des atrributs +supplémentaires : + +* ``current_xp: int`` + + Correspond à l'expérience accumulée par le joueur depuis le dernier niveau obtenu. + +* ``max_xp: int`` + + Expérience requise au joueur pour changer de niveau. Vaut 10 fois le niveau actuel. + +* ``inventory: List[Item]`` + + Contient l'ensemble des objets détenus par le joueur. + + +Déplacement +----------- + +Selon les paramètres_, il est possible de bouger le joueur dans les 4 directions +en appuyant sur ``z``, ``q``, ``s``, ``d`` ou sur les flèches directionnelles. + +Le joueur se retrouvera bloqué s'il avance contre un mur. Si il avance sur un +objet_, alors il prend l'objet_ et avance sur la case. + +S'il rencontre une autre `entité attaquante`_, alors il frappe l'entité en +infligeant autant de dégâts qu'il n'a de force. À chaque fois qu'une entité est +tuée, le joueur gagne aléatoirement entre 3 et 7 points d'expérience. + + +Expérience +---------- + +À chaque monstre tué, le joueur gagne entre 3 et 7 points d'expérience aléatoirement. +Lorsque le joueur atteint la quantité d'expérience requise pour monter de niveau, +le joueur gagne un niveau, regagne toute sa vie, consomme son expérience et la +nouvelle quantité d'expérience requise est 10 fois le niveau actuel. De plus, +entre 5 et 10 fois le niveau actuel entités apparaissent aléatoirement sur la +carte à la montée de niveau. From eddf04fc3601fb66192fd3462f88b283fb14d452 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 21:19:55 +0100 Subject: [PATCH 13/20] Fix authors --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 7be9f27..4877d19 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,7 @@ project = 'Squirrel Battle' copyright = "2020" -author = "Yohann D'ANELLO, Mathilde DEPRÈS, Nicolas MARGULIES, Charles PEYRAT" +author = "Yohann D'ANELLO,\nMathilde DEPRES,\nNicolas MARGULIES,\nCharles PEYRAT" # -- General configuration --------------------------------------------------- From 1d8ecf49f9d2391cb8d4d7d1dc615c3f1dae293b Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 21:47:36 +0100 Subject: [PATCH 14/20] Put documentation link in README, add some badges --- README.md | 117 +++---------------------------------------------- docs/index.rst | 29 ++++++++++++ 2 files changed, 36 insertions(+), 110 deletions(-) diff --git a/README.md b/README.md index 44dbeca..d340eee 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,15 @@ [![pipeline status](https://gitlab.crans.org/ynerant/squirrel-battle/badges/master/pipeline.svg)](https://gitlab.crans.org/ynerant/squirrel-battle/-/commits/master) [![coverage report](https://gitlab.crans.org/ynerant/squirrel-battle/badges/master/coverage.svg)](https://gitlab.crans.org/ynerant/squirrel-battle/-/commits/master) +[![Documentation Status](https://readthedocs.org/projects/squirrel-battle/badge/?version=latest)](https://squirrel-battle.readthedocs.io/fr/latest/?badge=latest) +[![PyPI](https://img.shields.io/pypi/v/dungeon-battle)](https://pypi.org/project/squirrel-battle/) +[![PYPI downloads](https://img.shields.io/pypi/dm/squirrel-battle)](https://pypi.org/project/squirrel-battle/) +[![AUR version](https://img.shields.io/aur/version/python-squirrel-battle)](https://aur.archlinux.org/packages/python-squirrel-battle/) +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.txt) # Squirrel Battle Attention aux couteaux des écureuils ! -## Création d'un environnement de développement +## Documentation -Il est toujours préférable de travailler dans un environnement Python isolé du reste de son instalation. - -1. **Installation des dépendances de la distribution.** - Vous devez déjà installer Python et le module qui permet de créer des environnements virtuels. - On donne ci-dessous l'exemple pour une distribution basée sur Debian, mais vous pouvez facilement adapter pour ArchLinux ou autre. - - ```bash - $ sudo apt update - $ sudo apt install --no-install-recommends -y python3-setuptools python3-venv python3-dev git - ``` - -2. **Clonage du dépot** là où vous voulez : - - ```bash - $ git clone git@gitlab.crans.org:ynerant/squirrel-battle.git && cd squirrel-battle - ``` - -3. **Création d'un environment de travail Python décorrélé du système.** - On n'utilise pas `--system-site-packages` ici pour ne pas avoir des clashs de versions de modules avec le système. - - ```bash - $ python3 -m venv env - $ source env/bin/activate # entrer dans l'environnement - (env)$ pip3 install -r requirements.txt - (env)$ deactivate # sortir de l'environnement - ``` - -### Exécution des tests - -Les tests sont gérés par `pytest` dans le module `squirrelbattle.tests`. - -`tox` est un outil permettant de configurer l'exécution des tests. Ainsi, après -installation de tox dans votre environnement virtuel via `pip install tox`, -il vous suffit d'exécuter `tox -e py3` pour lancer les tests et `tox -e linters` -pour vérifier la syntaxe du code. - - -## Lancement du jeu - -Après clonage du projet, il suffit d'exécuter `python3 main.py`. - -Sinon, le jeu est déployé dans PyPI, et il suffit d'exécuter : - -``` -pip install squirrel-battle -``` - -pour télécharger et installer le jeu. Lancer `squirrel-battle` suffit ensuite -à lancer le jeu depuis n'importe où. Pour mettre à jour : - -``` -pip install --upgrade squirrel-battle -``` - -Sous Arch Linux, le paquet `python-squirrel-battle-git` dans l'AUR permet -également d'installer directement le jeu. - -## Gestion des émojis - -Le jeu dispose de deux modes graphiques : en mode `ascii` et `squirrel`. -Le mode `squirrel` affiche des émojis pour un meilleur affichage. Toutefois, -il est possible que vous n'ayez pas les bonnes polices. - -### Sous Windows - -Sous Windows, vous devriez avoir les bonnes polices installées nativement. - -### Sous Arch Linux - -Il est recommandé d'utiliser le terminal `xfce4-terminal`. Il suffit d'installer -le paquets de polices - -```bash -sudo pacman -Sy noto-fonts-emoji -``` - -Le jeu doit ensuite se lancer normalement sans action supplémentaire. - -### Sous Ubuntu/Debian - -À nouveau, le terminal `xfce4-terminal` est recommandé. Le paquet -`fonts-noto-color-emoji`. Toutefois, le rythme de mise à jour de Debian étant -lent, le paquet le plus récent ne contient pas tous les émojis. Sur Debian, -il faudra donc installer le paquet le plus récent, ce qui fonctionne sans -dépendance supplémentaire : - -```bash -wget http://ftp.fr.debian.org/debian/pool/main/f/fonts-noto-color-emoji/fonts-noto-color-emoji_0~20200916-1_all.deb -dpkg -i fonts-noto-color-emoji_0~20200916-1_all.deb -rm fonts-noto-color-emoji_0~20200916-1_all.deb -``` - -Il reste le problème de l'écureuil. Sous Ubuntu et Debian, le caractère écureuil -existe déjà, mais ne s'affiche pas proprement. On peut appliquer un patch qui -permet d'afficher les émojis correctement dans son terminal. Pour cela, il - suffit de faire : - -```bash -ln -s $PWD/fix-squirrel-emojis.conf /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf -ln -s /etc/fonts/conf.avail/75-fix-squirrel-emojis.conf /etc/fonts/conf.d/75-fix-squirrel-emojis.conf -``` - -Après redémarrage du terminal, l'écureuil devrait s'afficher correctement. - -Pour supprimer le patch : - -```bash -rm /etc/fonts/conf.d/75-fix-squirrel-emojis.conf -``` +La documentation du projet est présente sur [squirrel-battle.readthedocs.io](https://squirrel-battle.readthedocs.io). diff --git a/docs/index.rst b/docs/index.rst index ed7a713..e40d5a4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,35 @@ Bienvenue dans la documentation de Squirrel Battle ! ==================================================== +.. image:: https://gitlab.crans.org/ynerant/squirrel-battle/badges/master/pipeline.svg + :target: https://gitlab.crans.org/ynerant/squirrel-battle/-/commits/master + :alt: Pipeline status + +.. image:: https://gitlab.crans.org/ynerant/squirrel-battle/badges/master/coverage.svg + :target: https://gitlab.crans.org/ynerant/squirrel-battle/-/commits/master + :alt: Coverage report + +.. image:: https://readthedocs.org/projects/squirrel-battle/badge/?version=latest + :target: https://squirrel-battle.readthedocs.io/fr/latest/?badge=latest + :alt: Documentation Status + +.. image:: https://img.shields.io/pypi/v/dungeon-battle + :target: https://pypi.org/project/squirrel-battle/ + :alt: PyPI + +.. image:: https://img.shields.io/pypi/dm/dungeon-battle + :target: https://pypi.org/project/squirrel-battle/ + :alt: PyPI downloads + +.. image:: https://img.shields.io/aur/version/python-squirrel-battle + :target: https://aur.archlinux.org/packages/python-squirrel-battle/ + :alt: AUR version + +.. image:: https://img.shields.io/badge/License-GPL%20v3-blue.svg + :target: https://www.gnu.org/licenses/gpl-3.0.txt + :alt: License: GPL v3 + + .. toctree:: :maxdepth: 3 :caption: Développer From d4570828e21d368f7ea39f5f6bed2e084a8ba762 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:03:48 +0100 Subject: [PATCH 15/20] Documentation on texture packs --- docs/index.rst | 1 + docs/texture-pack.rst | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 docs/texture-pack.rst diff --git a/docs/index.rst b/docs/index.rst index e40d5a4..88dbe70 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -42,4 +42,5 @@ Bienvenue dans la documentation de Squirrel Battle ! install entities/index + texture-pack troubleshooting diff --git a/docs/texture-pack.rst b/docs/texture-pack.rst new file mode 100644 index 0000000..7eb7e92 --- /dev/null +++ b/docs/texture-pack.rst @@ -0,0 +1,57 @@ +Pack de textures +================ + +.. _entité: entity/index.html +.. _tuile: map.html#tuiles +.. _carte: map.html +.. _paramètres: settings.html + +.. _Joueur: entities/player.html +.. _Hérisson: entities/monsters.html#herisson +.. _Cœur: entities/items.html#coeur +.. _Bombe: entities/items.html#bombe +.. _Lapin: entities/monsters.html#lapin +.. _Castor: entities/monsters.html#castor +.. _Nounours: entities/monsters.html#nounours + +Chaque entité_ et chaque tuile_ de la carte_ est associé à un caractère pour +être affiché dans le terminal. Cependant, afin de pouvoir proposer plusieurs +expériences graphiques (notamment en fonction du support des émojis), différents +packs de textures sont proposés. + +Il est possible de changer de pack dans les paramètres. + +Les packs de textures sont au nombre de deux : + +Pack ASCII +---------- + +* Tuiles + * Vide : *espace* + * Mur : ``#`` + * Sol : ``.`` +* Entités + * Joueur_ : ``@`` + * Hérisson_ : ``*`` + * Cœur_ : ``❤`` + * Bombe_ : ``o`` + * Lapin_ : ``Y`` + * Castor_ : ``_`` + * Nounours_ : ``8`` + + +Pack Écureuil +------------- + +* Tuiles + * Vide : *espace* + * Mur : ``🧱`` + * Sol : ``██`` +* Entités + * Joueur_ : ``🐿`` + * Hérisson_ : ``🦔`` + * Cœur_ : ``💜`` + * Bombe_ : ``💣`` + * Lapin_ : ``🐇`` + * Castor_ : ``🦫`` + * Nounours_ : ``🧸`` From 6b2e420efe348eff6128b01f38778338c2f78ec0 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:21:03 +0100 Subject: [PATCH 16/20] Documentation on maps --- docs/index.rst | 1 + docs/map.rst | 46 +++++++++++++++++++++++++++++++++++++++++++ docs/texture-pack.rst | 8 ++++++++ 3 files changed, 55 insertions(+) create mode 100644 docs/map.rst diff --git a/docs/index.rst b/docs/index.rst index 88dbe70..854ca47 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -41,6 +41,7 @@ Bienvenue dans la documentation de Squirrel Battle ! :caption: Jouer install + maps entities/index texture-pack troubleshooting diff --git a/docs/map.rst b/docs/map.rst new file mode 100644 index 0000000..e8b90cc --- /dev/null +++ b/docs/map.rst @@ -0,0 +1,46 @@ +Carte +===== + +.. _entités: entity/index.html +.. _pack de textures: texture-pack.html + +Dans Squirrel game, le joueur se déplace dans un donjon, constitué de plusieurs +cartes. Pour le moment, le jeu se déroule sur une unique carte pré-définie, +non générée aléatoirement. + +Une carte est un rectangle composé de tuiles_. + +La carte est chargée depuis sa représentation ASCII dans un fichier texte. + +Au lancement du jeu, une quantité aléatoire d'entités_ sont générées et placées +aléatoirement sur la carte. + +Tuiles +------ + +Une tuile représente une case du jeu, avec ses différentes propriétés physiques. +On compte actuellement 3 types de tuiles : + +Vide +~~~~ + +Le vide est représenté par un espace vide quelque que soit le `pack de textures`_ +utilisé. Cette tuile n'est utilisée que pour délimiter les bords de la carte, +aucune entité ne peut se trouver sur cette tuile. + + +Sol +~~~ + +Le sol représente les emplacements où les entités peuvent se déplacer librement. +Il est représenté par un point ``.`` dans le `pack de textures`_ ASCII et par +deux caractères rectangulaires blancs ``██`` dans le `pack de textures`_ +écureuil. + + +Mur +~~~ + +Les murs délimitent les salles du donjon. Personne ne peut les traverser. +Ils sont représentés par un dièse ``#`` dans le `pack de textures`_ ASCII et +par une brique carrée ``🧱`` dans le `pack de textures`_ écureuil. diff --git a/docs/texture-pack.rst b/docs/texture-pack.rst index 7eb7e92..3bb5b4d 100644 --- a/docs/texture-pack.rst +++ b/docs/texture-pack.rst @@ -3,6 +3,7 @@ Pack de textures .. _entité: entity/index.html .. _tuile: map.html#tuiles +.. _tuiles: map.html#tuiles .. _carte: map.html .. _paramètres: settings.html @@ -21,11 +22,16 @@ packs de textures sont proposés. Il est possible de changer de pack dans les paramètres. +Les packs de textures peuvent influencer la taille que prennent les tuiles_, +en raison du fait que les émojis ne sont pas monospace. + Les packs de textures sont au nombre de deux : Pack ASCII ---------- +Chaque tuile fait un caractère de large. + * Tuiles * Vide : *espace* * Mur : ``#`` @@ -43,6 +49,8 @@ Pack ASCII Pack Écureuil ------------- +Chaque tuile fait 2 caractères de large pour afficher les émojis proprement. + * Tuiles * Vide : *espace* * Mur : ``🧱`` From 722dabb6e84e917167244c5439bd9b8a962885e1 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:32:25 +0100 Subject: [PATCH 17/20] Prepare not-documented pages --- docs/display/index.rst | 14 ++++++++++++++ docs/display/logs.rst | 4 ++++ docs/display/map.rst | 4 ++++ docs/display/menu.rst | 4 ++++ docs/display/stats.rst | 4 ++++ docs/index.rst | 3 +++ docs/settings.rst | 4 ++++ docs/tests.rst | 12 ++++++++++++ 8 files changed, 49 insertions(+) create mode 100644 docs/display/index.rst create mode 100644 docs/display/logs.rst create mode 100644 docs/display/map.rst create mode 100644 docs/display/menu.rst create mode 100644 docs/display/stats.rst create mode 100644 docs/settings.rst create mode 100644 docs/tests.rst diff --git a/docs/display/index.rst b/docs/display/index.rst new file mode 100644 index 0000000..d7d1ca3 --- /dev/null +++ b/docs/display/index.rst @@ -0,0 +1,14 @@ +Gestion de l'affichage +====================== + +Pas encore documenté. + + +.. toctree:: + :maxdepth: 3 + :caption: Affichage + + menu + map + stats + logs diff --git a/docs/display/logs.rst b/docs/display/logs.rst new file mode 100644 index 0000000..3ad130d --- /dev/null +++ b/docs/display/logs.rst @@ -0,0 +1,4 @@ +Affichage de l'historique +========================= + +Pas encore documenté. diff --git a/docs/display/map.rst b/docs/display/map.rst new file mode 100644 index 0000000..1daa85a --- /dev/null +++ b/docs/display/map.rst @@ -0,0 +1,4 @@ +Affichage de la carte +===================== + +Pas encore documenté. diff --git a/docs/display/menu.rst b/docs/display/menu.rst new file mode 100644 index 0000000..84be36c --- /dev/null +++ b/docs/display/menu.rst @@ -0,0 +1,4 @@ +Affichage des menus +=================== + +Pas encore documenté. diff --git a/docs/display/stats.rst b/docs/display/stats.rst new file mode 100644 index 0000000..1b5f697 --- /dev/null +++ b/docs/display/stats.rst @@ -0,0 +1,4 @@ +Affichage des statistiques +========================== + +Pas encore documenté. diff --git a/docs/index.rst b/docs/index.rst index 854ca47..4bafe82 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -35,6 +35,8 @@ Bienvenue dans la documentation de Squirrel Battle ! :caption: Développer install-dev + tests + display .. toctree:: :maxdepth: 3 @@ -44,4 +46,5 @@ Bienvenue dans la documentation de Squirrel Battle ! maps entities/index texture-pack + settings troubleshooting diff --git a/docs/settings.rst b/docs/settings.rst new file mode 100644 index 0000000..a8644d4 --- /dev/null +++ b/docs/settings.rst @@ -0,0 +1,4 @@ +Paramètres +========== + +Pas encore documenté. diff --git a/docs/tests.rst b/docs/tests.rst new file mode 100644 index 0000000..3bdd0d2 --- /dev/null +++ b/docs/tests.rst @@ -0,0 +1,12 @@ +Exécution des tests +=================== + +.. note:: + La documentation va être revue ici. + +Les tests sont gérés par ``pytest`` dans le module ``squirrelbattle.tests``. + +``tox`` est un outil permettant de configurer l'exécution des tests. Ainsi, après +installation de tox dans votre environnement virtuel via ``pip install tox``, +il vous suffit d'exécuter ``tox -e py3`` pour lancer les tests et ``tox -e linters`` +pour vérifier la syntaxe du code. From fa973cacde7ac6baad3e67881f982c6415e8ec80 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:35:21 +0100 Subject: [PATCH 18/20] Fix table of contents --- docs/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 4bafe82..41aed36 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -36,14 +36,14 @@ Bienvenue dans la documentation de Squirrel Battle ! install-dev tests - display + display/index .. toctree:: :maxdepth: 3 :caption: Jouer install - maps + map entities/index texture-pack settings From dd92ac767e79db7a943ea94fc0f6459044b91efb Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:37:34 +0100 Subject: [PATCH 19/20] We use curses to manage display on terminal --- docs/display/index.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/display/index.rst b/docs/display/index.rst index d7d1ca3..376466c 100644 --- a/docs/display/index.rst +++ b/docs/display/index.rst @@ -1,7 +1,14 @@ Gestion de l'affichage ====================== -Pas encore documenté. +.. _curses: https://docs.python.org/3/howto/curses.html + +L'intégralité de l'affichage du jeu est géré grâce à la bibliothèque native de +Python curses_. + + +.. warning:: + Plus de documentation à venir. .. toctree:: From 5ec42420203272b4fb287e432d7c78130be3649f Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 19 Nov 2020 22:47:03 +0100 Subject: [PATCH 20/20] Write rules of the game --- docs/entities/player.rst | 2 +- docs/index.rst | 1 + docs/rules.rst | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 docs/rules.rst diff --git a/docs/entities/player.rst b/docs/entities/player.rst index 3b115d4..d3a644a 100644 --- a/docs/entities/player.rst +++ b/docs/entities/player.rst @@ -49,4 +49,4 @@ Lorsque le joueur atteint la quantité d'expérience requise pour monter de nive le joueur gagne un niveau, regagne toute sa vie, consomme son expérience et la nouvelle quantité d'expérience requise est 10 fois le niveau actuel. De plus, entre 5 et 10 fois le niveau actuel entités apparaissent aléatoirement sur la -carte à la montée de niveau. +carte à la montée de niveau. Enfin, le joueur gagne en force en montant de niveau. diff --git a/docs/index.rst b/docs/index.rst index 41aed36..ce312c3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -43,6 +43,7 @@ Bienvenue dans la documentation de Squirrel Battle ! :caption: Jouer install + rules map entities/index texture-pack diff --git a/docs/rules.rst b/docs/rules.rst new file mode 100644 index 0000000..77cfc6b --- /dev/null +++ b/docs/rules.rst @@ -0,0 +1,24 @@ +Règles du jeu +============= + +.. _carte: map.html +.. _objets: entities/items.html +.. _monstres: entities/monsters.html +.. _entités: entities/index.html + +Dans `Squirrel Game`, le joueur incarne un écureuil coincé dans un donjon, +prêt à tout pour s'en sortir. Sa vision de rongeur lui permet d'observer +l'intégralité de la carte_, et à l'aide d'objets_, il va pouvoir affronter +les monstres_ présents dans le donjon et gagner en expérience et en force. + +Le jeu fonctionne par niveau. À chaque niveau ``n`` du joueur, entre ``3n`` et +``7n`` entités apparaissent aléatoirement sur la carte. + +En tuant des ennemis, ce qu'il parvient à faire en fonçant directement sur eux +ayant mangé trop de noisettes (ou étant armé d'un couteau), l'écureuil va +pouvoir gagner en expérience et au fur et à mesure qu'il monte de niveau, +a force augmentera. + +Arriverez-vous à sauver ce malheureux petit écureuil perdu ? + +Bon courage sachant que le jeu est sans fin ...