Merge branch 'EvenmoreDoc' into 'master'
Evenmore doc See merge request ynerant/squirrel-battle!67
This commit is contained in:
commit
f4965039ee
|
@ -3,13 +3,6 @@ Gestion de l'affichage
|
||||||
|
|
||||||
.. _curses: https://docs.python.org/3/howto/curses.html
|
.. _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::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
|
@ -19,3 +12,51 @@ Python curses_.
|
||||||
map
|
map
|
||||||
stats
|
stats
|
||||||
logs
|
logs
|
||||||
|
|
||||||
|
L'intégralité de l'affichage du jeu est géré grâce à la bibliothèque native de Python curses_.
|
||||||
|
|
||||||
|
Initialisation du terminal
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Au lancement du jeu, le terminal est initialisé, les caractères spéciaux sont traduits en abstraction curses, les
|
||||||
|
caractères tapés par l'utilisateur ne sont plus affichés sur le terminal, on envoie les touches tapées à curses en
|
||||||
|
permanence sans avoir à taper sur Entrée, le curseur est rendu invisible, on active le support des couleurs et enfin
|
||||||
|
on déclare vouloir attraper tous les clics de souris. Tout cela est fait dans un contexte Python, qui permet
|
||||||
|
d'effectuer les opérations inverses lors de la fermeture du programme, même en cas de crash, afin de retrouver un
|
||||||
|
terminal utilisable.
|
||||||
|
|
||||||
|
|
||||||
|
Pads
|
||||||
|
----
|
||||||
|
|
||||||
|
Chaque morceau d'affichage est géré dans un *pad*. Un pad est un objet défini par curses, représentant une sous-fenêtre,
|
||||||
|
qui a l'avantage d'être un peu plus flexible qu'une simple fenêtre. Un pad peut en effet dépasser de l'écran, et on
|
||||||
|
peut choisir où placer le coin avant gauche et quelle partie du pad il faut dessiner sur la fenêtre.
|
||||||
|
|
||||||
|
Ce projet implémente une couche d'abstraction supplémentaire, afin d'avoir des objets plus utilisables. Chaque partie
|
||||||
|
d'affichage est réprésentée dans une classé étendant ``Display``. Chaque ``Display`` contient un (ou plusieurs) pads,
|
||||||
|
et propose une surcouche de certaines fonctions de curses.
|
||||||
|
|
||||||
|
L'affichage de texte par exemple sur un pad est plus sécurisée que celle proposée par curses. Le comportement par défaut
|
||||||
|
est d'afficher un message à partir d'une position donnée avec des attributs (gras, couleur, ...) donnés sous
|
||||||
|
forme numérique. Cette implémentation permet de passer les attributs voulus sous forme de paramètres booléens, de
|
||||||
|
choisir la couleur de front/de fond sans définir de paire curses, mais surtout de tronquer le texte à la place
|
||||||
|
disponible, afin de ne pas avoir à se soucier d'avoir un message trop grand et éviter des crashs non désirés.
|
||||||
|
|
||||||
|
Les ``Display`` sont gérés par un ``DisplayManager``. C'est lui qui décide, en fonction de l'état actuel du jeu,
|
||||||
|
d'afficher les bons ``Display`` aux bons endroits et de les redimensionner correctement en fonction de la taille du
|
||||||
|
terminal. C'est aussi lui qui propage l'information de modifier les attributs d'un ``Display``, si par exemple
|
||||||
|
l'inventaire du joueur a été mis à jour.
|
||||||
|
|
||||||
|
Il s'occupe enfin de tout redimensionner si jamais le terminal a changé de taille, après une intervention
|
||||||
|
de l'utilisateur.
|
||||||
|
|
||||||
|
|
||||||
|
Interactions avec la souris
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Le jeu attrape les clics de souris. C'est le ``DisplayManager``, connaissant l'état du jeu et ce qui est affiché à
|
||||||
|
quel endroit, qui va chercher sur quel ``Display`` on a cliqué. L'information est propagée au bon ``Display``, en
|
||||||
|
adaptant les coordonnées.
|
||||||
|
|
||||||
|
Tout ``Display`` qui contient un menu procède de la même façon pour propager l'information au bon menu.
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
Affichage de l'historique
|
Affichage de l'historique
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
L'historique des actions est affiché en bas de l'écran. À chaque action d'une entité, comme frapper quelqu'un, ou lorsque le joueur parle à une entité, cela s'affiche dans l'historique.
|
L'historique des actions est affiché en bas de l'écran. À chaque action d'une entité, comme frapper quelqu'un,
|
||||||
|
ou lorsque le joueur parle à une entité, cela s'affiche dans l'historique.
|
||||||
|
|
||||||
|
Il est affiché sur l'écran de jeu, en bas à gauche, occupant 1/5 de la hauteur et 4/5 de la largeur.
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
Affichage de la carte
|
Affichage de la carte
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
La carte s'affiche dans la partie en haut à gauche de l'écran, sur la plus grande partie de l'écran. On affiche les tuiles une par une, selon le texture pack sélectionné. La map est actualisée à chaque action d'une entité.
|
La carte s'affiche dans la partie en haut à gauche de l'écran, sur la plus grande partie de l'écran.
|
||||||
|
On affiche les tuiles une par une. Selon le pack de textures utilisé, les tuiles prennent un ou deux caractères de large.
|
||||||
|
Selon la visibilité de la case en fonction de la position du joueur, la couleur de la case sera plus ou moins sombre,
|
||||||
|
voire masquée si le joueur n'a jamais vu la case. Les entités sont ensuite affichées, si elles sont dans le champ de
|
||||||
|
vision du joueur.
|
||||||
|
|
||||||
L'afffichage de la carte suit les déplacements du joueur.
|
La carte est actualisée lorsque cela est nécessaire, à chaque tick de jeu.
|
||||||
|
|
||||||
|
L'afffichage de la carte suit les déplacements du joueur, dans le sens où la caméra est toujours centrée sur lui.
|
||||||
|
La carte prend 4/5 de l'affichage aussi bien en largeur qu'en hauteur.
|
||||||
|
|
|
@ -2,13 +2,16 @@ Affichage des menus
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Les menus sont affichés dans une boîte. On peut naviguer dedans avec les flèches haut et bas,
|
Les menus sont affichés dans une boîte. On peut naviguer dedans avec les flèches haut et bas,
|
||||||
et valider avec la touche entrée.
|
et valider avec la touche entrée. Il est également possible d'intéragir avec la souris.
|
||||||
|
|
||||||
Il y a plusieurs menus dans le jeu :
|
Il y a plusieurs menus dans le jeu :
|
||||||
|
|
||||||
* Le main menu, qui s'affiche au lancement du jeu.
|
* **Le menu principal**, qui s'affiche au lancement du jeu.
|
||||||
* Le menu des paramètres : si on sélectionne un choix de touche et qu'on appuie sur entrée, on peut ensuite appuyer sur une touche pour remplacer la touche utilisée.
|
* **Le menu des paramètres** : si on sélectionne un choix de touche et qu'on appuie sur entrée,
|
||||||
* Le menu des crédits : ce menu fonctionne avec la souris. En cliquant on affiche une image.
|
on peut ensuite appuyer sur une touche pour remplacer la touche utilisée.
|
||||||
* Le menu d'inventaire : dans l'inventaire, on peut utiliser les touches pour utiliser un item ou l'équiper...
|
* **Le menu des crédits** : ce menu fonctionne avec la souris. En cliquant on affiche une image.
|
||||||
* Le menu de vente : on peut utiliser les touches gauche et droite pour switcher entre l'inventaire du joueur et celui du marchand.
|
* **Le menu d'inventaire** : dans l'inventaire, on peut utiliser les touches pour utiliser un item ou l'équiper...
|
||||||
* Menu des warnings : Pas vraiment un menu, mais affiche juste un message dans une petite boite pour prévenir le joueur que quelquechose ne va pas.
|
* **Le menu de vente** : on peut utiliser les touches gauche et droite pour switcher entre l'inventaire du joueur
|
||||||
|
et celui du marchand.
|
||||||
|
* **Menu des warnings** : Pas vraiment un menu, mais affiche juste un message dans une petite boite pour prévenir
|
||||||
|
le joueur que quelque chose ne va pas.
|
||||||
|
|
|
@ -4,7 +4,7 @@ Affichage des statistiques
|
||||||
.. _Hazel: ../index.html
|
.. _Hazel: ../index.html
|
||||||
|
|
||||||
Les statistiques du joueur sont affichées en haut à droite de l'écran
|
Les statistiques du joueur sont affichées en haut à droite de l'écran
|
||||||
et séparées du reste de l'affichage par une barre verticale.
|
et séparées du reste de l'affichage par une barre verticale, occupant 1/5 de la place horizontale.
|
||||||
|
|
||||||
Les informations affichées sont :
|
Les informations affichées sont :
|
||||||
|
|
||||||
|
@ -24,3 +24,8 @@ Les informations affichées sont :
|
||||||
* **Equipped helmet** - le casque porté par le joueur.
|
* **Equipped helmet** - le casque porté par le joueur.
|
||||||
* **Hazel** - le nombre d'Hazel_ que le joueur possède.
|
* **Hazel** - le nombre d'Hazel_ que le joueur possède.
|
||||||
* **Vous êtes mort** - Éventuellement, si le joueur est mort.
|
* **Vous êtes mort** - Éventuellement, si le joueur est mort.
|
||||||
|
|
||||||
|
Si le joueur possède un `monocle <../entities/items.html#monocle>`_, alors les statistiques d'une entité proche sont
|
||||||
|
également affichées dessous.
|
||||||
|
|
||||||
|
Des aides de jeu peuvent enfin être affichées en bas, telles que la touche sur laquelle il faut appuyer.
|
||||||
|
|
|
@ -42,13 +42,21 @@ En interagissant avec un marchand, il est possible de lui acheter et de lui
|
||||||
vendre différents objets contre des Hazels, la monnaie du jeu.
|
vendre différents objets contre des Hazels, la monnaie du jeu.
|
||||||
Les prix sont fixés :
|
Les prix sont fixés :
|
||||||
|
|
||||||
|
* Anneau de coup critique : 15 Hazels
|
||||||
|
* Anneau d'expérience : 25 Hazels
|
||||||
|
* Arc : 22 Hazels
|
||||||
|
* Baguette de feu : 36 Hazels
|
||||||
* Bombe : 4 Hazels
|
* Bombe : 4 Hazels
|
||||||
* Coeur : 3 Hazels
|
|
||||||
* Potion d'arrachage de corps : 14 Hazels
|
|
||||||
* Épée : 20 Hazels
|
|
||||||
* Bouclier : 16 Hazels
|
* Bouclier : 16 Hazels
|
||||||
* Casque : 18 Hazels
|
* Casque : 18 Hazels
|
||||||
|
* Coeur : 3 Hazels
|
||||||
|
* Épée : 20 Hazels
|
||||||
|
* Monocle : 10 Hazels
|
||||||
|
* Parchemin de dégâts : 18 Hazels
|
||||||
|
* Parchemin de faiblesse : 13 Hazels
|
||||||
* Plastron : 30 Hazels
|
* Plastron : 30 Hazels
|
||||||
|
* Potion d'arrachage de corps : 14 Hazels
|
||||||
|
* Règle : 2 Hazels
|
||||||
|
|
||||||
Le marchand commence avec 75 Hazels en sa possession, contre 42 pour le joueur.
|
Le marchand commence avec 75 Hazels en sa possession, contre 42 pour le joueur.
|
||||||
|
|
||||||
|
@ -59,11 +67,11 @@ Dans le `pack de textures`_ écureuil, il est représenté par l'émoji ``🦜``
|
||||||
Trompette
|
Trompette
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Son nom est fixé à 'trumpet'. Une trompette est un familier, c'est à dire que
|
Son nom est fixé à `trumpet`. Une trompette est un familier, c'est à dire que
|
||||||
c'est une entité attaquante qui suit globalement le joueurs et attaque les monstres
|
c'est une entité attaquante qui suit globalement le joueurs et attaque les monstres
|
||||||
qui se rapprochent trop du joueur.
|
qui se rapprochent trop du joueur.
|
||||||
|
|
||||||
Elle a 20 point de vie et une attaque de 3.
|
Elle a 20 points de vie et une attaque de 3.
|
||||||
|
|
||||||
Dans le `pack de textures`_ ASCII, elle est représentée par le caractère ``/``.
|
Dans le `pack de textures`_ ASCII, elle est représentée par le caractère ``/``.
|
||||||
|
|
||||||
|
|
|
@ -29,10 +29,10 @@ Bombe
|
||||||
|
|
||||||
Une bombe est un objet que l'on peut ramasser. Une fois ramassée, elle est placée
|
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 utiliser la bombe, via l'inventaire
|
dans l'inventaire. Le joueur peut ensuite utiliser la bombe, via l'inventaire
|
||||||
ou après l'avoir équipée, qui fera alors 3 dégâts à toutes les
|
ou après l'avoir équipée, qui fera alors 5 dégâts à toutes les
|
||||||
`entités attaquantes`_ situées à moins de trois cases au bout de 4 ticks de jeu.
|
`entités attaquantes`_ situées à moins de trois cases au bout de 4 ticks de jeu.
|
||||||
|
|
||||||
Elle est représentée dans le `pack de textures`_ ASCII par le caractère ``o``
|
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 ``💣``. Lors de l'explosion,
|
et dans le `pack de textures`_ écureuil par l'émoji ``💣``. Lors de l'explosion,
|
||||||
la bombe est remplacée par un symbole ``%`` ou l'émoji ``💥`` selon le pack de
|
la bombe est remplacée par un symbole ``%`` ou l'émoji ``💥`` selon le pack de
|
||||||
textures utilisé.
|
textures utilisé.
|
||||||
|
@ -44,8 +44,7 @@ Cœur
|
||||||
----
|
----
|
||||||
|
|
||||||
Un cœur est un objet que l'on ne peut pas ramasser. Dès que le joueur s'en
|
Un cœur est un objet que l'on ne peut pas ramasser. Dès que le joueur s'en
|
||||||
approche ou qu'il l'achète auprès d'un marchand, il est régénéré automatiquement
|
approche ou qu'il l'achète auprès d'un marchand, il récupère automatiquement 5 points de vie, et le cœur disparaît.
|
||||||
de 3 points de vie, et le cœur disparaît.
|
|
||||||
|
|
||||||
Il est représenté dans le `pack de textures`_ ASCII par le caractère ``❤``
|
Il est représenté dans le `pack de textures`_ ASCII par le caractère ``❤``
|
||||||
et dans le `pack de textures`_ écureuil par l'émoji ``💜``.
|
et dans le `pack de textures`_ écureuil par l'émoji ``💜``.
|
||||||
|
@ -65,11 +64,21 @@ Elle est représentée par les caractères ``I`` et ``🔀``
|
||||||
Cette potion coûte 14 Hazels auprès des marchands.
|
Cette potion coûte 14 Hazels auprès des marchands.
|
||||||
|
|
||||||
|
|
||||||
|
Règle
|
||||||
|
-----
|
||||||
|
|
||||||
|
La règle est une arme que l'on peut trouver uniquement par achat auprès d'un
|
||||||
|
marchand pour le coût de 2 Hazels ou dans un coffre. Une fois équipée, la règle ajoute 1 de force
|
||||||
|
à son porteur.
|
||||||
|
|
||||||
|
Elle est représentée par les caractères ``\`` et ``📏``.
|
||||||
|
|
||||||
|
|
||||||
Épée
|
Épée
|
||||||
----
|
----
|
||||||
|
|
||||||
L'épée est un objet que l'on peut trouver uniquement par achat auprès d'un
|
L'épée est une arme que l'on peut trouver uniquement par achat auprès d'un
|
||||||
marchand pour le coût de 20 Hazels. Une fois équipée, l'épée ajoute 3 de force
|
marchand pour le coût de 20 Hazels ou dans un coffre. Une fois équipée, l'épée ajoute 3 de force
|
||||||
à son porteur.
|
à son porteur.
|
||||||
|
|
||||||
Elle est représentée par les caractères ``†`` et ``🗡️``.
|
Elle est représentée par les caractères ``†`` et ``🗡️``.
|
||||||
|
@ -78,38 +87,34 @@ Elle est représentée par les caractères ``†`` et ``🗡️``.
|
||||||
Bouclier
|
Bouclier
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Le bouclier est un objet que l'on peut trouver uniquement par achat auprès d'un
|
Le bouclier est un type d'armure que l'on peut trouver uniquement par achat auprès d'un marchand pour le coût de 16 Hazels ou dans un coffre. Il s'équippe dans la main secondaire.
|
||||||
marchand pour le coût de 16 Hazels. Il s'équippe dans la main secondaire.
|
Une fois équipé, le bouclier ajoute 2 de constitution à son porteur, lui permettant de parer mieux les coups.
|
||||||
Une fois équipé, le bouclier ajoute 1 de
|
|
||||||
constitution à son porteur, lui permettant de parer mieux les coups.
|
|
||||||
|
|
||||||
Il est représenté par les caractères ``D`` et ``🛡️``.
|
Il est représenté par les caractères ``D`` et ``🛡️``.
|
||||||
|
|
||||||
Casque
|
Casque
|
||||||
------
|
------
|
||||||
|
|
||||||
Le casque est un objet que l'on peut trouver uniquement par achat auprès d'un
|
Le casque est un type d'armure que l'on peut trouver uniquement par achat auprès d'un marchand pour le coût de 18 Hazels ou dans un coffre. Il s'équippe sur la tête.
|
||||||
marchand pour le coût de 18 Hazels. Il s'équippe sur la tête.
|
Une fois équipé, le casque ajoute 2 de constitution à son porteur, lui permettant de prendre moins de dégâts.
|
||||||
Une fois équipé, le casque ajoute 2 de
|
|
||||||
constitution à son porteur, lui permettant de prendre moins de dêgats.
|
|
||||||
|
|
||||||
Il est représenté par les caractères ``0`` et ``⛑️``.
|
Il est représenté par les caractères ``0`` et ``⛑️``.
|
||||||
|
|
||||||
Plastron
|
Plastron
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Le plastron est un objet que l'on peut trouver uniquement par achat auprès d'un
|
Le plastron est un type d'armure que l'on peut trouver uniquement par achat
|
||||||
marchand pour le coût de 30 Hazels. Il s'équippe sur le corps.
|
auprès d'un marchand pour le coût de 30 Hazels ou dans un coffre. Il s'équippe sur le corps.
|
||||||
Une fois équipé, le casque ajoute 4 de
|
Une fois équipé, le casque ajoute 4 de constitution à son porteur,
|
||||||
constitution à son porteur, lui permettant de prendre moins de dêgats.
|
lui permettant de prendre moins de dégâts.
|
||||||
|
|
||||||
Il est représenté par les caractères ``(`` et ``🦺``.
|
Il est représenté par les caractères ``(`` et ``🦺``.
|
||||||
|
|
||||||
Anneau
|
Anneau
|
||||||
------
|
------
|
||||||
|
|
||||||
L'anneau est un objet que l'on peut trouver uniquement par achat auprès d'un
|
Un anneau est un objet que l'on peut trouver uniquement par achat auprès d'un
|
||||||
marchand. Il s'équippe sur la main secondaire.
|
marchand ou dans un coffre. Il s'équippe sur la main secondaire.
|
||||||
Une fois équipé, l'anneau ajoute un bonus à une ou plusieurs statistiques du
|
Une fois équipé, l'anneau ajoute un bonus à une ou plusieurs statistiques du
|
||||||
joueur, améliorant sa capacité à se débarasser des monstres.
|
joueur, améliorant sa capacité à se débarasser des monstres.
|
||||||
|
|
||||||
|
@ -119,3 +124,47 @@ Il y a plusieurs types d'anneaux :
|
||||||
* **Anneau de gain d'expérience amélioré**, qui multiplie le gain d'expérience du joueur par 2. Il coûte 25 Hazels.
|
* **Anneau de gain d'expérience amélioré**, qui multiplie le gain d'expérience du joueur par 2. Il coûte 25 Hazels.
|
||||||
|
|
||||||
Un anneau est représenté par les caractères ``o`` et ``💍``.
|
Un anneau est représenté par les caractères ``o`` et ``💍``.
|
||||||
|
|
||||||
|
Monocle
|
||||||
|
-------
|
||||||
|
|
||||||
|
L'anneau est un objet que l'on peut trouver uniquement par achat auprès d'un
|
||||||
|
marchand pour le prix de 10 Hazels. On peut le trouver sinon dans les coffres.
|
||||||
|
Il s'équippe sur la main secondaire.
|
||||||
|
|
||||||
|
Une fois porté, il permet de voir les caractéristiques des entités voisines
|
||||||
|
(nom, force, chance de critique, ...).
|
||||||
|
|
||||||
|
Un monocle est représenté par les caractères ``ô`` et ``🧐``.
|
||||||
|
|
||||||
|
Parchemin
|
||||||
|
---------
|
||||||
|
|
||||||
|
Un parchemin est un objet consommable qui se trouve chez un marchand ou dans un coffre. Lorsqu'il est utilisé, il a un effet sur les statistiques du joueur ou des autres entités combattantes. L'intensité de l'effet du parchemin dépend de l'intelligence du joueur.
|
||||||
|
|
||||||
|
Il y a plusieurs types de parchemins :
|
||||||
|
|
||||||
|
* **Parchemin de dégâts**, qui inflige des dégâts à toutes les entités combattantes qui sont à distance moins de 5 du joueur (ça touche aussi les familiers, mais pas le joueur). Le nombre de points de dégâts est directement l'intelligence du joueur. Il coute 18 Hazels.
|
||||||
|
* **Parchemin de faiblesse**, qui réduit la force de toutes les entités sauf le joueur de min(1, intelligence//2) pendant 3 tours du jeu. Il coûte 13 Hazels.
|
||||||
|
|
||||||
|
Un parchemin est représenté par les caractères ``]`` et ``📜``.
|
||||||
|
|
||||||
|
Arc
|
||||||
|
---
|
||||||
|
|
||||||
|
Un arc est une arme à distance qui s'équippe dans la main principale. Pour l'utiliser, il faut appuyer sur la touche de lancer (l de base) puis une touche de direction. Une flèche est alors tirée dans cette direction, et touche le premier ennemi qu'elle rencontre, s'il existe, sur les 3 premières cases dans cette direction.
|
||||||
|
|
||||||
|
La flèche fait 4 + dextérité du joueur dégâts.
|
||||||
|
L'arc coûte 22 Hazels chez un marchand. On peut le trouver sinon dans les coffres.
|
||||||
|
|
||||||
|
Il est représenté par les caractères ``)`` et ``🏹``.
|
||||||
|
|
||||||
|
Baton de boule de feu
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Un baton est une arme à distance qui s'équippe dans la main principale. Pour l'utiliser, il faut appuyer sur la touche de lancer (l de base) puis une touche de direction. Une boule de feu est alors tirée dans cette direction, et touche le premier ennemi qu'elle rencontre, s'il existe, sur les 4 premières cases dans cette direction. Lorsqu'un ennemi est touché, une explosion est affichée sur sa case.
|
||||||
|
|
||||||
|
La boule de feu fait 6 + intelligence du joueur dégâts.
|
||||||
|
Le baton coûte 36 Hazels chez un marchand. On peut le trouver sinon dans les coffres.
|
||||||
|
|
||||||
|
Il est représenté par les caractères ``:`` et ``🪄``.
|
||||||
|
|
|
@ -5,6 +5,9 @@ Joueur
|
||||||
.. _`paramètres`: ../settings.html
|
.. _`paramètres`: ../settings.html
|
||||||
.. _`pack de textures`: ../texture-pack.html
|
.. _`pack de textures`: ../texture-pack.html
|
||||||
.. _`objet`: items.html
|
.. _`objet`: items.html
|
||||||
|
.. _`parchemins`: items.html#Parchemin
|
||||||
|
.. _`batons` : items.html#Baton de boule de feu
|
||||||
|
.. _`arc` : items.html#Arc
|
||||||
|
|
||||||
Le joueur est une `entité attaquante`_, contrôlée par l'utilisateur humain.
|
Le joueur est une `entité attaquante`_, contrôlée par l'utilisateur humain.
|
||||||
|
|
||||||
|
@ -32,6 +35,10 @@ Déplacement
|
||||||
|
|
||||||
Selon les paramètres_, il est possible de bouger le joueur dans les 4 directions
|
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.
|
en appuyant sur ``z``, ``q``, ``s``, ``d`` ou sur les flèches directionnelles.
|
||||||
|
(ou sur d'autres touches selon ce qui est écrit dans le menu des paramètres)
|
||||||
|
|
||||||
|
Le joueur peut aussi ne rien faire pendant son tour, il suffit d'appuyer sur
|
||||||
|
la touche d'attente (``w`` de base).
|
||||||
|
|
||||||
Le joueur se retrouvera bloqué s'il avance contre un mur. Si il avance sur un
|
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.
|
objet_, alors il prend l'objet_ et avance sur la case.
|
||||||
|
@ -40,6 +47,25 @@ 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
|
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.
|
tuée, le joueur gagne aléatoirement entre 3 et 7 points d'expérience.
|
||||||
|
|
||||||
|
Outre se déplacer et attaquer, le joueur peut utiliser la touche pour danser
|
||||||
|
(``y`` de base) durant son tour et danser. Selon son charisme, il a plus ou moins
|
||||||
|
de chances de rendre confus tous les ennemis à distance moins de 3. Un ennemi confus
|
||||||
|
ne peut pas attaquer.
|
||||||
|
|
||||||
|
|
||||||
|
Statistiques
|
||||||
|
------------
|
||||||
|
|
||||||
|
Le joueur possède plusieurs statistiques :
|
||||||
|
|
||||||
|
* Niveau : son niveau, qui dépend de combien d'expérience il a accumulé
|
||||||
|
* Expérience : la quantité d'expérience accumulée par le joueur, qui dépend de combien d'entités il a tué.
|
||||||
|
* Force : indique combien de dommages le joueur inflige à ses ennemis
|
||||||
|
* Intelligence : joue sur l'effet des objets magiques, tels que les `parchemins`_ ou les `batons`_
|
||||||
|
* Charisme : joue sur l'efficacité de la danse du joueur
|
||||||
|
* Dextérité : joue sur l'efficacité de l'`arc`_
|
||||||
|
* Constitution : joue sur la quantité de dégâts que le joueur prend lorsqu'un monstre le frappe
|
||||||
|
* Taux de critique : la chance (en pourcentage) que le joueur a de faire un coup critique
|
||||||
|
|
||||||
Expérience
|
Expérience
|
||||||
----------
|
----------
|
||||||
|
@ -49,4 +75,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
|
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,
|
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
|
entre 5 et 10 fois le niveau actuel entités apparaissent aléatoirement sur la
|
||||||
carte à la montée de niveau. Enfin, le joueur gagne en force en montant de niveau.
|
carte à la montée de niveau. Enfin, le joueur améliore ses statistiques en augmentant de niveau. Toutes les caractéristiques ne sont pas incrémentées à chaque niveau gagné.
|
||||||
|
|
|
@ -521,7 +521,7 @@ class ScrollofWeakening(Item):
|
||||||
self.held_by.inventory.remove(self)
|
self.held_by.inventory.remove(self)
|
||||||
|
|
||||||
|
|
||||||
class LongRangeWeapon(Item):
|
class LongRangeWeapon(Weapon):
|
||||||
def __init__(self, damage: int = 4,
|
def __init__(self, damage: int = 4,
|
||||||
rang: int = 3, *args, **kwargs):
|
rang: int = 3, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -613,7 +613,7 @@ class FireBallStaff(LongRangeWeapon):
|
||||||
@property
|
@property
|
||||||
def stat(self) -> str:
|
def stat(self) -> str:
|
||||||
"""
|
"""
|
||||||
Here it is dexterity
|
Here it is intelligence
|
||||||
"""
|
"""
|
||||||
return "intelligence"
|
return "intelligence"
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ class Player(InventoryHolder, FightingEntity):
|
||||||
def dance(self) -> None:
|
def dance(self) -> None:
|
||||||
"""
|
"""
|
||||||
Dancing has a certain probability or making ennemies unable
|
Dancing has a certain probability or making ennemies unable
|
||||||
to fight for 2 turns. That probability depends on the player's
|
to fight for 3 turns. That probability depends on the player's
|
||||||
charisma.
|
charisma.
|
||||||
"""
|
"""
|
||||||
diceroll = randint(1, 10)
|
diceroll = randint(1, 10)
|
||||||
|
|
Loading…
Reference in New Issue