diff --git a/src/characters.py b/src/characters.py index 286803ab..ca857993 100644 --- a/src/characters.py +++ b/src/characters.py @@ -1367,10 +1367,10 @@ def heal(self, amount, reason=None): if not amount: return - if self.reduceExhaustionOnHeal: - self.exhaustion = max(0,self.exhaustion-(amount//self.reduceExhaustionDividend+self.reduceExhaustionBonus)) - if self.removeExhaustionOnHeal: - self.exhaustion = 0 + #if self.reduceExhaustionOnHeal: + # self.exhaustion = max(0,self.exhaustion-(amount//self.reduceExhaustionDividend+self.reduceExhaustionBonus)) + #if self.removeExhaustionOnHeal: + # self.exhaustion = 0 if self.maxHealth - self.health < amount: amount = self.maxHealth - self.health diff --git a/src/interaction.py b/src/interaction.py index 7da3ff2c..d856eb95 100644 --- a/src/interaction.py +++ b/src/interaction.py @@ -2532,7 +2532,10 @@ def handleNoContextKeystroke(char,charState,flags,key,main,header,footer,urwid,n # move the player if key in (commandChars.wait): char.timeTaken += 1 - char.exhaustion = max(0,char.exhaustion-10) + if char.exhaustion > 1: + char.exhaustion = max(1,char.exhaustion-10) + else: + char.exhaustion = 0 char.lastMoveSkipped = True return None if key in (commandChars.move_north, "up"): diff --git a/src/rooms.py b/src/rooms.py index 93057769..4861e304 100644 --- a/src/rooms.py +++ b/src/rooms.py @@ -1730,7 +1730,11 @@ def moveCharacterDirection(self, character, direction, dash=False): if character in self.characters: self.removeCharacter(character) if not dash: - character.timeTaken += character.movementSpeed + multiplier = 1 + if character.exhaustion: + character.exhaustion -= 1 + multiplier = 1.2 + character.timeTaken += character.movementSpeed*multiplier else: character.timeTaken += character.movementSpeed/2 character.exhaustion += 5 diff --git a/src/terrains.py b/src/terrains.py index 9ad3e7ff..36e6b108 100644 --- a/src/terrains.py +++ b/src/terrains.py @@ -436,7 +436,12 @@ def enterLocalised(self, char, room, localisedEntry, direction): return room.itemByCoordinates[localisedEntry][0] char.changed("moved", (char, direction)) - char.timeTaken += char.movementSpeed + + multiplier = 1 + if char.exhaustion: + char.exhaustion -= 1 + multiplier = 1.2 + char.timeTaken += char.movementSpeed*multiplier # teleport the character into the room room.addCharacter(char, localisedEntry[0], localisedEntry[1]) @@ -886,7 +891,11 @@ def moveCharacterDirection(self, char, direction, dash=False): char.changed("moved", (char, direction)) if not dash: - char.timeTaken += char.movementSpeed + multiplier = 1 + if char.exhaustion: + char.exhaustion -= 1 + multiplier = 1.2 + char.timeTaken += char.movementSpeed*multiplier else: char.timeTaken += char.movementSpeed/2 char.exhaustion += 5