note: You don't state which version of SugarCube you are using so I will assume that it's v1.0.35
You could create one or more widgets that you use to both update the relevant store variable and output the related text message.
1. Initialise the variables within your StoryInit special passage.
<<set $healthpoints to 10>>
2. Create a passage to store your widgets in and assign this passage a widget tag.
The passage name isn't important so you can name it whatever you like, I named mine Widgets for simplicity sake. The following example defines two widget: one to increase the value of the $healthpoints variable and the other to decrease it, to could create two similar widgets for each of the relevant story variables.
<<widget "increasehealth">>
\<<if $args[0]>>
<<set $healthpoints += $args[0]>>
<<replace "#messages">>You feel your vigor increase!<</replace>>
\<</if>>
\<</widget>>
<<widget "decreasehealth">>
\<<if $args[0]>>
<<set $healthpoints -= $args[0]>>
<<replace "#messages">>You feel your vigor decrease!<</replace>>
\<</if>>
\<</widget>>
3. A passage to test the new widgets in.
Click on each of the two links to see the message change.
<span id="messages"></span>
<<click "Increase Health">>
\<<increasehealth 3>>
\<<append "#messages">><br>Health is $healthpoints<</append>>
\<</click>>
<<click "Deccrease Health">>
\<<decreasehealth 2>>
\<<append "#messages">><br>Health is $healthpoints<</append>>
\<</click>>
4. You can use the following code to clear the messages ID'ed area.
<<replace "#messages">><</replace>>