예제 #1
0
 public override bool Mover(int pfx, int pfy, long tics)
 {
     if (enPosesion == 1)
     {
         foreach (Entidad i in Mapa.Personajes)
         {
             if (i is Cazador)
             {
                 Cazador temp = (Cazador)i;
                 if (posx == temp.posx && posy == temp.posy)
                 {
                     enPosesion        = -1;     //Definitivamente alguien la tiene
                     Dueño             = temp;
                     temp.tieneQuaffle = true;
                 }
             }
         }
     }
     else if (enPosesion > 1) //Pelea por la quaffle
     {
         Cazador cazadorsuperior = new Cazador(0, 0, false, "dummy", '0');
         Cazador cazadortemp;
         bool    fp            = true;
         int     mejordestreza = 0;
         foreach (Entidad i in Mapa.Personajes)
         {
             if (i is Cazador)
             {
                 cazadortemp = (Cazador)i;
                 if (cazadortemp.enQuaffle == true)
                 {
                     if (fp == true)
                     {
                         fp = false;
                         cazadorsuperior = (Cazador)i;
                         mejordestreza   = cazadorsuperior.destreza;
                     }
                     else
                     {
                         if (mejordestreza < cazadortemp.destreza)
                         {
                             cazadorsuperior = (Cazador)i;
                             mejordestreza   = cazadorsuperior.destreza;
                         }
                     }
                 }
             }
         }
         cazadorsuperior.tieneQuaffle = true;
     }
     else if (enPosesion == 0)
     {
     }
     else if (enPosesion == -1)
     {
     }
     return(true);
 }
예제 #2
0
        public void reestablecer()
        {
            Random rnd = new Random();

            Mapa.Personajes = new List <Entidad>();
            //Implementar clase que obtenga nombres
            //Nombres Reponom = new Nombres({,,,});
            //Reponom.sacarNombre();
            Nomop nombres = new Nomop();
            //Pelotas

            //Equipo 1 izquierda + true
            Cazador   c1e1 = new Cazador(12, 3, true, nombres.getnom(), '►');
            Cazador   c2e1 = new Cazador(12, 9, true, nombres.getnom(), '►');
            Cazador   c3e1 = new Cazador(12, 15, true, nombres.getnom(), '►');
            Golpeador g1e1 = new Golpeador(17, 3, true, nombres.getnom(), '♠');
            Golpeador g2e1 = new Golpeador(17, 15, true, nombres.getnom(), '♠');

            Guardian ge1 = new Guardian(1, 9, true, nombres.getnom(), (char)18);
            //Equipo 2 derecha - false
            Cazador   c1e2 = new Cazador(61, 3, false, nombres.getnom(), '◄');
            Cazador   c2e2 = new Cazador(61, 9, false, nombres.getnom(), '◄');
            Cazador   c3e2 = new Cazador(61, 15, false, nombres.getnom(), '◄');
            Golpeador g1e2 = new Golpeador(56, 3, false, nombres.getnom(), '♥');
            Golpeador g2e2 = new Golpeador(56, 15, false, nombres.getnom(), '♥');
            Guardian  ge2  = new Guardian(72, 9, false, nombres.getnom(), (char)18);
            //Mas pelotas
            Quaffle q = new Quaffle(36, 9);

            #region

            Mapa.Personajes.Add(c1e1);
            Mapa.Personajes.Add(c2e1);
            Mapa.Personajes.Add(c3e1);
            Mapa.Personajes.Add(g1e1);
            Mapa.Personajes.Add(g2e1);

            Mapa.Personajes.Add(ge1);
            Mapa.Personajes.Add(c1e2);
            Mapa.Personajes.Add(c2e2);
            Mapa.Personajes.Add(c3e2);
            Mapa.Personajes.Add(g1e2);
            Mapa.Personajes.Add(g2e2);

            Mapa.Personajes.Add(ge2);

            Mapa.Personajes.Add(q);

            #endregion
        }
예제 #3
0
        public override bool Mover(int pfx, int pfy, long tics)
        {
            double  minim = 0;
            Quaffle qt    = (Quaffle)Mapa.Personajes[12];

            if (tieneQuaffle == true)               //Si tiene la quaffle, debe ver si puede disparar, si no, debe avanzar y cargarla con el
            {
                //Buscar el aro mas cercano
                if (equipo == false)
                {
                    double d1 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 6), 2);      //73 9   73 6 73 12
                    double d2 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 9), 2);
                    double d3 = Math.Pow(Math.Abs(posx - 1), 2) + Math.Pow(Math.Abs(posy - 12), 2);
                    minim = Math.Min(d1, d2);
                    minim = Math.Min(minim, d3);
                }
                if (equipo == true)
                {
                    double d1 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 6), 2);      //73 9   73 6 73 12
                    double d2 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 9), 2);
                    double d3 = Math.Pow(Math.Abs(posx - 73), 2) + Math.Pow(Math.Abs(posy - 12), 2);
                    minim = Math.Min(d1, d2);
                    minim = Math.Min(minim, d3);
                }
                bool exito = this.disparar(minim);
                qt.posx = posx;
                qt.posy = posy;
                return(exito);
            }
            else if (qt.enPosesion == 0) //si no la tiene, debe ver donde esta, y si alguien mas la tiene
            {
                return(seguirQuaffle(qt, tics));
            }
            else if (qt.enPosesion == -1 && tieneQuaffle == false)
            {
                foreach (Entidad i in Mapa.Personajes)
                {
                    if (i is Cazador)
                    {
                        Cazador j = (Cazador)i;
                        if (j.tieneQuaffle)
                        {
                            this.seguir(j.posx, j.posy, tics);
                        }
                    }
                }
            }
            return(true);
        }
예제 #4
0
 public void seguirCazador(Cazador c1, Cazador c2, Cazador c3)
 {
 }