Skip to content

Commit 1b234da

Browse files
committed
Mudanças finais
1 parent 4b9f30e commit 1b234da

File tree

5 files changed

+46
-73
lines changed

5 files changed

+46
-73
lines changed

docker-compose.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ services:
77
- ./docs/sql/ddl/ddl.sql:/docker-entrypoint-initdb.d/a.sql
88
- ./docs/sql/dml/dml.sql:/docker-entrypoint-initdb.d/b.sql
99
- ./python/scripts_de_api/cidade.sql:/docker-entrypoint-initdb.d/c.sql
10-
- ./docs/sql/trigger_procedure/trigger.sql:/docker-entrypoint-initdb.d/d.sql
10+
- ./python/scripts_de_api/floresta.sql:/docker-entrypoint-initdb.d/d.sql
11+
- ./python/scripts_de_api/floresta2.sql:/docker-entrypoint-initdb.d/e.sql
12+
- ./python/scripts_de_api/floresta3.sql:/docker-entrypoint-initdb.d/f.sql
13+
- ./docs/sql/trigger_procedure/trigger.sql:/docker-entrypoint-initdb.d/g.sql
1114
environment:
1215
POSTGRES_USER: "pokemon"
1316
POSTGRES_PASSWORD: "123456"

docs/sql/dml/dml.sql

+21-58
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
1+
INSERT INTO public.dialogo (personagem, fala, ordem) VALUES
2+
('Narrador', 'Bem-vindo ao mundo dos Pokémon!', 1),
3+
('Narrador', 'Você está prestes a embarcar em uma aventura incrível, onde se tornará um Pokémon e enfrentará desafios únicos.', 2),
4+
('Narrador', 'Uma vez escolhido, sua jornada como Pokémon irá começar.', 3),
5+
('Narrador', 'Prepare-se, pois muitos desafios e mistérios aguardam por você nas masmorras deste mundo.', 4),
6+
('Narrador', 'Que o seu espírito de aventura seja forte e suas habilidades como Pokémon te guiem para a vitória!', 5),
7+
('Narrador', 'Boa sorte, jovem aventureiro! Seu destino está em suas mãos.', 6),
8+
('Vendedor', 'Olá, aventureiro! Vejo que está precisando de itens para a sua jornada.', 1),
9+
('Vendedor', 'Tenho vários itens à venda que podem te ajudar nas masmorras. Dê uma olhada!', 2),
10+
('Vendedor', 'Aqui está o que tenho disponível hoje:', 3);
111

212
-- Inserindo dados na tabela 'mapa'
313
INSERT INTO mapa (nome, quantidade_andares)
414
VALUES ('Cidade', 1);
515
INSERT INTO mapa (nome, quantidade_andares)
6-
VALUES ('Floresta Sombra', 1);
16+
VALUES ('Floresta da Sombra', 3);
717
INSERT INTO mapa (nome, quantidade_andares)
818
VALUES ('Caverna Cristal', 1);
919
INSERT INTO mapa (nome, quantidade_andares)
1020
VALUES ('Montanha fire', 3);
1121

1222
-- Inserindo dados na tabela 'andar'
1323
INSERT INTO andar (nome_mapa, numero_andar)
14-
VALUES ('Floresta Sombra', 1);
24+
VALUES ('Floresta da Sombra', 1);
1525
INSERT INTO andar (nome_mapa, numero_andar)
1626
VALUES ('Caverna Cristal', 1);
1727
INSERT INTO andar (nome_mapa, numero_andar)
@@ -23,9 +33,9 @@ VALUES ('Montanha fire', 3);
2333
INSERT INTO andar (nome_mapa, numero_andar)
2434
VALUES ('Cidade', 1);
2535
INSERT INTO andar (nome_mapa, numero_andar)
26-
VALUES ('Floresta Sombra', 2);
36+
VALUES ('Floresta da Sombra', 2);
2737
INSERT INTO andar (nome_mapa, numero_andar)
28-
VALUES ('Floresta Sombra', 3);
38+
VALUES ('Floresta da Sombra', 3);
2939

3040
-- Inserindo dados na tabela 'tipo_terreno'
3141
INSERT INTO tipo_terreno (descricao, movimento)
@@ -560,58 +570,19 @@ VALUES (3);
560570

561571
-- Inserindo dados na tabela 'pokemon'
562572
INSERT INTO pokemon (id_tipo_pokemon)
563-
VALUES (1); -- Player
564-
INSERT INTO pokemon (id_tipo_pokemon)
565-
VALUES (1); -- Player
566-
INSERT INTO pokemon (id_tipo_pokemon)
567-
VALUES (1); -- Player
568-
INSERT INTO pokemon (id_tipo_pokemon)
569573
VALUES (2); -- NPC
570574
INSERT INTO pokemon (id_tipo_pokemon)
571575
VALUES (2); -- NPC
572576
INSERT INTO pokemon (id_tipo_pokemon)
573577
VALUES (2);
574578

575-
576-
-- Inserindo dados na tabela 'jogador'
577-
INSERT INTO jogador (id_jogador, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, saldo, tam_inventario, posicao, tipo_elemental)
578-
VALUES (1, 5, 100, 50, 40, 60, 70, 80, 90, 'Normal', 'Pikachu', 1000, 4, 1, 'electric');
579-
INSERT INTO jogador (id_jogador, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, saldo, tam_inventario, posicao, tipo_elemental)
580-
VALUES (2, 10, 200, 60, 50, 70, 80, 90, 100, 'Normal', 'Charizard', 2000, 3, 2, 'fire');
581-
INSERT INTO jogador (id_jogador, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, saldo, tam_inventario, posicao, tipo_elemental)
582-
VALUES (3, 15, 300, 70, 60, 80, 90, 100, 110, 'Normal', 'Blastoise', 3000, 7, 3, 'water');
583-
584-
-- Inserindo dados na tabela 'correio'
585-
INSERT INTO correio (id_correio, terreno_id)
586-
VALUES (1, 1);
587-
INSERT INTO correio (id_correio, terreno_id)
588-
VALUES (2, 2);
589-
INSERT INTO correio (id_correio, terreno_id)
590-
VALUES (3, 3);
591-
592-
-- Inserindo dados na tabela 'inventario'
593-
INSERT INTO inventario (id_inventario, id_instancia_item)
594-
VALUES (1, 1);
595-
INSERT INTO inventario (id_inventario, id_instancia_item)
596-
VALUES (2, 2);
597-
INSERT INTO inventario (id_inventario, id_instancia_item)
598-
VALUES (3, 3);
599-
600-
-- Inserindo dados na tabela 'instancia_item'
601-
INSERT INTO instancia_item (id_item)
602-
VALUES (1);
603-
INSERT INTO instancia_item (id_item)
604-
VALUES (2);
605-
INSERT INTO instancia_item (id_item)
606-
VALUES (3);
607-
608579
-- Inserindo dados na tabela 'npc'
609580
INSERT INTO npc (id_npc, id_tipo_npc)
610-
VALUES (4, 1); -- Vendedor
581+
VALUES (1, 1); -- Vendedor
611582
INSERT INTO npc (id_npc, id_tipo_npc)
612-
VALUES (5, 2); -- Inimigo
583+
VALUES (2, 2); -- Inimigo
613584
INSERT INTO npc (id_npc, id_tipo_npc)
614-
VALUES (6, 2);
585+
VALUES (3, 2);
615586
-- Inimigo
616587

617588
-- Inserindo dados na tabela 'loot'
@@ -632,20 +603,12 @@ VALUES (3, 3, 1);
632603

633604
-- Inserindo dados na tabela 'missoes'
634605
INSERT INTO missao (nome_mapa, id_loot, dificuldade, objetivo, principal)
635-
VALUES ('Floresta Sombra', 1, 3, 'Resgatar Pokémon', true);
606+
VALUES ('Floresta da Sombra', 1, 3, 'Derrotar Boss', true);
636607
INSERT INTO missao (nome_mapa, id_loot, dificuldade, objetivo, principal)
637608
VALUES ('Caverna Cristal', 2, 5, 'Derrotar Chefão', false);
638609
INSERT INTO missao (nome_mapa, id_loot, dificuldade, objetivo, principal)
639610
VALUES ('Montanha fire', 3, 7, 'Coletar Itens', true);
640611

641-
-- Inserindo dados na tabela 'instancia_missao'
642-
INSERT INTO instancia_missao (id_missao, id_jogador, concluida)
643-
VALUES (1, 1, false);
644-
INSERT INTO instancia_missao (id_missao, id_jogador, concluida)
645-
VALUES (1, 2, false);
646-
INSERT INTO instancia_missao (id_missao, id_jogador, concluida)
647-
VALUES (1, 3, false);
648-
649612
-- Inserindo dados na tabela 'pokemon_habilidade'
650613
INSERT INTO pokemon_habilidade (id_pokemon, id_habilidade, pp_restante)
651614
VALUES (1, 1, 0);
@@ -664,11 +627,11 @@ VALUES (3, 3);
664627

665628
-- Inserindo dados na tabela 'vendedor'
666629
INSERT INTO vendedor (id_vendedor, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, posicao, item_1, item_2, item_3, tipo_elemental)
667-
VALUES (4, 5, 100, 50, 40, 60, 70, 80, 90, 'Disponível', 'Vendedor 1', 1, 1, 2, 3, 'fire');
630+
VALUES (1, 5, 100, 50, 40, 60, 70, 80, 90, 'Disponível', 'Vendedor 1', 1, 1, 2, 3, 'fire');
668631
INSERT INTO inimigo (id_inimigo, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, posicao, tipo_elemental)
669-
VALUES (5, 10, 200, 60, 50, 70, 80, 90, 100, 'Disponível', 'Inimigo 1', 2, 'water');
632+
VALUES (2, 10, 200, 60, 50, 70, 80, 90, 100, 'Disponível', 'Inimigo 1', 2, 'water');
670633
INSERT INTO inimigo (id_inimigo, nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, posicao, tipo_elemental)
671-
VALUES (6, 10, 200, 60, 50, 70, 80, 90, 100, 'Disponível', 'Inimigo 2', 2, 'electric');
634+
VALUES (3, 10, 200, 60, 50, 70, 80, 90, 100, 'Disponível', 'Inimigo 2', 2, 'electric');
672635

673636
-- Inserindo dados na tabela 'pokemon_base'
674637
INSERT INTO pokemon_base (nome, tipo, vida_base, ataque_fisico_base, defesa_fisica_base, ataque_especial_base, velocidade_base, acuracia_base, evasao_base, status_base, evolui_de, evolui_para)

docs/sql/trigger_procedure/trigger.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ BEGIN
177177
WHERE im.id_missao = NEW.id_missao
178178
GROUP BY nome_mapa;
179179

180-
IF nome_mapa_missao = 'Floresta Sombra' THEN
180+
IF nome_mapa_missao = 'Floresta da Sombra' THEN
181181
FOR i IN 1..5
182182
LOOP
183183
INSERT INTO pokemon (id_tipo_pokemon) VALUES (2) RETURNING id_pokemon INTO id_pokemon_gerado;

python/game.py

+19-12
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,9 @@ def create_player(pokemon_id):
219219
cursor.execute("""
220220
INSERT INTO jogador (nivel, vida, ataque_fisico, defesa_fisica, ataque_especial, velocidade, acuracia, evasao, status, nome, id_jogador, saldo, tam_inventario, posicao, tipo_elemental)
221221
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
222-
""", (1, pokemon_data[2], pokemon_data[3], pokemon_data[4],
222+
""", (1, 1000, pokemon_data[3], pokemon_data[4],
223223
pokemon_data[5], pokemon_data[6], pokemon_data[7], pokemon_data[8],
224-
pokemon_data[9], pokemon_data[0], new_pokemon_id, 0, 20, 6, pokemon_data[1]))
224+
pokemon_data[9], pokemon_data[0], new_pokemon_id, 1000, 20, 6, pokemon_data[1]))
225225
cursor.execute("INSERT INTO instancia_item (id_item) VALUES (1) RETURNING id_instancia_item")
226226
id_instancia_item = cursor.fetchone()[0]
227227
cursor.execute("INSERT INTO inventario (id_inventario, id_instancia_item) VALUES (%s, %s) RETURNING id_inventario", (new_pokemon_id, id_instancia_item))
@@ -568,6 +568,8 @@ def batalhar(player, inimigo):
568568
atacar(player_T, inimigo_T, habilidade_jogador)
569569
if inimigo_T['vida'] <= 0:
570570
print(f"O inimigo {inimigo_T['nome']} foi derrotado!")
571+
cursor.execute("UPDATE jogador SET vida = %s WHERE id_jogador = %s", (player_T['vida'], player))
572+
conn.commit()
571573
break
572574

573575
# Turno do inimigo (escolha randômica)
@@ -594,7 +596,6 @@ def batalhar(player, inimigo):
594596
atacar(player_T, inimigo_T, habilidade_jogador)
595597
if inimigo_T['vida'] <= 0:
596598
print(f"O {inimigo_T['nome']} foi derrotado!")
597-
cursor.execute("DELETE FROM inimigo WHERE id_inimigo = %s", (inimigo,))
598599
cursor.execute("UPDATE jogador SET vida = %s WHERE id_jogador = %s", (player_T['vida'], player))
599600
conn.commit()
600601
break
@@ -663,20 +664,17 @@ def abrir_loja(id_vendedor):
663664
print("Não há itens disponíveis com este vendedor.")
664665

665666
def interagir_com_vendedor(vendedor):
666-
print(f"Seja bem-vindo ao vendedor {vendedor[4]}.")
667+
cursor.execute("SELECT fala FROM dialogo WHERE personagem = 'Vendedor' ORDER BY ordem")
668+
dialogos = cursor.fetchall()
669+
for dialogo in dialogos:
670+
print(dialogo[0])
671+
input("Pressione Enter para continuar...")
667672
resposta = input("Deseja comprar algo? (sim/não): ").strip().lower()
668673

669674
if resposta == "sim":
670675
abrir_loja(vendedor[0])
671676
else:
672677
print("Ok, tenha um bom dia!")
673-
#vendedor_id, _, _, tipo_elemental = vendedor
674-
#print(f"Iniciando diálogo com o vendedor de tipo {tipo_elemental}.")
675-
#cursor.execute("SELECT fala FROM dialogo WHERE personagem = 'Vendedor' ORDER BY ordem")
676-
#dialogos = cursor.fetchall()
677-
#for dialogo in dialogos:
678-
# print(dialogo[0])
679-
# input("Pressione Enter para continuar...")
680678

681679
def comprar_item(id_jogador, id_item, valor_item):
682680
conn = connect_db()
@@ -920,7 +918,11 @@ def teletransporta_missao(id_jogador, terrains, revealed_surface):
920918
missao_id = cursor.fetchone()
921919
if not missao_id:
922920
print("Você não tem missão ativa.")
923-
return
921+
current_floor = 1
922+
andar = 6
923+
mapa = 'Cidade'
924+
terrains = fetch_terrains(player)
925+
return current_floor, terrains, andar, mapa
924926
missao_ativa = missao_id[1]
925927
print(f"Missão ativa: {missao_id[2]} na {missao_id[1]}")
926928
mapa = missao_ativa
@@ -955,6 +957,11 @@ def teletransporta_missao(id_jogador, terrains, revealed_surface):
955957
return current_floor, terrains, andar, mapa
956958
else:
957959
print("Até mais !.")
960+
current_floor = 1
961+
andar = 6
962+
mapa = 'Cidade'
963+
terrains = fetch_terrains(player)
964+
return current_floor, terrains, andar, mapa
958965

959966
def clamp_position(x, y):
960967
# Corrige a posição (x, y) para garantir que esteja dentro dos limites do mapa.

python/scripts_de_api/cidade.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -3179,4 +3179,4 @@ INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (36, 36, 1, 6);
31793179
INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (36, 37, 1, 6);
31803180
INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (37, 36, 1, 6);
31813181
INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (37, 37, 1, 6);
3182-
INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (49, 49, 5, 6);
3182+
INSERT INTO terreno (x, y, id_tipo_terreno, id_andar) VALUES (49, 49, 10, 6);

0 commit comments

Comments
 (0)