Package modelo.ladron

Source Code of modelo.ladron.Ladron

package modelo.ladron;

import modelo.excepciones.LadronNoPlaneoEscapeException;
import modelo.ladron.perfil.Perfil;
import modelo.mapa.Ciudad;

import org.w3c.dom.Node;

public class Ladron {

  private Perfil perfil;
  private Ciudad ciudadActual;
  private Ciudad ciudadAnterior;
  private ObjetoRobado objeto;
  private Itinerario itinerario;

  public Ladron(Perfil perfil) {
    this.perfil = perfil;
    this.itinerario = new Itinerario();
  }

  public void planearNuevoDestino(Ciudad ciudad) {
    this.itinerario.agregarAlRecorrido(ciudad);
  }

  public Ciudad ciudadActual() {
    return this.ciudadActual;
  }

  public Ciudad ciudadAnterior() {
    return this.ciudadAnterior;
  }

  public boolean escapar() throws LadronNoPlaneoEscapeException {
    if (!this.itinerario.tieneDestinos())
      throw new LadronNoPlaneoEscapeException("El ladron no planeo su escape.");
    if (hizoUltimoEscape())
      return false;
    this.ciudadAnterior = this.ciudadActual;
    this.ciudadActual = this.itinerario.ciudadSiguiente(ciudadActual);
    return true;
  }

  public void robarObjeto(ObjetoRobado objeto) throws LadronNoPlaneoEscapeException {
    this.objeto = objeto;
    Ciudad ciudadActual = this.itinerario.ciudadNro(0);
    this.ciudadActual = ciudadActual;
    this.escapar();
  }

  public boolean hizoUltimoEscape() {
    int cantDeEscapes = this.objeto.getValor().getCantidadDeEscapes();
    return this.itinerario.esCiudadFinal(cantDeEscapes, ciudadActual);
  }

  public String verNombre() {
    return this.perfil.getNombre();
  }
 
  public String verSexo() {
    return this.perfil.getSexo().toString();
  }

  public static Ladron deserializar(Node elementoLadron) {
    Perfil unPerfil = Perfil.deserializar(elementoLadron.getChildNodes().item(0));
    return new Ladron(unPerfil);
  }

  public void setItinerario(Itinerario itinerario) {
    this.itinerario = itinerario;
  }

  public Itinerario getItinerario() {
    return this.itinerario;
  }

  public String verDatos() {
    StringBuilder datos = new StringBuilder();
    datos.append("Nombre: " + this.perfil.getNombre());
    datos.append(System.lineSeparator());
    datos.append("Sexo: " + this.perfil.getSexo().toString());
    datos.append(System.lineSeparator());
    datos.append("Cabello: " + this.perfil.getCabello().toString());
    datos.append(System.lineSeparator());
    datos.append("Se�a: " + this.perfil.getSenia().toString());
    datos.append(System.lineSeparator());
    datos.append("Hobby: " + this.perfil.getHobby().toString());
    datos.append(System.lineSeparator());
    datos.append("Veh�culo: " + this.perfil.getVehiculo().toString());
    datos.append(System.lineSeparator());
    return datos.toString();
  }
}
TOP

Related Classes of modelo.ladron.Ladron

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.