TextAdventure/game_assets/inventory.pl
2025-06-15 23:40:57 +02:00

31 lines
970 B
Prolog

% ========== INVENTORY MANAGEMENT ==========
take_item(ItemName) :-
player_location(Loc),
item_location(ItemName, Loc),
retract(item_location(ItemName, Loc)),
assertz(player_inventory(ItemName)),
item(ItemName, DisplayName, _),
write('Du nimmst '), write(DisplayName), write(' auf.'), nl,
!.
take_item(_) :-
write('Diesen Gegenstand kannst du hier nicht finden.'), nl.
use_item(ItemName) :-
player_inventory(ItemName),
execute_item_use(ItemName),
!.
use_item(_) :-
write('Du hast diesen Gegenstand nicht oder kannst ihn nicht verwenden.'), nl.
show_inventory :-
write('Dein Inventar:'), nl,
findall(Item, player_inventory(Item), Items),
(Items = [] -> write('Dein Inventar ist leer.') ; list_inventory_items(Items)), nl.
list_inventory_items([]).
list_inventory_items([H|T]) :-
item(H, DisplayName, Desc),
write('- '), write(DisplayName), write(': '), write(Desc), nl,
list_inventory_items(T).