package core.controllers; import org.magnos.entity.Entity; import org.magnos.entity.EntityIterator; import org.magnos.entity.filters.ComponentFilter; import org.magnos.entity.vals.IntVal; import com.maceswinger.Vector2; import com.maceswinger.client.GameClient; import com.maceswinger.items.Item; import core.Core; public class Attack { public static void attack(Entity e, Object updateState, Item heldItem, IntVal direction)//0 left, 1 right { if (!e.has(Core.Components.attackCooldown)) return; IntVal attackCooldown = e.get(Core.Components.attackCooldown); if (attackCooldown.v == 0) attackCooldown.v = 35; else { GameClient program = (GameClient) updateState; for (Entity ent : new EntityIterator(program.entities, new ComponentFilter(Core.Components.collider))){ if(!ent.has(Core.Components.velocity))continue; if (ent == e)continue; if(direction.v==0){ if (e.get(Core.Components.collider).overlaps(new Vector2(-40, 10), ent.get(Core.Components.collider))){ System.out.println(ent.id); Vector2 v =ent.get(Core.Components.velocity); v.x-=1; v.y+=10; } } if(direction.v==1){ if (e.get(Core.Components.collider).overlaps(new Vector2(40, 10), ent.get(Core.Components.collider))){ System.out.println(ent.id); Vector2 v =ent.get(Core.Components.velocity); v.x+=1; v.y+=10; } } } attackCooldown.v -= 1; } } }