package org.project.entity.enemies;

public class Skeleton extends Enemy {

    // پرچم برای اینکه اسکلت فقط و فقط یک‌بار در هر مبارزه بتواند زنده شود
    private boolean hasResurrected;

    public Skeleton() {
        // ساخت اسکلت با ۴۰ واحد خون، ۰ مانا و بدون سلاح اختصاصی
        super(40, 0, null);
        this.hasResurrected = false;
    }

    @Override
    public void takeDamage(int damage) {
        // ابتدا آسیب به طور معمولی به کلاس والد پاس داده می‌شود
        super.takeDamage(damage);

        // طبق داک: اگر اسکلت مرد ولی هنوز احیا نشده بود، دوباره با ۵۰٪ خون زنده می‌شود
        if (getHp() == 0 && !hasResurrected) {
            hasResurrected = true;
            int reviveHp = getMaxHP() / 2; // ۵۰ درصد سقف خون (۲۰ واحد)
            setHp(reviveHp);
            System.out.println("💀 عجب! اسکلت شکست خورد اما استخوان‌هایش دوباره به هم چسبیدند و با " + reviveHp + " HP زنده شد! 🧟");
        }
    }

    // متدی برای ریست کردن وضعیت احیا (وقتی مبارزه جدید شروع می‌شود)
    public void resetResurrect() {
        this.hasResurrected = false;
    }
}