Clean the repo

This commit is contained in:
Shadow15510 2021-08-14 23:27:05 +02:00
parent a065b0f859
commit 79b76b0ea3
10 changed files with 0 additions and 634 deletions

View File

@ -1,245 +0,0 @@
from random import randint
from mapset import *
class Screen:
def __init__(self, screen_width=21, screen_height=6):
self._data = [[" " for _ in range(screen_width)] for _ in range(screen_height)]
self.width = screen_width
self.height = screen_height
def set_cell(self, x, y, value):
self._data[y][x] = value
def get_cell(self, x, y):
return self._data[y][x]
def load(self, value):
self._data = [[" " for _ in range(self.width)] for _ in range(self.height)]
for y, line in enumerate(value.split("\n")[1:]):
for x, char in enumerate(line):
self._data[y][x] = char
def display(self):
string = ""
for line in self._data:
print("".join(line))
return input("> ")
def display_text(self, string, final_input=True):
for paragraph in text_formater(string):
if paragraph:
self.clear()
print(paragraph)
if final_input: input()
def clear(self):
print("\n" * (self.height))
class Asci:
def __init__(self, stat="0.100.1.1", opus=1):
# Load stats
stat = [int(i) for i in stat.split(".")]
self.xp = stat[0]
self.pv = stat[1]
self.current_map = stat[2]
self.outdoor = stat[3]
# Opus loading
load_opus(opus)
# Initialize player's position
self.x = 10
self.y = 5
# Misc initialisation
self.screen = Screen()
self.end = event.end
def _new_map(self):
self.x = 10
self.y = 5
self.current_map = randint(1, 7)
def _cell_test(self, direction):
# Left
if direction == 1:
if self.x - 1 < 0: return -1
else: cell = self.screen.get_cell(self.x - 1, self.y)
# Right
if direction == 3:
if self.x + 1 >= 21: return -1
else: cell = self.screen.get_cell(self.x + 1, self.y)
# Up
if direction == 5:
if self.y - 1 < 0: return -1
else: cell = self.screen.get_cell(self.x, self.y - 1)
# Down
if direction == 2:
if self.y + 1 >= 6: return -1
else: cell = self.screen.get_cell(self.x, self.y + 1)
cell_patterns = (" @", "^", "*", "$")
for index, pattern in enumerate(cell_patterns):
if cell in pattern: return index + 1
return 0
def _keyboard_input(self, key):
# Left
if key == 1:
cell_test = self._cell_test(1)
if cell_test == 1: self.x -= 1
# Right
if key == 3:
cell_test = self._cell_test(3)
if cell_test == 1: self.x += 1
# Up
if key == 5:
cell_test = self._cell_test(5)
if cell_test == 1: self.y -= 1
# Down
if key == 2:
cell_test = self._cell_test(2)
if cell_test == 1: self.y += 1
# Stat
if key == 8:
places = ("Palais", "Thyel", "Medecins", "Foret", "Bibliotheque", "Plage", "Village", "Bois")
print("* * Statistiques * *\nExperience .....: {0}\nPoints de vie ..: {1}\nQuartier actuel :\n... {2} ({3})\n* * * * ".format(self.xp, self.pv, places[self.current_map - 1], self.current_map))
input()
# Teleportation
if key == 15510 and self.xp > 28:
self.screen.clear()
qrt = convert(input("Numero du quartier :\n> "))
if 0 < qrt < 9:
self.current_map = qrt
self.x = 10
self.y = 5
# Quit
if key == 9:
stat = (self.xp, self.pv, self.current_map, self.outdoor)
self.screen.clear()
print("Pour reprendre la\npartie, entrez :\nasci('{}')".format('.'.join([str(i) for i in stat])))
# Interaction with map
if key in (1, 2, 3, 5):
# Exit the map
if cell_test < 0:
if self.outdoor:
self._new_map()
else:
self.outdoor = 1
self.x = 10
self.y = 5
# Door
elif cell_test == 2:
self.outdoor = 0
self.x = 10
self.y = 5
# PnJ
elif cell_test == 3:
self._dialogue()
# Fight
elif cell_test == 4:
if self._fight():
self.xp = event.get_interaction(self.xp, self.current_map)
self.screen.display_text("Vous avez vaincu votre adversaire !")
else:
stat = (self.xp, 100, self.current_map, self.outdoor)
self.screen.display_text("Vous avez perdu... Code de la dernière sauvegarde :\n'{}'".format('.'.join([str(i) for i in stat])), False)
def _dialogue(self):
xp, pv, text = event.get_dialogue(self.xp, self.pv, self.current_map, self.outdoor)
self.xp += xp
self.pv += pv
self.screen.display_text(text)
def _fight(self):
enemy_pv = randint(50, 150)
enemy_weapon = randint(10, 50)
self.screen.clear()
player_weapon = input("Code de l'arme :\n> ")
player_weapon = convert(player_weapon)
if player_weapon == 0:
self.screen.display_text("Vous avez abandonne le combat.")
return
while self.pv > 0 and enemy_pv > 0:
player_pa = player_weapon + randint(1, 25)
enemy_pa = enemy_weapon + randint(1, 25)
if player_pa > enemy_pa: enemy_pv -= player_pa
else: self.pv -= enemy_pa
return self.pv > 0
def mainloop(self):
key = key_buffer = 0
while key != 9 and self.pv > 0 and self.xp < self.end:
self.screen.load(get_map(self.current_map, self.outdoor))
self.screen.set_cell(self.x, self.y, "@")
key = convert(self.screen.display())
if not key: key = key_buffer
else: key_buffer = key
self._keyboard_input(key)
def convert(n):
try: return int(n)
except: return 0
def load_opus(opus):
if opus == 1:
import event_1 as e
elif opus == 2:
import event_2 as e
elif opus == 3:
import event_3 as e
global event
event = e
def text_formater(string, screen_width=21, screen_height=6):
def line_formater(string, screen_width):
if len(string) <= screen_width: return string
stop_index = screen_width
while stop_index > 0 and not string[stop_index].isspace(): stop_index -= 1
if not stop_index: stop_index = screen_width
return string[:stop_index] + "\n" + line_formater(string[stop_index + 1:], screen_width)
def paragraph_formater(lines, screen_height):
if len(lines) < screen_height: return "\n".join(lines)
return "\n".join(lines[:screen_height]) + "\n\n" + paragraph_formater(lines[screen_height:], screen_height)
lines = line_formater(string, screen_width).split("\n")
return paragraph_formater(lines, screen_height).split("\n\n")
def enumerate(subscriptable):
return [(i, subscriptable[i]) for i in range(len(subscriptable))]

View File

@ -1,107 +0,0 @@
end = 30
def get_interaction(xp, current_map):
if current_map == 4:
if xp in (7, 27): xp += 1
return xp
def get_dialogue(xp, pv, current_map, outdoor):
xp_str = str(xp)
# Palais
if not outdoor and current_map == 1:
dialogue = {
"0": [2, 0, "La ville d'Asci est divisee en quartiers. Chaque quatier est separe des autres par des distances inimaginables ! Une grande part d'aleatoire regit ce monde... et seuls quelques inities peuvent passer outre."],
"2": [0, 0, "J'ai parle de toi a Thyel, un ami. Il t'attends chez lui, tu reconnaitra la maison : il y a un grand arbre plante sur la droite."],
"9": [2, 0, "Ah, te voila enfin ! Bravo pour ton d'arme ! En guise de reconnaissance voici une epee de mon armurerie personnelle. Elle repond au code 25."],
"11": [1, 0, "Maintenant que tu as fait tes preuves, j'ai un service a te demander... J'ai un long voyage a faire, avec toutes les perturbations aleatoires, j'ai peur de ne pas arriver a temps, aussi j'aimerai connaitre le secret de la teleportation. Je compte sur toi !"],
"12": [1, 50, "Bois, cela te donnera des forces !"],
"13": [0, 0, "La bibliotheque regorge d'informations."],
"17": [2, 0, "Oui, c'est vrai, Thyel etait bien avec moi hier soir, et nous n'avons pas quitte le palais."],
"19": [0, 0, "Continues tes recherches, tu avances bien. As-tu ete voir l'ancien archiviste ?"],
"29": [1, 0, "Ah mais tu es doue ! Merci jeune homme ! Je te garde a mon service. De ce fait, voici ta nouvelle epee [>50]."],
"base": [0, 0, "Bonjour, je suis le Roi d'Asci."]
}
if xp_str in dialogue: return dialogue[xp_str]
else: return dialogue["base"]
# Thyel
elif not outdoor and current_map == 2:
dialogue = {
"<2": [0, 0, "Hey ! Je suis Thyel, ami du Roi. Bienvenue dans Asci !"],
"2": [3, 0, "Ah, te voila ! Tu verras, Asci est une ville speciale. Les quartiers ne sont pas les uns a cote des autres. Ils sont relies entre eux par des ponts aleatoires. Quand tu quittes un quartier, tu te retrouves aleatoirement dans un autre. >"],
"5": [1, 0, "On murmure qu'il est possible d'echapper a cet aleatoire... >"],
"6": [1, 0, "Bon, assez parle, il est temps de t'equiper un minimum ! Tiens, prend cette dague, [>10] pour l'utiliser. >"],
"7": [0, 0, "Des maraudeurs s'en prennent aux visiteurs dans la foret. Reviens me voir apres."],
"8+pv<100": [1, 25, "Ah mais tu es blesse ! Bon, je t'ai panse comme j'ai pu, mais si tu as besoin, il y a des medecins dans un quartier. >"],
"8": [1, 0, "Meme pas blesse ! Impressionnant ! >"],
"9": [0, 0, "Je viens de recevoir un courrier du Roi : il t'attend au palais. Bon courage pour le trajet !"],
"15": [2, 0, "HEIN ?! Je ne savais meme pas que la bibliotheque avait un tel ouvrage ! Quelqu'un a usurpe mon nom ! >"],
"17": [0, 0, "Le Roi te confirmera que j'etais avec lui tout hier soir."],
"base": [0, 0, "Hey, comment vas-tu ?"]
}
if xp < 2: return dialogue["<2"]
elif xp == 8:
if pv < 100: return dialogue["8+pv<100"]
else: return dialogue["8"]
elif xp_str in dialogue: return dialogue[xp_str]
else: return dialogue["base"]
# Medecins
elif not outdoor and current_map == 3:
dialogue = {
"pv<100": [0, 100, "Quelle idee de tuer quelqu'un !? Regarde tu t'es blesse !"],
"pv>=100": [0, 0, "Tu es en pleine forme !"]
}
if pv < 100: return dialogue["pv<100"]
else: return dialogue["pv>=100"]
# Bibliothèque
elif not outdoor and current_map == 5:
dialogue = {
"13": [1, 0, "Un ouvrage sur la teleportation ? Oui, je dois avoir ça... >"]
"14": [1, 0, "Je ne comprends pas, il devrait etre ici... Le dernier emprunt !? Ces ouvrages ne sortent pas d'ici. J'ai du le reporter la derniere consulatation dans le registre, je vais regarder... C'est Thyel, hier, dans la soirée."],
"base": [0, 0, "Bonjour et bienvenue dans la bibliotheque d'Asci."]
}
if xp_str in dialogue: return dialogue[xp_str]
else: return dialogue["base"]
# Plage
elif current_map == 6:
dialogue = {
"19": [6, 0, "L'ancien archiviste, oui c'est moi... J'ai été limoge suite a une vieille affaire. Il faut savoir qu'en ce temps-la les livres etaient tous ouverts au public. Puis le bibliothecaire a eu le droit de censurer les livres a sa guise. Voulant proteger le droit a l'information, j'ai cache des livres censures chez moi ou le public pouvait les consulter. De quoi parlaient-ils ? Certains de politique d'autre de sorcelerie. Que sais-je ? Les sujets ne manquaient pas ! He non je ne les ais plus ils ont ete brules. Avant beaucoup savaient se teleporter... Maintenant, quelques voleurs astucieux connaissent la formule et c'est bien tout."],
"base": [0, 0, "Bonjour jeune homme."]
}
if xp_str in dialogue: return dialogue[xp_str]
else: return dialogue["base"]
# Forêt
elif current_map == 4:
dialogue = {
"25": [2, 0, "Envoye par le Roi ! Mais... ca fait grimper la rancon ca !! Le code de teleportation ! Rien que ca ? J'en ai evicere pour moins que ca alors debale un argument credible. Me rendre un service ? Mmm... va donc tuer ce detrousseur la un peu plus bas. Ce malhonnete vole mes clients !"],
"28": [1, 0, "Bien, tu a de l'avenir petit. Le code est 15510 tu le connaissais sans doute deja..."],
"base": [0,0,"Si tu tiens a ta vie plie bagages avant que je ne te les prennes !"]
}
if xp_str in dialogue: return dialogue[xp_str]
else: return dialogue["base"]
else:
return [0, 0, "Hmm ?"]

View File

@ -1,129 +0,0 @@
def Evnt (liste):
xp = liste[0]
carte = liste[1]
if carte == 7 and xp == 34:
xp = 35
if carte == 8 and xp == 38:
xp = 39
input("Vous trouvez une\nlettre sur le mort...\nIl y est ecrit\n'MWVBER NM LAXZE WP\nAEUWZILG. BHQGT'\n")
if carte ==5+liste[2] and xp == 50:
txt = input("Entrez le message\nentier et decode en\nmajuscules :\n")
if txt == "METTEZ LE LIVRE EN SECURITE. THYEL":
xp = 51
return xp
def discussion(lieu,map_no,xp,pv):
if lieu == 1+map_no:
if xp == 30:
return[1,0,"Bonjour. Je vais", "devoir partir en", "province pour des", "affaires urgentes."]
elif xp == 31:
return[1,0,"Pendant mon abcence", "je voudrais que tu", "trouves le voleur de", "ce livre. Son contenu", "est tres sensible."]
elif xp == 32:
return[0,0,"On se reverra des mon", "retour en attendant", "tu peux te confier a", "Thyel, il a ma", "confiance."]
else:
return[0,0,"Le Roi ?", "Il est en", "deplacement..."]
elif lieu == 2+map_no:
if xp == 32:
return[1,0,"Ah, c'est le Roi qui", "t'envoie ! Je suis", "moi-meme plus ou", "moins espion ayant", "beaucoup d'amis..."]
elif xp == 33:
return[1,0,"On ma rapporte qu'un", "riche villageois", "s'est vante d'avoir", "le secret de la", "teleportation"]
elif xp == 34:
return[0,0,"Tu peux commencer", "tes recherches par", "le village..."]
elif xp == 42:
return[1,0,"Un message code", "dis-tu ? Montre moi", "ca... Mmmh, bon", "travail, et ce", "livre ? C'est pour", "demain ?"]
elif xp == 43:
return[1,0,"Donne-le moi, je le", "ferais decrypter."]
elif xp == 44:
return[0,0,"Tu veux en referer au", "Roi ? Quelle idee !", "On ne le derange pas", "pour des bouts de", "papiers ! Allez", "donne-moi ce papier !"]
else:
return[0,0,"Salut !","Tes recherches", "avancent comme tu le", "souhaite ?"]
elif lieu == 7+map_no:
if xp == 34:
return[0,0,"Aah... enfin !", "Un homme de peu de", "foi rode devant ma", "maison j'ai peur de", "sortir..."]
elif xp == 35:
return[1,0,"Voila un travail bien", "fait ! Non je n'ai", "jamais entendu parle", "d'un tel livre."]
elif xp == 36:
return[1,0,"Attend ! Je me", "souviens avoir", "consulte un ouvrage", "sur la teleportation", "chez un archiviste", "anarchiste."]
elif xp == 37:
return[0,0,"Peut etre trouverez", "vous plus", "d'informations aupres", "de la bibliotheque ou", "de l'archiviste ?"]
elif xp == 46:
return[1,0,"Ah te voila.","J'ai horreur de", "retrouver mes hommes", "de mains en pieces", "detachees ! QUOI ! Un"]
elif xp == 47:
return[0,0,"message ? Mais... je", "n'utilise que des", "illetres. Hors", "d'ici imposteur !"]
else:
return[0,0,"Je ne vous permet de", "m'introduire chez moi", "de la sorte !!"]
elif lieu == 6:
if xp == 37:
return[1,0,"Tu as ete voir 'le", "bourgeois' ? C'est un", "manipulateur cynique", "prends garde !"]
elif xp == 38:
return [0,0,"Je n'en sais pas plus", "mais des sbires a lui", "trainent dans", "le bois. Prend cette", "potion de", "soins. [>295]"]
elif xp == 52:
return[1,0,"Thyel un traitre !?","Bon la question est", "ou est cache", "le livre... Le", "'bourgeois' doit", "tremper dans la..."]
elif xp == 53:
return[1,0,"...combine c'etait", "son sbire qui avait", "le billet... Ou alors", "le sbire etait un", "simple", "intermediaire ?"]
elif xp == 54:
return[1,0,"Thyel va chercher a", "t'eliminer. Essaie", "d'abord de savoir ou", "est le livre."]
elif xp == 55:
return[0,0,"Je connais un brigand", "qui pourra sans doute", "t'aider. Il se trouve", "dans la foret"]
else:
return[0,0,"Ah, te revoila !","Tes recherches", "avancent ?"]
elif lieu == 5+map_no:
if xp == 39:
return[1,0,"De la documentation", "sur la cryptographie", "? Oui j'ai cela...", "Ah voila c'etait ici", "!"]
elif xp == 40:
return[1,0,"Il y est dit que les", "methodes recentes", "utilisent un mot ou", "une phrase comme cle.", "Cette methode empeche", "une analyse..."]
elif xp == 41:
return[1,0,"...frequencologique.", "Sans le code", "parfois lui-meme code", "il est impossible de", "dechiffrer le texte."]
elif xp == 42:
return[0,0,"Je n'ai pas d'autres", "informations pour", "l'instant, mais", "revient plus tard je", "mene mes recherches", "sur le sujet !"]
elif xp == 45:
return[1,0,"Ton message est code", "par un mot de 4", "lettres mais je n'en", "sais pas plus. Si tu", "trouves le mot..."]
elif xp == 46:
return[0,0,"On m'a dit que", "'le Bourgeois' te", "cherche..."]
elif xp == 49:
return[1,0,"CUEK ? Mmmh... Voyons", "voir... On dirait un", "decalage... Ca", "pourrait etre 'BTDJ'", "a voir si ca marche", ",a toi de jouer !"]
elif xp == 50:
return[0,0,"Reviens ici quand", "tu auras tout decode", "et presse [7]."]
elif xp == 51:
return[1,0,"C'est Thyel qui a", "vole mon livre ?", "Mais... pourquoi ?","Le Roi doit", "etre prevenu !"]
elif xp == 52:
return[0,0,"Mon ancien archiviste", "est toujours mon ami,", "va le voir les", "magouilles c'est son", "rayon."]
else:
return[0,0,"Bonjour !", "Des nouvelles de", "mon livre ?"]
elif lieu == 4:
if xp == 44:
return[1,0,"Tu vas me tuer avec", "tes conneries ! Filer", "Thyel ? Tu", "prefererais pas tuer", "le Roi ?"]
elif xp == 45:
return[0,0,"Bon ok reviens me", "voir je le ferais", "suivre..."]
elif xp == 47:
return[1,0,"Thyel a rencontre", "'le Bourgeois'","Fouiller la baraque", "de Thyel ?? Pour qui", "tu me prends ?"]
elif xp == 48:
return[1,0,"Bien sur que je l'ai", "fouillee !"]
elif xp == 49:
return[0,0,"J'ai trouve du pain", "des chaussures et...", "un bout de papier", "avec marque 'CUEK'", "dessus."]
elif xp == 55:
return[1,0,"ENCORE !!", "Trouver un livre ?", "Je crois que t'as", "toujours pas", "compris..."]
elif xp == 56:
return[1,0,"Ah ben voila ouvrir", "les yeux je sais", "faire ! Par contre", "si tu veux des infos", "je veux un service !"]
elif xp == 57:
return[1,0,"Va jeter un oeil", "vers le village et", "ramene-moi des tuyaux", "sur le 'bourgeois'"]
elif xp == 58:
return[0,0,"Pourquoi ? Je t'en", "pose, moi des", "questions ? File !"]
elif xp == 59:
return[1,0,"Bien. Ton livre est", "planque chez", "le 'bourgeois'."]
else:
return[0,0,"Toi, si tu continues", "tu vas finir les", "boyaux par terre..."]
elif lieu == 7:
if xp == 58:
return[1,0,"Le 'bourgeois' ? Bah", "il a recu", "un envoye du Roi et", "Thyel. il parait", "qu'un de ses homme", "de main est mort..."]
else:
return[0,0,"S'lut."]
elif lieu == 3+map_no:
if pv < 100:
return [0,100,"Quoi ?!", "Tu es encore blesse !","Tu le fais expres !?"]
else:
return [0,0,"Que fais-tu ici ?","Ici c'est pour les", "blesses pas les gens", "en pleine forme !"]
else:
return[0,0,"..."]

View File

@ -1,132 +0,0 @@
def get_map(n, outdoor):
if outdoor:
if n == 1:
return r"""
### $ __ __
##### /<>\___/<>\
### | | | |
/_\ | | _ | |
|___|^|___|
|==|==|
"""
elif n == 2:
return r"""
__ ####
/ \__ ######
|_ \ ######
|^|___| ######
####
||
"""
elif n == 3:
return r"""
\ _
\\ / \_
\\|==|==|=|_ \
\|==|==|=|^|_|==|==|
"""
elif n == 4:
return r"""
### ### ###
##### #####*#####
### ### ###
/_\ /_\ /_\
$
|==|==|==| |==|==|==
"""
elif n == 5:
return r"""
_ _ ### ###
/ \_/ \ ##### #####
|_ | ### ###
|^|___| /_\ /_\
|~~|~~|~~| |~~|~~|~~
"""
elif n == 6:
return r"""
~~~~~~~~ _ _
~~~~~~ * / \ / \
~~~~~~~ |_| |_|
~~~~~~~~~ _
~~~~ / \
~~~~~~~~ |_|
"""
elif n == 7:
return r"""
_ *
/ \_ _ _
|_ \ / \ / \ _
|^|_| |_| |_| / \
|_|
$
"""
elif n == 8:
return r"""
$ ### _
### ##### / \
##### ### |_| *
### /_\ _
/_\ / \
|_|
"""
else:
if n == 1:
return r"""
+-------------------+
| +--+ |
| * |~~| |
| +--+ |
| |
+-------| |--------+
"""
elif n == 2:
return r"""
+---------------+---+
| |* |
| +----------- | |
+- | --+
| | | |
+-----+-| |--+-----+
"""
elif n == 3:
return r"""
+-------+--+--------+
| * | |* |
| -----+ +---- --+
| |
| | | | |
+--+----| |--------+
"""
elif n == 5:
return r"""
+-------------------+
|=====/======\======|
|=====/ \==|_|=|
|==/ |_| |
| * |_| |
+-------| |--------+
"""
elif n == 7:
return r"""
+-------+--+--------+
| | | |
+-- ---+ * |
| | |
| | | |
+-------| |--------+
"""

View File

@ -1,7 +0,0 @@
from asci_lib import *
print("Opus 1 (v1.1b):\n'Le Secret d'Asci'\nNouvelle partie:\nasci()\nContinuer :\nasci('...')")
def asci(code="0.100.1.1"):
game = Asci(code, 1)
game.mainloop()

View File

@ -1,14 +0,0 @@
from Asci import *
print("Opus 2 (v1.0b):\n'Le Livre perdu'\nNouvelle partie:\nAsci([30,9,100])\nSinon entrez le code:\nAsci([,,])")
def Asci(liste):
xp = liste[0]
carte = liste[1]
pv = liste[2]
opus(2)
liste = main([1,xp, carte, pv, 60])
if liste[0] > 59:
print("Quelqu'un a vole le\nlivre sur ordre de\nThyel.\nAvec des complicites\nle livre a ete...")
input()
return print("...cache\nchez le 'bourgeois'.\nMais dans quel but ?\nPourquoi un proche du\nRoi vole et cache ce\nlivre sensible ?")
else:
return print("Pour reprendre la\npartie entrez le code\nsuivant :\nAsci(",liste,")")