public void act(ArrayList<Plant> plist, ArrayList<Bacteria> baclist){

        incrementAge();

        if(isDying() || isDead()){
            return;
        }
        
        //We give a small positive movement bonus to herbivores, and negative to carnivores
        double boost = gen.getAggression() * (-0.15);
        if ((0.5*(1-getHunger())) + 0.5 + boost < rand.nextDouble()) {
        	return;
        }
        
        Vector movement = new Vector(0, 0);

        for(Bacteria b : baclist){

            // If we're next to a dying bacteria, eat it!
            if (this.distance(b).getLength() < 5 && this.getEnergy() < (int)(Constants.maxEnergy * 0.9)) {
                eatBacteria(b);
            }
        	// TODO: Implementera PvP h�r!

            //We add the sum of all movements to the movement vector
            movement.add(see(this.distance(b), b));
        }
        
        for(Plant pl : plist){

            // If we're next to a plant and it's alive. Eat it!
            if (this.distance(pl).getLength() < 5 && this.getEnergy() < (int)(Constants.maxEnergy * 0.9)) {
                eatPlants(pl);
            }

            //We add the sum of all movements to the movement vector
            movement.add(see(this.distance(pl), pl));
        }
        

        //Normalize the movement vector to get properly scaled end results
        movement.normalize();

        move(movement, baclist);
    }