*`world` va contenir les données du monde. Des explication plus précises sont plus bas.
*`player` va conten les données du joueur. Des explication plus précises sont plus bas.
*`on_npc_collision` doit être une fonction avec les arguments `self, npc` qui est exécutée lorsque le joueur va vers le pnj.
*`self` contient la classe `Scii` et permet d'y appeler des fonctions.
*`npc` contient les données du pnj, comme elles sont écrites dans `world` (voir plus bas).
*`scii_keys` contient les touches que le joueur utilise pour faire certaines action. Quand `scii_keys` est égal à `None`, les touches utilisés sont : `{"left": '4', "right": '6', "up": '8', "down": '2', "quit": 'q', "old_messages": '0'}`. `"old_messages"` permet de voir les anciennes conversations.
*`get_input_text` est une fonction qui doit retourner une chaine de caractères qui sera affichée dans l'input pour récupérer les touches.
*`no_collision` est une chaine de caractères qui contient les caractères que le joueur peut traverser. Par défaut, lorsque `no_collision` est égal à `None`, la chaine de caractères est `" ^"`.
*`collision_checker` est une fonction qui prend les paramètres `self, world, player, x, y` et qui retourne 0 si le joueur peut passer à (x, y), 1 si il ne peut pas passer à (x, y) et 2 si il y a un pnj à (x, y). `self` permet d'appeler des fonctions de la classe `Scii` ou à en récupérer des données et `world` et `player` contiennent les mêmes données que `world` et `player` qui sont des arguments de `Scii`.
*`message_history_max` contient le nombre de messages maximals qui seront conservés dans l'historique des conversations.
*`screen_width` est un `int` qui contient la largeur de l'écran en nombre de caractères.
*`transp_char` : Le caractère qui ne sera pas affiché : permet de voir le layer d'en dessous. Si il est à `None`, aucun caractère ne sera enlevé.
*`jumps` : Liste des endroits où le joueur peut sauter d'une map à l'autre et/ou d'une position à l'autre. Cette liste est constituée de dictionnaires constituées de :
*`x` et `y` : La position de départ.
*`to_x` et `to_y` : La position de d'arrivée.
*`to_map` : La map de l'arrivée.
*`isactive` : Bolléen : est ce que ce jump peut téléporter le joueur ?
La map sur laquelle il est est déjà définie dans `map_num` de `world`.
## Les fonctions de `Scii`
`self` est la classe `Scii`.
*`mainloop(self)` : Lance la boucle du jeu.
* Déjà uilisés dans mainloop :
*`get_map_width(self, map_data)` : Retourne la largeur de la map.
*`map_data` : dictionnaire de la map comme il est dans `world["maps"]`
*`get_map_height(self, map_data)` : Retourne la hauteur de la map.
*`map_data` : dictionnaire de la map comme il est dans `world["maps"]`
*`draw_map(self, mode, show_player)`
*`mode` : Mode de dessin de la map (`STICKY`, `CENTERED`, `BLOCKS` ou `STICKYBLOCKS`)
*`show_player` : Bolléen : est ce que le joueur doit être affiché.
*`def show_text(self, text)` : Affiche du texte. L'historique du texte affiché est disponible en appuyant sur `scii_keys["old_messages"]` ou en appelant `show_old_messages(self)`.
*`text` : Texte à afficher.
*`show_old_messages(self)` : Affiche les anciennes conversations.
*`ask_choice(self, text, choices)` : Demande à l'utilisateur de faire un choix parmi les choix proposés dans `choices`. Retourne le choix fait. Le premier choix est le numéro 1, et les prochains sont à chaque fois de 1 plus grands : dans `["Oui", "Non", "Je ne sais pas"]` "Oui" est le choix numéro 1, "Non" est le choix numéro 2 et "Je ne sais pas" est le choix numéro 3.
*`text` : Texte à afficher avant de demander à l'utilisateur quel proposition il fait. Les choix seront affichés en dessous.
*`choices` : Liste de chaines de caractères des choix que l'utilisateur.