package org.project.entity; import org.project.abilities.SpecialAbility; import org.project.item.armors.Armor; import org.project.item.weapons.Weapon; import org.project.managers.StatusEffectManager; import org.project.weaponEffects.StatusEffect; public interface Entity { // ========================================================= // IDENTITY // ========================================================= String getName(); // ========================================================= // STATS // ========================================================= int getHp(); int getMp(); int getMaxHP(); int getMaxMP(); void useMana(int amount); int getBaseDamage(); // ========================================================= // EQUIPMENT // ========================================================= Weapon getWeapon(); Armor getArmor(); void setWeapon(Weapon weapon); void setArmor(Armor armor); Armor getPersonalArmor(); // ========================================================= // ABILITIES // ========================================================= SpecialAbility getSpacialAbility(); void addAbilityEffect(SpecialAbility ability, Entity target); void tickAbilityEffects(Entity target); // ========================================================= // STATUS EFFECTS // ========================================================= void heal(int amount); void freeze(); void stun(); void addStatusEffect(StatusEffect effect); void tickStatusEffects(); StatusEffectManager getEffectManager(); // // ========================================================= // // RESOURCE MANAGEMENT // // ========================================================= // // void useMana(int amount); // ========================================================= // COMBAT // ========================================================= void takeDamage(int amount); // ========================================================= // STATES // ========================================================= void defend(); boolean isDefending(); boolean isFrozen(); boolean isStunned(); void resetTurnState(); // ========================================================= // INTERNAL SETTERS // ========================================================= void setHp(int value); void setMp(int value); }