def open_room(self, reply, room_type=None, room_name=None): self.state = 'room' if not (room_type and room_name): if self.rooms_to_story < 1: room_type, room_name = 'story', self.next_story_room else: self.rooms_to_story -= 1 room_type, room_name = roomloader.get_next_room() self.room = (room_type, room_name) self.room_temp = {} room = roomloader.load_room(self.room[1], self.room[0]) if room_type == 'story': self.story_level += 1 self.next_story_room = room.next_story_room mn, mx = room.next_story_room_range self.rooms_to_story = random.randint(mn, mx) for i in self.get_items(): i.on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply(locale_manager.get('ROOM_OPENED')) reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self))
def open_room(self, reply, room_type=None, room_name=None): self.state = 'room' if not (room_type and room_name): if self.rooms_to_story < 1: room_type, room_name = 'story', self.next_story_room else: self.rooms_to_story -= 1 room_type, room_name = roomloader.get_next_room() self.room = (room_type, room_name) self.room_temp = { } room = roomloader.load_room(self.room[1], self.room[0]) if room_type == 'story': self.story_level += 1 self.next_story_room = room.next_story_room mn, mx = room.next_story_room_range self.rooms_to_story = random.randint(mn, mx) for i in self.get_items(): i.on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply('Вы открываете дверь, а за ней...') reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply('Твои действия?', room.get_actions(self))
def open_room(self, reply, room_type=None, room_name=None): if self.race == RAT_RACE: reply('Ты — крыса, у тебя не хватило сил сдвинуть дверь с места :(') self.open_corridor(reply) return self.state = 'room' self.rooms_count += 1 for m in self.missions: m.room_opened() if not (room_type and room_name): room_type, room_name = roomloader.get_next_room(self) logger.info('room_opened ' + room_name) last_mission = self.get_last_mission() if last_mission.get_room_type( ) == room_type and last_mission.get_room_name() == room_name: self.pop_mission() self.room = (room_type, room_name) self.room_temp = {} room = roomloader.load_room(self.room[1], self.room[0]) for i in self.get_items(): i.on_room(self, reply, room) to_delete = [] for i, b in enumerate(self.buffs): try: b.on_room(self, reply, room) if b.time <= 0: to_delete.append(i) except: pass for i in reversed(to_delete): self.buffs[i].on_end(self, reply, room) del self.buffs[i] if self.pet: self.get_pet().on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply(locale_manager.get('ROOM_OPENED')) reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self))
def enter(user, reply): rooms = [ ] while len(rooms) < 3: rm = roomloader.get_next_room() if rm[1] != 'empty': rooms.append(rm) user.set_room_temp('rooms', rooms)
def enter(user, reply): rooms = [ ] while len(rooms) < 4: rm = roomloader.get_next_room(user) loaded_room = roomloader.load_room(rm[1], rm[0], user) if random.random() < 0.05: rm = ('special', 'rick_astley') if not loaded_room.not_for_sign: rooms.append(rm) user.set_room_temp('rooms', list(set(rooms)))
def enter(user, reply): rooms = [ ] while len(rooms) < 3: rm = roomloader.get_next_room(user) if random.random() < 0.05: rm = ('special', 'rick_astley') if rm[1] != 'empty': rooms.append(rm) user.set_room_temp('rooms', list(set(rooms)))
def open_room(self, reply, room_type=None, room_name=None): if self.race == RAT_RACE: reply('Ты крыса, у тебя не хватило сил сдвинуть дверь с места :(') self.open_corridor(reply) return self.state = 'room' self.rooms_count += 1 self.rooms_to_story -= 1 if not (room_type and room_name): if self.rooms_to_story < 1: room_type, room_name = 'story', self.next_story_room else: room_type, room_name = roomloader.get_next_room() self.room = (room_type, room_name) self.room_temp = { } room = roomloader.load_room(self.room[1], self.room[0]) if room_type == 'story': self.story_level += 1 self.next_story_room = room.next_story_room mn, mx = room.next_story_room_range self.rooms_to_story = random.randint(mn, mx) for i in self.get_items(): i.on_room(self, reply, room) if self.pet: self.get_pet().on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply(locale_manager.get('ROOM_OPENED')) reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self))
def open_room(self, reply, room_type=None, room_name=None): if room_name != 'halloween_shop': self.set_variable('halloween_visited', False) if self.race == RAT_RACE: reply('Ты — крыса, у тебя не хватило сил сдвинуть дверь с места :(') self.open_corridor(reply) return self.state = 'room' self.rooms_count += 1 for m in self.missions: m.room_opened() if not (room_type and room_name): room_type, room_name = roomloader.get_next_room(self) logger.info('room_opened ' + room_name) last_mission = self.get_last_mission() if last_mission.get_room_type( ) == room_type and last_mission.get_room_name() == room_name: self.pop_mission() self.room = (room_type, room_name) self.room_temp = {} visited = self.get_perma_variable('visited_rooms', def_val=[]) if room_name not in visited: visited.append(room_name) self.set_perma_variable('visited_rooms', visited) statistics.track(self.uid, { 'uid': self.uid, 'name': room_name, 'type': room_type }, 'Room opened') room = roomloader.load_room(self.room[1], self.room[0], self) for i in self.get_items(): i.on_room(self, reply, room) to_delete = [] for i, b in enumerate(self.buffs): try: b.on_room(self, reply, room) if b.time <= 0: to_delete.append(i) except: pass for i in reversed(to_delete): self.buffs[i].on_end(self, reply, room) del self.buffs[i] if self.pet: self.get_pet().on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply(locale_manager.get('ROOM_OPENED')) reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self)) if not room.can_open(self, reply): room.open_failure(self, reply) self.open_corridor(reply) return
def enter(user, reply): rooms = [roomloader.get_next_room() for i in range(3)] user.set_room_temp('rooms', rooms)
def open_room(self, reply, room_type=None, room_name=None): if room_name != 'halloween_shop': self.set_variable('halloween_visited', False) if self.race == RAT_RACE: reply('Ты — крыса, у тебя не хватило сил сдвинуть дверь с места :(') self.open_corridor(reply) return self.state = 'room' self.rooms_count += 1 for m in self.missions: m.room_opened() if not (room_type and room_name): room_type, room_name = roomloader.get_next_room(self) logger.info('room_opened ' + room_name) last_mission = self.get_last_mission() if last_mission.get_room_type() == room_type and last_mission.get_room_name() == room_name: self.pop_mission() self.room = (room_type, room_name) self.room_temp = { } visited = self.get_perma_variable('visited_rooms', def_val=[]) if room_name not in visited: visited.append(room_name) self.set_perma_variable('visited_rooms', visited) statistics.track(self.uid, {'uid': self.uid, 'name': room_name, 'type': room_type}, 'Room opened') room = roomloader.load_room(self.room[1], self.room[0], self) for i in self.get_items(): i.on_room(self, reply, room) to_delete = [ ] for i, b in enumerate(self.buffs): try: b.on_room(self, reply, room) if b.time <= 0: to_delete.append(i) except: pass for i in reversed(to_delete): self.buffs[i].on_end(self, reply, room) del self.buffs[i] if self.pet: self.get_pet().on_room(self, reply, room) if room.room_type == 'monster': self.set_room_temp('hp', room.hp) reply(locale_manager.get('ROOM_OPENED')) reply(room.name + '!') room.enter(self, reply) if self.state == 'room': reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self)) if not room.can_open(self, reply): room.open_failure(self, reply) self.open_corridor(reply) return