package am2.api.illeffect;
import java.util.List;
import java.util.Map;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
/**
* Base interface for an ill effect during spell creation. <br/>
* Included for compatibility; do not directly inherit. <br/>
* Use IllEffectBase instead.
* @author Mithion
*
*/
public interface IIllEffect extends Comparable {
/**
* The severity level of the effect. Controls at what instability level the effect could be applied.
* @return One of the values in the IllEffectSeverity enum.
*/
public IllEffectSeverity GetSeverity();
/**
* Callback to actually apply the ill effect.
* @param world The world the effect is happening in
* @param x The x coordinate of the vinteum crystal
* @param y The y coordinate of the vinteum crystal
* @param z The z coordinate of the vinteum crystal
* @return A map of entity players affected, as well as any metadata relevant to the effect applied on that player.
*/
public Map<EntityPlayer, Object> ApplyIllEffect(World world, int x, int y, int z);
/**
* Gets the localized description of this ill effect as pertains to the affected entity player.
* This will only be called based on your own class, so you can assume the metadata matches your metadata output from ApplyIllEffect.
*/
public String getDescription(EntityPlayer player, Object metadata);
}