Add documentation for entities
This commit is contained in:
parent
be6252881f
commit
3662d482d3
@ -7,4 +7,73 @@ Entités
|
||||
|
||||
player
|
||||
monsters
|
||||
items
|
||||
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.
|
||||
|
@ -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 ``💜``.
|
||||
|
@ -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 ``🧸``.
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user