Asci/rpg_maker/sample_3.py

121 lines
3.4 KiB
Python

from asci_lib import *
from random import randint
cartes = (
r"""
__
/ \___ ### *
|<> \ ##### _
|^|____| ### / \
/_\ |^| *
__ __
$ ## / \___/ \ ##
#### |<> <>| ####
## |___|^|___| ##
|| ||""",
(r"""
+--+--+--------+--+--+
| | | | | |
| + + + + |
| |
| + + + + |
+--/ *\--------/ \--+
| |
+---|^|--------------+""",
(1, 3), (5, 7)),
(r"""
+-------+
| |
| |
| |
+--|^|--+
""",
(19, 4), (4, 4))
)
def evenements(xp, carte_actuelle, x, y, stat):
coords = (x, y)
if carte_actuelle == 0:
if coords == (24, 4):
if stat[0] < 100: return [0, "Oh, mais tu es blesse !", 0, 50]
else: return [0, "Reviens me voir quand tu seras blesse."]
elif coords == (16, 1): return {
"base": [0, "Alors ? T'en sorts-tu ?"],
0: [0, "J'ai une quete pour toi ! Un ami a moi a des problemes : un personnage louche traine autour de sa maison... Si tu pouvais l'en debarasser, il t'en serai reconnaissant. 1. Je m'en charge ! 2. Trouve quelqu'un d'autre.", 2],
1: [2, "J'etais sur que je pouvais compter sur toi ! Tiens, voila une dague et une petit bouclier.", 0, 0, 10, 10],
2: [2, "Si un jour tu as besoin de moi, tu seras sympa de m'oublier."],
3: [0, "Alors ? Il est mort ce bandit ?"],
4: [1, "Merci, tu as rendu un grand service a mon ami !"]
}
elif coords == (4, 7):
# Si le bandit vient d'être tué
if xp == 3: return [1, "Vous avez reussi la quete !"]
# Si le bandit est encore vivant
elif xp < 3: return [0, "Qu'est-ce que tu regardes toi ? Casses-toi !"]
# Si le bandit est déjà mort
else: return [0, "Vous regardez le cadavre froid du bandit."]
return [0, "Hmm ?"]
def combats(xp, carte_actuelle, x, y, stat):
coords = (x, y)
if carte_actuelle == 0:
if coords == (4, 7):
if xp == 3: ennemi_stat = [75, randint(5, 10), randint(5, 10)]
else: return True
defense_temporaire = defense_temporaire_ennemi = 0
while stat[0] > 0 and ennemi_stat[0] > 0:
print("Vos PV : {0}\nPV ennemi : {1}".format(stat[0], ennemi_stat[0]))
print("<*> Actions <*>")
print("1. Attaquer")
print("2. Defendre")
action = int(input(">"))
defense_temporaire = 0
if action == 1:
pv = (stat[1] - ennemi_stat[2] - defense_temporaire_ennemi) + randint(-5, 10)
if pv < 0: pv = 0
ennemi_stat[0] -= pv
elif action == 2:
defense_temporaire = randint(1, 5)
defense_temporaire_ennemi = 0
if randint(1, 2) == 1:
pv = (ennemi_stat[1] - stat[2] - defense_temporaire) + randint(-5, 10)
if pv < 0: pv = 0
stat[0] -= pv
else:
defense_temporaire_ennemi = randint(1, 5)
return stat[0] > 0
def affichage_stat(stat):
pv, pa, pd = stat
print("<*> Statistiques <*>")
print("Points de vie .: {}".format(pv))
print("Points attaque : {}".format(pa))
print("Points defense : {}".format(pd))
def mon_jeu():
rpg_python = Asci(cartes, evenements, combats, affichage_stat, 5, [100, 0, 0])
rpg_python.mainloop()