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); } } }
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(); }
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(); }
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(); } }
// 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); } } }
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("----------------------------------------------------------------------------------------------------"); }
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(); }