public void MostrarInformacionReactivo(MaterialReactivo reactivo) { MostrarReactivo(true); TextoNombreReactivo.text = reactivo.NombreReactivo; TextoCantidadReactivo.text = reactivo.CantidadFormateada; }
// Esta es una corutina IEnumerator CorutinaReaccionQuimica(float tiempoReaccion) { yield return(new WaitForSeconds(tiempoReaccion)); EstadoSeleccion = EnumSeleccion.Nada; ReactivoEnReaccion = null; }
public bool SobreReactivo(MaterialReactivo reactivo) { if (Agarrado == null) { return(false); } bool esCuchara = Agarrado.GetComponent <MaterialAgarrableCuchara>() != null; bool esPapel = Agarrado.GetComponent <MaterialAgarrablePapel>() != null; bool esTubo = reactivo is TuboClorato; bool esClorato = reactivo is MaterialReactivoCloratoEnPolvo; if (esCuchara && esClorato) { return(true); } if (esCuchara && Agarrado.GetComponent <MaterialAgarrableCuchara>().Cantidad > 0 && esTubo) { return(true); } if (esPapel && Tubo.Cantidad > 0 && Tubo.Disuelto) { return(true); } return(false); }
public void DesmarcarTodosReactivos() { for (int i = 0; i < Reactivos.Count; i++) { Reactivos[i].Desmarcar(); } ReactivoPosible = null; }
public void DesmarcarTodosReactivos() { for (int i = 0; i < Reactivos.Count; i++) { Reactivos[i].Desmarcar(); } ReactivoPosible = null; uiExperimentos.MostrarReactivo(false); }
public bool MarcarReactivo(MaterialReactivo reactivo) { if (reactivo.Usado == false) { ReactivoPosible = reactivo; EstadoSeleccion = EnumSeleccion.MarcandoReactivo; reactivo.Marcar(); return(true); } return(false); }
public bool MarcarReactivo(MaterialReactivo reactivo) { if (reactivo.Usado == false) { ReactivoPosible = reactivo; EstadoSeleccion = EnumSeleccion.MarcandoReactivo; reactivo.Marcar(); uiExperimentos.MostrarInformacionReactivo(reactivo); return(true); } return(false); }
public void ActualizarDatosReactivo(MaterialReactivo reactivo, float tiempo) { TextoTiempoReaccion.transform.parent.gameObject.SetActive(true); TextoAzufreRestante.transform.parent.gameObject.SetActive(true); TextoCantidadAcidoRestante.transform.parent.gameObject.SetActive(true); TextoTiempoReaccion.text = FormatearTiempo(tiempo); ReactivoAcidoClorhidrico acido = (ReactivoAcidoClorhidrico)reactivo; float acidoRestante = acido.CalcularAcidoRestante(tiempo); float azufreRestante = acido.CalcularAzufreRestante(tiempo); string acidoFormateado = MaterialReactivo.FormatearCantidad(acidoRestante, MaterialReactivo.UnidadMedida.ml); string azufreFormateado = MaterialReactivo.FormatearCantidad(azufreRestante, MaterialReactivo.UnidadMedida.gr); TextoCantidadAcidoRestante.text = acidoFormateado; TextoAzufreRestante.text = azufreFormateado; }
public void Soltar() { if (Agarrado == null) { return; } Agarrado.GetComponent <MaterialAgarrableEsfera>().Soltar(); Agarrado = null; if (EstadoSeleccion == EnumSeleccion.MarcandoReactivo) { ReactivoPosible.Desmarcar(); ReactivoPosible = null; } EstadoSeleccion = EnumSeleccion.Nada; }
void Awake() { GameObject ui = GameObject.FindGameObjectWithTag("UIPanelMaterial"); if (ui != null) { uiPanelMaterial = ui.GetComponent <UIPanelMaterial>(); ui.SetActive(false); } ui = GameObject.FindGameObjectWithTag("UIExperimentos"); if (ui != null) { uiExperimentos = ui.GetComponent <UIExperimentos>(); ui.SetActive(true); } EstadoSeleccion = EnumSeleccion.Nada; // Materiales normales objetos = new List <GameObject>(); GameObject [] materiales = GameObject.FindGameObjectsWithTag("Material"); for (int i = 0; i < materiales.Length; i++) { objetos.Add(materiales[i]); } // Materiales Reactivos GameObject[] rs = GameObject.FindGameObjectsWithTag("MaterialReactivo"); Reactivos = new List <MaterialReactivo>(); for (int i = 0; i < rs.Length; i++) { MaterialReactivo m = rs[i].GetComponent <MaterialReactivo>(); Reactivos.Add(m); ReactivoAcidoClorhidrico ac = m as ReactivoAcidoClorhidrico; if (ac != null) { acido = ac; } } }
public void Soltar() { if (Agarrado == null) { return; } Agarrado.GetComponent <MaterialAgarrableZinc>().Soltar(); Agarrado = null; if (EstadoSeleccion == EnumSeleccion.MarcandoReactivo) { ReactivoPosible.Desmarcar(); ReactivoPosible = null; } EstadoSeleccion = EnumSeleccion.Nada; uiExperimentos.MostrarAgarrable(false); }
public void ReaccionQuimica() { EstadoSeleccion = EnumSeleccion.Reaccionando; MaterialReactivo reactivo = ReactivoPosible; reactivo.ReaccionQuimica(); Reactivos.Remove(reactivo); StartCoroutine(CorutinaReaccionQuimica(ReactivoPosible.TiempoReaccion)); ReactivoEnReaccion = ReactivoPosible; ReactivoPosible = null; Destroy(Agarrado); Agarrado = null; tiempoReaccionTranscurrido = 0f; }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); PosicionAgarre = Camera.main.transform.position + ray.direction * DistanciaAgarre; RaycastHit[] hits = Physics.RaycastAll(ray); bool encontrado = false; if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Agarrado && Input.GetMouseButtonDown(1)) { gc.Soltar(); return; } for (int i = 0; i < hits.Length; i++) { RaycastHit hit = hits[i]; GameObject g = hit.collider.gameObject; if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Nada) { if (hit.collider.tag == "MaterialAgarrable") { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera m = hit.collider.GetComponent <MaterialAgarrableEsfera>(); gc.Agarrar(m); } } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Agarrado) { gc.DesmarcarTodosReactivos(); if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { MaterialReactivo react = hit.collider.GetComponent <MaterialReactivo>(); if (gc.MarcarReactivo(react)) { encontrado = true; } } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.MarcandoReactivo) { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera esfera = gc.Agarrado.GetComponent <MaterialAgarrableEsfera>(); VasodeAguaDensidad agua = hit.collider.GetComponent <VasodeAguaDensidad>(); gc.Accion(hit.collider.gameObject); esfera.TransformConexion = agua.PosicionAgua(); } if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { encontrado = true; } } else if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.Reaccionando) { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableEsfera esfera = gc.Agarrado.GetComponent <MaterialAgarrableEsfera>(); VasodeAguaDensidad agua = hit.collider.GetComponent <VasodeAguaDensidad>(); gc.DisminuirLiquido(hit.collider.gameObject); gc.Agarrar(esfera); } } } // for if (gc.EstadoSeleccion == ExperimentoDensidad.EnumSeleccion.MarcandoReactivo) { if (encontrado == false) { gc.VolverEstadoAgarrado(); } } }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); PosicionAgarre = Camera.main.transform.position + ray.direction * DistanciaAgarre; RaycastHit[] hits = Physics.RaycastAll(ray); bool encontrado = false; for (int i = 0; i < hits.Length; i++) { RaycastHit hit = hits[i]; GameObject g = hit.collider.gameObject; if (gc.EstadoSeleccion == ExperimentoOxidacion.EnumSeleccion.Nada) { if (hit.collider.tag == "MaterialAgarrable") { if (Input.GetMouseButtonDown(0)) { MaterialAgarrableZinc m = hit.collider.GetComponent <MaterialAgarrableZinc>(); gc.Agarrar(m); } } } else if (gc.EstadoSeleccion == ExperimentoOxidacion.EnumSeleccion.Agarrado) { gc.DesmarcarTodosReactivos(); if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { MaterialReactivo react = hit.collider.GetComponent <MaterialReactivo>(); if (gc.MarcarReactivo(react)) { encontrado = true; } } } else if (gc.EstadoSeleccion == ExperimentoOxidacion.EnumSeleccion.MarcandoReactivo) { if (Input.GetMouseButtonDown(0)) { gc.ReaccionQuimica(); } if (Input.GetMouseButtonDown(1)) { gc.Soltar(); } if (hit.collider.tag == "MaterialReactivo") { encontrado = true; } } } // for if (gc.EstadoSeleccion == ExperimentoOxidacion.EnumSeleccion.MarcandoReactivo) { if (encontrado == false) { gc.VolverEstadoAgarrado(); } } }
public void VolverEstadoAgarrado() { EstadoSeleccion = EnumSeleccion.Agarrado; ReactivoPosible.Desmarcar(); ReactivoPosible = null; }