complete consumables package

This commit is contained in:
2026-05-07 09:24:07 +03:30
parent 6ab1cb375c
commit 2ea1bced4f
2 changed files with 43 additions and 12 deletions
@@ -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;
}
}
@@ -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);
}
}
}