def lower_msg_by_volume(msg, volume, largest_audible_distance,
url_limits = []):
- import random
factor = largest_audible_distance / 4
lowered_msg = ''
in_url = False
+class ThingInstallable(Thing):
+ portable = True
+ installable = True
+
+ def install(self):
+ self.portable = False
+
+ def uninstall(self):
+ self.portable = True
+
+
+
class Thing_DoorSpawner(ThingSpawner):
child_type = 'Door'
-class Thing_Door(Thing):
+class Thing_Door(ThingInstallable):
symbol_hint = 'D'
blocks_movement = False
- portable = True
- installable = True
def open(self):
self.blocks_movement = False
self.blocks_sound = True
self.thing_char = '#'
- def install(self):
- self.portable = False
-
- def uninstall(self):
- self.portable = True
-
class Thing_Psychedelic(Thing):
self.full = False
def spin(self):
- import random
all_players = [t for t in self.game.things if t.type_ == 'Player']
# TODO: refactor with ThingPlayer.prepare_multiprocessible_fov_stencil
# and ThingPlayer.fov_test
class ThingAnimate(Thing):
blocks_movement = True
- drunk = 0
- tripping = 0
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
class Thing_Player(ThingAnimate):
symbol_hint = '@'
+ drunk = 0
+ tripping = 0
+ need_for_toilet = 0
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def proceed(self):
super().proceed()
- self.drunk -= 1
+ if self.drunk >= 0:
+ self.drunk -= 1
+ if self.tripping >= 0:
+ self.tripping -= 1
+ if self.need_for_toilet > 0:
+ self.need_for_toilet *= 1.01
+ 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 10000 * random.random() < self.need_for_toilet / 100000:
+ self.send_msg('CHAT "You need to use a toilet."')
if self.drunk == 0:
self.send_msg('CHAT "You sober up."')
self.invalidate('fov')
self.game.changed = True
- self.tripping -= 1
if self.tripping == 0:
self.send_msg('DEFAULT_COLORS')
self.send_msg('CHAT "You sober up."')