X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomrogue%2Fthings.py;h=ca9dcb16a895baa1550eec3e5ba1616a0b7b2e46;hb=2a7e3040d58b1d7dcddf64378bfd1abd8d7ded7c;hp=3c8f09da72ff02bd96584ae4297cfc053c6499e7;hpb=ac4f9e2337229827418b191743c1182cc5eae4d1;p=plomrogue2 diff --git a/plomrogue/things.py b/plomrogue/things.py index 3c8f09d..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,18 +445,20 @@ 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: self.bottle_counter = 0 - choice = random.choice(['MusicPlayer', 'Hat']) + choice = random.choice(['MusicPlayer', 'Hat', 'Stimulant', 'Psychedelic']) self.game.add_thing(choice, self.position) msg = 'here is a gift as a reward for ecological consciousness –' if choice == 'MusicPlayer': msg += 'pick it up and then use "command thing" on it!' elif choice == 'Hat': msg += 'pick it up and then use "(un-)wear" on it!' + elif choice in {'Psychedelic', 'Stimulant'}: + msg += 'pick it up and then use "consume" on it!' self.sound('BOTTLE DEPOSITOR', msg) def accept(self): @@ -480,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 @@ -494,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!') @@ -752,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."')