Advertisement
xgeovanni

RPG.py

Dec 25th, 2011
2,016
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 20.67 KB | None | 0 0
  1. # A simple text based RPG game
  2. # Bobby Clarke
  3.  
  4. # I made this a long time ago
  5. # It uses many bad and sub-optimal practices
  6. # as such, I will not work on it any further
  7.  
  8. # GNU General Public License 3.0
  9.  
  10. #indev 0.007
  11.  
  12. # To Do:
  13.  
  14. # add more moves
  15. # add more mooks
  16. # add enemy AI
  17. # make moves cost MP
  18. # add currency
  19. # add death penalty
  20. # add racial skills ?
  21. # add analyse option
  22. # add battle menu(attack, run)
  23. # Help and printing move list and stats
  24. # make usemove not use eval() ( for move in player.moves )
  25. # add buff moves
  26. # add class unlocking
  27. # add saving / loading
  28. # add move learning on level up
  29.  
  30.  
  31. import random
  32. import pickle
  33. #import math
  34. #import pygame
  35.  
  36. gladiator_unlocked = False,
  37. sage_unlocked = False,
  38. saint_unlocked = False,
  39. joker_unlocked = False,
  40. master_unlocked = False,
  41. paladin_unlocked = False
  42.  
  43. unlocks = (gladiator_unlocked,
  44.            sage_unlocked,
  45.            saint_unlocked,
  46.            joker_unlocked,
  47.            master_unlocked,
  48.            paladin_unlocked)
  49.  
  50. unlocks_file = open("unlocks.dat", "wb")
  51.  
  52. pickle.dump(unlocks, unlocks_file)
  53.  
  54. unlocks_file.close()
  55.  
  56.  
  57.  
  58. class player:
  59.     # The Player
  60.    
  61.     def playerclass(self, warrior = False, mage = False, priest = False,
  62.                     bard = False, ninja = False, guard = False,
  63.                     gladiator = False, sage = False, saint = False,
  64.                     joker = False, master = False, paladin = False):
  65.         # The player's class and base stats
  66.  
  67.         # Basic classes
  68.         if warrior:
  69.             playerclass = "warrior"
  70.             baseHP = 19
  71.             baseMP = 4
  72.             baseATK = 23
  73.             baseDEF = 16
  74.             baseWIS = 7
  75.             baseSPD = 11 #80
  76.         elif mage:
  77.             playerclass = "mage"
  78.             baseHP = 12
  79.             baseMP = 20
  80.             baseATK = 6
  81.             baseDEF = 9
  82.             baseWIS = 22
  83.             baseSPD = 13 #80
  84.         elif priest:
  85.             playerclass = "priest"
  86.             baseHP = 11
  87.             baseMP = 19
  88.             baseATK = 8
  89.             baseDEF = 5
  90.             baseWIS = 23
  91.             baseSPD = 14 #80
  92.         elif bard:
  93.             playerclass = "bard"
  94.             baseHP = 18
  95.             baseMP = 11
  96.             baseATK = 14
  97.             baseDEF = 13
  98.             baseWIS = 13
  99.             baseSPD = 11 #80
  100.         elif ninja:
  101.             playerclass = "ninja"
  102.             baseHP = 12
  103.             baseMP = 5
  104.             baseATK = 18
  105.             baseDEF = 14
  106.             baseWIS = 7
  107.             baseSPD = 24 #80
  108.         elif guard:
  109.             playerclass = "guard"
  110.             baseHP = 22
  111.             baseMP = 6
  112.             baseATK = 15
  113.             baseDEF = 23
  114.             baseWIS = 4
  115.             baseSPD = 10 #80
  116.         #   #   #   #   #
  117.  
  118.         # Advanced Classes
  119.         elif gladiator:
  120.             playerclass = "gladiator"
  121.             baseHP = 22
  122.             baseMP = 8
  123.             baseATK = 30
  124.             baseDEF = 18
  125.             baseWIS = 8
  126.             baseSPD = 14 #100
  127.         elif sage:
  128.             playerclass = "sage"
  129.             baseHP = 12
  130.             baseMP = 32
  131.             baseATK = 4
  132.             baseDEF = 8
  133.             baseWIS = 28
  134.             baseSPD = 16 #100
  135.         elif saint:
  136.             playerclass = "saint"
  137.             baseHP = 12
  138.             baseMP = 24
  139.             baseATK = 7
  140.             baseDEF = 7
  141.             baseWIS = 32
  142.             baseSPD = 18 #100
  143.         elif joker:
  144.             playerclass = "joker"
  145.             baseHP = 20
  146.             baseMP = 16
  147.             baseATK = 16
  148.             baseDEF = 16
  149.             baseWIS = 16
  150.             baseSPD = 16 #100
  151.         elif master:
  152.             playerclass = "master"
  153.             baseHP = 15
  154.             baseMP = 10
  155.             baseATK = 23
  156.             baseDEF = 12
  157.             baseWIS = 10
  158.             baseSPD = 30 #100
  159.         elif paladin:
  160.             playerclass = "paladin"
  161.             baseHP = 27
  162.             baseMP = 14
  163.             baseATK = 21
  164.             baseDEF = 24
  165.             baseWIS = 12
  166.             baseSPD = 2 #100
  167.         #   #   #   #   #
  168.  
  169.         def unlock(readorwrite):
  170.             if readorwrite == "read":
  171.                 open("unlocks.dat", "rb")
  172.             elif readorwrite == "write":
  173.                 open ("unlocks.dat", "rb")
  174.            
  175.  
  176.         return playerclass, baseHP, baseMP, baseATK, baseDEF, baseWIS, baseSPD
  177.  
  178.     def race(race):
  179.         #The player's race to be used for stat bonuses
  180.         return race
  181.  
  182.     def level(self, plrlevel, exp):
  183.         # determining the player's level, experience,
  184.         # and experience required to level up
  185.         oldlevel = plrlevel
  186.  
  187.         #This is the level up experiece formula, subject to change
  188.         exp2level = int(round((plrlevel ** 3 / 12) + plrlevel * 4))
  189.        
  190.         while exp >= exp2level:
  191.             expcarry = exp - exp2level
  192.             exp = expcarry
  193.  
  194.             plrlevel += 1
  195.             exp2level = plrlevel
  196.  
  197.             exp2level = int(round((plrlevel ** 3 / 12) + plrlevel * 4))
  198.  
  199.         return plrlevel, exp2level, exp, oldlevel
  200.  
  201.     def stats(self, plrlevel, race, baseHP, baseMP, baseATK, baseDEF, baseWIS, baseSPD):
  202.         #Determining the player's stats from class, race and level
  203.         if race == "human":
  204.             HP = int(round(baseHP + (int(round(baseHP / 4 // 1)) * plrlevel) * 1.1))
  205.             MP = int(round(baseMP + (baseMP / 4 // 1 * plrlevel) * 1.1 ))
  206.             attack = int(round(baseATK + (baseATK / 4 * plrlevel) * 1.1))
  207.             defence = int(round(baseDEF + (baseDEF / 4  * plrlevel) * 1.1))
  208.             wisdom = int(round(baseWIS + (baseWIS / 4 * plrlevel) * 1.1))
  209.             speed = int(round(baseSPD + (baseSPD / 4 * plrlevel) * 1.1 // 1))
  210.  
  211.         elif race == "elf":
  212.             HP = int(round(baseHP + (baseHP / 4 * plrlevel)))
  213.             MP = int(round(baseMP + (baseMP / 4 * plrlevel) * 1.25))
  214.             attack = int(round(baseATK + (baseATK / 4 * plrlevel)))
  215.             defence = int(round(baseDEF + (baseDEF / 4 * plrlevel)))
  216.             wisdom = int(round(baseWIS + (baseWIS / 4 * plrlevel) * 1.25))
  217.             speed = int(round(baseSPD + (baseSPD / 4 * plrlevel) * 1.25))
  218.  
  219.         elif race == "orc":
  220.             HP = int(round(baseHP + (baseHP / 4 * plrlevel) * 1.25))
  221.             MP = int(round(baseMP + (baseMP / 4 * plrlevel)))
  222.             attack = int(round(baseATK + (baseATK / 4 * plrlevel) * 1.25))
  223.             defence = int(round(baseDEF + (baseDEF / 4 * plrlevel) * 1.25))
  224.             wisdom = int(round(baseWIS + (baseWIS / 4 * plrlevel)))
  225.             speed = int(round(baseSPD + (baseSPD / 4 * plrlevel)))
  226.            
  227.  
  228.         return HP, MP, attack, defence, wisdom, speed
  229.  
  230.     def moves(playerclass, plrlevel):
  231.         #The player's moves
  232.         if playerclass == "warrior":
  233.             moves = [punch, kick]
  234.         elif playerclass == "mage":
  235.             moves = [punch, flame]
  236.         elif playerclass == "priest":
  237.             moves = [punch, heal]
  238.         elif playerclass == "bard":
  239.             moves = [punch, chill]
  240.         elif playerclass == "ninja":
  241.             moves = [punch, agility]
  242.         elif playerclass == "guard":
  243.             moves = [punch, defend]
  244.  
  245.         return moves
  246.  
  247.     def name(name):
  248.         #The player's name
  249.         return name
  250.    
  251.     def showmoves(self):
  252.         for move in self.moves:
  253.             print(move[0] + ":", move[1], "power", move[2], move[3])
  254.        
  255.  
  256. class enemy:
  257.     #Enemies to be fought in battle
  258.     #Incomplete
  259.     def moves(moves = []):
  260.         #The enemy's moves
  261.         return moves
  262.        
  263.     def stats(HP, MP, strength, defence, wisdom, speed):
  264.         #the enemy's stats
  265.         return HP, MP, strength, defence, wisdom, speed
  266.     def name(name):
  267.         #the enemy's name
  268.         return name
  269.    
  270. class move:
  271.     #moves to be used by players and enemies
  272.     def physical(name, power, element, usestat = "attack"):
  273.         #Physical attacks using the attack stat
  274.         return name, power, element, usestat
  275.     def special(name, power, element, usestat = "wisdom"):
  276.         #Special / magical attacks using the wisdom stat
  277.         return name, power, element, usestat
  278.     def buff(name, power, stat):
  279.         #Buff moves to increase stats
  280.         stat *= power
  281.         return stat
  282.     def heal(name, power, usestat = "heal"):
  283.         return name, power, usestat
  284.    
  285.    
  286.  
  287. ### All moves in the game ###
  288. # Physical
  289. punch = move.physical("Punch", 30, "normal")
  290. kick = move.physical("Kick", 50, "normal")
  291. bite = move.physical("Bite", 40, "dark")
  292. stab = move.physical("Stab", 80, "normal")
  293. firepunch = move.physical("Fire Punch", 70, "fire")
  294. thunderpunch = move.physical("Thunder Punch", 70, "electric")
  295. icepunch = move.physical("Ice Punch", 70, "ice")
  296. lunarbash = move.physical("Lunar Bash", 80, "dark")
  297. solarsmash = move.physical("Solar Smash", 80, "light")
  298.  
  299. #Special
  300. flame = move.special("Flame", 50, "fire")
  301. chill = move.special("Chill", 50, "ice")
  302. shock = move.special("Shock", 50, "electric")
  303. darkstar = move.special("Dark Star", 60, "dark")
  304. lightray = move.special("Light Ray", 60, "light")
  305.  
  306. #Healing
  307.  
  308. heal = move.heal("Heal", 20)
  309. bless = move.heal("Bless", 50)
  310.  
  311.  
  312. # Buffs
  313. workup = "workup"
  314. defend = "defend"
  315. agility = "agility"
  316.  
  317. #####################
  318.  
  319. ### All enemies in the game ###
  320.  
  321. # Level 1
  322. slime = enemy()
  323. slime.name = enemy.name("Slime")
  324. slime.stats = enemy.stats(20, 12, 14, 10, 12, 10)
  325. slime.moves = enemy.moves([shock, punch])
  326. slime.exp = 4
  327.  
  328. wardog = enemy()
  329. wardog.name = enemy.name("War Dog")
  330. wardog.stats = enemy.stats(15, 0, 22, 14, 0, 18)
  331. wardog.moves = enemy.moves([bite])
  332. wardog.exp = 5
  333.  
  334. zombie = enemy()
  335. zombie.name = enemy.name("Zombie")
  336. zombie.stats = enemy.stats(25, 12, 18, 16, 12, 16)
  337. zombie.moves = ([punch, kick, chill])
  338. zombie.exp = 6
  339.  
  340. wizrobe = enemy()
  341. wizrobe.name = "Wizrobe"
  342. wizrobe.stats = (15, 30, 12, 14, 28, 15)
  343. wizrobe.moves = [flame, heal]
  344. wizrobe.exp = 6
  345.  
  346. level_1_enemies = (slime, wardog, zombie, wizrobe)
  347.  
  348. # Bosses
  349. kingzombie = enemy()
  350. kingzombie.name = enemy.name("King Zombie")
  351. kingzombie.stats = enemy.stats(200, 50, 30, 25, 20, 30)
  352. kingzombie.moves = enemy.moves([kick, chill, heal])
  353. kingzombie.exp = 30
  354.  
  355.  
  356. def char_build():
  357.     #Creating a character / player
  358.     PLR = player()
  359.  
  360.     plrname = input("Name your character: ")
  361.     PLR.name = player.name(plrname)
  362.  
  363.     race_chosen = False
  364.     races = ("human", "orc", "elf")
  365.    
  366.     while not race_chosen:
  367.         print("\nRaces: Human, Orc, Elf")
  368.         race = input("Choose your race: ").lower()
  369.  
  370.         if race in races:
  371.             PLR.race = player.race(race)
  372.             race_chosen = True
  373.  
  374.         else:
  375.             print("That race is not available")
  376.    
  377.     print("\nClasses: Warrior, Mage, Priest, Bard, Ninja, Guard")
  378.  
  379.     class_chosen = False
  380.     while not class_chosen:
  381.         classchoice = input("Choose your class: ")
  382.         classchoice = classchoice.lower()
  383.    
  384.         if classchoice == "warrior":
  385.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(warrior = True)
  386.             class_chosen = True
  387.         elif classchoice == "mage":
  388.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(mage = True)
  389.             class_chosen = True
  390.         elif classchoice == "priest":
  391.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(priest = True)
  392.             class_chosen = True
  393.         elif classchoice == "bard":
  394.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(bard = True)
  395.             class_chosen = True
  396.         elif classchoice == "ninja":
  397.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(ninja = True)
  398.             class_chosen = True
  399.         elif classchoice == "guard":
  400.             PLR.playerclass, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD = PLR.playerclass(guard = True)
  401.             class_chosen = True
  402.         else:
  403.             print("That class is not available")
  404.  
  405.     PLR.plrlevel, PLR.exp2level, PLR.exp, PLR.oldlevel = PLR.level(plrlevel = 1, exp = 0)
  406.  
  407.     PLR.HP, PLR.MP, PLR.attack, PLR.defence, PLR.wisdom, PLR.speed = PLR.stats(PLR.plrlevel, PLR.race, PLR.baseHP, PLR.baseMP, PLR.baseATK, PLR.baseDEF, PLR.baseWIS, PLR.baseSPD)
  408.  
  409.     PLR.moves = player.moves(PLR.playerclass, PLR.plrlevel)
  410.  
  411.     PLR.stats = PLR.HP, PLR.MP, PLR.attack, PLR.defence, PLR.wisdom, PLR.speed
  412.  
  413.     print("\nYour moves are:")
  414.     PLR.showmoves()
  415.  
  416.     return PLR
  417.  
  418. def battle(plr, enemy):
  419.     # The battle scene, player vs enemy
  420.     print("\n" + enemy.name, "wants to fight")
  421.  
  422.     enemy.HP = enemy.stats[0]
  423.     enemy.MP = enemy.stats[1]
  424.     enemy.attack = enemy.stats[2]
  425.     enemy.defence = enemy.stats[3]
  426.     enemy.wisdom = enemy.stats[4]
  427.     enemy.speed = enemy.stats[5]
  428.  
  429.     plr.hpleft = plr.HP
  430.     enemy.hpleft = enemy.HP
  431.    
  432.     turns = ("player", "enemy")
  433.     if plr.speed > enemy.speed:
  434.         turn = "player"
  435.     elif enemy.speed > plr.speed:
  436.         turn = "enemy"
  437.     else:
  438.         turn = random.choice(turns)
  439.        
  440.     resolved = False
  441.     while not resolved:
  442.         usemove = ""
  443.         if turn == "player":
  444.             print("HP", plr.hpleft, "/", plr.HP)
  445.             while not usemove:
  446.                 usemove = input("\nWhat move will you use? ")
  447.  
  448.                 try:
  449.                     usemove = eval(usemove)
  450.                 except:
  451.                     print("Invalid Move")
  452.                     usemove = ""
  453.        
  454.             if usemove in plr.moves:
  455.  
  456.                 if usemove [2] == "heal":
  457.                     healby = int(round((usemove[1] + plr.wisdom) / 4))
  458.                     plr.hpleft += healby
  459.                    
  460.                     if plr.hpleft > plr.HP:
  461.                         plr.hpleft = plr.HP
  462.                     print("HP restored by", healby, "points")
  463.                    
  464.                     turn = "enemy"
  465.                
  466.                 elif usemove[3] == "attack":
  467.                     # Damage formula subject to change
  468.                     damage = int(round((plr.attack / 2) + (usemove[1] / 5)))
  469.                     damage -= int(round(enemy.defence / 4))
  470.                     #Critical hits and missing
  471.                     critmiss = random.randint(1, 10)
  472.                     crit = False
  473.                     miss = False
  474.                     if critmiss == 9:
  475.                         #Miss
  476.                         damage = 0
  477.                         miss = True
  478.                     elif critmiss == 10:
  479.                         #Critical hit
  480.                         damage *= 2
  481.                         crit = True
  482.  
  483.                        
  484.                     if damage > 0:
  485.                         damage += random.randint(int(round(-damage * 0.1)), int(round(damage * 0.1)))
  486.                
  487.                     enemy.hpleft -= damage
  488.                     if not miss:
  489.                         if crit:
  490.                             print("Critical Hit!")
  491.                        
  492.                         print(damage, "damage!")
  493.  
  494.                     else:
  495.                         print("You missed!")
  496.  
  497.                     turn = "enemy"
  498.  
  499.                 elif usemove[3] == "wisdom":
  500.                     damage = int(round((plr.wisdom / 2) + (usemove[1] / 5)))
  501.                     damage -= int(round(enemy.defence / 4))
  502.  
  503.                     #Critical hits and missing
  504.                     critmiss = random.randint(1, 10)
  505.                     crit = False
  506.                     miss = False
  507.                     if critmiss == 9:
  508.                         #Miss
  509.                         damage = 0
  510.                         miss = True
  511.                     elif critmiss == 10:
  512.                         #Critical hit
  513.                         damage *= 2
  514.                         crit = True
  515.                        
  516.                     if damage > 0:
  517.                         damage += random.randint(int(round(-damage * 0.1)), int(round(damage * 0.1)))
  518.  
  519.                    
  520.                     enemy.hpleft -= damage
  521.                    
  522.                     if not miss:
  523.                         if crit:
  524.                             print("Critical Hit!")
  525.                         print(damage, "damage!")
  526.  
  527.                     else:
  528.                         print("You missed!")
  529.  
  530.                     turn = "enemy"
  531.  
  532.  
  533.             else:
  534.                 print("You do not know that move")
  535.  
  536.                
  537.  
  538.         elif turn == "enemy":
  539.             usemove = random.choice(enemy.moves)
  540.  
  541.             if usemove [2] == "heal":
  542.                     healby = int(round((usemove[1] + enemy.wisdom) / 4))
  543.                     enemy.hpleft += healby
  544.                     if enemy.hpleft > enemy.HP:
  545.                         enemy.hpleft = enemy.HP
  546.                     print("\n", enemy.name, "used", usemove[0])
  547.                    
  548.                     turn = "player"
  549.            
  550.             elif usemove[3] == "attack":
  551.                 damage = int(round((enemy.attack / 2) + (usemove[1] / 5)))
  552.                 damage -= int(round(plr.defence / 4))
  553.  
  554.                     #Critical hits and missing
  555.                 critmiss = random.randint(1, 10)
  556.                 crit = False
  557.                 miss = False
  558.                 if critmiss == 9:
  559.                     #Miss
  560.                     damage = 0
  561.                     miss = True
  562.                 elif critmiss == 10:
  563.                     #Critical hit
  564.                     damage *= 2
  565.                     crit = True
  566.  
  567.                 if not miss:
  568.                     if damage < 1:
  569.                         damage = 1
  570.  
  571.                 damage += random.randint(int(round(-damage * 0.1)), int(round(damage * 0.1 )))
  572.  
  573.                 plr.hpleft -= damage
  574.                
  575.                 print("\n", enemy.name, "used" , usemove[0])
  576.  
  577.                 if not miss:
  578.                     if crit:
  579.                         print("Critical Hit!")
  580.                     print("you took", damage, "damage!")
  581.  
  582.                 else:
  583.                     print(enemy.name, "missed!")
  584.  
  585.                 turn = "player"
  586.  
  587.             elif usemove[3] == "wisdom":
  588.                 damage = int(round((enemy.wisdom / 2) + (usemove[1] / 5)))
  589.                 damage -= int(round(plr.defence / 4))
  590.  
  591.                 #Critical hits and missing
  592.                 critmiss = random.randint(1, 10)
  593.                 crit = False
  594.                 miss = False
  595.                 if critmiss == 9:
  596.                     #Miss
  597.                     damage = 0
  598.                     miss = True
  599.                 elif critmiss == 10:
  600.                     #Critical hit
  601.                     damage *= 2
  602.                     crit = True
  603.                    
  604.                 if damage > 0:
  605.                     damage += random.randint(int(round(-damage * 0.1)), int(round(damage * 0.1)))
  606.  
  607.                 plr.hpleft -= damage
  608.  
  609.                 print("\n", enemy.name, "used" , usemove[0])
  610.                 if not miss:
  611.                     if crit:
  612.                         print("Critical hit!")
  613.                    
  614.                     print("you took", damage, "damage!")
  615.                 else:
  616.                     print(enemy.name, "missed!")
  617.  
  618.                 turn = "player"
  619.  
  620.  
  621.         if plr.hpleft <= 0 or enemy.hpleft <= 0:
  622.             resolved = True
  623.  
  624.             if plr.hpleft <= 0:
  625.                 print("\nYou lose!")
  626.             elif enemy.hpleft <= 0:
  627.                 print("You win!")
  628.                 print("You got", enemy.exp, "exp!")
  629.                 plr.exp += enemy.exp
  630.                 plr.plrlevel, plr.exp2level, plr.exp, plr.oldlevel = player.level(plr, plr.plrlevel, plr.exp)
  631.  
  632.                 if plr.plrlevel > plr.oldlevel:
  633.                     print("You levelled up!, you are now level", plr.plrlevel)
  634.                     plr.HP, plr.MP, plr.attack, plr.defence, plr.wisdom, plr.speed = player.stats(plr, plr.plrlevel, plr.race, plr.baseHP, plr.baseMP, plr.baseATK, plr.baseDEF, plr.baseWIS, plr.baseSPD)
  635.  
  636.     return plr
  637.  
  638. def showstats(plr):
  639.     print("\nHP:", plr.HP)
  640.     print("MP:", plr.MP)      
  641.     print("Attack:", plr.attack)
  642.     print("Defence:", plr.defence)
  643.     print("Wisdom:", plr.wisdom)
  644.     print("Speed:", plr.speed)
  645.    
  646. def main():
  647.     plr = char_build()
  648.    
  649.     battle(plr, slime)
  650.    
  651.     for i in range(4):
  652.         battle(plr, random.choice(level_1_enemies))
  653.        
  654.     while True:
  655.         if random.randint(1, 10) == 1:
  656.             battle(plr, kingzombie)
  657.         else:
  658.             battle(plr, random.choice(level_1_enemies))
  659.  
  660. if __name__ == "__main__":
  661.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement