Пример #1
0
    public void SacarDeOcupadas()
    {
        Nurse   hormigaNurse   = this.transform.gameObject.GetComponent(typeof(Nurse)) as Nurse;
        Obrera  hormigaObrera  = this.transform.gameObject.GetComponent(typeof(Obrera)) as Obrera;
        Soldado hormigaSoldado = this.transform.gameObject.GetComponent(typeof(Soldado)) as Soldado;

        if (hormigaNurse != null)
        {
            if (reina.nursesOcupadas.Remove(hormigaNurse))
            {
                reina.nursesDesocupadas.Add(hormigaNurse);
            }
        }
        else if (hormigaObrera != null)
        {
            if (reina.obrerasOcupadas.Remove(hormigaObrera))
            {
                reina.obrerasDesocupadas.Add(hormigaObrera);
            }
        }
        else if (hormigaSoldado != null)
        {
            if (reina.soldadosOcupadas.Remove(hormigaSoldado))
            {
                reina.soldadosDesocupadas.Add(hormigaSoldado);
            }
        }
    }
Пример #2
0
        static void Main(string[] args)
        {
            //Injector

            IAlimento alimento = null;

            alimento = new Pizza("Lechuga");

            /*
             * alimento = new Hamburguesa (){
             *  Tipo = "Sencilla
             * }
             */

            //Inject dependency through constructor
            var persona = new Persona(alimento);

            // Person uses
            persona.Comer();

//------------------------------------------------------------------------

            //Soldado
            //If we want to shoot the Revolver
            var soldado = new Soldado(new Revolver());

            soldado.Disparar();
            //If we want to shoot the Rifle
            var soldadoR = new Soldado(new Rifle());

            soldadoR.Disparar();
        }
Пример #3
0
        static void Main(string[] args)
        {
            var soldado = new Soldado(new Revolver());

            Console.WriteLine(soldado.Disparar());

            soldado = new Soldado(new Rifle());
            Console.WriteLine(soldado.Disparar());

            soldado = new Soldado(new LanzaGranadas());
            Console.WriteLine(soldado.Disparar());

            Console.ReadKey();
        }
Пример #4
0
    public void HaySoldadosCerca()
    {
        foreach (HormigaGenerica h in hormigasCerca)
        {
            if (h != null)
            {
                Soldado hormigaSoldado = h.transform.gameObject.GetComponent(typeof(Soldado)) as Soldado;
                Obrera  hormigaObrera  = h.transform.gameObject.GetComponent(typeof(Obrera)) as Obrera;

                if (hormigaObrera != null)
                {
                    if (hormigaObrera.enemigoAlQueAtacar == null)
                    {
                        if (enemigosCerca.Count > 0)
                        {
                            EnemigoGenerico enem = this.enemigosCerca[Random.Range(0, this.enemigosCerca.Count)];
                            // Si no lo tiene ya asignado por orden
                            if (hormigaObrera.enemigoAlQueAtacarPorOrden != enem)
                            {
                                hormigaObrera.enemigoAlQueAtacar = enem;
                                if (!hormigaObrera.enemigoAlQueAtacar.hormigasAtacandole.Contains(hormigaObrera))
                                {
                                    hormigaObrera.enemigoAlQueAtacar.hormigasAtacandole.Add(hormigaObrera);
                                }
                            }
                        }
                    }
                }
                else if (hormigaSoldado != null)
                {
                    if (hormigaSoldado.enemigoAlQueAtacar == null)
                    {
                        if (enemigosCerca.Count > 0)
                        {
                            EnemigoGenerico enem = this.enemigosCerca[Random.Range(0, this.enemigosCerca.Count)];
                            // Si no lo tiene ya asignado por orden
                            if (hormigaSoldado.enemigoAlQueAtacarPorOrden != enem)
                            {
                                hormigaSoldado.enemigoAlQueAtacar = enem;
                                if (!hormigaSoldado.enemigoAlQueAtacar.hormigasAtacandole.Contains(hormigaSoldado))
                                {
                                    hormigaSoldado.enemigoAlQueAtacar.hormigasAtacandole.Add(hormigaSoldado);
                                }
                            }
                        }
                    }
                }
            }
        }

        bool haySoldadosEnTodas = false;
        int  cont = 0;

        foreach (EnemigoGenerico enem in enemigosCerca)
        {
            cont = 0;
            foreach (HormigaGenerica hormiga in enem.hormigasAtacandole)
            {
                if (hormiga != null)
                {
                    Soldado hormigaSoldado2 = hormiga.transform.gameObject.GetComponent(typeof(Soldado)) as Soldado;
                    if (hormigaSoldado2 != null)
                    {
                        haySoldadosEnTodas = true;
                        break;
                    }
                    else if (cont == enem.hormigasAtacandole.Count - 1)
                    {
                        haySoldadosEnTodas = false;
                        break;
                    }
                }
                cont++;
            }

            if (haySoldadosEnTodas == false)
            {
                break;
            }
        }

        if (haySoldadosEnTodas)
        {
            Task.current.Succeed();
            enemigoAlQueAtacar = null;
        }
        else
        {
            Task.current.Fail();
        }
    }
Пример #5
0
    // Para detección de las hormigas (lista hormigasCerca)
    public void SistemaDeVision()
    {
        hormigasCerca = new List <HormigaGenerica>();
        obrerasCerca  = false;
        soldadosCerca = false;
        reinaCerca    = false;
        RaycastHit hit;

        Vector3 dir = Vector3.zero;

        // Rayos fijos
        for (int i = 0; i < numRayosFijos; i++)
        {
            switch (i)
            {
            case 0:    // delante
                dir = transform.TransformDirection(Vector3.forward);
                break;

            case 1:     // detras
                dir = transform.TransformDirection(Vector3.back);
                break;

            case 2:     // izq
                dir = transform.TransformDirection(Vector3.left);
                break;

            case 3:     //der
                dir = transform.TransformDirection(Vector3.right);
                break;
            }

            if (Physics.Raycast(transform.position, dir, out hit, RayDistance))
            {
                GameObject objetoColision = hit.collider.gameObject;

                if (objetoColision.transform.parent != null)
                {
                    if (objetoColision.transform.parent.gameObject != this.gameObject)
                    {
                        Obrera  hormigaObrera  = objetoColision.transform.parent.gameObject.GetComponent <Obrera>();
                        Soldado hormigaSoldado = objetoColision.transform.parent.gameObject.GetComponent <Soldado>();
                        Reina   hormigaReina   = objetoColision.transform.parent.gameObject.GetComponent <Reina>();
                        if (hormigaObrera != null)
                        {
                            obrerasCerca = true;
                        }
                        if (hormigaSoldado != null)
                        {
                            soldadosCerca = true;
                        }
                        if (hormigaReina != null)
                        {
                            reinaCerca = true;
                        }
                        if (!hormigasCerca.Contains(objetoColision.transform.parent.gameObject.GetComponent <HormigaGenerica>()))
                        {
                            hormigasCerca.Add(objetoColision.transform.parent.gameObject.GetComponent <HormigaGenerica>());
                        }
                    }
                    else
                    {
                        //Debug.Log("Chocandote contigo mismo");
                    }
                }
            }
        }

        // Rayos Móviles
        for (int j = 0; j < numRayosExtra; j++)
        {
            dir = new Vector3(Random.Range(-100, 101), 0, Random.Range(-100, 101));
            dir = dir.normalized;
            if (Physics.Raycast(transform.position, dir, out hit, RayDistance))
            {
                GameObject objetoColision = hit.collider.gameObject;

                if (objetoColision.transform.parent != null)
                {
                    if (objetoColision.transform.parent.gameObject != this.gameObject)
                    {
                        Obrera  hormigaObrera  = objetoColision.transform.parent.gameObject.GetComponent <Obrera>();
                        Soldado hormigaSoldado = objetoColision.transform.parent.gameObject.GetComponent <Soldado>();
                        Reina   hormigaReina   = objetoColision.transform.parent.gameObject.GetComponent <Reina>();
                        if (hormigaObrera != null)
                        {
                            obrerasCerca = true;
                        }
                        if (hormigaSoldado != null)
                        {
                            soldadosCerca = true;
                        }
                        if (hormigaReina != null)
                        {
                            reinaCerca = true;
                        }
                        if (!hormigasCerca.Contains(objetoColision.transform.parent.gameObject.GetComponent <HormigaGenerica>()))
                        {
                            hormigasCerca.Add(objetoColision.transform.parent.gameObject.GetComponent <HormigaGenerica>());
                        }
                        //Debug.Log(hit.collider.gameObject.transform.parent.gameObject.tag);
                    }

                    else
                    {
                        //Debug.Log("Chocandote contigo mismo");
                    }
                }
                //Debug.DrawRay(transform.position, dir * RayDistance, Color.magenta);
            }
        }
    }
Пример #6
0
        static void Main(string[] args)
        {
            // Creamos soldados y guerreros
            List <Soldado> soldados = new List <Soldado> {
                new Soldado(1, "soldado", "lyon1", 60, "Imperio"),
                new Soldado(2, "soldado", "lyon2", 60, "Alianza Revelde"),
                new Soldado(3, "soldado", "lyon3", 60, "Imperio"),
                new Soldado(4, "soldado", "lyon4", 60, "Imperio")
            };
            List <Guerrero> guerreros = new List <Guerrero> {
                new Guerrero(1, "guerrero", 10, 100, "Alianza Revelde", 400.3),
                new Guerrero(2, "guerrero", 50, 110, "Alianza Revelde", 39.2),
                new Guerrero(3, "guerrero", 40, 90, "Alianza Revelde", 70.4),
                new Guerrero(4, "guerrero", 40, 90, "Alianza Revelde", 70.4)
            };

            //CREAMOS NUESTRO VEHICULO
            Console.WriteLine("---------------------------------------------------------------------------------------------------");
            Console.WriteLine("Vehiculo creado: ");
            Vehiculo unVehiculo = new Vehiculo("HZX", 4, 1500);

            unVehiculo.Informe();

            //Creamos sables laser
            SableLaser sableLaserDos = new SableLaser(2);
            SableLaser sableLaserUno = new SableLaser(1);

            //Creamos balster
            Blaster blasterMn = new Blaster(40);
            Blaster blasterMy = new Blaster(70);

            //Creamos a nuestro personaje Soldado
            Console.WriteLine("---------------------------------------------------------------------------------------------------");
            Console.WriteLine("Soldado creado: ");
            Soldado unSoldado = new Soldado(5, "soldado", "lyon0", 60, "Alianza Revelde");

            //El soldado alza armas
            Console.WriteLine("");
            unSoldado.alzarBlaster(blasterMy);
            unSoldado.alzarSableLaser(sableLaserUno);
            unSoldado.informeSoldado();


            //Creamos a nuestro personaje Guerrero
            Console.WriteLine("---------------------------------------------------------------------------------------------------");
            Console.WriteLine("Guerrero creado: ");
            Guerrero unGuerrero = new Guerrero(5, "guerrero", 10, 100, "Imperio", 40.3);

            //El guerrero alza armas
            Console.WriteLine("");
            unGuerrero.alzarSableLaser(sableLaserDos);
            unGuerrero.alzarBlaster(blasterMn);
            unGuerrero.informeGuerrero();


            //CAMBIAR DE FACCION
            Console.WriteLine("---------------------------------------------------------------------------------------------------");
            Console.WriteLine("Cambio de faccion del guerrero que creamos: ");
            Console.WriteLine("");
            unGuerrero.cambiarDeFaccion();
            unGuerrero.informeGuerrero();
            Console.WriteLine("---------------------------------------------------------------------------------------------------");


            //AÑADIMOS LOS PERSONAJES CREADOS A SUS LISTAS
            soldados.Add(unSoldado);
            guerreros.Add(unGuerrero);


            // ROBAR ARMA

            //Creamos a nuestro guerrero para que sea robado
            Guerrero fulanitoGuerrero = new Guerrero(6, "guerrero", 10, 100, "Imperio", 40.3);

            fulanitoGuerrero.alzarSableLaser(sableLaserDos);
            fulanitoGuerrero.alzarBlaster(blasterMy);
            fulanitoGuerrero.alzarSableLaser(sableLaserUno);
            fulanitoGuerrero.alzarBlaster(blasterMn);

            //Subimos al guerrero que va ser robado en el vehiculo
            unVehiculo.guerreros.Add(fulanitoGuerrero);

            var guerreroRobado = new Guerrero();

            //Obtenemos el resultado del soldado robado apartir del ladron a partir del guerrero que lo robo
            guerreroRobado = guerreros[0].robarArma(guerreros, unVehiculo.guerreros);

            //Actualizamos Listas
            if (unVehiculo.guerreros.Exists(x => x.id == guerreroRobado.id) == true)
            {
                unVehiculo.guerreros[unVehiculo.guerreros.IndexOf(unVehiculo.guerreros.First(x => x.id == guerreroRobado.id))] = guerreroRobado;
            }
            else
            {
                guerreros[guerreros.IndexOf(guerreros.First(x => x.id == guerreroRobado.id))] = guerreroRobado;
            }

            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("Personajes en el vehiculo: ");
            unVehiculo.mostrarGuerreros(unVehiculo.guerreros);
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("Personajes fuera del vehiculo: ");
            unVehiculo.mostrarGuerreros(guerreros);

            //SUBIDA Y BAJADA DE PERSONAJES

            //Creamos vehiculo

            Console.WriteLine("---------------------------------------------------------------------------------------------------");
            Console.WriteLine("VEHICULO:");
            unVehiculo.Informe();
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            unVehiculo.subirPersonajes(soldados, guerreros);
            Console.WriteLine("----------------------------------------------------------------------------------------------------");

            // Proceso para remover soldados que han subido al vehiculo
            foreach (var soldadoVehiculo in unVehiculo.soldados)
            {
                if (soldados.Exists(x => x.id == soldadoVehiculo.id) == true)
                {
                    soldados.Remove(soldados.First(x => x.id == soldadoVehiculo.id));
                }
            }

            // Proceso para remover guerreros que han subido al vehiculo
            foreach (var guerreroVehiculo in unVehiculo.guerreros)
            {
                if (guerreros.Exists(x => x.id == guerreroVehiculo.id) == true)
                {
                    guerreros.Remove(guerreros.First(x => x.id == guerreroVehiculo.id));
                }
            }

            //Bajar personajes del vehiculo
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("Guerreros a bajar");
            var guerrerosBajados = unVehiculo.bajarGuerreros();

            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            onsole.WriteLine("Soldados a bajar");
            var soldadosBajados = unVehiculo.bajarSoldados();

            //Añado a los soldados que fueron bajados
            foreach (var guerrero in guerrerosBajados)
            {
                guerreros.Add(guerrero);
            }
            foreach (var soldado in soldadosBajados)
            {
                soldados.Add(soldado);
            }

            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("Personajes en el vehiculo: ");
            unVehiculo.mostrarSoldados(unVehiculo.soldados);
            unVehiculo.mostrarGuerreros(unVehiculo.guerreros);
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("VEHICULO:");
            unVehiculo.Informe();
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
            Console.WriteLine("Personajes fuera del vehiculo: ");
            unVehiculo.mostrarSoldados(soldados);
            unVehiculo.mostrarGuerreros(guerreros);
            Console.WriteLine("----------------------------------------------------------------------------------------------------");
        }
Пример #7
0
        static void Main(string[] args)
        {
            //Creacion de soldados y guerreros
            Soldado  unSoldado    = new Soldado("efrain", 120, "Imperio");
            Soldado  otroSoldado  = new Soldado("efrain2", 120, "Imperio");
            Guerrero unGuerrero   = new Guerrero("lyon1", 140, "Alianza Rebelde", 100);
            Guerrero otroGuerrero = new Guerrero("lyon2", 200, "Alianza Rebelde", 100);

            //Creacion de Armas
            Blaster    unBlaster      = new Blaster(300);
            SableLaser unSableLaser   = new SableLaser(2);
            Blaster    otroBlaster    = new Blaster(150);
            SableLaser otroSableLaser = new SableLaser(1);

//---------------------------------------------------------------------------------------------------------------------------------------------
            //ALZAR ARMAS

            //Guerreros
            Console.WriteLine("---------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Informe de guerreros antes de alzar armas: ");
            Console.WriteLine();
            Console.WriteLine("-------------------------");
            informePersonaje(unGuerrero);
            Console.WriteLine("-------------------------");
            informePersonaje(otroGuerrero);
            Console.WriteLine();
            Console.WriteLine("-------------------------");

            //Los guerreros alzan armas
            Console.WriteLine("---------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Informe de guerreros despues de alzar armas: ");
            Console.WriteLine();
            unGuerrero.alzarArma(unBlaster);
            unGuerrero.alzarArma(unSableLaser);
            unGuerrero.alzarArma(otroBlaster);
            unGuerrero.alzarArma(otroSableLaser);

            otroGuerrero.alzarArma(unBlaster);
            otroGuerrero.alzarArma(unSableLaser);
            otroGuerrero.alzarArma(otroSableLaser);
            Console.WriteLine("-------------------------");
            informePersonaje(unGuerrero);
            Console.WriteLine("-------------------------");
            informePersonaje(otroGuerrero);
            Console.WriteLine();

            //Soldados
            Console.WriteLine("---------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Informe de soldados antes de alzar armas: ");
            Console.WriteLine();

            informePersonaje(unSoldado);
            Console.WriteLine("-----------------------");
            informePersonaje(otroSoldado);
            Console.WriteLine();

            //Los soldados alzan armas
            Console.WriteLine("---------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Informe de soldados despues de alzar armas: ");
            Console.WriteLine();
            unSoldado.alzarArma(unBlaster);
            unSoldado.alzarArma(unSableLaser);
            unSoldado.alzarArma(otroBlaster);
            unSoldado.alzarArma(otroSableLaser);

            otroSoldado.alzarArma(unBlaster);
            otroSoldado.alzarArma(unSableLaser);
            otroSoldado.alzarArma(otroSableLaser);

            Console.WriteLine("------------------------");
            informePersonaje(unSoldado);
            Console.WriteLine("------------------------");
            informePersonaje(otroSoldado);
            Console.WriteLine();
            Console.WriteLine("---------------------------------------------------");
            Console.WriteLine();
//-----------------------------------------------------------------------------------------------------------------------------------
            //CAMBIO DE FACCION DE GUERRERO
            Console.WriteLine("Antes de cambiar de faccion: ");
            Console.WriteLine("-------------------------");
            informePersonaje(unGuerrero);
            Console.WriteLine("-------------------------");
            Console.WriteLine();
            unGuerrero.cambiarFaccion();
            Console.WriteLine();
            Console.WriteLine("Despues de cambiar de faccion: ");
            Console.WriteLine("-------------------------");
            informePersonaje(unGuerrero);
            Console.WriteLine("-------------------------");
            Console.WriteLine();
//-----------------------------------------------------------------------------------------------------------------------------------
            //ROBO DE ARMA MAS PODEROSA

            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine("Antes de robo: ");
            Console.WriteLine();
            Console.WriteLine("--------------------------");
            informePersonaje(unGuerrero);
            Console.WriteLine("--------------------------");
            informePersonaje(otroGuerrero);
            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------");
            unGuerrero.robarArmaMax(otroGuerrero);
            unGuerrero.robarArmaMax(otroGuerrero);
            unGuerrero.robarArmaMax(otroGuerrero);
            Console.WriteLine();
            Console.WriteLine("Despues de robo:");
            Console.WriteLine("--------------------------");
            Console.WriteLine();
            informePersonaje(unGuerrero);
            Console.WriteLine("--------------------------");
            informePersonaje(otroGuerrero);
            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine();
//---------------------------------------------------------------------------------------------------------------------------------------------
            //SUBIDA Y BAJADA DE PERSONAJES DEL VEHICULO

            Console.WriteLine("Vehiculo creado: ");
            Vehiculo unVehiculo = new Vehiculo("HZX", 3, 1500);

            Console.WriteLine();
            informeVehiculo(unVehiculo);
            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Luego de la subida de dos personajes: ");
            unVehiculo.subirPersonaje(unGuerrero);
            unVehiculo.subirPersonaje(unSoldado);
            informeVehiculo(unVehiculo);
            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------");
            Console.WriteLine();
            Console.WriteLine("Bajar personajes:");
            unVehiculo.bajarPersonaje(unSoldado);
            unVehiculo.bajarPersonaje(unGuerrero);
            Console.WriteLine();
            Console.WriteLine("Luego de la bajada de personajes:");
            informeVehiculo(unVehiculo);
            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------");

            Soldado soldadoDesconocido = new Soldado("desconcido", 120, "Imperio");

            // Console.WriteLine("Luego intenar bajar a un personaje que no esta en el vehiculo: ");
            // unVehiculo.bajarPersonaje(soldadoDesconocido);

            // Console.WriteLine("Luego intenar subir a un personajes que superan la capacidad: ");
            // unVehiculo.subirPersonaje(unGuerrero);
            // unVehiculo.subirPersonaje(unSoldado);
            // unVehiculo.subirPersonaje(unGuerrero);
            // unVehiculo.subirPersonaje(unSoldado);



            Console.WriteLine();
        }