package net.demilich.metastone.game.spells.desc.valueprovider;
import java.util.Map;
import net.demilich.metastone.game.GameContext;
import net.demilich.metastone.game.Player;
import net.demilich.metastone.game.entities.Entity;
import net.demilich.metastone.game.spells.desc.filter.EntityFilter;
public class MinionSummonValueProvider extends ValueProvider {
public MinionSummonValueProvider(ValueProviderDesc desc) {
super(desc);
}
@Override
protected int provideValue(GameContext context, Player player, Entity target, Entity host) {
Map<String, Map<Integer, Integer>> minionIds = player.getStatistics().getMinionsSummoned();
int count = 0;
EntityFilter filter = (EntityFilter) desc.get(ValueProviderArg.FILTER);
for (String minionId : minionIds.keySet()) {
Entity entity = context.getCardById(minionId);
if (filter == null || filter.matches(context, player, entity)) {
for (Integer turn : minionIds.get(minionId).keySet()) {
count += minionIds.get(minionId).get(turn);
}
}
}
return count;
}
}