package net.mostlyoriginal.game.system; import com.artemis.Aspect; import com.artemis.ComponentMapper; import com.artemis.Entity; import com.artemis.annotations.Wire; import com.artemis.systems.EntityProcessingSystem; import net.mostlyoriginal.api.component.graphics.Anim; import net.mostlyoriginal.game.component.Incappable; import net.mostlyoriginal.game.component.Taxing; import net.mostlyoriginal.game.component.agent.Clickable; import net.mostlyoriginal.game.manager.AssetSystem; /** * When the queen is taxin, she's taxin'! * * @author Daan van Yperen */ @Wire public class QueenTaxSystem extends EntityProcessingSystem { ComponentMapper<Incappable> dm; ComponentMapper<Taxing> tm; ComponentMapper<Clickable> cm; UIWalletSystem uiWalletSystem; private AssetSystem assetSystem; public float clickCooldown =0; public QueenTaxSystem() { super(Aspect.getAspectForAll(Incappable.class, Taxing.class, Anim.class)); } @Override protected void process(Entity e) { Incappable incappable = dm.get(e); clickCooldown -= world.delta; if ( cm.has(e) && clickCooldown <= 0) { if ( cm.get(e).clicked ) { clickCooldown = 0.5f; uiWalletSystem.add(1, e); assetSystem.playSfx("sfx_squeekytoy"); } } if ( !incappable.incapacitated ) { Taxing taxing = tm.get(e); taxing.cooldown -= world.delta; if ( taxing.cooldown <= 0) { taxing.cooldown = taxing.interval; uiWalletSystem.add(taxing.tax, e); assetSystem.playSfx("sfx_squeekytoy"); } } } }