Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Basic RPG Fighting Game.
- Kelly Johnson
- """
- #Player object
- #hp = health points, ap = attack points, ba = bonus attack, bagofitems = storage place for items that can be picked up.
- #attacks = attack, and charactertype = name of the character, depending on who they are.
- class Player(object):
- def __init__(self):
- object.__init__(self)
- self.hp = 0
- self.ap = []
- self.attackchance = []
- self.bagofitems = []
- self.attacks = []
- self.charactertype = ""
- def attack(self):
- damage = 0
- print "Select an attack."
- print "Available attacks:"
- #Select your attack.
- attackchoice = int(raw_input(self.attacks))
- #If bonus attack was chosen, do some stuff.
- if attackchoice == 4:
- print "You increased your attack stat."
- bonus = 5
- bonus = bonus + 5
- from random import randrange
- random = randrange(1,self.attackchance[attackchoice])
- if random > 1:
- print ("Foe used " + str(self.attacks) + ". Attack successful! " + str(self.charactertype) + " has " + str(self.hp) + " left.")
- damage = self.ap[attackchoice]
- else:
- print "The attack missed!"
- return damage
- def randomattack(self):
- damage = 0
- randomNumber = 0
- #Randomly select an opponents attack.
- from random import randrange
- random = randrange(1,4)
- random = randomNumber
- self.attacks[randomNumber]
- self.attackchance[randomNumber]
- if self.attackchance[randomNumber] > 1:
- print "The enemies attack was successful! " + str(self.charactertype) + " has " + str(self.hp) + " left. "
- damage = self.ap[randomNumber]
- else:
- print "The enemies attack missed!"
- return damage
- #Item Classes
- class DragonTooth(Player):
- def __init__(self):
- Player.__init__(self)
- itemtype = "Dragon Tooth"
- def turnbonus(self):
- if self.charactertype == "Dragon":
- self.hp = self.hp + 10
- print ("Dragon gained +10 health!" + " It now has " + str(self.hp) + " health left!")
- elif self.charactertype == "Zombie":
- self.hp = self.hp + 5
- print ("Zombie gained +5 health!" + " It now has " + str(self.hp) + " health left!")
- elif self.charactertype == "Werewolf":
- self.hp = self.hp + 5
- print ("Werewolf gained +5 health!" + " It now has " + str(self.hp) + " health left!")
- class Staff(Player):
- def __init__(self):
- Player.__init__(self)
- itemtype = "Generic Staff"
- def turnbonus(self):
- print "Your attack strengthed a little."
- bonusitem = 5
- print ("Bonus " + str(bonusattack))
- #Player Classes
- class Dragon(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 150
- self.ap = [15, 20, 17, 0]
- self.attacks = ["1) Flame Breathe", "2) Ice Shard", "3) Terrible Bite", "4) Wicked Attraction"]
- self.attackchance = [95, 85, 100, 100]
- self.charactertype = "Dragon"
- class Zombie(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 120
- self.ap = [15, 20, 17, 0]
- self.attacks = ["1) Black Breathe", "2) Bone Crack", "3) Dark Aura", "4) Dark Demension"]
- self.attackchance = [95, 85, 100, 100]
- self.charactertype = "Zombie"
- class Werewolf(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 150
- self.ap = [16, 22, 18, 0]
- self.attacks = ["1) Wolf Bite", "2) Claw Rip ", "3) Focus Blast", "4) Transformation"]
- self.attackchance = [92, 85, 100, 88]
- self.charactertype = "Werewolf"
- #Enemy Classes
- class BlackDragon(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 250
- self.ap = [12, 19, 10, 0]
- self.attacks = ["1) Black Flame", "2) Ice Shard", "3) Terrible Bite", "4) Dragon Booster"]
- self.attackchance = [90, 80, 100, 100]
- self.charactertype = "Black Dragon"
- class HorribleElf(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 120
- self.ap = [15, 20, 17, 0]
- self.attacks = ["1) Black Breathe", "2) Bone Crack", "3) Dark Aura", "4) Dark Demension"]
- self.attackchance = [95, 85, 100, 100]
- self.charactertype = "Horrible Elf"
- class LochNessMonster(Player):
- def __init__(self):
- Player.__init__(self)
- self.hp = 150
- self.ap = [16, 22, 18, 0]
- self.attacks = ["1) Wolf Bite", "2) Claw Rip ", "3) Focus Blast", "4) Transformation"]
- self.attackchance = [95, 85, 100, 88]
- self.charactertype = "Loch Ness Monster"
- #Create the main battle function
- def main():
- #Create our variables
- battle = True
- item = False
- count = 0
- bonusattack = 0
- bonusitem = 0
- #.lower makes it lower case.
- player = raw_input("Which character would you like to be? Zombie, Werewolf or Dragon. ")
- while player.lower() != "werewolf" and player != "dragon" and player != "zombie":
- player = raw_input("Invalid response. Please tell me if you want to be a Zombie, Werewolf or Dragon. ")
- #Create the player object
- player = player.lower()
- if player == "werewolf":
- me = Werewolf()
- if player == "zombie":
- me = Zombie()
- if player == "dragon":
- me = Dragon()
- #Create the enemy object
- from random import randrange
- #Select the enemy.
- random = randrange(1,3)
- if random == 1:
- enemy = BlackDragon()
- enemyName = "Black Dragon"
- if random == 2:
- enemy = HorribleElf()
- enemyName = "Horrible Elf"
- if random == 3:
- enemy = LochNessMonster()
- enemyName = "Loch Ness Monster"
- print ("Today you will be fighting " + enemyName + "!")
- while battle == True:
- #Determine if the player is holding an item. If not, try to get one.
- if item == False:
- from random import randrange
- random = randrange(1,5)
- if random == 1:
- item = True
- from random import randrange
- random = randrange(1,2)
- if random == 1:
- itemget = Staff()
- print "You picked up Generic Staff!"
- elif random == 2:
- itemget = DragonTooth()
- print "You picked up Dragon Tooth!"
- #See which item is held and run it.
- else:
- count = count + 1
- from random import randrange
- random = randrange(1,10)
- random = random + count
- if random >=11:
- item = False
- count = 0
- bonusitem = 0
- print "The item broke!"
- else:
- if itemget == Staff():
- itemget.turnbonus()
- elif itemget == DragonTooth():
- itemget.turnbonus()
- #Call the attack function
- damage = me.attack() + bonusattack + bonusitem
- enemy.hp = enemy.hp - damage
- if (me.hp <= 0) or (enemy.hp <= 0):
- battle == False
- #Enemy Attack
- damage = enemy.randomattack()
- me.hp = me.hp - damage
- if (me.hp <= 0) or (enemy.hp <= 0):
- battle == False
- if battle == False:
- if me.hp <= 0:
- print "You have lost the battle."
- else:
- print "Congratulations! You have won the battle!"
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement