Advertisement
Guest User

Python Game

a guest
Dec 2nd, 2012
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.83 KB | None | 0 0
  1. """
  2. Basic RPG Fighting Game.
  3. Kelly Johnson
  4. """
  5.  
  6.  
  7. #Player object
  8. #hp = health points, ap = attack points, ba = bonus attack, bagofitems = storage place for items that can be picked up.
  9. #attacks = attack, and charactertype = name of the character, depending on who they are.
  10. class Player(object):
  11. def __init__(self):
  12. object.__init__(self)
  13. self.hp = 0
  14. self.ap = []
  15. self.attackchance = []
  16. self.bagofitems = []
  17. self.attacks = []
  18. self.charactertype = ""
  19.  
  20.  
  21. def attack(self):
  22.  
  23. damage = 0
  24.  
  25. print "Select an attack."
  26. print "Available attacks:"
  27.  
  28. #Select your attack.
  29. attackchoice = int(raw_input(self.attacks))
  30.  
  31. #If bonus attack was chosen, do some stuff.
  32. if attackchoice == 4:
  33. print "You increased your attack stat."
  34. bonus = 5
  35. bonus = bonus + 5
  36.  
  37.  
  38.  
  39. from random import randrange
  40.  
  41. random = randrange(1,self.attackchance[attackchoice])
  42.  
  43. if random > 1:
  44. print ("Foe used " + str(self.attacks) + ". Attack successful! " + str(self.charactertype) + " has " + str(self.hp) + " left.")
  45. damage = self.ap[attackchoice]
  46. else:
  47. print "The attack missed!"
  48. return damage
  49.  
  50.  
  51.  
  52. def randomattack(self):
  53.  
  54. damage = 0
  55. randomNumber = 0
  56.  
  57. #Randomly select an opponents attack.
  58. from random import randrange
  59. random = randrange(1,4)
  60.  
  61.  
  62. random = randomNumber
  63. self.attacks[randomNumber]
  64. self.attackchance[randomNumber]
  65.  
  66. if self.attackchance[randomNumber] > 1:
  67. print "The enemies attack was successful! " + str(self.charactertype) + " has " + str(self.hp) + " left. "
  68. damage = self.ap[randomNumber]
  69. else:
  70. print "The enemies attack missed!"
  71. return damage
  72.  
  73.  
  74.  
  75.  
  76. #Item Classes
  77.  
  78. class DragonTooth(Player):
  79. def __init__(self):
  80. Player.__init__(self)
  81. itemtype = "Dragon Tooth"
  82.  
  83.  
  84. def turnbonus(self):
  85.  
  86. if self.charactertype == "Dragon":
  87. self.hp = self.hp + 10
  88. print ("Dragon gained +10 health!" + " It now has " + str(self.hp) + " health left!")
  89.  
  90. elif self.charactertype == "Zombie":
  91. self.hp = self.hp + 5
  92. print ("Zombie gained +5 health!" + " It now has " + str(self.hp) + " health left!")
  93.  
  94.  
  95. elif self.charactertype == "Werewolf":
  96. self.hp = self.hp + 5
  97. print ("Werewolf gained +5 health!" + " It now has " + str(self.hp) + " health left!")
  98.  
  99.  
  100.  
  101. class Staff(Player):
  102. def __init__(self):
  103. Player.__init__(self)
  104. itemtype = "Generic Staff"
  105.  
  106.  
  107. def turnbonus(self):
  108.  
  109.  
  110. print "Your attack strengthed a little."
  111. bonusitem = 5
  112. print ("Bonus " + str(bonusattack))
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. #Player Classes
  122.  
  123. class Dragon(Player):
  124. def __init__(self):
  125. Player.__init__(self)
  126. self.hp = 150
  127. self.ap = [15, 20, 17, 0]
  128. self.attacks = ["1) Flame Breathe", "2) Ice Shard", "3) Terrible Bite", "4) Wicked Attraction"]
  129. self.attackchance = [95, 85, 100, 100]
  130. self.charactertype = "Dragon"
  131.  
  132. class Zombie(Player):
  133. def __init__(self):
  134. Player.__init__(self)
  135. self.hp = 120
  136. self.ap = [15, 20, 17, 0]
  137. self.attacks = ["1) Black Breathe", "2) Bone Crack", "3) Dark Aura", "4) Dark Demension"]
  138. self.attackchance = [95, 85, 100, 100]
  139. self.charactertype = "Zombie"
  140.  
  141. class Werewolf(Player):
  142. def __init__(self):
  143. Player.__init__(self)
  144. self.hp = 150
  145. self.ap = [16, 22, 18, 0]
  146. self.attacks = ["1) Wolf Bite", "2) Claw Rip ", "3) Focus Blast", "4) Transformation"]
  147. self.attackchance = [92, 85, 100, 88]
  148. self.charactertype = "Werewolf"
  149.  
  150.  
  151. #Enemy Classes
  152.  
  153. class BlackDragon(Player):
  154. def __init__(self):
  155. Player.__init__(self)
  156. self.hp = 250
  157. self.ap = [12, 19, 10, 0]
  158. self.attacks = ["1) Black Flame", "2) Ice Shard", "3) Terrible Bite", "4) Dragon Booster"]
  159. self.attackchance = [90, 80, 100, 100]
  160. self.charactertype = "Black Dragon"
  161.  
  162.  
  163. class HorribleElf(Player):
  164. def __init__(self):
  165. Player.__init__(self)
  166. self.hp = 120
  167. self.ap = [15, 20, 17, 0]
  168. self.attacks = ["1) Black Breathe", "2) Bone Crack", "3) Dark Aura", "4) Dark Demension"]
  169. self.attackchance = [95, 85, 100, 100]
  170. self.charactertype = "Horrible Elf"
  171.  
  172.  
  173.  
  174. class LochNessMonster(Player):
  175. def __init__(self):
  176. Player.__init__(self)
  177. self.hp = 150
  178. self.ap = [16, 22, 18, 0]
  179. self.attacks = ["1) Wolf Bite", "2) Claw Rip ", "3) Focus Blast", "4) Transformation"]
  180. self.attackchance = [95, 85, 100, 88]
  181. self.charactertype = "Loch Ness Monster"
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189. #Create the main battle function
  190.  
  191. def main():
  192.  
  193.  
  194. #Create our variables
  195. battle = True
  196. item = False
  197. count = 0
  198. bonusattack = 0
  199. bonusitem = 0
  200.  
  201. #.lower makes it lower case.
  202.  
  203. player = raw_input("Which character would you like to be? Zombie, Werewolf or Dragon. ")
  204. while player.lower() != "werewolf" and player != "dragon" and player != "zombie":
  205. player = raw_input("Invalid response. Please tell me if you want to be a Zombie, Werewolf or Dragon. ")
  206.  
  207.  
  208. #Create the player object
  209. player = player.lower()
  210.  
  211. if player == "werewolf":
  212. me = Werewolf()
  213. if player == "zombie":
  214. me = Zombie()
  215. if player == "dragon":
  216. me = Dragon()
  217.  
  218.  
  219.  
  220. #Create the enemy object
  221.  
  222. from random import randrange
  223.  
  224. #Select the enemy.
  225. random = randrange(1,3)
  226.  
  227. if random == 1:
  228.  
  229. enemy = BlackDragon()
  230. enemyName = "Black Dragon"
  231.  
  232. if random == 2:
  233. enemy = HorribleElf()
  234. enemyName = "Horrible Elf"
  235.  
  236. if random == 3:
  237.  
  238. enemy = LochNessMonster()
  239. enemyName = "Loch Ness Monster"
  240.  
  241. print ("Today you will be fighting " + enemyName + "!")
  242.  
  243.  
  244. while battle == True:
  245.  
  246.  
  247.  
  248. #Determine if the player is holding an item. If not, try to get one.
  249.  
  250. if item == False:
  251.  
  252.  
  253. from random import randrange
  254.  
  255. random = randrange(1,5)
  256.  
  257. if random == 1:
  258. item = True
  259.  
  260. from random import randrange
  261. random = randrange(1,2)
  262.  
  263. if random == 1:
  264. itemget = Staff()
  265. print "You picked up Generic Staff!"
  266. elif random == 2:
  267. itemget = DragonTooth()
  268. print "You picked up Dragon Tooth!"
  269.  
  270.  
  271. #See which item is held and run it.
  272. else:
  273.  
  274. count = count + 1
  275. from random import randrange
  276. random = randrange(1,10)
  277. random = random + count
  278.  
  279. if random >=11:
  280. item = False
  281. count = 0
  282. bonusitem = 0
  283. print "The item broke!"
  284.  
  285. else:
  286.  
  287. if itemget == Staff():
  288. itemget.turnbonus()
  289.  
  290. elif itemget == DragonTooth():
  291. itemget.turnbonus()
  292.  
  293.  
  294.  
  295.  
  296. #Call the attack function
  297. damage = me.attack() + bonusattack + bonusitem
  298. enemy.hp = enemy.hp - damage
  299.  
  300.  
  301. if (me.hp <= 0) or (enemy.hp <= 0):
  302. battle == False
  303.  
  304. #Enemy Attack
  305. damage = enemy.randomattack()
  306. me.hp = me.hp - damage
  307.  
  308. if (me.hp <= 0) or (enemy.hp <= 0):
  309. battle == False
  310.  
  311.  
  312. if battle == False:
  313.  
  314. if me.hp <= 0:
  315. print "You have lost the battle."
  316.  
  317. else:
  318. print "Congratulations! You have won the battle!"
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement