Example #1
0
    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))
Example #2
0
	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))
Example #3
0
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))
Example #4
0
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)
Example #5
0
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)))
Example #6
0
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)))
Example #7
0
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)))
Example #8
0
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
Example #10
0
def enter(user, reply):
    rooms = [roomloader.get_next_room() for i in range(3)]
    user.set_room_temp('rooms', rooms)
Example #11
0
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