Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class mithrandir():
- def __init__(self):
- self.turn = ''
- self.health = 100
- self.energy = 100
- self.defense = 10
- self.defense_cap = 10
- self.regen_health = 5
- self.regen_energy = 15
- self.regen_defense = 5
- # The embedded list first contains the value of the dmg/regen and then the percent of success rate:
- self.actions = [['1. Light of the Valar (ATT)',25,20, 80],
- ['2. Fire of Narya (ATT)',35,30, 55],
- ['3. Aid of the Eagles (DEF)',25, 25, 70],
- ['4. Turn Pass', 0, 0, 100]]
- class Sauron():
- def __init__(self):
- self.turn = ''
- self.health = 100
- self.energy = 100
- self.defense = 10
- self.regen_health = 5
- self.regen_energy = 10
- self.regen_defense = 5
- self.defense_cap = 10
- self.actions = [['Wrath of Mordor',25,20,70],
- ['Howl of the Ring Wraiths',35,25,60],
- ['Might of Morgoth',40,35,45],
- ['Pass', 0, 0, 100]]
- Sauron = Sauron()
- player = mithrandir()
- name = 'Gandalf'
- def round():
- #Deciding who goes first
- turn = random.randint(1, 2)
- if turn == 1:
- player.turn = True
- Sauron.turn = False
- else:
- player.turn = False
- Sauron.turn = True
- #PLAYER TURN
- if player.turn:
- print(f"{name}'s Turn!")
- #Beginning Regeneration Phase:
- player.health += player.regen_health
- player.energy += player.regen_energy
- player.defense += player.regen_defense
- if player.health > 100:
- player.health = 100
- if player.energy > 100:
- player.energy = 100
- if player.defense > player.defense_cap:
- player.defense = player.defense_cap
- #Preliminary Turn Data
- player_stats = f'You have {player.health} HP, {player.energy} energy and {player.defense} defense.'
- print(player_stats)
- # Showing only the actions that the player has enough energy for
- for action in player.actions:
- if action[2] < player.energy:
- print(action)
- print('The three corresponding numbers represent the action power, its energy cost and success rate percentage.')
- choice = int(input(print('Choose an action:')))
- #player actions and outcomes
- if choice == 1:
- print(f'{name} uses {player.actions[0][0]}')
- #Calculating actions chance of success- Enemy HP and defense lowered, player's energy lowered:
- if random.randint(0, 100) <= player.actions[0][3]:
- dmg = player.actions[0][1] - Sauron.defense
- Sauron.health = Sauron.health - int(dmg)
- Sauron.defense = 0
- player.energy -= player.actions[0][2]
- print(f'It does {dmg} DMG to Sauron! He now has {Sauron.health} HP.')
- else:
- print(f'It Missed! Sauron has {Sauron.health} HP.')
- elif choice == 2:
- print(f'{name} uses {player.actions[1][0]}')
- if random.randint(0, 100) <= player.actions[1][3]:
- dmg = player.actions[1][1] - Sauron.defense
- Sauron.health = Sauron.health - int(dmg)
- Sauron.defense = 0
- player.energy -= player.actions[1][2]
- print(f'It does {dmg} DMG to Sauron! He now has {Sauron.health} HP.')
- else:
- print(f'It Missed! Sauron has {Sauron.health} HP.')
- elif choice == 3:
- print(f'{name} uses {player.actions[2][0]}')
- if random.randint(0, 100) <= player.actions[2][3]:
- heal = player.actions[2][1]
- player.energy -= player.actions[2][2]
- print(f'You have been healed {heal} HP!')
- else:
- print(f'It Failed!')
- elif choice == 4:
- print('You skipped your turn')
- #SAURONS TURN
- elif Sauron.turn:
- print("Sauron's Turn!")
- Sauron.health += Sauron.regen_health
- Sauron.energy += Sauron.regen_energy
- Sauron.defense += Sauron.regen_defense
- if Sauron.health > 100:
- Sauron.health = 100
- if Sauron.energy > 100:
- Sauron.energy = 100
- if Sauron.defense > Sauron.defense_cap:
- Sauron.defense = Sauron.defense_cap
- #Configuring sauron's behaviors:
- if Sauron.energy >= 25 and Sauron.health > 25:
- while Sauron.energy >= 60:
- if random.randint(0, 100) <= Sauron.actions[1][3]:
- dmg = Sauron.actions[1][1] - player.defense
- player.health = player.health - int(dmg)
- player.defense = 0
- Sauron.energy -= Sauron.actions[1][2]
- print(f'Sauron used {Sauron.actions[1][0]} and dealt {dmg} DMG to your HP!')
- return
- else:
- print(f'The attack Missed!.')
- return
- while Sauron.energy < 60:
- if random.randint(0, 100) <= Sauron.actions[2][3]:
- dmg = Sauron.actions[2][1] - player.defense
- player.health = player.health - int(dmg)
- player.defense = 0
- Sauron.energy -= Sauron.actions[2][2]
- print(f'Sauron used {Sauron.actions[2][0]} and dealt {dmg} DMG to your HP!')
- return
- else:
- print(f'The attack Missed!.')
- return
- elif Sauron.health < 25 and Sauron.energy >= 35:
- if random.randint(0, 100) <= Sauron.actions[3][3]:
- heal = Sauron.actions[3][1]
- Sauron.energy -= Sauron.actions[3][2]
- print(f'Sauron used {Sauron.actions[3][0]} and healed {heal} HP!')
- print(f'Sauron has {Sauron.health} HP')
- return
- else:
- print(f'Sauron failed to heal himself!.')
- return
- if Sauron.energy < 25:
- print('Sauron Passes')
- player.turn = not player.turn
- Sauron.turn = not Sauron.turn
- while player.health != 0 and Sauron.health != 0:
- round()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement