Ynvers commited on
Commit
f967329
·
1 Parent(s): dd00dbf

Add application file

Browse files
Files changed (5) hide show
  1. .gitignore +2 -0
  2. Terra Bestia.json +1 -0
  3. helper.py +20 -0
  4. main.py +86 -0
  5. requirements.txt +3 -0
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ game
2
+ __pycache__
Terra Bestia.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"name": "Terra Bestia", "description": "Dans ce monde, les villes ne sont pas construites sur la terre ferme, mais sur le dos de cr\u00e9atures colossales appel\u00e9es Titans. Ces b\u00eates massives, couvertes de for\u00eats et de montagnes, parcourent les oc\u00e9ans infinis, offrant un mode de vie nomade et unique aux habitants. Chaque Titan poss\u00e8de sa propre \u00e9cosyst\u00e8me et culture, et les interactions entre les villes sont rares et pr\u00e9cieuses, souvent marqu\u00e9es par des \u00e9changes commerciaux et des alliances strat\u00e9giques.", "kingdoms": {"Ventara": {"name": "Ventara", "description": "Ventara est situ\u00e9 sur le dos de Zephyrion, un Titan ail\u00e9 qui plane au-dessus des oc\u00e9ans. Les habitants, appel\u00e9s les A\u00e9riens, sont des ma\u00eetres du vent et de l'air. Leur dirigeant, la Reine Aelia, est respect\u00e9e pour sa sagesse et son habilet\u00e9 \u00e0 naviguer les courants a\u00e9riens. La culture de Ventara est centr\u00e9e sur la libert\u00e9 et l'exploration, avec des festivals c\u00e9l\u00e8bres pour leurs acrobaties a\u00e9riennes et leurs chants m\u00e9lodieux.", "world": "Terra Bestia", "towns": {"Aeris": {"name": "Aeris", "description": "Aeris est situ\u00e9e sur les hauteurs de Zephyrion, entour\u00e9e de nuages et de montagnes flottantes. La ville est c\u00e9l\u00e8bre pour son Grand Observatoire, o\u00f9 les astronomes \u00e9tudient les \u00e9toiles et les constellations. Son histoire remonte \u00e0 la d\u00e9couverte d'anciennes ruines c\u00e9lestes, qui ont r\u00e9v\u00e9l\u00e9 des secrets sur les origines des Titans.", "kingdom": "Ventara", "world": "Terra Bestia", "npcs": {"Lyra": {"name": "Lyra", "description": "Lyra est une jeune astronome aux cheveux argent\u00e9s et aux yeux bleus per\u00e7ants. Elle passe ses nuits \u00e0 observer les \u00e9toiles depuis le Grand Observatoire d'Aeris. Lyra souffre de la perte de son fr\u00e8re, disparu lors d'une exp\u00e9dition a\u00e9rienne. Son d\u00e9sir le plus profond est de d\u00e9couvrir la v\u00e9rit\u00e9 sur les origines des Titans et de retrouver son fr\u00e8re.", "town": "Aeris", "kingdom": "Ventara", "world": "Terra Bestia"}, "Kael": {"name": "Kael", "description": "Kael est un acrobate a\u00e9rien aux muscles fins et \u00e0 la peau tann\u00e9e par le soleil. Il porte des tatouages repr\u00e9sentant les courants a\u00e9riens qu'il a ma\u00eetris\u00e9s. Kael souffre de la pression constante de devoir exceller dans ses performances pour maintenir l'honneur de sa famille. Son d\u00e9sir le plus profond est de trouver un \u00e9quilibre entre sa passion pour l'acrobatie et une vie plus paisible.", "town": "Aeris", "kingdom": "Ventara", "world": "Terra Bestia"}, "Elara": {"name": "Elara", "description": "Elara est une marchande a\u00e9rienne aux longs cheveux noirs et aux yeux verts. Elle porte des v\u00eatements color\u00e9s et des bijoux faits de plumes de Zephyrion. Elara souffre de la solitude due \u00e0 ses nombreux voyages. Son d\u00e9sir le plus profond est de d\u00e9couvrir de nouveaux horizons et de tisser des liens durables avec d'autres cultures des Titans.", "town": "Aeris", "kingdom": "Ventara", "world": "Terra Bestia"}}}, "Ventis": {"name": "Ventis", "description": "Ventis est nich\u00e9e dans une vall\u00e9e verdoyante sur le dos de Zephyrion, bord\u00e9e de for\u00eats luxuriantes. La ville abrite le Temple du Vent, un lieu sacr\u00e9 o\u00f9 les pr\u00eatres invoquent les vents pour guider le Titan. Ventis est \u00e9galement connue pour ses march\u00e9s flottants, o\u00f9 les commer\u00e7ants vendent des objets rares et exotiques collect\u00e9s lors des voyages du Titan.", "kingdom": "Ventara", "world": "Terra Bestia", "npcs": {"Lyra Ventara": {"name": "Lyra Ventara", "description": "Lyra est une jeune pr\u00eatresse du Temple du Vent, connue pour ses longs cheveux argent\u00e9s et ses yeux bleus per\u00e7ants. Elle porte des robes fluides orn\u00e9es de symboles du vent. Lyra souffre de visions proph\u00e9tiques qui la hantent, mais elle d\u00e9sire ardemment comprendre et ma\u00eetriser ces visions pour prot\u00e9ger Ventara.", "town": "Ventis", "kingdom": "Ventara", "world": "Terra Bestia"}, "Kael Aeris": {"name": "Kael Aeris", "description": "Kael est un acrobate a\u00e9rien renomm\u00e9, avec une musculature fine et des tatouages repr\u00e9sentant des plumes sur ses bras. Il porte des v\u00eatements l\u00e9gers et color\u00e9s pour ses performances. Kael souffre d'une peur secr\u00e8te des hauteurs, mais il d\u00e9sire surmonter cette peur pour continuer \u00e0 impressionner les foules et honorer la tradition de Ventara.", "town": "Ventis", "kingdom": "Ventara", "world": "Terra Bestia"}, "Elara Skyweaver": {"name": "Elara Skyweaver", "description": "Elara est une marchande des march\u00e9s flottants, avec des cheveux noirs tress\u00e9s et des yeux verts p\u00e9n\u00e9trants. Elle porte des v\u00eatements pratiques et des bijoux exotiques. Elara souffre de la perte de son fr\u00e8re, disparu lors d'une exp\u00e9dition, et elle d\u00e9sire le retrouver co\u00fbte que co\u00fbte, m\u00eame si cela signifie explorer les confins les plus dangereux de Terra Bestia.", "town": "Ventis", "kingdom": "Ventara", "world": "Terra Bestia"}}}, "Caelum": {"name": "Caelum", "description": "Caelum est perch\u00e9e sur une montagne escarp\u00e9e, offrant une vue imprenable sur les oc\u00e9ans infinis. La ville est le si\u00e8ge de l'Acad\u00e9mie des Vents, o\u00f9 les jeunes A\u00e9riens apprennent \u00e0 ma\u00eetriser les courants a\u00e9riens. Caelum est \u00e9galement le lieu de naissance de la Reine Aelia, et son ch\u00e2teau flottant est un symbole de la puissance et de la sagesse de Ventara.", "kingdom": "Ventara", "world": "Terra Bestia", "npcs": {"Lyra Ventis": {"name": "Lyra Ventis", "description": "Lyra est une jeune A\u00e9rienne aux cheveux argent\u00e9s et aux yeux bleus per\u00e7ants. Elle est une apprentie \u00e0 l'Acad\u00e9mie des Vents, o\u00f9 elle excelle dans la ma\u00eetrise des courants a\u00e9riens. Lyra souffre de la pression constante de devoir prouver sa valeur \u00e0 ses pairs et \u00e0 ses professeurs. Son d\u00e9sir le plus profond est de d\u00e9couvrir un nouveau courant a\u00e9rien qui pourrait r\u00e9volutionner la navigation de Ventara.", "town": "Caelum", "kingdom": "Ventara", "world": "Terra Bestia"}, "Eolan Skyweaver": {"name": "Eolan Skyweaver", "description": "Eolan est un artisan renomm\u00e9 de Caelum, connu pour ses tissages a\u00e9riens complexes et ses cr\u00e9ations de voiles l\u00e9g\u00e8res comme l'air. Il a une apparence \u00e9lanc\u00e9e, avec des cheveux noirs et des yeux verts. Eolan souffre de la perte de sa famille dans un accident de vol, ce qui le hante encore aujourd'hui. Son d\u00e9sir le plus profond est de cr\u00e9er une voile indestructible qui pourrait prot\u00e9ger les A\u00e9riens des dangers des courants a\u00e9riens.", "town": "Caelum", "kingdom": "Ventara", "world": "Terra Bestia"}, "Nimbus Stormrider": {"name": "Nimbus Stormrider", "description": "Nimbus est un chasseur de temp\u00eates, avec une peau tann\u00e9e par le soleil et des cheveux blancs \u00e9bouriff\u00e9s. Il parcourt les cieux \u00e0 la recherche de temp\u00eates rares et puissantes pour en extraire des essences magiques. Nimbus souffre de la solitude de son m\u00e9tier et de la m\u00e9fiance des autres A\u00e9riens envers ses m\u00e9thodes. Son d\u00e9sir le plus profond est de trouver une temp\u00eate l\u00e9gendaire qui pourrait lui offrir une essence capable de gu\u00e9rir toutes les blessures.", "town": "Caelum", "kingdom": "Ventara", "world": "Terra Bestia"}}}, "Terra Bestia": {"name": "Terra Bestia", "description": "Dans ce monde, les villes ne sont pas construites sur la terre ferme, mais sur le dos de cr\u00e9atures colossales appel\u00e9es Titans. Ces b\u00eates massives, couvertes de for\u00eats et de montagnes, parcourent les oc\u00e9ans infinis, offrant un mode de vie nomade et unique aux habitants. Chaque Titan poss\u00e8de sa propre \u00e9cosyst\u00e8me et culture, et les interactions entre les villes sont rares et pr\u00e9cieuses, souvent marqu\u00e9es par des \u00e9changes commerciaux et des alliances strat\u00e9giques.", "kingdom": "Ventara", "world": "Terra Bestia", "npcs": {"Lyra Ventis": {"name": "Lyra Ventis", "description": "Lyra est une jeune acrobate a\u00e9rienne aux cheveux argent\u00e9s et aux yeux bleus per\u00e7ants. Elle porte des v\u00eatements l\u00e9gers et a\u00e9r\u00e9s, adapt\u00e9s \u00e0 ses performances acrobatiques. Lyra souffre de la perte de son fr\u00e8re, disparu lors d'une temp\u00eate a\u00e9rienne. Son d\u00e9sir le plus profond est de le retrouver et de comprendre les myst\u00e8res des courants a\u00e9riens.", "town": "Terra Bestia", "kingdom": "Ventara", "world": "Terra Bestia"}, "Eolan Terra": {"name": "Eolan Terra", "description": "Eolan est un marchand itin\u00e9rant aux cheveux noirs et \u00e0 la peau bronz\u00e9e par le soleil. Il porte des v\u00eatements pratiques et robustes, adapt\u00e9s \u00e0 ses voyages entre les Titans. Eolan souffre de la solitude de sa vie nomade et d\u00e9sire trouver un endroit o\u00f9 il pourrait enfin se sentir chez lui.", "town": "Terra Bestia", "kingdom": "Ventara", "world": "Terra Bestia"}, "Nora Aelia": {"name": "Nora Aelia", "description": "Nora est une chanteuse m\u00e9lodieuse aux cheveux roux et aux yeux verts. Elle porte des robes fluides et color\u00e9es, refl\u00e9tant la culture festive de Ventara. Nora souffre d'une mal\u00e9diction qui l'emp\u00eache de chanter sans provoquer des temp\u00eates. Son d\u00e9sir le plus profond est de briser cette mal\u00e9diction et de pouvoir chanter librement.", "town": "Terra Bestia", "kingdom": "Ventara", "world": "Terra Bestia"}}}, "Ventara": {"name": "Ventara", "description": "Ventara est situ\u00e9 sur le dos de Zephyrion, un Titan ail\u00e9 qui plane au-dessus des oc\u00e9ans. Les habitants, appel\u00e9s les A\u00e9riens, sont des ma\u00eetres du vent et de l'air. Leur dirigeant, la Reine Aelia, est respect\u00e9e pour sa sagesse et son habilet\u00e9 \u00e0 naviguer les courants a\u00e9riens. La culture de Ventara est centr\u00e9e sur la libert\u00e9 et l'exploration, avec des festivals c\u00e9l\u00e8bres pour leurs acrobaties a\u00e9riennes et leurs chants m\u00e9lodieux.", "kingdom": "Ventara", "world": "Terra Bestia", "npcs": {"Lyra Ventis": {"name": "Lyra Ventis", "description": "Lyra est une jeune acrobate a\u00e9rienne aux cheveux argent\u00e9s et aux yeux bleus per\u00e7ants. Elle porte des v\u00eatements l\u00e9gers et a\u00e9riens, souvent orn\u00e9s de plumes. Lyra est connue pour ses performances spectaculaires lors des festivals de Ventara. Elle souffre de la perte de son fr\u00e8re, disparu lors d'une temp\u00eate a\u00e9rienne, et d\u00e9sire plus que tout le retrouver et comprendre ce qui lui est arriv\u00e9.", "town": "Ventara", "kingdom": "Ventara", "world": "Terra Bestia"}, "Eolan Skyweaver": {"name": "Eolan Skyweaver", "description": "Eolan est un tisserand de vent, un artisan capable de manipuler les courants a\u00e9riens pour cr\u00e9er des tissus l\u00e9gers et r\u00e9sistants. Il a une apparence \u00e9lanc\u00e9e, avec des cheveux noirs et des yeux gris. Eolan souffre de la pression constante de devoir innover pour satisfaire les attentes de la Reine Aelia. Son d\u00e9sir le plus profond est de d\u00e9couvrir de nouveaux mat\u00e9riaux et techniques pour r\u00e9volutionner son art.", "town": "Ventara", "kingdom": "Ventara", "world": "Terra Bestia"}, "Nira Whisperwind": {"name": "Nira Whisperwind", "description": "Nira est une chanteuse de vent, capable de contr\u00f4ler les courants a\u00e9riens avec sa voix m\u00e9lodieuse. Elle a une apparence gracieuse, avec des cheveux blonds ondul\u00e9s et des yeux verts. Nira souffre de la solitude, car son don la rend unique et souvent incomprise. Elle d\u00e9sire trouver quelqu'un qui puisse v\u00e9ritablement comprendre et partager sa passion pour la musique et le vent.", "town": "Ventara", "kingdom": "Ventara", "world": "Terra Bestia"}}}}}, "Aquataria": {"name": "Aquataria", "description": "Aquataria se trouve sur le dos de Nautilus, un Titan aquatique qui nage dans les profondeurs des oc\u00e9ans. Les Aquatariens sont des experts en navigation sous-marine et en p\u00eache. Leur roi, le Roi Marinus, est connu pour sa bravoure et sa capacit\u00e9 \u00e0 communiquer avec les cr\u00e9atures marines. La culture d'Aquataria est riche en mythes et l\u00e9gendes maritimes, et leurs c\u00e9r\u00e9monies incluent souvent des offrandes aux esprits de l'oc\u00e9an.", "world": "Terra Bestia", "towns": {"\u00c9cume": {"name": "\u00c9cume", "description": "Situ\u00e9e sur le dos de Nautilus, \u00c9cume est une ville portuaire entour\u00e9e de r\u00e9cifs coralliens luminescents. Le phare de la Sir\u00e8ne, un lieu important, guide les marins \u00e0 travers les eaux sombres. \u00c9cume a \u00e9t\u00e9 fond\u00e9e par des pirates repentis qui ont d\u00e9cid\u00e9 de prot\u00e9ger les mers au lieu de les piller.", "kingdom": "Aquataria", "world": "Terra Bestia", "npcs": {"Lyra Corail": {"name": "Lyra Corail", "description": "Lyra est une jeune p\u00eacheuse aux cheveux bleus et aux yeux per\u00e7ants. Elle est connue pour sa capacit\u00e9 \u00e0 naviguer les courants les plus dangereux. Lyra souffre de la perte de son fr\u00e8re, emport\u00e9 par une temp\u00eate, et d\u00e9sire plus que tout retrouver son corps pour lui offrir une s\u00e9pulture digne.", "town": "\u00c9cume", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Orion Marinus": {"name": "Orion Marinus", "description": "Orion est un guerrier aquatique, fils du Roi Marinus. Il porte une armure faite d'\u00e9cailles de poisson et manie un trident magique. Orion est tourment\u00e9 par la proph\u00e9tie qui annonce sa mort en mer et r\u00eave de prouver sa valeur en d\u00e9couvrant un nouveau Titan pour Aquataria.", "town": "\u00c9cume", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Elara la Sir\u00e8ne": {"name": "Elara la Sir\u00e8ne", "description": "Elara est une ancienne pirate devenue gardienne du phare de la Sir\u00e8ne. Elle a des tatouages de vagues sur ses bras et porte toujours un pendentif en forme de coquillage. Elara est hant\u00e9e par son pass\u00e9 de pillage et aspire \u00e0 racheter ses fautes en prot\u00e9geant les marins et en guidant les \u00e2mes perdues en mer.", "town": "\u00c9cume", "kingdom": "Aquataria", "world": "Terra Bestia"}}}, "Abyssale": {"name": "Abyssale", "description": "Nich\u00e9e dans une vall\u00e9e sous-marine, Abyssale est connue pour ses grottes cristallines et ses jardins de plantes bioluminescentes. Le temple des Profondeurs, un lieu sacr\u00e9, abrite des reliques anciennes des esprits de l'oc\u00e9an. Abyssale a une histoire riche en myst\u00e8res, avec des l\u00e9gendes de tr\u00e9sors cach\u00e9s et de cr\u00e9atures mythiques.", "kingdom": "Aquataria", "world": "Terra Bestia", "npcs": {"Lyra Coralys": {"name": "Lyra Coralys", "description": "Lyra est une jeune femme aux cheveux bleus ondul\u00e9s et aux yeux vert \u00e9meraude. Elle est une pr\u00eatresse des Profondeurs, charg\u00e9e de maintenir l'\u00e9quilibre entre les esprits de l'oc\u00e9an et les habitants d'Abyssale. Lyra souffre de visions troublantes des esprits en col\u00e8re, ce qui la pousse \u00e0 chercher des r\u00e9ponses dans les anciennes reliques du temple. Son d\u00e9sir le plus profond est de r\u00e9tablir la paix entre les esprits et son peuple, tout en d\u00e9couvrant les secrets cach\u00e9s des tr\u00e9sors l\u00e9gendaires.", "town": "Abyssale", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Orion Marinus": {"name": "Orion Marinus", "description": "Orion est un homme robuste avec une barbe noire et des yeux per\u00e7ants. Il est le capitaine de la garde royale d'Aquataria, responsable de la protection du Roi Marinus et de la s\u00e9curit\u00e9 du royaume. Orion est hant\u00e9 par la perte de son fr\u00e8re lors d'une exp\u00e9dition sous-marine, ce qui le pousse \u00e0 devenir un guerrier implacable. Son d\u00e9sir le plus profond est de retrouver son fr\u00e8re disparu et de d\u00e9couvrir les myst\u00e8res des profondeurs oc\u00e9aniques.", "town": "Abyssale", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Nerida Sirena": {"name": "Nerida Sirena", "description": "Nerida est une femme \u00e9l\u00e9gante avec des cheveux argent\u00e9s et des yeux bleus profonds. Elle est une chanteuse de sir\u00e8ne, capable de communiquer avec les cr\u00e9atures marines gr\u00e2ce \u00e0 ses m\u00e9lodies envo\u00fbtantes. Nerida souffre de la solitude, car son don la s\u00e9pare des autres habitants d'Abyssale. Son d\u00e9sir le plus profond est de trouver un compagnon qui comprend et partage son amour pour la musique et les cr\u00e9atures de l'oc\u00e9an, tout en explorant les myst\u00e8res des grottes cristallines et des jardins bioluminescents.", "town": "Abyssale", "kingdom": "Aquataria", "world": "Terra Bestia"}}}, "Mar\u00e9e": {"name": "Mar\u00e9e", "description": "Perch\u00e9e sur une colline surplombant l'oc\u00e9an, Mar\u00e9e est c\u00e9l\u00e8bre pour ses march\u00e9s flottants et ses festivals de p\u00eache. La tour de la Vigie, un lieu important, offre une vue imprenable sur les environs. Mar\u00e9e a \u00e9t\u00e9 fond\u00e9e par des explorateurs qui ont d\u00e9couvert des techniques avanc\u00e9es de p\u00eache et de navigation.", "kingdom": "Aquataria", "world": "Terra Bestia", "npcs": {"Lyra Corail": {"name": "Lyra Corail", "description": "Lyra est une jeune p\u00eacheuse aux cheveux bleus et aux yeux per\u00e7ants. Elle est connue pour sa capacit\u00e9 \u00e0 naviguer les courants les plus dangereux. Lyra souffre de la perte de son fr\u00e8re, emport\u00e9 par une temp\u00eate, et d\u00e9sire plus que tout retrouver son corps pour lui offrir une s\u00e9pulture digne.", "town": "Mar\u00e9e", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Orion Nautilus": {"name": "Orion Nautilus", "description": "Orion est un guerrier aquatique aux \u00e9cailles brillantes et aux branchies visibles. Il est le garde personnel du Roi Marinus. Orion souffre de la solitude impos\u00e9e par son r\u00f4le et d\u00e9sire ardemment trouver une compagne qui comprendrait sa vie d\u00e9di\u00e9e \u00e0 la protection du royaume.", "town": "Mar\u00e9e", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Elara Mar\u00e9e": {"name": "Elara Mar\u00e9e", "description": "Elara est une marchande aux cheveux argent\u00e9s et aux yeux bleus profonds. Elle est sp\u00e9cialis\u00e9e dans le commerce des perles rares. Elara souffre de la pression constante de maintenir son commerce florissant et d\u00e9sire secr\u00e8tement explorer les myst\u00e8res des profondeurs oc\u00e9aniques, loin des responsabilit\u00e9s de son m\u00e9tier.", "town": "Mar\u00e9e", "kingdom": "Aquataria", "world": "Terra Bestia"}}}, "Terra Bestia": {"name": "Terra Bestia", "description": "Dans ce monde, les villes ne sont pas construites sur la terre ferme, mais sur le dos de cr\u00e9atures colossales appel\u00e9es Titans. Ces b\u00eates massives, couvertes de for\u00eats et de montagnes, parcourent les oc\u00e9ans infinis, offrant un mode de vie nomade et unique aux habitants. Chaque Titan poss\u00e8de sa propre \u00e9cosyst\u00e8me et culture, et les interactions entre les villes sont rares et pr\u00e9cieuses, souvent marqu\u00e9es par des \u00e9changes commerciaux et des alliances strat\u00e9giques.", "kingdom": "Aquataria", "world": "Terra Bestia", "npcs": {"Lyra Coralys": {"name": "Lyra Coralys", "description": "Lyra est une jeune p\u00eacheuse aux cheveux bleus et aux yeux per\u00e7ants. Elle est connue pour sa capacit\u00e9 \u00e0 naviguer les courants les plus dangereux et \u00e0 rapporter les prises les plus rares. Lyra souffre de la perte de son fr\u00e8re, emport\u00e9 par une temp\u00eate marine, et d\u00e9sire plus que tout retrouver son corps pour lui offrir une s\u00e9pulture digne.", "town": "Terra Bestia", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Orion Marinus": {"name": "Orion Marinus", "description": "Orion est un guerrier aquatique, fils du Roi Marinus. Il porte une armure faite de coquillages et de coraux, et ses cheveux sont orn\u00e9s de perles. Orion souffre de la pression constante de devoir prouver sa valeur en tant que futur roi et d\u00e9sire ardemment d\u00e9couvrir un moyen de communiquer avec les Titans pour assurer la prosp\u00e9rit\u00e9 d'Aquataria.", "town": "Terra Bestia", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Elara Nautilys": {"name": "Elara Nautilys", "description": "Elara est une pr\u00eatresse des esprits de l'oc\u00e9an, v\u00eatue de robes fluides et de bijoux en forme de vagues. Elle est respect\u00e9e pour ses rituels et ses chants qui apaisent les cr\u00e9atures marines. Elara souffre de visions troublantes d'un futur sombre pour Aquataria et d\u00e9sire trouver un ancien artefact l\u00e9gendaire pour prot\u00e9ger son peuple.", "town": "Terra Bestia", "kingdom": "Aquataria", "world": "Terra Bestia"}}}, "Aquataria": {"name": "Aquataria", "description": "Aquataria se trouve sur le dos de Nautilus, un Titan aquatique qui nage dans les profondeurs des oc\u00e9ans. Les Aquatariens sont des experts en navigation sous-marine et en p\u00eache. Leur roi, le Roi Marinus, est connu pour sa bravoure et sa capacit\u00e9 \u00e0 communiquer avec les cr\u00e9atures marines. La culture d'Aquataria est riche en mythes et l\u00e9gendes maritimes, et leurs c\u00e9r\u00e9monies incluent souvent des offrandes aux esprits de l'oc\u00e9an.", "kingdom": "Aquataria", "world": "Terra Bestia", "npcs": {"Lyra Coralys": {"name": "Lyra Coralys", "description": "Lyra est une jeune p\u00eacheuse aux cheveux bleus et aux yeux per\u00e7ants. Elle est connue pour sa capacit\u00e9 \u00e0 naviguer les courants les plus dangereux et \u00e0 rapporter les prises les plus rares. Lyra souffre de la perte de son fr\u00e8re, emport\u00e9 par une temp\u00eate marine, et d\u00e9sire plus que tout retrouver son corps pour lui offrir une s\u00e9pulture digne.", "town": "Aquataria", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Orion Marinus": {"name": "Orion Marinus", "description": "Orion est le fils du Roi Marinus, un jeune prince aux cheveux noirs et \u00e0 la peau bronz\u00e9e par le soleil marin. Il est form\u00e9 pour succ\u00e9der \u00e0 son p\u00e8re et poss\u00e8de le don de communiquer avec les cr\u00e9atures marines. Orion est tourment\u00e9 par la pression de ses responsabilit\u00e9s royales et r\u00eave secr\u00e8tement de partir \u00e0 l'aventure pour d\u00e9couvrir d'autres Titans et leurs cultures.", "town": "Aquataria", "kingdom": "Aquataria", "world": "Terra Bestia"}, "Nerissa Abysse": {"name": "Nerissa Abysse", "description": "Nerissa est une pr\u00eatresse des esprits de l'oc\u00e9an, avec des cheveux argent\u00e9s et des yeux d'un bleu profond. Elle passe ses journ\u00e9es \u00e0 interpr\u00e9ter les signes marins et \u00e0 guider les c\u00e9r\u00e9monies aquatiques. Nerissa est hant\u00e9e par des visions de catastrophes futures et d\u00e9sire ardemment trouver un moyen de prot\u00e9ger son peuple des dangers \u00e0 venir.", "town": "Aquataria", "kingdom": "Aquataria", "world": "Terra Bestia"}}}}}, "Terrafirma": {"name": "Terrafirma", "description": "Terrafirma est b\u00e2ti sur le dos de G\u00e9antus, un Titan terrestre qui marche lentement mais s\u00fbrement \u00e0 travers les oc\u00e9ans. Les Terrafirmiens sont des agriculteurs et des artisans habiles. Leur dirigeant, le Chef Tellus, est respect\u00e9 pour sa force et sa d\u00e9termination. La culture de Terrafirma est ax\u00e9e sur la terre et la communaut\u00e9, avec des festivals c\u00e9l\u00e9brant les r\u00e9coltes et les traditions artisanales.", "world": "Terra Bestia", "towns": {"Lumina": {"name": "Lumina", "description": "Lumina est situ\u00e9e sur le dos de G\u00e9antus, dans une r\u00e9gion de collines verdoyantes et de lacs cristallins. La ville est connue pour sa grande biblioth\u00e8que, la Tour des Sages, et son march\u00e9 flottant sur le Lac des \u00c9toiles. Lumina a \u00e9t\u00e9 fond\u00e9e par des \u00e9rudits en qu\u00eate de savoir, et elle est devenue un centre de connaissance et de diplomatie dans le royaume de Terrafirma.", "kingdom": "Terrafirma", "world": "Terra Bestia", "npcs": {"Elara": {"name": "Elara", "description": "Elara est une jeune \u00e9rudite aux cheveux argent\u00e9s et aux yeux bleus per\u00e7ants. Elle passe ses journ\u00e9es \u00e0 la Tour des Sages, \u00e9tudiant les anciens textes et les myst\u00e8res des Titans. Elle souffre de la solitude et du manque de reconnaissance pour ses d\u00e9couvertes. Son d\u00e9sir le plus profond est de d\u00e9couvrir un moyen de communiquer avec les Titans pour comprendre leur v\u00e9ritable nature.", "town": "Lumina", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Thoren": {"name": "Thoren", "description": "Thoren est un forgeron robuste avec une barbe \u00e9paisse et des bras muscl\u00e9s. Il travaille dans les forges de Lumina, cr\u00e9ant des outils et des armes pour les habitants. Il souffre de la perte de sa famille dans un accident maritime et cherche \u00e0 honorer leur m\u00e9moire. Son d\u00e9sir le plus profond est de cr\u00e9er une arme l\u00e9gendaire qui pourrait prot\u00e9ger sa communaut\u00e9 contre les dangers des oc\u00e9ans.", "town": "Lumina", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Lyra": {"name": "Lyra", "description": "Lyra est une marchande au visage doux et aux cheveux noirs tress\u00e9s. Elle navigue sur le march\u00e9 flottant du Lac des \u00c9toiles, \u00e9changeant des biens et des histoires avec les voyageurs. Elle souffre de la peur de l'inconnu et des dangers des oc\u00e9ans. Son d\u00e9sir le plus profond est de d\u00e9couvrir de nouvelles terres et de nouer des alliances avec d'autres villes pour assurer la prosp\u00e9rit\u00e9 de Lumina.", "town": "Lumina", "kingdom": "Terrafirma", "world": "Terra Bestia"}}}, "Ferroforge": {"name": "Ferroforge", "description": "Ferroforge se trouve dans une r\u00e9gion montagneuse et riche en minerais sur le dos de G\u00e9antus. La ville est c\u00e9l\u00e8bre pour ses forges et ses ateliers de m\u00e9tallurgie, o\u00f9 les meilleurs artisans du royaume cr\u00e9ent des outils et des armes de haute qualit\u00e9. L'histoire de Ferroforge est marqu\u00e9e par des d\u00e9couvertes technologiques qui ont transform\u00e9 la vie des Terrafirmiens.", "kingdom": "Terrafirma", "world": "Terra Bestia", "npcs": {"Th\u00e9o Ferro": {"name": "Th\u00e9o Ferro", "description": "Th\u00e9o est un forgeron robuste aux bras muscl\u00e9s et au visage marqu\u00e9 par des ann\u00e9es de travail pr\u00e8s des flammes. Il porte toujours un tablier de cuir et un marteau \u00e0 sa ceinture. Th\u00e9o souffre de la perte de son fr\u00e8re, disparu lors d'une exp\u00e9dition mini\u00e8re. Son d\u00e9sir le plus profond est de retrouver son fr\u00e8re et de d\u00e9couvrir les secrets des minerais rares de G\u00e9antus.", "town": "Ferroforge", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Lyra Tellus": {"name": "Lyra Tellus", "description": "Lyra est une jeune agricultrice aux cheveux tress\u00e9s et aux mains calleuses. Elle porte des v\u00eatements simples mais robustes, adapt\u00e9s au travail des champs. Lyra souffre de la pression constante de devoir succ\u00e9der \u00e0 son p\u00e8re, le Chef Tellus. Son d\u00e9sir le plus profond est de moderniser l'agriculture de Terrafirma tout en pr\u00e9servant les traditions ancestrales.", "town": "Ferroforge", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Elara Ventus": {"name": "Elara Ventus", "description": "Elara est une marchande itin\u00e9rante aux yeux per\u00e7ants et aux v\u00eatements color\u00e9s, orn\u00e9s de bijoux exotiques. Elle voyage entre les diff\u00e9rentes villes sur les Titans, \u00e9changeant des biens et des informations. Elara souffre de la solitude de sa vie nomade. Son d\u00e9sir le plus profond est de trouver un endroit o\u00f9 elle pourrait enfin se sentir chez elle, tout en continuant \u00e0 explorer les myst\u00e8res de Terra Bestia.", "town": "Ferroforge", "kingdom": "Terrafirma", "world": "Terra Bestia"}}}, "Verdantia": {"name": "Verdantia", "description": "Verdantia est nich\u00e9e dans une vall\u00e9e luxuriante et fertile sur le dos de G\u00e9antus. La ville est r\u00e9put\u00e9e pour ses vastes champs de cultures et ses jardins botaniques, o\u00f9 poussent des plantes rares et m\u00e9dicinales. Verdantia a \u00e9t\u00e9 fond\u00e9e par des agriculteurs visionnaires, et elle est devenue le centre agricole du royaume, fournissant des ressources vitales \u00e0 toute la communaut\u00e9.", "kingdom": "Terrafirma", "world": "Terra Bestia", "npcs": {"Elara": {"name": "Elara", "description": "Elara est une jeune botaniste aux cheveux roux et aux yeux verts per\u00e7ants. Elle passe ses journ\u00e9es \u00e0 explorer les jardins botaniques de Verdantia, \u00e9tudiant les plantes rares et leurs propri\u00e9t\u00e9s m\u00e9dicinales. Elara souffre de la perte de sa m\u00e8re, une herboriste renomm\u00e9e, et d\u00e9sire plus que tout d\u00e9couvrir un rem\u00e8de miracle pour gu\u00e9rir les maladies qui touchent sa communaut\u00e9.", "town": "Verdantia", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Thoren": {"name": "Thoren", "description": "Thoren est un forgeron robuste avec une barbe \u00e9paisse et des bras muscl\u00e9s. Il travaille dans la forge de Verdantia, cr\u00e9ant des outils agricoles et des armes pour prot\u00e9ger la ville. Thoren souffre de la solitude, ayant perdu sa famille dans un accident, et d\u00e9sire ardemment trouver un sens \u00e0 sa vie en prot\u00e9geant les autres et en honorant la m\u00e9moire de ses proches.", "town": "Verdantia", "kingdom": "Terrafirma", "world": "Terra Bestia"}, "Lyra": {"name": "Lyra", "description": "Lyra est une chanteuse aux longs cheveux noirs et \u00e0 la voix envo\u00fbtante. Elle parcourt les rues de Verdantia, chantant des ballades qui racontent les histoires et les l\u00e9gendes de Terrafirma. Lyra souffre d'un manque de reconnaissance pour son art et d\u00e9sire plus que tout \u00eatre reconnue comme la voix de son peuple, capable de transmettre les \u00e9motions et les traditions de sa communaut\u00e9 \u00e0 travers ses chansons.", "town": "Verdantia", "kingdom": "Terrafirma", "world": "Terra Bestia"}}}}}}, "start": "Vous \u00eates Kael, un acrobate a\u00e9rien renomm\u00e9 aux muscles fins et \u00e0 la peau tann\u00e9e par le soleil. Vos tatouages repr\u00e9sentent les courants a\u00e9riens que vous avez ma\u00eetris\u00e9s au fil des ans. Vous vous trouvez \u00e0 Aeris, perch\u00e9e sur les hauteurs de Zephyrion, entour\u00e9e de nuages et de montagnes flottantes. Autour de vous, le Grand Observatoire se dresse majestueusement, et les astronomes s'affairent \u00e0 \u00e9tudier les \u00e9toiles et les constellations. Vous sentez la brise fra\u00eeche sur votre visage, tandis que les murmures des habitants et les chants m\u00e9lodieux des festivals r\u00e9sonnent au loin. Les ruines c\u00e9lestes, d\u00e9couvertes il y a des si\u00e8cles, ajoutent une aura de myst\u00e8re \u00e0 cette ville c\u00e9leste."}
helper.py ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from dotenv import load_dotenv, find_dotenv
3
+ import json
4
+ from mistralai import Mistral
5
+
6
+ def load_env():
7
+ _ = load_dotenv(find_dotenv())
8
+
9
+ def load_world(filename):
10
+ with open(filename, 'r') as f:
11
+ return json.load(f)
12
+
13
+ def save_world(world):
14
+ with open(f'{world["name"]}.json', 'w') as f:
15
+ json.dump(world, f)
16
+
17
+ def get_mistral_api_key():
18
+ load_env()
19
+ mistral_api_key = os.getenv("MISTRAL_API_KEY")
20
+ return mistral_api_key
main.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+
4
+ from helper import load_world, save_world
5
+ from mistralai import Mistral
6
+ from helper import get_mistral_api_key, load_env
7
+
8
+
9
+
10
+ demo = None
11
+ client = Mistral(get_mistral_api_key())
12
+ world = load_world("Terra Bestia.json")
13
+ kingdom = world['kingdoms']['Ventara']
14
+ town = kingdom['towns']['Aeris']
15
+ character = town['npcs']['Kael']
16
+
17
+
18
+ def start_game(main_loop, share=False):
19
+ global demo
20
+ if demo is not None:
21
+ demo.close()
22
+
23
+ demo = gr.ChatInterface(
24
+ main_loop,
25
+ chatbot=gr.Chatbot(height=250, placeholder="Type 'start game' to begin"),
26
+ textbox=gr.Textbox(placeholder="What do you do next?", container=False, scale=7),
27
+ title="AI RPG",
28
+ # description="Ask Yes Man any question",
29
+ theme="soft",
30
+ examples=["Look around", "Continue the story"],
31
+ cache_examples=False,
32
+ retry_btn="Retry",
33
+ undo_btn="Undo",
34
+ clear_btn="Clear",
35
+ )
36
+ demo.launch(share=share, server_name="0.0.0.0")
37
+
38
+ def run_action(message, history, game_state):
39
+
40
+ if(message == 'start game'):
41
+ return game_state['start']
42
+
43
+ system_prompt = """
44
+ Vous êtes un maître du jeu IA. Votre travail consiste à écrire ce qui se passe ensuite dans le jeu d'aventure d'un joueur.\
45
+ Instructions : \
46
+ Vous ne devez écrire qu'une à trois phrases en réponse. \
47
+ Écrivez toujours à la deuxième personne du présent. \
48
+ Ex. (Vous regardez vers le nord et voyez...)
49
+ """
50
+
51
+ world_info = f"""
52
+ World: {game_state['world']}
53
+ Kingdom: {game_state['kingdom']}
54
+ Town: {game_state['town']}
55
+ Your Character: {game_state['character']}"""
56
+
57
+ messages = [
58
+ {"role": "system", "content": system_prompt},
59
+ {"role": "user", "content": world_info}
60
+ ]
61
+ for action in history:
62
+ messages.append({"role": "assistant", "content": action[0]})
63
+ messages.append({"role": "user", "content": action[1]})
64
+
65
+ messages.append({"role": "user", "content": message})
66
+ model_output = client.chat.complete(
67
+ model = "mistral-large-latest",
68
+ messages = messages
69
+ )
70
+
71
+ result = model_output.choices[0].message.content
72
+ return result
73
+
74
+ game_state = {
75
+ "world": world['description'],
76
+ "kingdom": kingdom['description'],
77
+ "town": town['description'],
78
+ "character": character['description'],
79
+ "start": world['start']
80
+ }
81
+
82
+ def main_loop(message, history):
83
+ return run_action(message, history, game_state)
84
+
85
+
86
+ start_game(main_loop, True)
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio==4.44.1
2
+ mistralai==1.2.5
3
+ python-dotenv==1.0.1