/*
 * Arrastran.java
 *
 * Copyright 2016 Arturo Cruz Tovar
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 *
 */
public class Arrastran extends Viviparos
{
	// Un código legible es igual a un programador feliz
	// o minimo menos estresado :v

	private String tipoPiel;
	private boolean invertebrado;
	private boolean venenoso;
	
	private int nivelClase = 4;
	private String[] nombreAtributos = {"Tipo piel", "Invertebrado", "Venenoso"};


	public Arrastran(String nombre, int edad, float peso, float estatura,
					int nivelDeHambre, String alimento, String peligros,
					String nombreCientifico, String movilidad, boolean peligroso,
				        boolean desarrolloBolsa, int criaMultiple, String fetoPrematuro, boolean lecheMadre,  //heredados
	                 		String tipoPiel, boolean invertebrado, boolean venenoso)  //propios
	{
		super(nombre, edad, peso, estatura, nivelDeHambre, alimento,
			  peligros, nombreCientifico, movilidad, peligroso,
			  desarrolloBolsa, criaMultiple, fetoPrematuro, lecheMadre);

		this.tipoPiel = tipoPiel;
		this.invertebrado = invertebrado;
		this.venenoso = venenoso;
		setEtiqueta("Arrastran", nivelClase);
		setNivelClase(nivelClase);
		setNombreAtributos(nombreAtributos, nivelClase);
	}
	
	//Métodos
	
	public void modificar(int attrModificar)
	{

		if (attrModificar <= ((nivelClase * 3) + 1))
		{
			super.modificar(attrModificar);
		}
		else
		{
			attrModificar -= ((nivelClase * 3) + 1);
			switch (attrModificar)
			{
				case 1:
					setTipoPiel(preguntar(tipoPiel, nombreAtributos[0]));
					break;
				case 2:
					setInvertebrado(preguntar(invertebrado, nombreAtributos[1]));
					break;
				case 3:
					setVenenoso(preguntar(venenoso, nombreAtributos[2]));
			}
		}
	}
	
public String[] getValorAtributos()
{
	String[] ret = new String[3];
	ret[0] = tipoPiel;
	ret[1] = String.valueOf(invertebrado);
	ret[2] = String.valueOf(venenoso);
	return ret;
}

	
	//set, get
	public void setTipoPiel(String tipoPiel)
	{
		this.tipoPiel=tipoPiel;
	}
	public String getTipoPiel()
	{
		return tipoPiel;
	}

	public void setInvertebrado(boolean invertebrado)
	{
		this.invertebrado=invertebrado;
	}
	public boolean getInvertebrado()
	{
		return invertebrado;
	}

	public void setVenenoso(boolean venenoso)
	{
		this.venenoso=venenoso;
	}
	public boolean getVenenoso()
	{
		return venenoso;
	}
	
	
	//Propios
	public void mudarPiel()
	{
		System.out.println("La especie esta mudando de "+tipoPiel);
	}

	public void enrollarse()
	{
		if(invertebrado)
		{
			System.out.println("Es capaz de enrollarse y de flexionar su cuerpo a su antojo");
		}
		else
		{
			System.out.println("Es un vertebrado, por lo tanto no tiene mucha flexibilidad corporal");
		}
	}

	public void envenenar()
	{
		if (venenoso)
		{
			System.out.println("La especie es venenosa y un piquete o mordedura podría ser fatal");
		}
		else
		{
			System.out.println("La especie no es venenosa, tiene otras cualidades defensivas.");
		}
	}
}
