Yes, you have to force it, because Attribute changes doesn't work like effect upgrades.
If you use an upgrade to scale an Effect the Buttons Tooltip will automatically refresh.
I had issues with Button Tooltips for a long time, because I wanted attribute scaled, ability damage effects and I just couldn't get it done.
But finally I found a solution to get it to work.
Maybe it's not the best, but hey it works.
Before we start we need some things first to get the trigger to work.
The trigger uses a behavior, inherited by a unit. Let's call it AttackDamage.
Furthermore, you will need to duplicate the damage effect used by your ability, to set it's value back, if you drop your weapon. Let's call them CutDamage and CutDamage2.
And of course you need a Button too for the tooltip, where we will use an expression with four different text:
A: Your hero cuts the enemy, dealing <d ref="Effect,CutDamage,Amount-
B: (String(AttackDamageScaled) with 0 decimal places)
C: "/><c val="FF8000">(+
B: (String(AttackDamageScaled) with 0 decimal places)
D: ) </c>physical damage.
So why did we took it apart, instead of using one string?
The answer is simple, because of the equation.
At the end of A you can see a - mark which is followed by a linked Local Variable what we converted to String from Real.
The trigger:
- Events:
Unit - Any Unit attribute points changed
- Local Variables:
AttackDamageStackCount = (Stack Count of AttackDamage on (Triggering Unit)) <Real>
AttackDamageScaled = 0.0 <Real>
- Conditions:
(Triggering behavior) == AttackDamage
- Actions:
If: (Unit type of (Triggering Unit)) == (your unit type of unit)
Then:
If: AttackDamageStackCount > 0.0
Then:
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (Value of Effects CutDamage2 (Damage CEffectDamage) Amount for player (Triggering player))
Variable - Modify AttackDamageStackCount: * 1.5 (can be changed to whatever value you want it to be)
Variable - Set AttackDamageScaled = AttackDamageStackCount
Variable - Modify AttackDamageStackCount: + (Value of Effects CutDamage Amount for player (Triggering player) as an integer)
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (String(AttackDamageStackCount) with 0 decimal places)
Catalog - Set value of Button,(your ability button here),Tooltip for player (Triggering player) to {~A~~B~~C~~B~~D~}
Else:
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (Value of Effects CutDamage2 Amount for player (Triggering player))
Catalog - Set value of Button,(your ability button here),Tooltip for player (Triggering player) to "Your hero cuts the enemy, dealing <d ref="Effect,CutDamage,Amount"/><c val="FF8000">(+)</c> damage."
The trigger will look something like this:
The button tooltip will look something like this if you dont have any weapon equipped:
And this if you have a weapon:
You can copy&paste this code in your editor for other abilities or heroes, you just need to change the Unit, Effects,Button, it's tooltip and the multiplier of course.
Please note that if anything changes your behavior stack count besides your weapons, it will change the damage of your ability too.
@Spoolofwhool: Go
Yes, you have to force it, because Attribute changes doesn't work like effect upgrades.
If you use an upgrade to scale an Effect the Buttons Tooltip will automatically refresh.
Here is a picture of the Button in Data Editor:
I hope his is what you meant.
I had issues with Button Tooltips for a long time,
because I wanted attribute scaled, ability damage effects and I just couldn't get it done.
But finally I found a solution to get it to work.
Maybe it's not the best, but hey it works.
Before we start we need some things first to get the trigger to work.
The trigger uses a behavior, inherited by a unit. Let's call it AttackDamage.
Furthermore, you will need to duplicate the damage effect used by your ability, to set it's value back, if you drop your weapon.
Let's call them CutDamage and CutDamage2.
And of course you need a Button too for the tooltip, where we will use an expression with four different text:
So why did we took it apart, instead of using one string?
The answer is simple, because of the equation.
At the end of A you can see a - mark which is followed by a linked Local Variable what we converted to String from Real.
The trigger:
- Events: Unit - Any Unit attribute points changed
- Local Variables:
AttackDamageStackCount = (Stack Count of AttackDamage on (Triggering Unit)) <Real>
AttackDamageScaled = 0.0 <Real>
- Conditions: (Triggering behavior) == AttackDamage
- Actions:
If: (Unit type of (Triggering Unit)) == (your unit type of unit)
Then:
If: AttackDamageStackCount > 0.0
Then:
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (Value of Effects CutDamage2 (Damage CEffectDamage) Amount for player (Triggering player))
Variable - Modify AttackDamageStackCount: * 1.5 (can be changed to whatever value you want it to be)
Variable - Set AttackDamageScaled = AttackDamageStackCount
Variable - Modify AttackDamageStackCount: + (Value of Effects CutDamage Amount for player (Triggering player) as an integer)
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (String(AttackDamageStackCount) with 0 decimal places)
Catalog - Set value of Button,(your ability button here),Tooltip for player (Triggering player) to {~A~~B~~C~~B~~D~}
Else:
Catalog - Set value of Effect,CutDamage,Amount for player (Triggering player) to (Value of Effects CutDamage2 Amount for player (Triggering player))
Catalog - Set value of Button,(your ability button here),Tooltip for player (Triggering player) to "Your hero cuts the enemy, dealing <d ref="Effect,CutDamage,Amount"/><c val="FF8000">(+)</c> damage."
The trigger will look something like this:
The button tooltip will look something like this if you dont have any weapon equipped:
And this if you have a weapon:
You can copy&paste this code in your editor for other abilities or heroes, you just need to change the Unit, Effects,Button, it's tooltip and the multiplier of course.
Please note that if anything changes your behavior stack count besides your weapons, it will change the damage of your ability too.
PS: Sorry for my English.