Skip to content

Commit

Permalink
Merge pull request #18 from SBD1/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
andre-maia51 authored Feb 4, 2025
2 parents dbbd596 + adfa37b commit 246d7c1
Show file tree
Hide file tree
Showing 26 changed files with 1,670 additions and 437 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,6 @@ No nosso jogo, você assumirá o papel de um jovem bruxo que começa sua jornada
* [Módulo 2](https://sbd1.github.io/2024.2-harry-potter/modulo2/DD_HarryPotter_v2.0/)
* [Vídeo Módulo 2]( https://youtu.be/JJzPPajbIc0)

* [Módulo 3](https://sbd1.github.io/2024.2-harry-potter/modulo3/MER_HarryPotter_v2.0/)
* [Vídelo Módulo 3](https://youtu.be/3pj8sQ9zu4U)

Binary file added app/__pycache__/classes.cpython-310.pyc
Binary file not shown.
Binary file modified app/__pycache__/classes.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/classescombate.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/classescombate.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/database.cpython-310.pyc
Binary file not shown.
Binary file modified app/__pycache__/database.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/sistemacombate.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/sistemacombate.cpython-312.pyc
Binary file not shown.
Binary file added app/__pycache__/texts.cpython-310.pyc
Binary file not shown.
Binary file added app/__pycache__/texts.cpython-312.pyc
Binary file not shown.
69 changes: 68 additions & 1 deletion app/classes.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
#definir as classes

class Character: #definição da classe de Personagens
def __init__(self, id_character, id_area, life, level, name, idHouse=0):
def __init__(self, id_character, id_area, life, level, name, idHouse=0, Wand=None, xp=0, feiticos=None):
self.id_character = id_character
self.life = life
self.level = level
self.name = name
self.id_area = id_area
self.idHouse = idHouse
self.Wand = Wand
self.feiticos = []

def esta_vivo(self):
return self.life > 0

def usar_feitico(self, feitico, inimigo):
print(f"{self.name} usou {feitico.nome}!")
inimigo.life -=20
self.xp = xp


class Area: #definição da classe de Áreas do Mapa
Expand All @@ -19,3 +29,60 @@ def __init__(self, id_area, name, description, north_area, south_area, west_area
self.south_area = south_area
self.west_area = west_area
self.east_area = east_area

class House:
def __init__(self, idHouse, name, responsableProfessor, advantage):
self.idHouse = idHouse
self.name = name
self.responsableProfessor = responsableProfessor
self.advantage = advantage

class NPC(Character):
def __init__(self, id_character, id_area, life, level, name, fala, idHouse=0):
super().__init__(id_character, id_area, life, level, name, idHouse)
self.fala = fala

class Professor(NPC):
def __init__(self, id_character, id_area, life, level, name, fala, disciplina, idHouse=0):
super().__init__(id_character, id_area, life, level, name, fala, idHouse)
self.disciplina = disciplina

class Inimigo:
def __init__(self, id, name, life, dano, falas, nivel):
self.id = id
self.name = name
self.life = life
self.dano = dano
self.falas = falas
self.nivel = nivel

def esta_vivo(self):
return self.life > 0

def atacar(self, jogador):
print(f"{self.name} atacou {jogador.name} causando {self.dano} de dano!")
jogador.life -= self.dano
if jogador.life <= 0:
jogador.life = 0


class Feitico:
def __init__(self, nome, habilidadeRequerida, chance_acerto):
self.nome = nome
self.habilidadeRequerida = habilidadeRequerida
self.chance_acerto = chance_acerto

def __repr__(self):
return f"{self.nome} (Chance de Acerto: {self.chance_acerto}, Poder: {self.poder})"

def usar(self, alvo):
import random
if random.random() <= self.chance_acerto:
print(f"{self.nome} acertou {alvo.name}!")

alvo.life -= self.poder
else:
print(f"{self.nome} falhou em acertar {alvo.name}.")



68 changes: 68 additions & 0 deletions app/classescombate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# classes/combat.py

import random
from classes import Character # Importa a classe Character

class Jogador(Character):
def __init__(self, id_character, id_area, life, level, name, idHouse=0, Wand=None):
super().__init__(id_character, id_area, life, level, name, idHouse, Wand)
self.feitiços = [] # Lista de feitiços disponíveis
self.pocoes = 2 # Número de poções disponíveis

def usar_feitico(self, feitico, inimigo):
if feitico in self.feitiços:
print(f"{self.name} usou {feitico.nome}!")
dano = feitico.calcular_dano(self.level)
inimigo.receber_dano(dano)
self.feitiços.remove(feitico) # Remove o feitiço após o uso
else:
print(f"{self.name} não pode usar {feitico.nome}!")

def usar_pocao(self):
if self.pocoes > 0:
self.life += 20 # Recupera 20 de vida
self.pocoes -= 1
print(f"{self.name} usou uma poção e recuperou 20 de vida!")
else:
print(f"{self.name} não tem mais poções!")

def receber_dano(self, dano):
self.life -= dano
if self.life < 0:
self.life = 0
print(f"{self.name} sofreu {dano} de dano e agora tem {self.life} de vida!")

def esta_vivo(self):
return self.life > 0

class Inimigo(Character):
def __init__(self, id_character, id_area, life, level, name, dano_base):
super().__init__(id_character, id_area, life, level, name)
self.dano_base = dano_base

def atacar(self, jogador):
dano = self.dano_base * self.level
jogador.receber_dano(dano)
print(f"{self.name} atacou {jogador.name} e causou {dano} de dano!")

def receber_dano(self, dano):
self.life -= dano
if self.life < 0:
self.life = 0
print(f"{self.name} sofreu {dano} de dano e agora tem {self.life} de vida!")

def esta_vivo(self):
return self.life > 0

class Feitico:
def __init__(self, nome, dano_base, taxa_acerto):
self.nome = nome
self.dano_base = dano_base
self.taxa_acerto = taxa_acerto

def calcular_dano(self, nivel_jogador):
if random.random() < self.taxa_acerto:
return self.dano_base * nivel_jogador
else:
print(f"{self.nome} falhou!")
return 0
Loading

0 comments on commit 246d7c1

Please sign in to comment.