Reputation: 13
#!/bin/bash
RED='\033[0;31m'
NC='\033[0m'
Bokoblin_HP=30
Bokoblin_STR=5
Link_HP=60
Link_STR=10
while [ $Bokoblin_HP -ne 0 ]
echo "Bokblin HP : ${Bokoblin_HP}/30"
do
read -p "Press A to Attack or Press H to Heal : " action
if [ $action = "A" ]
then
((Bokoblin_HP=$Bokoblin_HP-$Link_STR))
echo $Bokoblin_HP
fi
done
Result :
Bokoblin HP : 30/30
Press A to Attack or Press H to Heal : A
30
I'm doing an operation on Bokoblin_HP and I would like to stop the program when it reach 0, but my variable won't change and still 30.
Upvotes: 0
Views: 291
Reputation: 5006
Just swap two lines make the program work.
Also, be sure to type an upper A
#!/bin/bash
RED='\033[0;31m'
NC='\033[0m'
Bokoblin_HP=30
Bokoblin_STR=5
Link_HP=60
Link_STR=10
while [ $Bokoblin_HP -ne 0 ]
do
echo "Bokblin HP : ${Bokoblin_HP}/30"
read -p "Press A to Attack or Press H to Heal : " action
if [ $action = "A" ]
then
((Bokoblin_HP=$Bokoblin_HP-$Link_STR))
echo $Bokoblin_HP
fi
done
Output :
<user>@<machine> ~
└─ $ ./test.sh
Bokblin HP : 30/30
Press A to Attack or Press H to Heal : A
20
Bokblin HP : 20/30
Press A to Attack or Press H to Heal : A
10
Bokblin HP : 10/30
Press A to Attack or Press H to Heal : A
0
<user>@<machine> ~
Upvotes: 1
Reputation: 104
Idk how is supposed to work your solution, im using this
Bokoblin_HP=$(($Bokoblin_HP-$Link_STR))
Upvotes: 0