+ def proceed(self):
+ super().proceed()
+ if self.drunk >= 0:
+ self.drunk -= 1
+ if self.tripping >= 0:
+ self.tripping -= 1
+ if self.need_for_toilet > 0:
+ terrain = self.game.maps[self.position[0]][self.position[1]]
+ if terrain in self.game.terrains:
+ terrain_type = self.game.terrains[terrain]
+ if 'toilet' in terrain_type.tags:
+ self.send_msg('CHAT "You use the toilet. What a relief!"')
+ self.need_for_toilet = 0
+ if self.need_for_toilet > 0:
+ if random.random() > 0.9999:
+ self.need_for_toilet += 1
+ self.game.changed = True
+ if 100000 * random.random() < self.need_for_toilet:
+ self.send_msg('CHAT "You need to go to a toilet."')
+ if self.need_for_toilet > 100:
+ self.send_msg('CHAT "You pee into your pants. Eww!"')
+ self.need_for_toilet = 0
+ self.game.changed = True
+ if self.drunk == 0:
+ self.send_msg('CHAT "You sober up."')
+ self.invalidate('fov')
+ self.game.changed = True
+ if self.tripping == 0:
+ self.send_msg('DEFAULT_COLORS')
+ self.send_msg('CHAT "You sober up."')
+ self.game.changed = True
+ elif self.tripping > 0 and self.tripping % 250 == 0:
+ self.send_msg('RANDOM_COLORS')
+ self.game.changed = True
+ if random.random() > 0.9999:
+ if self.standing:
+ self.energy -= 1
+ else:
+ self.energy += 1
+ if self.energy <= 0 and self.standing and self.energy % 10 == 0:
+ self.send_msg('CHAT "All that walking or standing uses up '
+ 'your energy, which slows you down. Find a'
+ ' place to sit or lie down to regain it."')
+ if self.energy < -100:
+ self.send_msg('CHAT "Due to low energy, you collapse on the '
+ 'floor. Somebody calls an ambulance. You remember '
+ 'little of what happens afterwards. You end up '
+ 'back here, pumped full with stimulants."')
+ self.energy = 100
+ self.game.changed = True
+ if self.dancing and random.random() > 0.99 and not self.next_task[0]:
+ self.dancing -= 1
+ direction = random.choice(self.game.map_geometry.directions)
+ self.set_next_task('MOVE', [direction])
+ if random.random() > 0.9:
+ self.energy -= 1
+ self.game.changed = True
+ if 1000000 * random.random() < self.energy - 50:
+ self.send_msg('CHAT "Your body tries to '
+ 'dance off its energy surplus."')
+ self.dancing += 50
+ self.game.changed = True
+