Package src.estrategias

Source Code of src.estrategias.EstrategiaAsesinoMatarFortalezaOMorir

package src.estrategias;

import java.util.Iterator;
import java.util.Set;

import src.Atacante;
import src.Enemigo;
import src.Fortaleza;
import src.Mina;
import src.UnidadBasica;
import src.pathFinding.Astar;

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

public class EstrategiaAsesinoMatarFortalezaOMorir extends EstrategiaUnidad{
 
  /**
   * pseudo-casteo, llamo a la otra que usa un Atacante
   */
  public ClientCommand accionDeTurno(UnidadBasica ub)  {
    return accionDeTurno((Atacante )ub);
  }
 
 
 
  public ClientCommand accionDeTurno(Atacante asesino){

    Enemigo enemigo = asesino.enemigoEnRango();
    if (enemigo!=null && enemigo.getPosition().distance(asesino.getPosition()) <= asesino.getActionRange()){
      //ATTACK!
     

      ClientCommand cAtaque =asesino.atacar(enemigo.getPosition());
      asesino.setCommand(cAtaque);
      return cAtaque;
    }
    else
    {//move
        Point destino=null;
          if (Fortaleza.instanciaFortaleza.fortalezaEnemiga!=null && Fortaleza.instanciaFortaleza.fortalezaEnemiga.getPosition()!=null){
            ClientCommand nuevoComando=new ClientCommand();
            nuevoComando.setId(asesino.getJugador().getIdComando());
            nuevoComando.setIdUnit(asesino.getId());
            if (asesino.destino==null || asesino.getWayPoints()==null || asesino.getWayPoints().size()==0 || !Astar.verificarCamino(asesino)){
              destino=Fortaleza.instanciaFortaleza.fortalezaEnemiga.getPosition();
              asesino.setPeligrosidad(false);
              asesino.setDescubir(false);
              asesino.setARangoDeAccion(false);
              asesino.setWayPoints(Astar.intentoDePathFinding(destino, asesino, asesino.getJugador().getFortaleza()));
   
              asesino.destino=destino;
            }
            nuevoComando.setType("move");
            nuevoComando.setDestination((Point)asesino.getWayPoints().get(0));
            nuevoComando.setUnitType(asesino.getType());
            asesino.setCommand(nuevoComando);
            return nuevoComando;

          }
          else
            return null;
    }

  }
}
TOP

Related Classes of src.estrategias.EstrategiaAsesinoMatarFortalezaOMorir

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.