ArcanumOcculta/src/main/java/app/simplexdev/arcanumocculta/api/player/Caster.java

91 lines
2.3 KiB
Java

package app.simplexdev.arcanumocculta.api.player;
import app.simplexdev.arcanumocculta.api.book.SpellBook;
import java.util.List;
import java.util.UUID;
public interface Caster {
/**
* @return The {@link UUID} of the caster.
*/
UUID getCasterUUID();
/**
* @return The name of the caster.
*/
String getDisplayName();
/**
* @return The amount of maximum mana the caster is allowed to have.
*/
double getMaximumMana();
/**
* Sets the maximum amount of mana the caster is allowed to have.
*
* @param mana The amount of mana to set the maximum to.
*/
void setMaximumMana(final double mana);
/**
* @return The amount of mana the caster currently has.
*/
double getCurrentMana();
/**
* Adds mana to the caster.
*
* @param mana The amount of mana to add.
* @return The players updated {@link #getCurrentMana()}.
*/
double addMana(final double mana);
/**
* Increases the amount of maximum mana this caster is allowed to have.
*
* @param mana The amount of mana to increase the maximum by.
* @return The players updated {@link #getMaximumMana()}.
*/
double increaseMaximumMana(final double mana);
/**
* Removes mana from the caster.
*
* @param mana The amount of mana to remove.
* @return The players updated {@link #getCurrentMana()}.
*/
double removeMana(final double mana);
/**
* Decreases the amount of maximum mana this caster is allowed to have.
*
* @param mana The amount of mana to decrease the maximum by.
* @return The players updated {@link #getMaximumMana()}.
*/
double decreaseMaximumMana(final double mana);
/**
* Sets the amount of mana the caster currently has.
*
* @param mana The amount of mana to set the user's current mana to.
*/
void setMana(final double mana);
/**
* @return The {@link SpellBook} of the caster.
*/
SpellBook getSpellbook();
/**
* @return A list of {@link SpellResistance}s the caster has.
*/
List<SpellResistance> getSpellResistances();
void addSpellResistance(SpellResistance resistance);
void removeSpellResistance(SpellResistance resistance);
boolean hasResistance(int spellOrdinal);
}