From 2ea1bced4f868a7d65d27da071d236d7aa7173cc Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:24:07 +0330 Subject: [PATCH] complete consumables package --- .../project/item/consumables/Consumable.java | 28 +++++++++++++++---- .../org/project/item/consumables/Flask.java | 27 +++++++++++++----- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java index 028e13d..c752f1a 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java @@ -1,8 +1,26 @@ package org.project.item.consumables; -// TODO: UPDATE IMPLEMENTATION -public abstract class Consumable { - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ +import org.project.item.Item; + +public abstract class Consumable implements Item { + + protected int id; + protected String name; + protected int amount; + + public Consumable(String name, int id, int amount) { + this.name = name; + this.id = id; + this.amount = amount; + } + + @Override + public String getName() { + return name; + } + + @Override + public int getId() { + return id; + } } diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java index c0e7a6d..2800c34 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java @@ -1,16 +1,29 @@ package org.project.item.consumables; import org.project.entity.Entity; +import org.project.entity.players.Player; -// TODO: UPDATE IMPLEMENTATION -public class Flask { - /* - THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. - */ +public class Flask extends Consumable{ + + private static final int HEAL_AMOUNT = 20; + private static final String YELLOW = "\033[33m"; + public static final String RESET = "\u001B[0m"; + + public Flask(String name, int id) + { + super(name, id, HEAL_AMOUNT); + } - // TODO: UPDATE USE METHOD @Override public void use(Entity target) { - target.heal(target.getMaxHP() / 10); + if (target != null && target.isAlive()) { + target.heal(HEAL_AMOUNT); + Player player = (Player) target; + System.out.println("🧪 " + player.getName() + " used Flask! Healed " + HEAL_AMOUNT + " HP."); + } + else + { + System.out.println(YELLOW+"❌ Cannot use Flask on a dead or null target."+RESET); + } } }