| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package eu.oschl.gui.actions;
- import eu.oschl.gui.Output;
- import eu.oschl.textadventure.Game;
- import javafx.scene.paint.Color;
- public class UseItem implements Action {
- private final Game game;
- public UseItem(Game game) {
- this.game = game;
- }
- @Override
- public String getId() {
- return "useitem";
- }
- @Override
- public String getName() {
- return "Use item";
- }
- @Override
- public String getDescription() {
- return "use an item";
- }
- @Override
- public void execute(String[] args) {
- if (args.length == 0) {
- Output.print("What item?", Color.RED);
- return;
- }
- var item = this.game.getInventory().getItems().stream()
- .filter(inventoryItem -> inventoryItem.getName().equalsIgnoreCase(String.join(" ", args)))
- .findFirst()
- .orElse(null);
- if (item == null) {
- Output.print("That item does not exist.", Color.RED);
- return;
- }
- var result = item.use();
- if (result) {
- Output.print(item.getUseText(), Color.MAGENTA);
- } else {
- Output.print("It's impossible to use ", Color.RED);
- Output.print(item.getName(), Color.MAGENTA);
- Output.print(" here.", Color.RED);
- }
- }
- }
|