//agrego los resources vistos
Iterator it = stat.getResources().iterator();
while (it.hasNext()){
Vision vision = (Vision) it.next();
//hay que convertir el tipo porque son distintos para el vision, para el elementMap
//primero chequear si ya estaba descubierto
MapElement elementoMapa=null;
switch (vision.getType()){
case (Vision.TYPE_ALLY):
/*if (vision.getPosition().equals(this.position)){
elementoMapa=this;
break;
}
Iterator it2=unidades.iterator();
while (it2.hasNext()){
UnidadBasica aliado=(UnidadBasica)it2.next();
if (aliado.getPosition()!=null && vision.getPosition().equals(aliado.getPosition())){
elementoMapa=aliado;
break;
}
}*/
break;
case (Vision.TYPE_RESOURCE):
Iterator it3=this.getKnownResources().iterator();
while (it3.hasNext()){
Mina mina=(Mina)it3.next();
if (vision.getPosition().equals(mina.getPosition())){
elementoMapa=mina;
break;
}
}
break;
default: //enemigo!
if (vision.getType()==Vision.TYPE_ENEMY_FORTRESS && fortalezaEnemiga==null){
fortalezaEnemiga=new FortalezaEnemiga(vidaInicial,jugador.turno);
fortalezaEnemiga.setPosition(vision.getPosition());
}
MapElement meCandidato= mapa[vision.getPosition().getX()][vision.getPosition().getY()];
if(meCandidato!= null && meCandidato.getClass().getName().equals("src.Enemigo"))
{
((Enemigo)meCandidato).setUltimoTurnoVisto(jugador.turno);//en el mismo lugar, asumo que es el mismo enemigo y actualizo
elementoMapa = meCandidato;
Iterator it4=enemigos.iterator();
boolean estabaEnLista=false;
while (it4.hasNext()){
Enemigo enemigoIt=(Enemigo)it4.next();
if (enemigoIt.getPosition()!=null && enemigoIt.getPosition().equals(meCandidato.getPosition())){
estabaEnLista=true;
break;
}
}
if (!estabaEnLista){
Enemigo enemigo=new Enemigo(vision.getType(), jugador.turno);
enemigo.setPosition(vision.getPosition());
elementoMapa=enemigo;
enemigos.add(enemigo);
}
}//parche para que vuelva a asignar al mismo (y no tire error)
else //no exista, agregarlo
{
Enemigo enemigo=new Enemigo(vision.getType(), jugador.turno);
enemigo.setPosition(vision.getPosition());
elementoMapa=enemigo;
enemigos.add(enemigo);
}
}
if (elementoMapa==null){
if (vision.getType()!=Vision.TYPE_ALLY)
System.out.println("Error en actualizar mapa");
}
else
mapa[vision.getPosition().getX()][vision.getPosition().getY()]=elementoMapa;
}
}