package com.cardshifter.modapi.phase; import com.cardshifter.modapi.base.ECSGame; import com.cardshifter.modapi.base.ECSSystem; import com.cardshifter.modapi.base.Entity; import com.cardshifter.modapi.resources.ECSResource; import com.cardshifter.modapi.resources.ECSResourceMap; import net.zomis.cardshifter.ecs.effects.EntityInt; public class GainResourceSystem implements ECSSystem { private final ECSResource resource; private final EntityInt valueGet; public GainResourceSystem(ECSResource resource, EntityInt object) { this.resource = resource; this.valueGet = object; } @Override public void startGame(ECSGame game) { game.getEvents().registerHandlerAfter(this, PhaseStartEvent.class, turn -> { Entity entity = turn.getNewPhase().getOwner(); ECSResourceMap map = entity.getComponent(ECSResourceMap.class); int value = valueGet.valueFor(entity); map.getResource(resource).change(value); }); } @Override public String toString() { return "GainResourceSystem [resource=" + resource + ", valueGet=" + valueGet + "]"; } }