How do I resolve this error?
Traceback (most recent call last):
You attacked Magus for 291 points of damage.
File "/Users/bill/Documents/Dev/PycharmProjects/Battle/main.py", line 189, in <module>
spell, magic_dmg = enemy.choose_enemy_spell()
It's only happening sometimes. I'm at a loss as to why it only happens sometimes and why only sometimes this data is "NoneType".
for enemy in enemies:
enemy_choice = random.randrange(0, 2)
if enemy_choice == 0:
target = random.randrange(0, 2)
enemy_dmg = enemies[0].generate_damage()
players[target].take_damage(enemy_dmg)
print(enemy.name.replace(" ", "") + " attacks " + players[target].name.replace(" ", "") + " for", str(enemy_dmg) + ".")
elif enemy_choice == 1:
spell, magic_dmg = enemy.choose_enemy_spell()
enemy.reduce_mp(spell.cost)
if spell.type == "white":
enemy.heal(magic_dmg)
print(bcolors.OKBLUE + spell.name + " heals " + enemy.name.replace(" ", "") + " for", str(magic_dmg), "HP." + bcolors.ENDC)
elif spell.type == "black":
target = random.randrange(0, 2)
players[target].take_damage(magic_dmg)
print(bcolors.OKBLUE + "\n" + enemy.name.replace(" ", "") + "'s " + spell.name + " deals", str(magic_dmg),
"points of damage to " + players[target].name.replace(" ", "") + bcolors.ENDC)
if players[target].get_hp() == 0:
print(players[target].name.replace(" ", "") + " has died.")
del players[player]
Here is the complete code: https://pastebin.com/2tztP4P4
The error is in line 400. You are not returning anything there, which means you are returning None
which cannot be unwrapped into spell, magic_dmg
.