package ttftcuts.physis.common.artifact.trigger;
import java.util.ArrayList;
import java.util.List;
import ttftcuts.physis.api.PhysisAPI;
import ttftcuts.physis.api.internal.IArtifactHandler.CooldownCategory;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
public class TriggerOnTakeDamage extends AbstractTrigger {
private boolean self;
public TriggerOnTakeDamage(String name, boolean self) {
super(name);
this.self = self;
}
@Override
public CooldownCategory getCooldownCategory() {
if (self) {
return CooldownCategory.MEDIUM;
} else {
return CooldownCategory.SHORTER;
}
}
@Override
public void onTakeDamage(ItemStack stack, EntityLivingBase target, EntityLivingBase source, int id) {
if (self) {
// effect on self when hit
List<EntityLivingBase> targets = new ArrayList<EntityLivingBase>();
targets.add(target);
PhysisAPI.artifactHandler.triggerArtifactEffect(stack, targets, target, id, getCooldownCategory());
} else {
// effect on attacker when hit
if (source != null) {
List<EntityLivingBase> targets = new ArrayList<EntityLivingBase>();
targets.add(source);
PhysisAPI.artifactHandler.triggerArtifactEffect(stack, targets, target, id, getCooldownCategory());
}
}
}
@Override
public String getUnlocalizedTargetString() {
if (self) {
return TARGET_HOLDER;
} else {
return TARGET_ATTACKER;
}
}
}