import java.io.Serializable;
import java.util.ArrayList; 

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
import javax.persistence.Column;
import javax.persistence.Entity;
// #[regen=yes,id=DCE.A6915361-4598-172D-20C3-7D753EFD69E4]
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
// </editor-fold
import javax.persistence.Transient;
@Entity
public class Jugador implements Serializable{
    final int NUM_TERRITORIOS=52;

    int numTerritorios;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.02374CDF-9FB3-385A-0C15-73C3A8569EFC]
    // </editor-fold> 
    @Column(name="Nombre")
    private String nombre;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.56D174F0-7939-3F10-9994-75769F17E5A0]
    // </editor-fold> 
    private String color;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FED4FBE0-FC5D-7834-9CFE-8E84BDD4BA28]
    // </editor-fold> 
    private int identificador;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.527BF1C8-383F-B67F-171B-2D5BF58D5BEA]
    // </editor-fold> 
    private int numTropas;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.9C027ED1-1C86-37C3-0ACE-EAE90CA70A13]
    // </editor-fold> 
    private int numCartas;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.766828C6-3354-FBB0-E029-5D9B3B045539]
    // </editor-fold> 
    //@Transient
    //private ArrayList<Carta> Cartas;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F7BFE1E7-75E3-D148-026B-64E2C78BA913]
    // </editor-fold> 
    private boolean esActivo;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.2873337F-B694-98BD-7A84-665F4F5ABCE5]
    // </editor-fold> 
    //private Carta mCarta;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.EE6FACD6-D4A5-6A9D-8377-88CF095A4911]
    // </editor-fold> 
    //private Carta mCarta1;

    private int tropa_pendiente_ubicar=3;
    
    //private int[] terri=new int [NUM_TERRITORIOS];
    @Transient
    private ArrayList<Territorio> Territorios=new ArrayList();
    @Transient
    private ArrayList<Carta> Cartas_jug = new ArrayList();
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="JugadorID")
    private Long id;
    @Transient
    private int canj_tropas;

    public Jugador() {
    }
  
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B6E2C4C1-EA88-BB43-AFBF-85CF1CA0488E]
    // </editor-fold> 
    public Jugador (String nomJugador, String color, int identity){
        nombre=nomJugador;
        /*switch (ejercito){
            case '1':color="Pijos";
                   break;
            case '2':color="Canis";
                   break;
            case '3':color="Frikis";
                   break;
            case '4':color="Heviatas";
                   break;
            case '5':color="Raperos";
                   break;
            case '6':color="Jipis Guarros";
                   break;
            default: break;
        }*/
        this.color=color;
        numTerritorios=0;
        /*for(int i=0;i<NUM_TERRITORIOS;i++){
            terri[i]=-1;
        }*/
        identificador=identity;
        esActivo=true;
        
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.EEF51DA3-A8BB-0D87-263B-62F0EA7CFC54]
    // </editor-fold> 
    @Override
    public String toString() {
        return  "Jugador "+identificador+": "+nombre+" "+color;
    }
    public ArrayList<Carta> getCartas () {
        return Cartas_jug;
    }
    
    public int getNumTerritorios (){
        return numTerritorios;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.0DC05D89-E9A0-9DB2-3789-A112AA85850F]
    // </editor-fold> 
    public void setCartas (ArrayList<Carta> val) {
        this.Cartas_jug = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.61AB379C-2B22-5EF9-CE75-1BE698682405]
    // </editor-fold> 
    public String getColor () {
        return color;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.09524640-504D-24AD-2C21-BFE8D1FB9B80]
    // </editor-fold> 
    public void setColor (String val) {
        this.color = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.FB30ABEF-B013-54EF-68C1-1239A2C0ABC4]
    // </editor-fold> 
    public boolean getEsActivo () {
        return esActivo;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.7051BE10-85BE-2273-6D3C-F48403F0B0FD]
    // </editor-fold> 
    public void setEsActivo (boolean val) {
        this.esActivo = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.DC1B0543-2C5C-1D55-85E5-90614B0F1553]
    // </editor-fold> 
    public int getIdentificador () {
        return identificador;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.BC9B07DF-E703-9375-AA7C-3805336CF19D]
    // </editor-fold> 
    public void setIdentificador (int val) {
        this.identificador = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.5356EF69-35F4-A8CF-B82D-AD52797B72EE]
    // </editor-fold> 
   

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.3F5F6E23-529A-A368-E79C-2F40261B9102]
    // </editor-fold> 
    public String getNombre () {
        return nombre;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.BB1AA94C-E779-49FB-984F-06A208E0BE15]
    // </editor-fold> 
    public void setNombre (String val) {
        this.nombre = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.DD2C3F24-BE14-B96E-7382-7C7106851AB7]
    // </editor-fold> 
    public int getNumCartas () {
        return Cartas_jug.size();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.22DE498C-AD2C-096D-0465-99C59CA5E781]
    // </editor-fold> 
    public void setNumCartas (int val) {
        this.numCartas = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.6A804EA6-F388-E4A2-AA6E-24DC69A3BAA2]
    // </editor-fold> 
    public int getNumTropas () {
        return numTropas;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.48BBF322-5D6D-69EA-9D8C-783BE9F1844E]
    // </editor-fold> 
    public void setNumTropas (int val) {
        this.numTropas = val;
    }
    //devuelve el nº de tropas pend de ubicar
    public int getTropasPendUbicar(){
        return tropa_pendiente_ubicar;
    }
  //actualiza las nuevas tropas a ubicar
    public void setTropasPendUbicar (int val) {
        this.tropa_pendiente_ubicar = val;
    }
    
     /*public ArrayList<Zona> getZonaJugador() {
        return zone;
    }*/
     public boolean ExisteTerritorio(Territorio t){       
         /*int i=0;
         
         boolean encontrado=false;
        //zone.size() devuelve el numero de zonas de un jugador
         while(i<NUM_TERRITORIOS && !encontrado){
            
             if(terri[i]==ident)encontrado=true;
             i++;
         }
         /*for(i=0;i<NUM_TERRITORIOS && encontrado==false;i++)
                if(ident == terri[i])//devuelve el identificador del territorio tal dentro de una zona
                       encontrado=true;
         return encontrado;   */  
         return Territorios.contains(t);
     }
     
     public Territorio getTerritorio(int i){
         if(i>=Territorios.size()){
                          System.out.println("el indice se sale del rango");
                          return null;
         }
         else
         return Territorios.get(i);
     }
     
     public void setTerritorio(Territorio t){
         
         Territorios.add(t);
         numTerritorios++;
         
     }
     
     public void muestraTerritorios(){
         for(int i=0;i<numTerritorios;i++){
             System.out.println(Territorios.get(i).getIdentificador());
             System.out.println(Territorios.get(i).getNomTerritorio());
         }
     }
     
     public void quitarTerritorio(Territorio t){
        
         Territorios.remove(t);
         numTerritorios--;
     }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    
     public int getcanj_tropas(){
        return canj_tropas;
    }
    
    public void setcanj_tropas(int ct){
        canj_tropas=ct;
    }

    /* public Zona getTerritorio(int valor)
    {
        return zone.get(valor);//valor del jugador activo
    }*/
}


