package me.dannytatom.xibalba.systems.actions; import com.badlogic.ashley.core.Entity; import com.badlogic.ashley.core.Family; import me.dannytatom.xibalba.components.AttributesComponent; import me.dannytatom.xibalba.components.actions.MeleeComponent; import me.dannytatom.xibalba.systems.UsesEnergySystem; import me.dannytatom.xibalba.utils.ComponentMappers; import me.dannytatom.xibalba.world.WorldManager; public class MeleeSystem extends UsesEnergySystem { public MeleeSystem() { super(Family.all(MeleeComponent.class).get()); } @Override protected void processEntity(Entity entity, float deltaTime) { MeleeComponent melee = ComponentMappers.melee.get(entity); AttributesComponent attributes = ComponentMappers.attributes.get(entity); if (melee.target != null && !entity.isScheduledForRemoval()) { WorldManager.combatHelpers.melee(entity, melee.target, melee.bodyPart, melee.isFocused); } attributes.energy -= MeleeComponent.COST; entity.remove(MeleeComponent.class); } }