import java.util.*;

public class NoturnosPorUltimo implements Estrategia {
    ArrayList<Elfo> ordemAtaque = new ArrayList<Elfo>();

    public void atacar(HashMap<Status, ArrayList<Elfo>> exercitoElfos, ArrayList<Dwarf> dwarfs) {
        if (dwarfs == null || exercitoElfos.get(Status.VIVO) == null  || dwarfs.isEmpty())
            return;
        ordemAtaqueElfos(new ElfoVerde("Verde"), exercitoElfos, dwarfs);
        ordemAtaqueElfos(new ElfoNoturno("Noturno"), exercitoElfos, dwarfs);
    }

    private void ordemAtaqueElfos(Elfo tipo, HashMap<Status, ArrayList<Elfo>> exercitoElfos, ArrayList<Dwarf> dwarfs) {
        for (Elfo elfo : exercitoElfos.get(Status.VIVO)) {
            if (elfo.getClass().equals(tipo.getClass())) {
                ordemAtaque.add(elfo);
                for (Dwarf dwarf : dwarfs)
                    elfo.atirarFlecha(dwarf);
            }
		}
	}
	
	public ArrayList<Elfo> getOrdemDoUltimoAtaque(){
       return ordemAtaque;
    }
}

@@ -348,149 +348,708 @@
     
-ordemAtaqueElfos(new ElfoVerde(%22Verde%22), exercitoElfos, dwarfs);%0A        ordemAtaqueElfos(new ElfoNoturno(%22Noturno%22), exercitoElfos, dwarfs);
+Class previous = ElfoVerde.class;%0A        Iterator%3CElfo%3E it = exercitoElfos.get(Status.VIVO).iterator();%0A        while(it.hasNext())%7B%0A            Elfo aux = it.next();%0A            if(aux.getClass().equals(previous))%7B%0A                ordemAtaqueElfos(aux.getClass(), exercitoElfos, dwarfs);%0A                if(previous.equals(ElfoNoturno.class))%0A                    break;%0A                previous = ElfoNoturno.class;%0A                it = exercitoElfos.get(Status.VIVO).iterator();%0A            %7D%0A            if((!(it.hasNext())) && previous.equals(ElfoVerde.class))%7B%0A                it = exercitoElfos.get(Status.VIVO).iterator();%0A                previous = ElfoNoturno.class;%0A            %7D%0A        %7D
 %0A   
@@ -1086,20 +1086,21 @@
 ueElfos(
-Elfo
+Class
  tipo, H
@@ -1275,27 +1275,16 @@
 als(tipo
-.getClass()
 )) %7B%0A   

adicionar algoritmo otmizado para deterimar chamada de ataque elfos verdes e noturnos.