package com.cardshifter.modapi.cards; import com.cardshifter.modapi.base.ECSGame; import com.cardshifter.modapi.base.ECSSystem; import com.cardshifter.modapi.resources.ECSResource; import com.cardshifter.modapi.resources.ResourceRetriever; public class DamageConstantWhenOutOfCardsSystem implements ECSSystem { private final int damage; private final ResourceRetriever resource; public DamageConstantWhenOutOfCardsSystem(ECSResource resource, int damage) { this.damage = damage; this.resource = ResourceRetriever.forResource(resource); } @Override public void startGame(ECSGame game) { game.getEvents().registerHandlerAfter(this, DrawCardFailedEvent.class, this::damage); } private void damage(DrawCardFailedEvent event) { resource.resFor(event.getEntity()).change(-damage); } @Override public String toString() { return "DamageConstantWhenOutOfCardsSystem [damage=" + damage + ", resource=" + resource + "]"; } }