ArcanumOcculta/src/main/java/app/simplexdev/arcanumocculta/api/spell/Spell.java

48 lines
1.1 KiB
Java

package app.simplexdev.arcanumocculta.api.spell;
import app.simplexdev.arcanumocculta.api.caster.Caster;
import app.simplexdev.arcanumocculta.api.caster.CasterLevel;
import app.simplexdev.arcanumocculta.api.spell.enums.Damages;
import app.simplexdev.arcanumocculta.api.spell.enums.Durations;
import app.simplexdev.arcanumocculta.api.spell.enums.ManaCosts;
import app.simplexdev.arcanumocculta.api.wand.Wand;
import java.util.UUID;
public interface Spell
{
String getName();
String getId();
default UUID getUniqueId()
{
return UUID.nameUUIDFromBytes(this.getName().getBytes());
}
String getDescription();
CasterLevel getLevelRequirement();
Damages baseDamage();
SpellEffect[] getSpellEffects();
Durations effectDuration();
ManaCosts manaCost();
long coolDown();
boolean isUnlocked(final Caster caster);
void cast(final Caster caster, final Wand wand);
/**
* Used to create a copy of the spell for player spell books.
* Should only ever be used by the primary list when initializing a player's spell book.
*
* @return a copy of the spell.
*/
Spell dupe();
}