diff --git a/pcmove.cpp b/pcmove.cpp index 4596acc6..2560261f 100644 --- a/pcmove.cpp +++ b/pcmove.cpp @@ -325,10 +325,15 @@ bool pcmove::movepcto() { else lastmountpos[0] = cwt.at; + bool fatigued = false; + if(againstRose(cwt.at, NULL) && d<0 && !scentResistant()) { - if(vmsg(miRESTRICTED)) - addMessage("You just cannot stand in place, those roses smell too nicely."); - return false; + fatigued = items[itFatigue] >= 8; + if(!fatigued) { + if(vmsg(miRESTRICTED)) + addMessage(XLAT("You just cannot stand in place, those roses smell too nicely.")); + return false; + } } gravity_state = gsNormal; @@ -340,6 +345,7 @@ bool pcmove::movepcto() { changes.init(checkonly); changes.value_keep(bow::bowpath_map); bow::bowpath_map.clear(); + if(fatigued) addMessage(XLAT("The roses smell nicely, but you are just too tired to care.")); bool b = (d >= 0 && bow::fire_mode) ? false : (d >= 0) ? actual_move() : stay(); if(checkonly || !b) { changes.rollback();