Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
trindadea committed Sep 9, 2024
2 parents 62e8852 + 66f0691 commit 7e28712
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
5 changes: 4 additions & 1 deletion app/src/game/gameplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,10 @@ def processar_comando(connection, cursor, nomeUser, movimentos):
direcao = parametros[0]
if direcao in movimentos:
limpar_tela()
mover_jogador(connection, cursor, nomeUser, direcao, movimentos)
novo_chunk = movimentos.get(direcao)
cursor.execute("SELECT mover_jogador(%s, %s, %s);", (nomeUser, direcao, novo_chunk))
connection.commit()
# mover_jogador(connection, cursor, nomeUser, direcao, movimentos)
break
else:
mostrar_texto_gradualmente("Direção inválida ou indisponível!", Fore.RED)
Expand Down
46 changes: 46 additions & 0 deletions db/trigger_SP.sql
Original file line number Diff line number Diff line change
Expand Up @@ -475,4 +475,50 @@ BEGIN
END;
$$;

--------------------------------------------------------------------------------------------------------
------------------------------------ PROCEDURES PARA A GAMEPLAY ---------------------------------------
--------------------------------------------------------------------------------------------------------

--- PROCEDURE PARA MOVER JOGADOR

CREATE OR REPLACE FUNCTION mover_jogador(
p_nomeUser VARCHAR(30),
p_direcao VARCHAR(30),
p_novo_chunk INT
) RETURNS TEXT
AS $mover_jogador$
BEGIN
-- Verifica se a direção é "baixo"
IF p_direcao = 'baixo' THEN
-- Atualiza o nome_mapa para "Cavernas"
UPDATE Jogador
SET nome_mapa = 'Cavernas'
WHERE nome = p_nomeUser;

-- Retorna uma mensagem de sucesso
RETURN 'Você se desceu para as Cavernas e agora está no chunk ' || p_novo_chunk || '.';

-- Verifica se a direção é "cima"
ELSIF p_direcao = 'cima' THEN
-- Atualiza o nome_mapa para "Superfície"
UPDATE Jogador
SET nome_mapa = 'Superfície'
WHERE nome = p_nomeUser;

-- Retorna uma mensagem de sucesso
RETURN 'Você retornou para a Superfície e agora está no chunk ' || p_novo_chunk || '.';

-- Caso contrário, atualiza o chunk
ELSE
-- Atualiza o numero_chunk
UPDATE Jogador
SET numero_chunk = p_novo_chunk
WHERE nome = p_nomeUser;

-- Retorna uma mensagem de sucesso
RETURN 'Você se moveu para o ' || p_direcao || ' e agora está no chunk ' || p_novo_chunk || '.';
END IF;
END;
$mover_jogador$ LANGUAGE plpgsql;


0 comments on commit 7e28712

Please sign in to comment.