Проблема в том, что если ХП становится ниже значения указанного в коде, то он пытается закурить 1 раз и если этот раз неудачный, то он не пытается снова, а будет пробовать только после того, как ХП понизится еще ниже.
1707827010
тут то же самое что и выше