Ejemplo n.º 1
0
def msg(bot, update):
	c_id = update.message.chat_id
	statistics.track(c_id, update.message)

	global msg, image, buttons
	msg = ''
	image = None
	buttons = None

	def rep(txt, btns=None, photo=None):
		global msg, image, buttons

		if len(msg) + len(txt) + 2 >= 4096:
			_reply(c_id, bot, msg, buttons, image)

			msg = ''
			image = None
			buttons = None


		msg += '\n\n'
		msg += txt

		if btns:
			buttons = btns
		if photo:
			image = photo

	usermanager.message(c_id, rep, update.message.text)

	if len(msg) > 0 or image:
		global updater

		_reply(c_id, bot, msg, buttons, image)
Ejemplo n.º 2
0
def msg(bot, update):
	c_id = update.message.chat_id
	statistics.track(c_id, update.message)

	global msg, image, buttons
	msg = ''
	image = None
	buttons = None

	def rep(txt, btns=None, photo=None):
		global msg, image, buttons

		if len(msg) + len(txt) + 2 >= 4096:
			_reply(c_id, bot, msg, buttons, image)

			msg = ''
			image = None
			buttons = None


		msg += '\n\n'
		msg += txt

		if btns:
			buttons = btns
		if photo:
			image = photo

	usermanager.message(c_id, rep, update.message.text)

	if len(msg) > 0 or image:
		global updater

		_reply(c_id, bot, msg, buttons, image)
Ejemplo n.º 3
0
def start(bot, update):
    c_id = update.message.chat_id
    global msg, image, buttons
    msg = ''
    image = None
    buttons = None

    statistics.track(c_id, update.message, 'Start')

    def rep(txt, btns=None, photo=None):
        global msg, image, buttons

        if len(msg) + len(txt) + 2 >= 4096:
            reply(c_id, bot, msg, buttons, image)

            msg = ''
            image = None
            buttons = None

        msg += '\n\n'
        msg += txt

        if btns:
            buttons = btns
        if photo:
            image = photo

    username = ''
    try:
        username = bot.getChat(uid)['username']
    except:
        pass
    usermanager.new_user(c_id, username if len(username) > 0 else None, rep)
    if len(msg) > 0 or image:
        reply(c_id, bot, msg, buttons, image)
def death(self, reply, reason=None):
    if self.state == 'room':
        room = roomloader.load_room(self.room[1], self.room[0], self)
        room.on_death(self, reply)
        reply(locale_manager.get('DEATH_PLACE').format(room.name))

    self.dead = True
    self.state = ''

    self.update_leaderbord(reason)
    track_stats = {
        'uid': self.uid,
        'reason': reason,
        'rooms_count': self.rooms_count,
        'gold': self.gold,
        'kills_count': self.monsters_killed,
        'damage': self.get_damage(),
        'defence': self.get_defence(),
        'charisma': self.get_charisma(),
        'mana_damage': self.get_mana_damage(),
        'live_time': self.get_live_time()
    }
    statistics.track(self.uid, track_stats, 'Death')

    reply(
        locale_manager.get('DEAD_MESSAGE').format(self.monsters_killed,
                                                  self.rooms_count),
        ['/start'])

    if 'save' in self.variables:
        self.recover(reply)
Ejemplo n.º 5
0
def death(self, reply, reason=None):
	if self.state == 'room':
		room = roomloader.load_room(self.room[1], self.room[0], self)
		room.on_death(self, reply)
		reply(locale_manager.get('DEATH_PLACE').format(room.name))

	self.dead = True
	self.state = ''

	self.update_leaderbord(reason)
	track_stats = {
		'uid': self.uid, 
		'reason': reason, 
		'rooms_count': self.rooms_count,
		'gold': self.gold,
		'kills_count': self.monsters_killed,
		'damage': self.get_damage(),
		'defence': self.get_defence(),
		'charisma': self.get_charisma(),
		'mana_damage': self.get_mana_damage(),
		'live_time': self.get_live_time()
	}
	statistics.track(self.uid, track_stats, 'Death')

	reply(locale_manager.get('DEAD_MESSAGE').format(self.monsters_killed, self.rooms_count), [ '/start' ])

	if 'save' in self.variables:
		self.recover(reply)
Ejemplo n.º 6
0
def setname(bot, update):

	txt = update.message.text
	if len(txt) > len('/setname'):
		statistics.track(update.message.chat_id, update.message, 'Setname')
		
		name = txt[len('/setname')+1:]
		usermanager.setname(update.message.chat_id, name)

		bot.sendMessage(update.message.chat_id, text='Ну хорошо')
Ejemplo n.º 7
0
def setname(bot, update):

	txt = update.message.text
	if len(txt) > len('/setname'):
		statistics.track(update.message.chat_id, update.message, 'Setname')
		
		name = txt[len('/setname')+1:]
		usermanager.setname(update.message.chat_id, name)

		bot.sendMessage(update.message.chat_id, text='Ну хорошо')
Ejemplo n.º 8
0
def start(bot, update):
	c_id = update.message.chat_id
	global msg, image, buttons
	msg = ''
	image = None
	buttons = None

	statistics.track(c_id, update.message, 'Start')

	def rep(txt, btns=None, photo=None):
		global msg, image, buttons

		if len(msg) + len(txt) + 2 >= 4096:
			reply(c_id, bot, msg, buttons, image)

			msg = ''
			image = None
			buttons = None


		msg += '\n\n'
		msg += txt

		if btns:
			buttons = btns
		if photo:
			image = photo

	username = ''
	try:
		username = bot.getChat(uid)['username']
	except:
		pass
	usermanager.new_user(c_id, username if len(username) > 0 else None, rep)
	if len(msg) > 0 or image:
		reply(c_id, bot, msg, buttons, image)
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
Ejemplo n.º 10
0
def stop(bot, update):
	statistics.track(update.message.chat_id, update.message, 'Stop')
	usermanager.delete(update.message.chat_id)
Ejemplo n.º 11
0
def stop(bot, update):
	statistics.track(update.message.chat_id, update.message, 'Stop')
	usermanager.delete(update.message.chat_id)
Ejemplo n.º 12
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