def check(self):
if not self.thing.carrying:
raise PlayError('nothing to drop')
+ if self.thing.carrying.type_ == 'Bottle' and self.thing.carrying.full:
+ for t in [t for t in self.thing.game.things
+ if t.type_ == 'BottleDeposit'
+ and t.position == self.thing.position]:
+ raise PlayError('cannot drop full bottle into bottle deposit')
def do(self):
+ if self.thing.carrying.type_ == 'Bottle' and not self.thing.carrying.full:
+ for t in [t for t in self.thing.game.things
+ if t.type_ == 'BottleDeposit'
+ and t.position == self.thing.position]:
+ t.accept()
+ self.thing.game.things.remove(self.thing.carrying)
+ break
self.thing.carrying = None
symbol_hint = 'R'
commandable = True
portable = True
- playlist = []
repeat = True
next_song_start = datetime.datetime.now()
playlist_index = 0
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.next_song_start = datetime.datetime.now()
+ self.playlist = []
def proceed(self):
if (not self.playing) or len(self.playlist) == 0:
+class Thing_BottleDeposit(Thing):
+ bottle_counter = 0
+ symbol_hint = 'O'
+
+ def proceed(self):
+ if self.bottle_counter >= 3:
+ self.bottle_counter = 0
+ t = self.game.thing_types['MusicPlayer'](self.game,
+ position=self.position)
+ self.game.things += [t]
+ self.sound('BOTTLE DEPOSITOR',
+ 'here is a gift as a reward for ecological consciousness –'
+ 'use "command thing" on it to learn more!')
+ self.game.changed = True
+
+ def accept(self):
+ self.bottle_counter += 1
+ self.sound('BOTTLE DEPOSITOR',
+ 'thanks for this empty bottle – deposit %s more for a gift!' %
+ (3 - self.bottle_counter))
+
+
+
+
class ThingAnimate(Thing):
blocking = True
drunk = 0
from plomrogue.things import (Thing_Player, Thing_Item, Thing_ItemSpawner,
Thing_SpawnPoint, Thing_SpawnPointSpawner,
Thing_Door, Thing_DoorSpawner, Thing_Bottle,
- Thing_BottleSpawner, Thing_MusicPlayer)
+ Thing_BottleSpawner, Thing_BottleDeposit,
+ Thing_MusicPlayer)
from plomrogue.config import config
game = Game(config['savefile'])
game.register_thing_type(Thing_DoorSpawner)
game.register_thing_type(Thing_Bottle)
game.register_thing_type(Thing_BottleSpawner)
+game.register_thing_type(Thing_BottleDeposit)
game.register_thing_type(Thing_MusicPlayer)
game.read_savefile()
game.io.start_loop()