#"Variables are used but never defined"

5 messages · Page 1 of 1 (latest)

solid shadow
#

Don't mind sharing the above as I was just bored but wondering why I'm getting this critical error which makes it fail to compile:

#
                         @abimethod
                         def battle(self) -> None:```
#

This is the method in question:

    def battle(self) -> None:

        user_address = Address(Txn.sender)

        character = self.user[user_address].copy()
        
        random_enemy = self.generate_enemy(current_level=character.combat_level)

        character_hp = character.hp.native
        enemy_hp = random_enemy.hp.native
        
        player_won = False
        
        while character_hp > 0 and enemy_hp > 0:
            player_hit, player_hit_amount = self.determine_player_attack_hit(character, random_enemy)
            if player_hit:
                if enemy_hp <= player_hit_amount:
                    player_won = True
                    break
                else:
                    enemy_hp -= player_hit_amount
            else:
                pass

            enemy_hit, enemy_hit_amount = self.determine_enemy_attack_hit(random_enemy, character)
            if enemy_hit:
                if character_hp <= enemy_hit_amount:
                    player_won = False
                    break
                else:
                    character_hp -= enemy_hit_amount
            else:
                pass

        if player_won:
            self.provide_battle_exp(character, random_enemy)

        self.user[user_address] = character.copy()```
solid shadow
#

Found a fix:

#
            player_hit, player_hit_amount = self.determine_player_attack_hit(character.copy(), random_enemy.copy())

. . .

            else:
                pass

            enemy_hit, enemy_hit_amount = self.determine_enemy_attack_hit(random_enemy.copy(), character.copy())

. . .