115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
# Import de librairie
|
|
from random import randrange
|
|
|
|
print "Bienvenue au jeu GOOOOOOOOOOOOOOOBLIIIINS ! Le jeu inspire de Goblin Slayer."
|
|
print
|
|
|
|
class character(object):
|
|
def __init__(self, name, health, damage, armor, weapon, shield, damage_weight):
|
|
self.name = name
|
|
self.health = health
|
|
self.damage = damage
|
|
self.armor = armor
|
|
self.weapon = weapon
|
|
self.shield = shield
|
|
self.damage_weight = damage_weight
|
|
|
|
# Fiche de joueur
|
|
player = character(raw_input("Quel est ton nom ? "), 100, randrange(5, 19), 5, True, True, 1)
|
|
print
|
|
# Trois ennemis de force croissante
|
|
goblin = character("Guerrier gobelin", 20, randrange(2, 7), 0, False, False, 1)
|
|
hobgoblin = character("HobGobelin", 40, randrange(4, 9), 2, True, False, 2)
|
|
goblin_lord = character("Seigneur Gobelin", 100, randrange(7, 15), 5, True, True, 3)
|
|
|
|
goblin_number = raw_input("Combien de gobelins voulez-vous affronter ? ")
|
|
goblin_number = int(goblin_number)
|
|
hobgoblin_number = raw_input("Combien de hobgobelins voulez-vous affronter ? ")
|
|
hobgoblin_number = int(hobgoblin_number)
|
|
goblin_lord_number = raw_input("Combien de seigneurs gobelins voulez-vous affronter ? ")
|
|
goblin_lord_number = int(goblin_lord_number)
|
|
|
|
print
|
|
print "Vous, %s, allez affronter %s %s, %s %s et %s %s. Faites attentions a vous. Apres chaque combat, vous aurez droit au repos." % (player.name, goblin_number, goblin.name, hobgoblin_number, hobgoblin.name, goblin_lord_number, goblin_lord.name)
|
|
print
|
|
|
|
# Fonction de combat
|
|
def fight(main, ennemy):
|
|
turn = 1
|
|
while main.health > 0 and ennemy.health > 0:
|
|
print "===== Tour " + str(turn) + " ====="
|
|
print
|
|
print "Votre ennemi a %s points de vie. Vous en avez %s." % (ennemy.health, main.health)
|
|
print
|
|
main.damage = randrange(5, 15)
|
|
ennemy.damage = randrange(2, 7) * ennemy.damage_weight
|
|
if main.damage > ennemy.armor:
|
|
damage = (main.damage - ennemy.armor)
|
|
# DEBUG print main.damage, ennemy.armor
|
|
print "Vous faites %s degats." % (damage)
|
|
print
|
|
ennemy.health -= damage
|
|
if ennemy.damage > main.armor:
|
|
damage = (ennemy.damage - main.armor)
|
|
# DEBUG print ennemy.damage, main.armor
|
|
print "Il vous inflige %s degats." % (damage)
|
|
print
|
|
main.health -= damage
|
|
if main.damage <= ennemy.armor:
|
|
print "Vous frappez, mais pas assez fort."
|
|
print
|
|
if ennemy.damage <= main.armor:
|
|
print "Il vous frappe, mais pas assez fort."
|
|
print
|
|
turn += 1
|
|
else:
|
|
if main.health <= 0:
|
|
print "Vous avez succombe."
|
|
exit()
|
|
elif ennemy.health <= 0:
|
|
print "Votre ennemi est mort."
|
|
print
|
|
print "=================="
|
|
|
|
raw_input("Quand vous etes pret a demarrer, appuyez sur Entree : ")
|
|
|
|
# Combats avec les gobelins
|
|
goblin_turn = goblin_number
|
|
|
|
while goblin_turn != 0:
|
|
print
|
|
print "Un %s vous attaque ! Il en reste %s." % (goblin.name, goblin_turn)
|
|
print
|
|
fight(player, goblin)
|
|
goblin.health = 20
|
|
goblin_turn -= 1
|
|
|
|
player.health = 100
|
|
raw_input("Prenez du repos, et appuyez sur une touche pour continuer : ")
|
|
|
|
# Combats avec les hobgobelins
|
|
hobgoblin_turn = hobgoblin_number
|
|
|
|
while hobgoblin_turn != hobgoblin_number:
|
|
print
|
|
print "Un %s vous attaque ! Il en reste %s." % (hobgoblin.name, hobgoblin_turn)
|
|
print
|
|
fight(player, hobgoblin)
|
|
hobgoblin.health = 40
|
|
hobgoblin_turn -= 1
|
|
|
|
player.health = 100
|
|
raw_input("Prenez du repos, et appuyez sur une touche pour continuer : ")
|
|
|
|
# Combats avec les seigneurs gobelins
|
|
goblin_lord_turn = goblin_lord_number
|
|
|
|
while goblin_lord_turn != goblin_lord_number:
|
|
print
|
|
print "Un %s vous attaque ! Il en reste %s." % (goblin_lord.name, goblin_lord_turn)
|
|
print
|
|
fight(player, goblin_lord)
|
|
goblin_lord.health = 100
|
|
goblin_lord_turn -= 1
|
|
|
|
raw_input("Bravo, vous avez vaincu. ") |