async def try_go(self): if self.ill > 0 and self.drug == 0: return f'*Ты не здоров\!*\n_Тебе нужно принять лекарство, чтобы ты мог выходить на улицу\._' minutes = randint(10, 20) if self.exploring is None: DB.set_exploring(self.id, minutes) db.equipment(self.id, {"exp": minutes}) if db.get_info(self.id)['masked'] is True: DB.use_mask(self.id) return f'*Путешествие началось\!*\n_Это займёт {minutes} минут времени\._' else: return f'*Ты уже гуляешь по окрестностям\!*' \ f'\n_Осталось времени: около \{self.exploring} мин\._'
async def end(self): chances = [ CHANCES.paper(), CHANCES.foods(), CHANCES.water(), CHANCES.medicines(), CHANCES.masks(), CHANCES.drugs() ] if self.ill > 0: chances = tuple(map(lambda i: i//2, chances)) illness = await CHANCES.ill(self.id) if illness != 0: if self.ill > illness: illness = self.ill sick = f'\n_\- Ты подхватил болезнь\!\nТебе необходимы медикаменты, чтобы поддерживать здоровье\.\n' \ f'Болезнь будет длиться где\-то {illness // 60} часов\._' else: sick = '' illness = self.ill world = await WORLD.show() if world['stocks'] <= 0: db.end_exploring(self.id) DB.set_exploring(self.id, 'NULL') return '*Путешествие окончилось\!*\n_Ты ничего не получил, так как все мировые запасы пустуют\!_' if world['stocks'] >= sum(chances): await WORLD.upd_stocks((-sum(chances))) else: x = world['stocks'] / sum(chances) chances = tuple(map(lambda i: round(i * x), chances)) await WORLD.upd_stocks(-world['stocks']) event = await CHANCES.random_event() DB.end_exploring(self.id, chances[0], chances[1], chances[2], chances[3], chances[4], chances[5], illness, event[0]) db.end_exploring(self.id) return f'*Путешествие окончилось\!*\n_Ты получил:_\n`' \ f'Бумаги: {chances[0]}🧻\n' \ f'Еды: {chances[1]}🍖\n' \ f'Воды: {chances[2]}💧\n' \ f'Медикаментов: {chances[3]}💉\n' \ f'Масок: {chances[4]}😷\n' \ f'Лекарств: {chances[5]}💊\n`' + sick + event[1] + await self.new_level()