package com.cardshifter.modapi.resources;
import com.cardshifter.modapi.base.Entity;
import net.zomis.cardshifter.ecs.effects.TargetFilter;
import java.util.function.BiPredicate;
import java.util.function.Predicate;
public class EntityModifier implements ECSResourceStrategy {
private final Entity source;
private final int priority;
private final Predicate<Entity> active;
private final TargetFilter appliesTo;
private final ECSResourceBiStrategy amount;
public EntityModifier(Entity entity, int priority, Predicate<Entity> active,
TargetFilter appliesTo, ECSResourceBiStrategy amount) {
this.source = entity;
this.priority = priority;
this.active = active;
this.appliesTo = appliesTo;
this.amount = amount;
}
public int getPriority() {
return priority;
}
public boolean appliesTo(Entity target) {
return appliesTo.test(source, target);
}
@Override
public int getResource(Entity entity, ECSResource resource, int actualValue) {
return amount.getResource(source, entity, resource, actualValue);
}
public boolean isActive() {
return active.test(source);
}
}