On line 53 'damage' is not a variable, but a function that returns a int, so you're trying to do 'Orchealth' (int) - 'damage' (int()).
By the way, damage() doesn't return anything. Add return damage at the end of its body.
It means the compiler can't find something called 'damage' that it can access from that point of the code.
If you change 'damage' to 'ad' it's natural that the compiler doesn't find 'damage' anymore.
You can either define a variable inside Instance() and store the value of the damage done to use it later
The core of the problem was that if you write damage you're referring to a variable called 'damage'; if you write damage() you're referring to a function called 'damage'.
Change 'damage' to 'ad' if you like that name better.