/**
Copyright (C) <2015> <coolAlias>
This file is part of coolAlias' Zelda Sword Skills Minecraft Mod; as such,
you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package zeldaswordskills.entity.ai;
import net.minecraft.entity.EntityLivingBase;
/**
*
* Interface for entities using {@link EntityAIPowerAttack}
*
*/
public interface IPowerAttacker {
/**
* Called when the entity first begins charging up the power attack
*/
void beginPowerAttack();
/**
* Called when the power attack AI resets, whether after successful execution or prematurely
*/
void cancelPowerAttack();
/**
* Number of ticks required to charge up the power attack; i.e. the time that
* must pass since beginPowerAttack until performPowerAttack
*/
int getChargeTime();
/**
* Called when the target has been struck and damage should be dealt,
* similar to {@link EntityLivingBase#attackEntityAsMob}
* @target Guaranteed to be within reach and visible, but no other position checking is done
*/
void performPowerAttack(EntityLivingBase target);
/**
* Called when target was out of range at the time the power attack was performed
*/
void onAttackMissed();
}