package net.demilich.metastone.game.spells.desc.valueprovider; import net.demilich.metastone.game.Environment; import net.demilich.metastone.game.GameContext; import net.demilich.metastone.game.Player; import net.demilich.metastone.game.PlayerAttribute; import net.demilich.metastone.game.entities.Entity; import net.demilich.metastone.game.statistics.Statistic; public class PlayerAttributeValueProvider extends ValueProvider { public PlayerAttributeValueProvider(ValueProviderDesc desc) { super(desc); } @Override protected int provideValue(GameContext context, Player player, Entity target, Entity host) { PlayerAttribute attribute = (PlayerAttribute) desc.get(ValueProviderArg.PLAYER_ATTRIBUTE); switch (attribute) { case DECK_COUNT: return player.getDeck().getCount(); case HAND_COUNT: return player.getHand().getCount(); case HERO_POWER_USED: return (int) player.getStatistics().getLong(Statistic.HERO_POWER_USED); case LAST_MANA_COST: return (int) context.getEnvironment().get(Environment.LAST_MANA_COST); case MANA: return player.getMana(); case MAX_MANA: return player.getMaxMana(); case SECRET_COUNT: return player.getSecrets().size() - player.getQuests().size(); case SPELLS_CAST: return (int) player.getStatistics().getLong(Statistic.SPELLS_CAST); default: break; } return 0; } }