You shouldn't be setting the variables to a specific value. Instead, you should be adding/subtracting from a base value.
For example:
AttackDamage = 1.00 (Default)
Effect1 is applied to the Hero, set AttackDamage = AttackDamage + 0.50 (50% dmg buff)
Effect2 is applied to the Hero, set AttackDamage = AttackDamage - 0.50 (-50% dmg debuff)
This results in: 1.00 + 0.50 = 1.50 --> 1.50 - 0.50 = 1.00.
As long as you're handling the addition/subtraction correctly it will always work.
Then you can check for cases of negative damage dealt (say the hero has -150% dmg, or a -1.50 multiplier) and set the damage to 0.