package org.project.item.weapons;
import org.project.item.Item;
import org.project.entity.Entity;

// TODO: UPDATE IMPLEMENTATION
public abstract class Weapon implements Item  {
    private int damage;
    private int manaCost;
    protected String name;
    /*
    TODO: ADD OTHER REQUIRED AND BONUS ATTRIBUTES
    */

    public Weapon(String name,int damage, int manaCost) {
        this.name = name;
        this.damage = damage;
        this.manaCost = manaCost;
    }

    @Override
    public void use(Entity target) {
        target.takeDamage(damage);
    }
    @Override
    public String getName() {
        return name;
    }
    public int getDamage() {
        return damage;
    }

    public int getManaCost() {
        return manaCost;
    }
    public abstract void uniqueAbility(java.util.ArrayList<Entity> targets);
    /*
    TODO: ADD OTHER REQUIRED AND BONUS METHODS
    */
}
