Add documentation for entities
This commit is contained in:
		| @@ -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. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user