X-Git-Url: https://plomlompom.com/repos/condition_titles?a=blobdiff_plain;f=plomrogue%2Fthings.py;h=ca9dcb16a895baa1550eec3e5ba1616a0b7b2e46;hb=2a7e3040d58b1d7dcddf64378bfd1abd8d7ded7c;hp=3a72ca31728dfd72ebeb8e6cd8b23510db34615c;hpb=8dfe78d39a92e2967459bf7e4da5e3ed93741ae7;p=plomrogue2 diff --git a/plomrogue/things.py b/plomrogue/things.py index 3a72ca3..ca9dcb1 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 @@ -444,7 +445,7 @@ class Thing_MusicPlayer(Thing): class Thing_BottleDeposit(Thing): bottle_counter = 0 - symbol_hint = 'O' + symbol_hint = 'b' def proceed(self): if self.bottle_counter >= 3: @@ -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 @@ -496,7 +510,7 @@ class Thing_Cookie(Thing): class Thing_CookieSpawner(Thing): - symbol_hint = 'O' + symbol_hint = 'o' def accept(self, thing): self.sound('OVEN', '*heat* *brrzt* here\'s a cookie!') @@ -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."')