public void LanzarObjeto(ObjetoBase objeto, GameObject objetivo)
    {
        //Hacer animacion objeto
        StartCoroutine(AccionObjeto(objetivo, objeto));

        if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.CURAR))
        {
            sistemaTurnos.sistemaDMG.Curar(objeto.cantidadEfecto, objetivo);
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.MANA))
        {
            sistemaTurnos.sistemaDMG.RestablecerMana(objeto.cantidadEfecto, objetivo);
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.HACERDMG))
        {
            sistemaTurnos.sistemaDMG.HacerDMGaEnemigo(objeto, objetivo);
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.REVIVIR))
        {
            if (objetivo.CompareTag("Muerto"))
            {
                objetivo.GetComponent <HeroeStateMachine>().Revivir();
                sistemaTurnos.sistemaDMG.Curar(Mathf.RoundToInt(objetivo.GetComponent <HeroeStateMachine>().heroe.vidaBase / 2), objetivo);
            }
        }

        objeto.cantidad -= 1;

        if (objeto.cantidad == 0)
        {
            sistemaTurnos.inventario.RmvfromInvt(objeto);
        }

        AcabarTurno();
    }
 public void End()
 {
     base.Close();
     if (variable != null)
     {
         variable.MainAnchor = variable.SubAnchor;
         variable.SubAnchor  = null;
         variable.Anchorable.anchorLerpCoeffPerSec = variable.MainAnchor.LerpCoeficient;
         variable.Anchorable.anchor     = variable.MainAnchor;
         variable.Anchorable.isAttached = true;
         variable.Anchorable.anchor.NotifyAttached(variable.Anchorable);
         variable.Interaction.ignoreGrasping = false;
         variable = null;
     }
     if (objeto != null)
     {
         Contraer();
         objeto.MainAnchor = objeto.SubAnchor;
         objeto.SubAnchor  = null;
         objeto.Anchorable.anchorLerpCoeffPerSec = objeto.MainAnchor.LerpCoeficient;
         objeto.Anchorable.anchor     = objeto.MainAnchor;
         objeto.Anchorable.isAttached = true;
         objeto.Anchorable.anchor.NotifyAttached(objeto.Anchorable);
         objeto.Interaction.ignoreGrasping = false;
         objeto = null;
     }
 }
        public static void GuardarObjeto(ObjetoBase objetoGuardar)
        {
            Type tipo = objetoGuardar.GetType();

            if (!almacen.ContainsKey(tipo))
            {
                almacen.Add(tipo, new Dictionary <long, ObjetoBase>());
            }

            if (almacen[tipo].ContainsKey(objetoGuardar.Id))
            {
                if (ActivarLog)
                {
                    Log.EscribirLog("ALAMCEN <-   : ACTUALIZADO. [OBJETO: " + tipo.Name + " ID: " + objetoGuardar.Id + "]");
                }
                almacen[tipo][objetoGuardar.Id] = objetoGuardar;
            }
            else
            {
                if (ActivarLog)
                {
                    Log.EscribirLog("ALAMCEN <-   : AGREGADO [OBJETO: " + tipo.Name + " ID: " + objetoGuardar.Id + "]");
                }
                almacen[tipo].Add(objetoGuardar.Id, objetoGuardar);
            }
        }
    public IEnumerator AccionObjeto(GameObject objetivo, ObjetoBase objeto)
    {
        if (accionComenzada)
        {
            yield break;
        }

        //Comenzamos la accion
        accionComenzada = true;

        if (objeto.prefab != null)
        {
            GameObject projectile = Instantiate(objeto.prefab, objetivo.transform) as GameObject;

            projectile.transform.SetParent(objetivo.transform.parent);
            projectile.transform.localScale = objeto.prefab.transform.localScale;

            yield return(new WaitForSeconds(2f));

            Destroy(projectile);
        }
        else
        {
            yield return(new WaitForSeconds(2f));
        }

        //Esperar
        yield return(new WaitForSeconds(1.5f));

        accionComenzada = false;
    }
    public void Open(VariableObjeto _variable)
    {
        Open();
        variable            = _variable;
        variable.SubAnchor  = variable.MainAnchor;
        variable.MainAnchor = anchorVariable;
        variable.Anchorable.anchorLerpCoeffPerSec = anchorVariable.LerpCoeficient;
        variable.Anchorable.anchor     = anchorVariable;
        variable.Anchorable.isAttached = true;
        variable.Anchorable.anchor.NotifyAttached(variable.Anchorable);
        anchorMetodo.gameObject.SetActive(false);
        if (Manager.Instance.english)
        {
            info.text = "To run methods, asign an object to the variable";
        }
        else
        {
            info.text = "Para poder ejecutar metodos, asigna un objeto a la variable";
        }

        if (variable.objetoReferenciado != null)
        {
            objeto            = variable.objetoReferenciado;
            objeto.SubAnchor  = objeto.MainAnchor;
            objeto.MainAnchor = anchorObjeto;
            objeto.Anchorable.anchorLerpCoeffPerSec = anchorObjeto.LerpCoeficient;
            objeto.Anchorable.anchor     = anchorObjeto;
            objeto.Anchorable.isAttached = true;
            objeto.Anchorable.anchor.NotifyAttached(objeto.Anchorable);
            anchorMetodo.gameObject.SetActive(true);
            info.text  = "";
            title.text = "Variable: " + variable.nombre;
            Expandir();
        }
    }
    public void HacerDMGaEnemigo(ObjetoBase objeto, GameObject objetivo)
    {
        objetivo.GetComponent <EnemigoStateMachine>().enemigo.vidaActual -= Mathf.RoundToInt(objeto.cantidadEfecto * 0.75f);

        objetivo.GetComponent <EnemigoStateMachine>().AnimacionRecibirDMG();

        SpawnDMG(objeto.cantidadEfecto, objetivo, "daño");
    }
示例#7
0
 public void RemoveClases()
 {
     while (anchorablePrefs.Count > 0)
     {
         ObjetoBase b = anchorablePrefs[0];
         anchorablePrefs.Remove(b);
         Destroy(b.gameObject);
         m.NumberClases--;
     }
 }
示例#8
0
    public void ObjetoSeleccionado(ObjetoBase objeto)
    {
        enDescripcion = true;
        seleccionable = false;

        //Mostrar panel de descripcion del objetos
        panelDescpObjetos.SetActive(true);
        panelDescpObjetos.transform.Find("Objeto").gameObject.SetActive(true);
        panelDescpObjetos.transform.Find("Objeto").GetComponent <RellenarObjetos>().Rellenar(objeto);
    }
示例#9
0
 public void Eliminar()
 {
     mg.RemoveOfTypeObject(objeto);
     mg.RemoveOfTypeVariable(objeto);
     mg.anchorablePrefs.Remove(objeto);
     Destroy(objeto.gameObject);
     objeto = null;
     mc.ReOrder();
     mc.NumberClases--;
 }
示例#10
0
    public void Init(ObjetoBase objeto, CustomAnchor main)
    {
        base.Init(main);

        em = (ExploracionMetodo)Manager.Instance.GetMenu("ExploracionMetodo");
        eo = (ExploracionObjeto)Manager.Instance.GetMenu("ExploracionObjeto");

        this.objeto             = objeto;
        Interaction.OnGraspEnd += (() => Release());
        textoPanelSuperior.text = cabecera;
    }
        public static Observable Observable(this ObjetoBase objetoBase)
        {
            IImplementacion impl       = objetoBase.Implementacion();
            Observable      observable = Observable(impl);

            if (observable != null)
            {
                observable.ObjetoDatos = objetoBase;
            }

            return(observable);
        }
示例#12
0
    public void Load(string nombre, Material m)
    {
        ObjetoBase objetoScript = Instantiate(Manager.Instance.objetoBasePrefab, new Vector3(999, 999, 999), Quaternion.identity);

        objetoScript.nombre = nombre;

        string s = cabecera.text + " {\n";

        foreach (IntVariable var in variablesInt)
        {
            objetoScript.variablesInt.Add(var);
            var.gameObject.transform.parent     = objetoScript.variablesParent;
            var.gameObject.transform.localScale = Vector3.one;
            s += var.WriteFile();
        }
        foreach (FloatVariable var in variablesFloat)
        {
            objetoScript.variablesFloat.Add(var);
            var.gameObject.transform.parent     = objetoScript.variablesParent;
            var.gameObject.transform.localScale = Vector3.one;
            s += var.WriteFile();
        }
        foreach (BoolVariable var in variablesBoolean)
        {
            objetoScript.variablesBool.Add(var);
            var.gameObject.transform.parent     = objetoScript.variablesParent;
            var.gameObject.transform.localScale = Vector3.one;
            s += var.WriteFile();
        }
        foreach (MetodoBase var in metodos.Values)
        {
            objetoScript.metodos.Add(var);
            var.gameObject.transform.parent     = objetoScript.metodoParent;
            var.gameObject.transform.localScale = Vector3.one;
            s += var.WriteFile();
        }

        s += "}";

        objetoScript.codigo += s;

        objetoScript.Material = m;

        mc.NumberClases++;

        this.m.anchorablePrefs.Add(objetoScript.gameObject.GetComponent <ObjetoBase>());

        variablesBoolean.Clear();
        variablesFloat.Clear();
        variablesInt.Clear();
        metodos.Clear();
    }
示例#13
0
 public void Restart()
 {
     variablesInt.Clear();
     variablesFloat.Clear();
     variablesBoolean.Clear();
     metodos.Clear();
     nombreInput.text = "";
     numberVariables  = 0;
     numberMethods    = 0;
     objectToModify   = null;
     indiceLinea      = 0;
     modify           = false;
 }
示例#14
0
    public void ObjetoSeleccionado(ObjetoBase objeto)
    {
        //Desactiva el menu de comandos
        sistemaMenus.DesactivarMenu();

        if (objeto.cantidad > 0)
        {
            //Reset menu selector de objetos
            ResetMenuSeleccion();

            sistemaMenus.SeleccionarObjetivo(objeto);
        }
    }
示例#15
0
    private void OnTriggerEnter(Collider other)
    {
        ObjetoBase o = other.gameObject.GetComponent <ObjetoBase>();

        if (o != null && o == objetoReferenciado)
        {
            return;
        }

        if (o != null && o.nombre == clase)
        {
            objetoReferenciado = o;
            c.Write(nombreColor + " = new " + nombreColorClase + "();");
        }
    }
示例#16
0
 public void RemoveAllObjects()
 {
     for (int i = 0; i < objects.Count; i++)
     {
         CustomAnchor anchor    = gridObjeto.FirstOrDefault(x => x.objectAnchored == objects[i]);
         ObjetoBase   oldObject = anchor.objectAnchored as ObjetoBase;
         objects.Remove(oldObject);
         anchor.NotifyDetached(oldObject.Anchorable);
         Destroy(oldObject.gameObject);
         anchor.gameObject.SetActive(false);
         activeObjectAnchors--;
         i--;
         m.NumberObjetos--;
     }
 }
 public void SetObjetoAsignado(ObjetoBase objeto, String etiqueta)
 {
     txt_Etiqueta.Text = etiqueta;
     if (etiqueta.Trim().Equals("") || objeto == null)
     {
         if (ListaObjetos != null)
         {
             ListaObjetos.Clear();
         }
     }
     else
     {
         ListaObjetos.Clear();
         ListaObjetos.Add(objeto);
     }
 }
 public static ObjetoBase ObtenerObjeto(Type tipo, long id)
 {
     if (almacen.ContainsKey(tipo))
     {
         if (almacen[tipo].ContainsKey(id))
         {
             if (ActivarLog)
             {
                 Log.EscribirLog("ALAMCEN    ->: OBTENIDO [OBJETO: " + tipo.Name + " ID: " + id + "]");
             }
             ObjetoBase objeto = almacen[tipo][id];
             //objeto.EliminarCache();
             return(objeto);
         }
     }
     return(null);
 }
示例#19
0
    public void Init(string nombre, string clase, CustomAnchor main, Material colorVariable, Material colorClase)
    {
        base.Init(main);

        eo = (ExploracionObjeto)Manager.Instance.GetMenu("ExploracionObjeto");
        mg = (MenuGrid)Manager.Instance.GetMenu("MenuGrid");
        c  = (Consola)Manager.Instance.GetMenu("Consola");

        this.nombre             = nombre;
        this.clase              = clase;
        this.colorVariable      = colorVariable;
        this.colorClase         = colorClase;
        this.nombreColor        = "<#" + ColorUtility.ToHtmlStringRGB(colorVariable.color) + ">" + nombre + "</color>";
        this.nombreColorClase   = "<#" + ColorUtility.ToHtmlStringRGB(colorClase.color) + ">" + clase + "</color>";
        objetoReferenciado      = null;
        Interaction.OnGraspEnd += (() => Release());
        textoPanelSuperior.text = nombreColorClase + " " + nombreColor + ";";
    }
示例#20
0
 public void RemoveOfTypeVariable(ObjetoBase o)
 {
     for (int i = 0; i < variables.Count; i++)
     {
         CustomAnchor   anchor    = gridVariable.FirstOrDefault(x => x.objectAnchored == variables[i]);
         VariableObjeto oldObject = anchor.objectAnchored as VariableObjeto;
         if (oldObject.clase == o.nombre)
         {
             variables.Remove(oldObject);
             anchor.NotifyDetached(oldObject.Anchorable);
             Destroy(oldObject.gameObject);
             anchor.gameObject.SetActive(false);
             activeVariableAnchors--;
             i--;
             m.NumberVariables--;
         }
     }
 }
示例#21
0
        public List <ObjetoBase> ObtenerSeleccionados(Type tipo)
        {
            List <ObjetoBase> objetosSeleccionados = null;

            if (seAcepto)
            {
                objetosSeleccionados = new List <ObjetoBase>();
                for (int i = 0; i < dgr_InformacionObjetos.SelectedRows.Count; i++)
                {
                    long       id     = Convert.ToInt32(Herramientas.Forms.DataGridViewConf.ObtenerValorCelda(dgr_InformacionObjetos, i, "ID"));
                    ObjetoBase objeto = Manejador.Cargar(tipo, "select * from " + tipoObjetoABuscar.Name + " where id = @id", new List <object>()
                    {
                        id
                    })[0];
                    objetosSeleccionados.Add(objeto);
                }
            }
            return(objetosSeleccionados);
        }
示例#22
0
        public List <ObjetoBase> ObtenerSeleccionados()
        {
            List <ObjetoBase> objetosSeleccionados = null;

            if (dgr_GridResultadosBusqueda.SelectedItems.Count > 0)
            {
                objetosSeleccionados = new List <ObjetoBase>();
            }
            foreach (DataRowView drv in dgr_GridResultadosBusqueda.SelectedItems)
            {
                long       id     = (long)drv.Row[0];
                ObjetoBase objeto = manejador.Cargar(tipoObjetoABuscar, "select * from " + tipoObjetoABuscar.Name + " where id = @id", new List <object>()
                {
                    id
                })[0];
                objetosSeleccionados.Add(objeto);
            }
            return(objetosSeleccionados);
        }
示例#23
0
 public void RemoveOneObject(CustomAnchorable c)
 {
     if (activeObjectAnchors > 0)
     {
         CustomAnchor anchor    = gridObjeto.FirstOrDefault(x => x.objectAnchored == c);
         ObjetoBase   oldObject = anchor.objectAnchored as ObjetoBase;
         objects.Remove(oldObject);
         anchor.NotifyDetached(oldObject.Anchorable);
         Destroy(oldObject.gameObject);
         anchor.gameObject.SetActive(false);
         activeObjectAnchors--;
         Debug.Log(activeObjectAnchors);
         m.NumberObjetos--;
     }
     else
     {
         Debug.Log("No existen objetos creados");
     }
 }
示例#24
0
 public void SpawnObject(int i)
 {
     if (activeObjectAnchors < gridObjeto.Count)
     {
         CustomAnchor anchor        = gridObjeto.FirstOrDefault(x => !x.gameObject.activeSelf);
         GameObject   newObject     = Instantiate(anchorablePrefs[i], anchor.gameObject.transform.position, anchor.gameObject.transform.rotation, objectsPivot).gameObject;
         ObjetoBase   newAnchorable = newObject.GetComponent <ObjetoBase>();
         anchor.gameObject.SetActive(true);
         anchor.objectAnchored = newAnchorable;
         newAnchorable.Init(anchor);
         objects.Add(newAnchorable);
         activeObjectAnchors++;
         newAnchorable.GraspEnd();
         c.Write("new " + "<#" + ColorUtility.ToHtmlStringRGB(newAnchorable.Material.color) + ">" + newAnchorable.nombre + "</color>();");
     }
     else
     {
         Debug.Log("Maximos objetos creados");
     }
 }
    //Seleccionar Objetivo -> Objeto
    public void SeleccionarObjetivo(ObjetoBase objeto)
    {
        menuLista.GetComponent <SistemaSeleccion>().menuAnterior = HeroeStateMachine.HeroeInputMenu.OBJETOS;
        menuLista.GetComponent <SistemaSeleccion>().HSM          = HSM;
        menuLista.GetComponent <SistemaSeleccion>().sistemaMenus = this;
        menuLista.GetComponent <SistemaSeleccion>().objeto       = objeto;

        if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.CURAR) || objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.MANA) || objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.REVIVIR))
        {
            List <GameObject> heroesInstaciados = RellenarListaHeroes(sistemaTurnos.heroesCombate);

            menuLista.GetComponent <SistemaSeleccion>().Inicializar(heroesInstaciados, "heroes");
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.HACERDMG))
        {
            List <GameObject> enemigosInstanciados = RellenarListaEnemigos(sistemaTurnos.enemigosCombate);

            menuLista.GetComponent <SistemaSeleccion>().Inicializar(enemigosInstanciados, "enemigos");
        }
    }
示例#26
0
    public void Rellenar(ObjetoBase objeto)
    {
        transform.Find("Icon").GetComponent <Image>().sprite             = objeto.icon;
        transform.Find("Nombre").GetComponent <TextMeshProUGUI>().text   = objeto.nombreObjeto;
        transform.Find("Cantidad").GetComponent <TextMeshProUGUI>().text = "x" + objeto.cantidad;
        transform.Find("DMG").GetComponent <TextMeshProUGUI>().text      = "" + objeto.cantidadEfecto;

        if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.CURAR))
        {
            transform.Find("DMG").Find("Image").GetComponent <Image>().sprite = spriteCura;
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.HACERDMG))
        {
            transform.Find("DMG").Find("Image").GetComponent <Image>().sprite = spriteDMG;
        }
        else if (objeto.tipoAccion.Equals(ObjetoBase.TipoAccion.MANA))
        {
            transform.Find("DMG").Find("Image").GetComponent <Image>().sprite = spriteMana;
        }

        transform.Find("Descripcion").GetComponent <TextMeshProUGUI>().text = objeto.descripcion;
    }
 public void Open(ObjetoBase _objeto)
 {
     Open();
     objeto            = _objeto;
     objeto.SubAnchor  = objeto.MainAnchor;
     objeto.MainAnchor = anchorObjeto;
     objeto.Anchorable.anchorLerpCoeffPerSec = anchorObjeto.LerpCoeficient;
     objeto.Anchorable.anchor     = anchorObjeto;
     objeto.Anchorable.isAttached = true;
     objeto.Anchorable.anchor.NotifyAttached(objeto.Anchorable);
     anchorMetodo.gameObject.SetActive(false);
     if (Manager.Instance.english)
     {
         info.text  = "To run methods, inspect a variable with a reference to an object";
         title.text = "Object: " + objeto.nombre;
     }
     else
     {
         info.text  = "Para poder ejecutar metodos, inspecciona una variable con un objeto asignado";
         title.text = "Objeto: " + objeto.nombre;
     }
     Expandir();
 }
示例#28
0
 public void OpenModify(ObjetoBase objeto)
 {
     Restart();
     Open();
     p.OpenNew();
     objectToModify = objeto;
     for (int i = 0; i < objectToModify.variablesInt.Count; i++)
     {
         variablesInt.Add(objectToModify.variablesInt[i]);
         p.AddVariable("int");
         NumberVariables++;
     }
     for (int i = 0; i < objectToModify.variablesFloat.Count; i++)
     {
         variablesFloat.Add(objectToModify.variablesFloat[i]);
         p.AddVariable("float");
         NumberVariables++;
     }
     for (int i = 0; i < objectToModify.variablesBool.Count; i++)
     {
         variablesBoolean.Add(objectToModify.variablesBool[i]);
         p.AddVariable("bool");
         NumberVariables++;
     }
     for (int i = 0; i < objectToModify.metodos.Count; i++)
     {
         metodos.Add(objectToModify.metodos[i].nombre, objectToModify.metodos[i]);
         p.AddMetodo(objectToModify.metodos[i].nombre);
         NumberMethods++;
     }
     nombreInput.text = objectToModify.nombre;
     nombreInput.Select();
     nombreInput.stringPosition = nombreInput.text.Length;
     modify   = true;
     SetColor = objectToModify.Material.color;
     TrimString();
 }
示例#29
0
        private void MostrarPopup()
        {
            ObjectHandle obj = null;
            Window       window;

            try
            {
                obj    = Activator.CreateInstance(assem.FullName, this.rutaCatalogo);
                window = (Window)obj.Unwrap();
            }
            catch
            {
                HerramientasWindow.MensajeError(new Exception("La referencia configurada en el catálogo rápido es incorrecta."), "La referencia registrada en la configuración del sistema para este formulario es incorrecta. Verificar", "Error al cargar el formulario");
                return;
            }
            this.objeto = asignarObjetoCatalogo();
            if (this.objeto != null)
            {
                try
                {
                    iCatalogo cat = (iCatalogo)window;
                    cat.AsignarObjetoDominio(this.objeto);
                    HerramientasWindow.MostrarVentanaEmergenteConTools(window, false);
                }
                catch (Exception ex)
                {
                    HerramientasWindow.MensajeError(ex, "La referencia registrada en la configuración del sistema para este formulario es incorrecta. Verificar", "Error al cargar el formulario");
                    return;
                }
            }

            if (seCerroCatalogo != null)
            {
                seCerroCatalogo();
            }
        }
 public static IImplementacion Implementacion(this ObjetoBase objetoBase)
 {
     return(objetoBase.Impl);
 }