Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint
- #define basic info need for other classes
- game_mode = "main menu"
- class stats():
- strength = 5
- constitution = 5
- agility = 5
- intelligence = 5
- class monster():
- name = "Monster"
- level = 0
- hp = 1
- maxhp = 1
- mp = 1
- atk = 1
- dfn = 1
- crit = 0
- dodge = 0
- actions = 1
- def action_1(self):
- print "TEST"
- def action_2(self):
- print "TEST"
- def action_2(self):
- print "TEST"
- def action_2(self):
- print "TEST"
- class player():
- name = "Player"
- hp = 1
- mp = 1
- atk = 1
- dfn = 1
- crit = 0
- dodge = 0
- def playerchance():
- a = player.crit
- b = monster.dodge
- chance = randint(1,100)
- if chance > 100 - ( 100 * a ):
- return 1
- elif chance < 100 * b:
- return -1
- else:
- return 0
- def monsterchance():
- a = monster.crit
- b = player.dodge
- chance = randint(1,100)
- if chance > 100 - ( 100 * a ):
- return 1
- elif chance < 100 * b:
- return -1
- else:
- return 0
- #define player classes
- class hero():
- hp = stats.constitution * 4
- mp = stats.intelligence * 2
- atk = int(stats.strength / 2)
- dfn = int(stats.constitution / 4)
- crit = (stats.agility * 2) / float(100)
- dodge = (stats.agility * 2) / float(100)
- action_name_1 = "Slash"
- action_name_2 = "Battle Cry"
- action_name_3 = "Heal"
- action_name_4 = "Scan"
- def action_1(self):
- #Slash
- x = playerchance()
- if x == 1:
- print "\nYou land a CRITICAL SLASH on " + monster.name + "."
- print "Hitting for " + `player.atk` + " true damage!"
- print "\nThe " + monster.name + " loses " + `player.atk` + "hp.."
- monster.hp = monster.hp - player.atk
- elif x == 0:
- damage = player.atk - monster.dfn
- print "\nYou slash at the " + monster.name + " for " + `player.atk` + " damage"
- print "and it blocks " + `monster.dfn` + " of it."
- if damage > 0:
- monster.hp = monster.hp - damage
- print "\nThe " + monster.name + " loses " + `damage` + "hp.."
- else:
- print "\nYour attack did nothing.."
- elif x == -1:
- print "\nYour attack completely missed!"
- else:
- print "\nError! chance() failed!"
- def action_2(self):
- print "You give a battle cry"
- def action_3(self):
- print "You healed yourself"
- def action_4(self):
- print "You scanned the monster:"
- #define monster classes
- class goblin():
- name = "Goblin"
- level = 1
- maxhp = 20
- hp = 20
- mp = 10
- atk = 2
- dfn = 1
- crit = 0.2
- dodge = 0.1
- actions = 2
- def action_1(self):
- #standard attack
- x = playerchance()
- if x == 1:
- print "\nThe " + monster.name + " lands a CRITICAL HIT on " + player.name + "."
- print "Hitting for " + `monster.atk` + " true damage!"
- print "\n" + player.name + " loses " + `monster.atk` + "hp.."
- player.hp = player.hp - monster.atk
- elif x == 0:
- damage = monster.atk - player.dfn
- print "\n"+ monster.name + " attacks for " + `monster.atk` + " damage"
- print "and " + player.name + " blocks " + `player.dfn` + " of it."
- if damage > 0:
- player.hp = player.hp - damage
- print "\n" + player.name + " loses " + `damage` + "hp.."
- else:
- print "\nIts attack did nothing.."
- elif x == -1:
- print "\nYou dodged the " + monster.name + "'s attack!"
- else:
- print "\nError! chance() failed!"
- class dragon():
- name = "Dragon"
- level = 2
- maxhp = 200
- hp = 200
- mp = 100
- atk = 20
- dfn = 10
- crit = 0.2
- dodge = 0.2
- actions = 4
- def action_1(self):
- #standard attack
- x = playerchance()
- if x == 1:
- print "\nThe " + monster.name + " lands a CRITICAL HIT on " + player.name + "."
- print "Hitting for " + `monster.atk` + " true damage!"
- print "\n" + player.name + " loses " + `monster.atk` + "hp.."
- player.hp = player.hp - monster.atk
- elif x == 0:
- damage = monster.atk - player.dfn
- print "\n" + monster.name + " attacks for " + `monster.atk` + " damage"
- print "and " + player.name + " blocks " + `player.dfn` + " of it."
- if damage > 0:
- player.hp = player.hp - damage
- print "\n" + player.name + " loses " + `damage` + "hp.."
- else:
- print "\nIts attack did nothing.."
- elif x == -1:
- print "\nYou dodged the " + monster.name + "'s attack!"
- else:
- print "\nError! chance() failed!"
- #define battle functions
- monster = goblin()
- #
- def hp_update():
- a = monster.hp
- b = monster.maxhp
- c = player.hp
- if float( a )/ b >= 0.75:
- print "\nThe " + monster.name + " appears healthy"
- elif float( a )/ b < 0.75 and float( a )/ b >= 0.5:
- print "\nThe " + monster.name + " seems injured"
- elif float( a )/ b < 0.5 and float( a )/ b >= 0.25:
- print "\nThe " + monster.name + " is in alot of pain"
- elif float( a )/ b < 0.25 and float( a )/ b >= 0.1:
- print "\nThe " + monster.name + " is gravely wounded"
- elif float( a )/ b < 0.1:
- print "\nThe " + monster.name + " could die at any second"
- else:
- print "\nError! hp_update() failed!"
- print "and you have " + `c` + "hp remaining.\n"
- #
- def action_menu():
- action_menu_error = 1
- print "1." + player.action_name_1
- print "2." + player.action_name_2
- print "3." + player.action_name_3
- print "4." + player.action_name_4
- while action_menu_error == 1:
- action = raw_input("Choose an action: ")
- if action == "1":
- player.action_1()
- action_menu_error = 0
- elif action == "2":
- player.action_2()
- action_menu_error = 0
- elif action == "3":
- player.action_3()
- action_menu_error = 0
- elif action == "4":
- player.action_4()
- action_menu_error = 0
- else:
- print "Invalid action!"
- #
- def deathcheck():
- if monster.hp <= 0:
- print "\nAnds falls to the ground, defeated.."
- print "\nYOU ARE VICTORIOUS!"
- continue_error = 1
- while continue_error == 1:
- nextlevel = raw_input("Continue on to the next monster? y/n? ")
- if nextlevel == "y":
- monster.level = monster.level + 1
- break
- elif nextlevel == "n":
- game_mode = "main menu"
- break
- else:
- print "\nInvalid selection!"
- elif player.hp <= 0:
- print "\nAnd with that, your quest is over.."
- print "\nYOU HAVE BEEN DEFEATED!"
- raw_input()
- game_mode = "main menu"
- #main menu
- while game_mode == "main menu":
- print "**********************************"
- print "****** PREPARE YOURSELF *********"
- print "************** FOR ***************"
- print "********** !!BATTLE!! ************"
- print "**********************************\n\n"
- print " 1. ARCADE MODE 2. INFO "
- print " ************** ******* \n\n"
- main_menu_error = 1
- while main_menu_error == 1:
- menu_selection = raw_input(" Select option: ")
- if menu_selection == "1":
- game_mode = "arcade"
- main_menu_error = 0
- else:
- print "Invalid selction!"
- ################## Arcade mode
- while game_mode == "arcade":
- player = hero()
- monster = goblin()
- #intro
- player.name = raw_input("\nPlease enter your name: ")
- print "\nAre you ready?"
- print "\nReady to take up arms \nagainst the monsterous \nhordes that await you?"
- print "\nYou should be.\n\n..because they're \nready for you."
- print "\nPrepare yourself, " + player.name + "!"
- print "\nPREPARE YOURSELF FOR BATTLE!!!"
- raw_input("\n(hit enter to continue)")
- # Level 1 (Goblin)
- print "\n\nA NEW CHALLENGER HAS APPEARED!"
- print "A lone Goblin warrior stands before you.\n"
- monster = goblin()
- while monster.level == 1:
- hp_update()
- action_menu()
- deathcheck()
- monster.action_1()
- deathcheck()
- # Level 2 (??)
- print "\n\nA NEW CHALLENGER HAS APPEARED!"
- print "You stand in awe of a mighty Dragon.\n"
- monster = dragon()
- while monster.level == 2:
- hp_update()
- action_menu()
- deathcheck()
- monster.action_1()
- deathcheck()
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement