Package src.estrategias

Source Code of src.estrategias.EstrategiaExploracionEspiral

package src.estrategias;

import src.UnidadBasica;
import src.pathFinding.Astar;

import com.gameloftProgrammersCup.client.ClientCommand;
import com.gameloftProgrammersCup.clientInterfaces.Point;

public class EstrategiaExploracionEspiral extends EstrategiaUnidad{

  @Override
  public ClientCommand accionDeTurno(UnidadBasica ub) {
   
    ClientCommand nuevoComando=new ClientCommand();
    if (ub.getWayPoints()==null || ub.getWayPoints().size()==0 ||((Point)ub.getWayPoints().get(0)).distance(ub.getPosition())<ub.getMovementSpeed() || !Astar.verificarCamino(ub)){
     
      int distancia=0;
      Point destino=null;
      for (int i=0;i<ub.getJugador().getFortaleza().anchoMapa;i++){
        for (int j=0;j<ub.getJugador().getFortaleza().altoMapa;j++){
         
          /*
          if (!ub.getJugador().getFortaleza().estadisticas.isPosicionDescubierta(i, j) &&
              (distancia==0 || (ub.getJugador().getFortaleza().getPosition().distance(new Point(i,j))<=distancia))){             
              //(distancia==0 || (ub.getPosition().distance(new Point(i,j))+ub.getJugador().getFortaleza().getPosition().distance(new Point(i,j))<=distancia))){
            if (ub.getJugador().getFortaleza().getPosition().distance(new Point(i,j))==distancia){
              if (ub.getPosition().distance(new Point(i,j) )<destino.distance(ub.getJugador().getFortaleza().getPosition())){
                destino=new Point(i,j);
                distancia=destino.distance(ub.getPosition());
              }
            }
            else
            {
              destino=new Point(i,j);
              distancia=destino.distance(ub.getPosition());
            }
          }*/

         
          if (!ub.getJugador().getFortaleza().estadisticas.isPosicionDescubierta(i, j) &&
              (distancia==0 || (ub.getPosition().distance(new Point(i,j))<=distancia))){             
              //(distancia==0 || (ub.getPosition().distance(new Point(i,j))+ub.getJugador().getFortaleza().getPosition().distance(new Point(i,j))<=distancia))){
            if (ub.getPosition().distance(new Point(i,j))==distancia){
              if (ub.getJugador().getFortaleza().getPosition().distance(new Point(i,j) )<destino.distance(ub.getJugador().getFortaleza().getPosition())){
                destino=new Point(i,j);
                distancia=destino.distance(ub.getPosition());
              }
            }
            else
            {
              destino=new Point(i,j);
              distancia=destino.distance(ub.getPosition());
            }
          }
        }
      }
      if (destino!=null){
        ub.setPeligrosidad(false);
        ub.setDescubir(true);
        ub.setARangoDeAccion(false);
        ub.setWayPoints(Astar.intentoDePathFinding(destino, ub, ub.getJugador().getFortaleza()));
        ub.destino=destino;
      }
      else{
        return null;
      }


    }
   
    nuevoComando.setType("move");
    nuevoComando.setDestination((Point)ub.getWayPoints().get(0));
    nuevoComando.setId(ub.getJugador().getIdComando());
    nuevoComando.setIdUnit(ub.getId());
    nuevoComando.setUnitType(ub.getType());
    ub.setCommand(nuevoComando);
    return nuevoComando;
  }
 

}
TOP

Related Classes of src.estrategias.EstrategiaExploracionEspiral

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.