Exemple #1
0
 def dar_loot_boss(self, personagem):
     efeito_digitando('Loot encontrado.')
     Item = choice(vestes + armas)
     if issubclass(Item, Arma):
         status = [randint(3, 5), randint(2, 2), randint(2, 3)]
         status = map(lambda x: x * self.nivel, status)
         status_nomes = ['dano', 'velo_ataque', 'critico']
         status_dict = dict(zip(status_nomes, status))
         item = Item(**status_dict)
     elif issubclass(Item, Roupa):
         status = [
             randint(2, 3),
             randint(2, 3),
             randint(12, 20),
             randint(2, 3)
         ]
         status = map(lambda x: x * self.nivel, status)
         status_nomes = ['armadura', 'velo_movi', 'vida', 'resistencias']
         status_dict = dict(zip(status_nomes, status))
         item = Item(**status_dict)
     elif issubclass(Item, Anel):
         status = [
             randint(2, 3),
             randint(12, 20),
             randint(2, 3),
             randint(2, 3)
         ]
         status = map(lambda x: x * self.nivel, status)
         status_nomes = ['dano', 'vida', 'resistencias', 'armadura']
         status_dict = dict(zip(status_nomes, status))
         item = Item(nome='Anel', **status_dict)
     personagem.pratas += randint(30 * self.nivel, 50 * self.nivel)
     personagem.inventario.append(item)
Exemple #2
0
 def caverna_pessoa(self, caminho: Local, pessoa: Pessoa):
     # pessoa != personagem
     efeito_digitando(str(caminho))
     if str(caminho) == 'caverna':
         tela.imprimir('deseja entrar na caverna? s/n\n')
         if tela.obter_string().lower() in ['s', 'sim']:
             caverna = Caverna('poço azul', self.personagem, self.nivel)
             caverna.explorar()
             self.personagem.recuperar_magia_stamina()
             self.personagem.status['vida'] = 100
             tela.imprimir('saindo da caverna')
             sleep(2)
         tela.limpar_tela()
     elif str(caminho) == 'pessoa desconhecida':
         tela.imprimir('deseja interagir com pessoa desconhecida?: ')
         if tela.obter_string().lower() in ['s', 'sim']:
             pessoa.interagir(self.personagem)
         pessoa.volta = True
         tela.limpar_tela()
     elif str(caminho) == 'arvore deku':
         status = {
             'vida': 300,
             'dano': 5,
             'resis': 15,
             'velo-ataque': 1,
             'critico': 15,
             'armadura': 15,
             'magia': 100,
             'stamina': 100,
             'velo-movi': 1
         }
         boss = ArvoreDeku(self.nivel, status)
         combate(self.personagem, boss)
         if self.personagem.status['vida'] == 0:
             self.morto()
             return
         elif self.personagem.status['vida'] > 0:
             self.personagem.experiencia += boss.experiencia
             boss.dar_loot_boss(self.personagem)
         self.personagem.recuperar_magia_stamina()
     morte = self.sortear_inimigos()
     if morte:
         self.morto()
         return
     for quest in self.personagem.quests:
         condicoes = [
             randint(1, 5) == 1, quest.item
             not in self.personagem.inventario, not pessoa.missao_finalizada
         ]
         if all(condicoes):
             self.personagem.inventario.append(quest.item)
             tela.imprimir(f"item {quest.item.nome} adiquirido.\n")
             sleep(1)
Exemple #3
0
 def sortear_inimigos(self):
     if randint(1, 5) == 1:
         efeito_digitando('Monstros encontrados.')
         sleep(1)
         tela.limpar_tela()
         for y in range(randint(1, 3)):
             Inimigo = choice([Tartaruga, Camaleao, Tamandua, Sapo])
             inimigo = Inimigo()
             combate(self.personagem, inimigo)
             if self.personagem.status['vida'] == 0:
                 return True
             elif self.personagem.status['vida'] > 0:
                 self.personagem.experiencia += inimigo.experiencia
                 inimigo.sortear_drops(self.personagem)
             self.personagem.recuperar_magia_stamina()
         tela.limpar_tela2()
         return False
Exemple #4
0
 def sortear_inimigos(self):
     if randint(0, 1):
         efeito_digitando('Monstros encontrados.')
         sleep(1)
         tela.limpar_tela()
         for y in range(randint(1, 3)):
             Inimigo = choice(self._mostros)
             inimigo = Inimigo(nivel=self.nivel)
             combate(self.personagem, inimigo)
             if self.personagem.status['vida'] == 0:
                 return True
             elif self.personagem.status['vida'] > 0:
                 self.personagem.experiencia += inimigo.experiencia
                 inimigo.sortear_drops(self.personagem)
             self.personagem.recuperar_magia_stamina()
         tela.limpar_tela2()
         return False
Exemple #5
0
 def explorar(self):
     tela.limpar_tela()
     tela.imprimir(
         'Esta caverna é difícil, necessita de algumas poções de vida'
         '. Recomendo comprar 10 poções de vida média.')
     tela.imprimir(f'deseja explorar a caverna: {self.nome} s/n?\n')
     if tela.obter_string().lower() in ['s', 'sim']:
         for caminho in self._caminhos:
             efeito_digitando(str(caminho))
             if caminho.local in self._locais_com_monstros:
                 morto = self.sortear_inimigos()
                 if morto:
                     self.morto()
                     return
                 tela.limpar_tela()
         bosses = [Topera, Mico, Sucuri]
         Boss = choice(bosses)
         status = {
             'vida': 300,
             'dano': 5,
             'resis': 15,
             'velo-ataque': 1,
             'critico': 15,
             'armadura': 15,
             'magia': 100,
             'stamina': 100,
             'velo-movi': 1
         }
         boss = Boss(self.nivel, status)
         combate(self.personagem, boss)
         if self.personagem.status['vida'] == 0:
             self.morto()
             return
         elif self.personagem.status['vida'] > 0:
             self.personagem.experiencia += boss.experiencia
             boss.dar_loot_boss(self.personagem)
         self.personagem.recuperar_magia_stamina()
         tela.limpar_tela()
         tela.limpar_tela2()