mirror of
https://github.com/JonasHinterdorfer/TextAdventure.git
synced 2025-10-26 03:41:10 +00:00
75 lines
2.5 KiB
Prolog
75 lines
2.5 KiB
Prolog
% ========== HACKING SYSTEM ==========
|
|
hack_target(box) :-
|
|
player_location(Loc),
|
|
player_inventory(laptop),
|
|
hacking_minigame(Loc),
|
|
!.
|
|
|
|
hack_target(_) :-
|
|
write('Du kannst dieses Ziel nicht hacken oder hast keinen Laptop.'), nl.
|
|
|
|
% ========== HACKING MINI-GAMES ==========
|
|
hacking_minigame(altstadt) :-
|
|
box_unlocked(altstadt_box),
|
|
write('Diese Box wurde bereits gehackt.'), nl,
|
|
!.
|
|
|
|
hacking_minigame(altstadt) :-
|
|
write('=== HACKING MINI-GAME ==='), nl,
|
|
write('Entschlüssele den Code: 1001 + 0110 = ?'), nl,
|
|
write('Gib das Ergebnis in binär ein: '),
|
|
read(Answer),
|
|
(Answer = 1111 ->
|
|
(write('Korrekt! Du findest eine Elektro-Spule in der Box!'), nl,
|
|
assertz(player_inventory(spule)),
|
|
assertz(box_unlocked(altstadt_box))) ;
|
|
(write('Falsch! Versuch es nochmal.'), nl,
|
|
fail)).
|
|
|
|
hacking_minigame(donauufer) :-
|
|
box_unlocked(donauufer_box),
|
|
write('Diese Box wurde bereits gehackt.'), nl,
|
|
!.
|
|
|
|
hacking_minigame(donauufer) :-
|
|
write('=== HACKING MINI-GAME ==='), nl,
|
|
write('SQL Injection: Welcher Befehl umgeht die Passwort-Abfrage?'), nl,
|
|
write('1) DROP TABLE users'), nl,
|
|
write('2) \' OR \'1\'=\'1'), nl,
|
|
write('3) SELECT * FROM passwords'), nl,
|
|
write('Deine Wahl (1-3): '),
|
|
read(Answer),
|
|
(Answer = 2 ->
|
|
(write('Korrekt! Du findest eine Hochleistungsbatterie in der Box!'), nl,
|
|
assertz(player_inventory(batterie)),
|
|
assertz(box_unlocked(donauufer_box))) ;
|
|
(write('Falsch! Versuch es nochmal.'), nl,
|
|
fail)).
|
|
|
|
hacking_minigame(poestlingberg) :-
|
|
box_unlocked(poestlingberg_box),
|
|
write('Diese Box wurde bereits gehackt.'), nl,
|
|
!.
|
|
|
|
hacking_minigame(poestlingberg) :-
|
|
player_inventory(kampfdrohne),
|
|
write('=== DROHNEN-HACKING ==='), nl,
|
|
write('Deine Kampfdrohne verbindet sich mit der Box...'), nl,
|
|
write('Netzwerk-Port-Scan: Welcher Port ist für SSH Standard?'), nl,
|
|
write('1) Port 80'), nl,
|
|
write('2) Port 22'), nl,
|
|
write('3) Port 443'), nl,
|
|
write('Deine Wahl (1-3): '),
|
|
read(Answer),
|
|
(Answer = 2 ->
|
|
(write('Korrekt! Du findest einen Kondensator in der Box!'), nl,
|
|
assertz(player_inventory(kondensator)),
|
|
assertz(box_unlocked(poestlingberg_box))) ;
|
|
(write('Falsch! Versuch es nochmal.'), nl,
|
|
fail)).
|
|
|
|
hacking_minigame(poestlingberg) :-
|
|
write('Du brauchst eine Kampfdrohne um diese Box zu hacken.'), nl.
|
|
|
|
hacking_minigame(_) :-
|
|
write('Hier gibt es nichts zu hacken.'), nl. |