I made multiple changes.
*Turn the Attack off a Loop*
This way when it finishes you can calculate the damage then re attack again.
If Char.Def = 1 (True) then you want reduced damage, I reduced it by all 10.
So, char.Defense in instance variable type must boolean or number?