X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;ds=sidebyside;f=plomrogue%2Fthings.py;h=6cb1e89c3b3df30f9e9cd2dbedf09c42cd5649a9;hb=5d3c2a69f040a8e4e0538a1fe7f64948aede0e0a;hp=3a72ca31728dfd72ebeb8e6cd8b23510db34615c;hpb=8dfe78d39a92e2967459bf7e4da5e3ed93741ae7;p=plomrogue2 diff --git a/plomrogue/things.py b/plomrogue/things.py index 3a72ca3..6cb1e89 100644 --- a/plomrogue/things.py +++ b/plomrogue/things.py @@ -29,6 +29,7 @@ class Thing(ThingBase): cookable = False carried = False consumable = False + sittable = False def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -50,7 +51,7 @@ class Thing(ThingBase): def lower_msg_by_volume(msg, volume, largest_audible_distance, url_limits = []): - factor = largest_audible_distance / 4 + factor = largest_audible_distance / 2 lowered_msg = '' in_url = False i = 0 @@ -482,6 +483,19 @@ class Thing_StimulantSpawner(ThingSpawner): +class Thing_Chair(Thing): + symbol_hint = 'h' + portable = True + sittable = True + + + +class Thing_ChairSpawner(ThingSpawner): + symbol_hint = 'e' + child_type = 'Chair' + + + class Thing_Cookie(Thing): symbol_hint = 'c' portable = True @@ -754,3 +768,18 @@ class Thing_Player(ThingAnimate): chars_split = list(chars) chars_split.sort() return ''.join(chars_split) + + def try_to_sit(self): + terrain = self.game.maps[self.position[0]][self.position[1]] + if terrain in self.game.terrains: + terrain_type = self.game.terrains[terrain] + if 'sittable' in terrain_type.tags: + self.standing = False + self.send_msg('CHAT "You sink into the %s. ' + 'Staying here will replenish your energy."' + % terrain_type.description) + for t in [t for t in self.game.things + if t.type_ == 'Chair' and t.position == self.position]: + self.standing = False + self.send_msg('CHAT "You sink into the Chair. ' + 'Staying here will replenish your energy."')