Sep-01-2020, 08:56 PM
Hello!
I've been coding a text based game which includes many variables, I have condensed the code more to make it easier to debug. I have a problem with the variable spider_1_health, where it says:
local variable 'spider_1_health' referenced before assignment
if anyone knows why this is happening, I would greatly appreciate it! Thanks!
I've been coding a text based game which includes many variables, I have condensed the code more to make it easier to debug. I have a problem with the variable spider_1_health, where it says:
local variable 'spider_1_health' referenced before assignment
if anyone knows why this is happening, I would greatly appreciate it! Thanks!
#imports here import random import time import sys import string string.ascii_letters #attack damage, crit chance and armor rating armor_number = 0 attack_damage = 0 crit_chance = 1 dragon_damage = 1 #all the variables - lets go! health = 20 coins = 700 #skill levels combat_skill = 0 mining_skill = 0 farming_skill = 0 spider_1_health = random.randint(12,25) def layer(): layer = 0 return layer spider_1_health = random.randint(12,25) layer = layer() def console_main(): global console_command #PUT ALL GLOBAL VARIABLES HERE: global shop_buy_options global shop_forge_options global inventory global coins global combat_skill global mining_skill global farming_skill global sword_equipped global helmet_equipped global chestplate_equipped global leggings_equipped global boots_equipped global crit_chance global dragon_damage global health #global spider_1_health if 1==1: print("Welcome to the Spider's Den. Here be monsters! There are skeletons, spiders, and all sorts of mystical creatures in this mound of death. The Spider Queen lurks at the bottom most cave.") print("Here are your options:") def spider_den_console(): print(""" /down: Enter the first layer of the mound, or go down one layer! /up: Start moving out of this evil place! /r: If outside, return to the base. """) spider_console = input("Choice: ") global layer if spider_console == "/up": time.sleep(4) if layer == 0: print("Unable to perform action. You are at the surface.") else: layer = layer - 1 print("You are in room ", layer) if spider_console == "/down": time.sleep(3) if layer == 9: print("Unable to perform action! In the Queen's Den!") if layer < 9: layer = layer + 1 print("You are in room ", layer) if spider_console == "/r": if layer == 0: location.clear() location.append("base") if layer > 0: print("Not on surface!") def spiders_den_1(): global attack_damage global spider_1_health global health ability = random.randint(11,20) true_ability = (ability*layer) if true_ability < 11: spider_den_console() if 10 < true_ability < 30: print("A Lvl. 1 Spider is moving to attack!") #spider_1_health = random.randint(12,25) def you_attack(): spider_1_rand_letter = random.choice(string.ascii_letters) first_attack_spider_1_before = time.time() print("Get the first hit! click letter ") random_spider_1_time = random.randint(0,6) time.sleep(random_spider_1_time) attack_spider_1 = input(spider_1_rand_letter) first_attack_spider_1_after = time.time() spider_1_attack_time = first_attack_spider_1_after - first_attack_spider_1_before spider_1_critical = 0 rand_crit_spider_1 = random.randint(0,100) crit_possible = rand_crit_spider_1*crit_chance if crit_possible > 85: spider_1_critical = 1 print("Critical Hit!") if spider_1_rand_letter == attack_spider_1: print("Attack Successful!") total_damage_spider_1 = (((1/spider_1_attack_time)**1.15)*attack_damage)*(spider_1_critical + 1) print("You did ",total_damage_spider_1," damgage to the level one spider.") spider_1_health = spider_1_health - total_damage_spider_1 def spider_1_check_dead(): if spider_1_health <= 0: print("You killed the level one spider!") combat_skill = combat_skill + 5 spider_1_loot = random.randint(1,100) if spider_1_loot < 30: print("No loot received from the spider. Combat level has increased by 5.") if 29 < spider_1_loot < 90: print("You found Ordinary Silk!") inventory.append("Ordinary Silk") #make sure to do something with this! if 89 < spider_loot_1 < 98: print("You found the Rare Spider Mandible! (It may be used as a weapon)") inventory.append("Rare Spider Mandible") if 97 < spider_loot_1: print("You found a Spider Egg and 1 Hardened Diamond!") inventory.appned("Spider Egg") inventory.append("Hardened Diamond") def spider_1_attack(): print("The Spider is still alive and is attacking you!") spider_1_damage = random.randint(1,7) health = health - spider_1_damage print("Your Health: ", health) while spider_1_health > 0: you_attack() if spider_1_health > 0: spider_1_attack() spider_1_check_dead() spider_den_console() print (layer) while layer == 0: spider_den_console() while layer == 1: spiders_den_1() console_main() while 1==1: console_main()