Asci/rpg_maker/sample_3.py

104 lines
3.0 KiB
Python
Raw Normal View History

2021-08-13 17:32:55 +02:00
from asci_lib import *
2021-08-14 17:13:34 +02:00
from random import randint
2021-08-13 17:32:55 +02:00
maps = (
r"""
__
/ \___ ### *
|<> \ ##### _
|^|____| ### / \
/_\ |^| *
__ __
2021-08-14 17:13:34 +02:00
$ ## / \___/ \ ##
2021-08-13 17:32:55 +02:00
#### |<> <>| ####
## |___|^|___| ##
|| ||""",
(r"""
+------------------------------+
| |
| |
| * |
2021-08-13 17:32:55 +02:00
| |
| |
2021-08-13 23:57:43 +02:00
+--|^|-------------------------+
""", (1, 3), (4, 6))
2021-08-13 17:32:55 +02:00
)
2021-08-14 17:13:34 +02:00
def get_dialogue(xp, current_map, x, y, stat):
2021-08-13 22:32:36 +02:00
coords = (x, y)
2021-08-13 17:32:55 +02:00
2021-08-13 22:32:36 +02:00
if current_map == 0:
if coords == (16, 1): return {
2021-08-14 17:13:34 +02:00
0: [1, "Hey, bienvenue dans la map de test d'Asci !", 0],
1: [0, "Comment vas-tu aujourd'hui ? 1. Tres bien, merci ! Et vous-meme ? 2. La ferme le vieux ! ", 2],
2: [4, "Je vais bien, merci ! Voici une epee et une cote de maille.", 0, 0, 10, 10],
3: [0, "Oh, insultant personnage ! Pour la peine tu n'auras rien !", 0],
2021-08-13 17:32:55 +02:00
2021-08-14 17:13:34 +02:00
6: [1, "Belle journée, n'est-ce pas ? Dommage que ce brigand un peu au sud soit la...", 0],
8: [0, "Et bien je crois que c'est un test concluant !", 0],
2021-08-13 22:32:36 +02:00
2021-08-14 17:13:34 +02:00
"base": [0, "Bonjour, besoin d'aide ?", 0],
2021-08-13 22:32:36 +02:00
}
2021-08-13 17:32:55 +02:00
2021-08-13 23:57:43 +02:00
elif coords == (24, 4):
2021-08-14 17:13:34 +02:00
if stat[0] < 100: return [0, "Tsst, est-ce que je tape sur des gens moi ? Bah alors ? J'ai panse tes plaies, mais fait gaffe a toi...", 0, 50]
else: return [0, "Tu es en pleine forme !", 0]
2021-08-14 18:10:27 +02:00
#
2021-08-14 17:13:34 +02:00
elif coords == (4, 7): return {
6: [2, "Tu as tue le brigand !", 0],
"base": [0, "Il n'y a rien a faire par ici..."]
}
2021-08-13 23:57:43 +02:00
2021-08-13 22:32:36 +02:00
elif current_map == 1:
2021-08-13 23:57:43 +02:00
if coords == (4, 3): return {
2021-08-14 17:13:34 +02:00
3: [0, "Tsst, tu as encore insulte quelqu'un ? 1. Oui... 2. Hein ? Quoi ?", 2],
4: [0, "C'est pas tres malin, tu sais ?", 0],
5: [0, "Je n'aime pas les menteurs. Sort de chez moi.", 0],
2021-08-13 17:32:55 +02:00
2021-08-14 12:36:59 +02:00
"base": [0, "Oui ?", False]
2021-08-13 22:32:36 +02:00
}
2021-08-13 17:32:55 +02:00
2021-08-14 12:36:59 +02:00
return [0, "Hmmm ?", False]
2021-08-14 17:13:34 +02:00
def fight(xp, current_map, x, y, stat):
coords = (x, y)
if current_map == 0:
if coords == (4, 7):
if xp == 6:
enemy = [75, randint(0, 10), 0]
else:
return True
end = 1
2021-08-13 22:32:36 +02:00
2021-08-14 17:13:34 +02:00
while stat[0] > 0 and enemy[0] > 0:
player = stat[1] + randint(1, 5)
adv = enemy[1] + randint(1, 5)
if player > adv:
enemy[0] -= (player - enemy[2])
else:
stat[0] -= (adv - stat[2])
return stat[0] > 0
def display_stat(stat):
print("<*> Statistiques <*>")
print("Points de vie .: {}".format(stat[0]))
print("Points attaque : {}".format(stat[1]))
print("Points defense : {}".format(stat[2]))
2021-08-13 17:32:55 +02:00
def start():
2021-08-14 17:13:34 +02:00
my_game = Asci(maps, get_dialogue, fight, display_stat, 10, [100, 0, 0])
2021-08-13 17:32:55 +02:00
my_game.mainloop()