private void OnTriggerEnter2D(Collider2D other) { interactuable = other.GetComponent <Interactuable>(); player.interactuable = interactuable; player.SetAction(interactuable.Interaccion); player.botonAccion.sprite = interactuable.interaccionIcon; }
public IEnumerator PrepararDialogoCoroutine(Interactuable interactuableActual, Dialogo dialogo, int IDEvento) { if (TPController.instance.CurrentState != TPController.State.Normal) { dialogosEnCola++; while (TPController.instance.CurrentState != TPController.State.Normal) { yield return(null); } yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo))); dialogosEnCola--; } else if (dialogosEnCola != 0) { while (dialogosEnCola != 0) { yield return(null); } yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo))); } else { yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo))); } //El evento se guarda cuando acaba el dialogo if (IDEvento != -1) { ManagerRutina.instance.GuardaEvento(IDEvento); } }
public IntReporte GetReportById(int id) { IntReporte rep = new IntReporte(); rep.states = new List <States>(); Interaction interaction = builder.getInteractionHandler().GetInteraction(id); rep.Fecha = interaction.Fecha; rep.receiver = builder.getRelJugadorMapaHandler().getRelJugadorMapa(interaction.receiverId).jugador.usuario; rep.requester = builder.getRelJugadorMapaHandler().getRelJugadorMapa(interaction.requesterId).jugador.usuario; List <IntState> states = builder.getIntStateHandler().GetAllIntStateByInteraction(id); states.ForEach((state) => { Interactuable rec = GetIntFromMeta(state.receiver); Interactuable req = GetIntFromMeta(state.requester); States status = new States(); status.state = state.state; status.rec = rec; status.req = req; if (state.winnerId != -1) { rep.winner = (interaction.receiverId == state.winnerId) ? rep.receiver : rep.requester; } rep.states.Add(status); }); return(rep); }
public void Execute(Interactuable interactuable) { MenuMB.Instance.hide (true); if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION) { this.next_interaction = interactuable; } }
// Use this for initialization void Start() { armario = GetComponentInChildren <ColisionArmario>(); collider = GetComponent <Collider2D>(); conQueColisiona = LayerMask.GetMask("Obstaculos", "Jugador"); master = GetComponent <Interactuable>(); master.Accion = (Jugador a) => { if (!a.Invisible()) { armario.Contiene(true); a.Esconderse(true, posicionDentro.position); a.Interactuar(); } else { armario.Contiene(false); a.Esconderse(false, posicionSalida.position); } }; master.EsPosibleLaInteraccion = (Jugador a) => { return(collider.bounds.Contains(a.transform.position) || master.InteraccionPorLineaDeVision(a.transform, distanciaDeInteraccion, conQueColisiona)); }; master.DistanciaDeInteraccion = () => { return(distanciaDeInteraccion); }; }
public bool Update(Interactuable interactuable, string interaction = null, string targetId = null) { bool hasBeenUpdated = false; if (!Reached) { bool isTargetType = false; if (interactuable is CharacterMB) { isTargetType = Milestone.getType() == Completable.Milestone.MilestoneType.CHARACTER; } else if (interactuable is ObjectMB) { isTargetType = Milestone.getType() == Completable.Milestone.MilestoneType.ITEM; } var interactiveElement = (interactuable as MonoBehaviour).GetComponent <InteractiveElement>(); if (interactiveElement != null) { var isTargetedElement = Milestone.getId() == interactiveElement.Element.getId(); if (isTargetType && isTargetedElement) { Reached = true; hasBeenUpdated = true; } } } return(hasBeenUpdated); }
public void ElementInteracted(bool finished, Interactuable element, Action action) { if (OnElementInteracted != null) { OnElementInteracted(finished, element, action); } }
public void Execute(Interactuable interactuable) { MenuMB.Instance.hide(true); if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION) { this.next_interaction = interactuable; } }
public bool updateMilestones(Interactuable interactuable) { bool reached = false; return(reached); }
private void OnEnable() { interactuable = GetComponent <Interactuable>(); if (interactuable == null) { this.enabled = false; } }
private void OnTriggerExit2D(Collider2D collision) { Interactuable aux = collision.gameObject.GetComponent <Interactuable>(); if (aux != null) { objetoInteractuable.Remove(aux); } }
void Update() { timerCheckInteractuable += Time.deltaTime; if (timerCheckInteractuable > timeBetweenInteractuableChecks) { timerCheckInteractuable = 0f; closestInteractuable = GetClosestInteractuableEntity(GameManager.player); } }
//Recarga las acciones de los interactuables de la lista public void ActualizarAcciones(Inventario inventario) { foreach (var entry in interactuables.Values) { // do something with entry.Value or entry.Key Interactuable interactuable = entry.GetComponent <Interactuable>() as Interactuable; interactuable.RecargarAcciones(inventario); } }
//Los interactuables que chocan con el collider pasan a estar en estado accionable void OnTriggerEnter(Collider other) { if (other.tag == "Interactuable") { Manager.instance.AddInteractuableCercano(other.transform.parent.gameObject); inter = other.transform.parent.gameObject.GetComponent <Interactuable> (); inter.SetState(Interactuable.State.Accionable); inter.DesactivarTextoAcciones(); } }
public bool Execute(Interactuable interactuable) { MenuMB.Instance.hide(true); if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION) { this.next_interaction = interactuable; return(true); } return(false); }
//Los interactuables que chocan con el collider pasan a estar en estado accionable void OnTriggerEnter(Collider other) { if (other.tag == "Interactuable" ) { Manager.instance.AddInteractuableCercano(other.transform.parent.gameObject); inter = other.transform.parent.gameObject.GetComponent<Interactuable> (); inter.SetState (Interactuable.State.Accionable); inter.DesactivarTextoAcciones(); } }
private void Interacted() { guistate = guiState.NOTHING; GUIManager.Instance.destroyBubbles(); if (this.next_interaction != null) { Interactuable tmp = next_interaction; next_interaction = null; Execute(tmp); } }
//Los interactuables que salen del collider pasan a estar desactivados void OnTriggerExit(Collider other) { if (other.tag == "Interactuable") { Manager.instance.DeleteInteractuableCercano(other.transform.parent.gameObject); inter = other.transform.parent.gameObject.GetComponent <Interactuable> (); inter.SetState(Interactuable.State.Desactivado); inter.OcultaCanvas(); inter.ReiniciarDistancia(); } }
//Los interactuables que salen del collider pasan a estar desactivados void OnTriggerExit(Collider other) { if (other.tag == "Interactuable") { Manager.instance.DeleteInteractuableCercano(other.transform.parent.gameObject); inter = other.transform.parent.gameObject.GetComponent<Interactuable> (); inter.SetState (Interactuable.State.Desactivado); inter.OcultaCanvas(); inter.ReiniciarDistancia(); } }
//Ejecuta el diálogo con los parámetros indicados public override void EjecutarEvento() { if (!ejecutado) { Interactuable interactuable = null; Dialogo dialogo = Dialogo.BuscarDialogo(IDInteractuable, IDDialogo); ManagerDialogo.instance.PrepararDialogo(interactuable, dialogo, ID); ejecutado = true; } }
void Update() { if (Input.GetMouseButtonDown(0)) { if (Time.timeScale == 1) { if (next_interaction != null && guistate != guiState.ANSWERS_MENU) { Interacted(); } else if (guistate == guiState.NOTHING) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); List <RaycastHit> hits = new List <RaycastHit>(Physics.RaycastAll(ray)); //hits.Reverse (); bool no_interaction = true; foreach (RaycastHit hit in hits) { Interactuable interacted = hit.transform.GetComponent <Interactuable>(); if (interacted != null && InteractWith(interacted)) { trackInteraction(interacted); no_interaction = false; break; } } if (no_interaction) { runnerTarget.Interacted(); } } } } else if (Input.GetMouseButtonDown(1)) { MenuMB.Instance.hide(); } else if (Input.GetKeyDown(KeyCode.Escape)) { if (Time.timeScale == 0) { Time.timeScale = 1; GUIManager.Instance.showConfigMenu(); } else { Time.timeScale = 0; GUIManager.Instance.showConfigMenu(); } } }
private bool Interacted() { guistate = guiState.NOTHING; GUIManager.Instance.destroyBubbles(); if (this.next_interaction != null) { Interactuable tmp = next_interaction; next_interaction = null; return(Execute(tmp)); } return(false); }
private void trackInteraction(Interactuable with) { switch (with.GetType().ToString()) { case "ActiveAreaMB": Tracker.T.trackedGameObject.Interacted(((ActiveAreaMB)with).aaData.getId(), GameObjectTracker.TrackedGameObject.Npc); break; case "CharacterMB": Tracker.T.trackedGameObject.Interacted(((Representable)with).Element.getId(), GameObjectTracker.TrackedGameObject.Npc); break; case "ObjectMB": Tracker.T.trackedGameObject.Interacted(((Representable)with).Element.getId(), GameObjectTracker.TrackedGameObject.Item); break; } Tracker.T.RequestFlush(); }
private Interactuable GetIntFromId(int receiverId) { Interactuable interactuable = new Interactuable(receiverId); var recursos = api.getRelJugadorRecursoHandler().getRecursosByColonia(receiverId); var destacamento = api.getRelJugadorDestacamentoHandler().getDestacamentosByColonia(receiverId); var flota = destacamento.Where(c => c.GetVelocidad() != 0); var defensas = destacamento.Where(c => c.GetVelocidad() == 0); interactuable.SetFlota(flota.Cast <IDestacamento>().ToList()); interactuable.SetDefensas(defensas.Cast <IDestacamento>().ToList()); interactuable.SetRecursos(recursos.Cast <IResources>().ToList()); return(interactuable); }
//Ejecuta el diálogo public override void EjecutarAccion() { GameObject gameobject = Manager.instance.GetInteractuable(IDInteractuable); if (gameobject != null) { Interactuable interactuable = gameobject.GetComponent <Interactuable>() as Interactuable; if (interactuable != null) { TPController.instance.SetState(TPController.State.Normal); ManagerDialogo.instance.PrepararDialogo(interactuable, dialogo, -1); } } }
public IEnumerator EmpezarDialogo(Interactuable interactuableActual, Dialogo dialogo) { this.dialogo = dialogo; this.interactuable = interactuableActual; TPController.instance.SetState(TPController.State.Dialogo); TPCamera.instance.ToDialogMode(); ManagerTiempo.instance.SetPausa(true); Manager.instance.StopNavMeshAgents(); UIDialogo.instance.MostrarInterfaz(); //Iniciamos el dialogo en una couroutine para saber cuando ha acabado yield return(StartCoroutine(Conversacion())); }
// Use this for initialization void Start() { master = GetComponent <Interactuable>(); monstruoRB = GetComponentInParent <Rigidbody2D>(); monstruo = GetComponentInParent <Monstruo>(); vida = GetComponentInParent <Vida>(); conQueColisiona = LayerMask.GetMask("Obstaculos", "Jugador"); master.Accion = (Jugador a) => { a.Atacar(); }; master.EsPosibleLaInteraccion = (Jugador a) => { return(master.InteraccionPorLineaDeVision(a.transform, distanciaInteraccion, conQueColisiona)); }; }
void Update() { if (Input.GetMouseButtonDown(0)) { if (next_interaction != null && guistate != guiState.ANSWERS_MENU) { Interacted(); } else if (guistate == guiState.NOTHING) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); List <RaycastHit> hits = new List <RaycastHit>(Physics.RaycastAll(ray)); //hits.Reverse (); bool no_interaction = true; foreach (RaycastHit hit in hits) { Interactuable interacted = hit.transform.GetComponent <Interactuable> (); if (interacted != null && InteractWith(interacted)) { no_interaction = false; break; } } if (no_interaction) { current_scene.GetComponent <SceneMB> ().Interacted(); } } } else if (Input.GetMouseButtonDown(1)) { MenuMB.Instance.hide(); } if (getTalker) { this.guitalkerObject = GameObject.Find(guitalker); if (this.guitalkerObject != null) { getTalker = false; talk(guitext, guitalker); } } }
private void Start() { /* if (cogerDrogaSonido == null) { * cogerDrogaSonido = new Sonidosss(cogerDroga, false, true, volumenCogerDroga, 1f, SoundManager.instance.VolumenSonidos); * DontDestroyOnLoad(cogerDrogaSonido.gO); * }*/ conQueColisiona = LayerMask.GetMask("Obstaculos", "Jugador"); master = GetComponent <Interactuable>(); master.Accion += (Jugador a) => { cogerDroga.Play(); DrogaConsumida(); }; master.EsPosibleLaInteraccion = (Jugador a) => { return(master.InteraccionPorLineaDeVision(a.transform, distanciaDeInteraccion, conQueColisiona)); }; master.DistanciaDeInteraccion = () => { return(distanciaDeInteraccion); }; }
// Update is called once per frame void Update() { if (Input.GetAxis(axisAction) > 0 ) { if (siEstaApretada == false) { siEstaApretada = true; spriteRender.sprite = pinzaCerrada; if (ObjetoTocado != null) { if (ObjetoTocado.layer == 11) { Interactuable botontTocado = (ObjetoTocado.GetComponent("Interactuable") as Interactuable); botontTocado.ActivarDesactivar(); } if (ObjetoTocado.layer == 12) { if (debug) Debug.Log("ObjetoTocado.layer == 12"); //toque el lvl up Instantiate(particulas, ObjetoTocado.transform.position, Quaternion.identity); _PistonBrazo1.LevelActual += 1; _PistonBrazo2.LevelActual += 1; _PistonBrazo3.LevelActual += 1; _PistonBrazo4.LevelActual += 1; _PistonBrazo5.LevelActual += 1; Destroy(ObjetoTocado); } if (ObjetoTocado.layer == 13) { AudioManager.instance.PlayFx("11"); AntenaButton.StartCoroutine("Ganar"); } } } } else { spriteRender.sprite = pinzaAbierta; siEstaApretada = false; } }
public bool Update(Interactuable interactuable) { Milestone.MilestoneType type; switch (interactuable.GetType().ToString()) { case "CharacterMB": type = Milestone.MilestoneType.CHARACTER; break; case "ObjectMB": type = Milestone.MilestoneType.ITEM; break; default: return(false); } if (!reached && type == this.type && id == ((Representable)interactuable).Element.getId()) { reached = true; } return(reached); }
void Start() { /* if (sonidoPalanca == null) * { * sonidoPalanca = new Sonidosss(sonido, false, true, volumen, 1f, SoundManager.instance.VolumenMusica); * DontDestroyOnLoad(sonidoPalanca.gO); * }*/ luz = GetComponentInChildren <DynamicLight2D.DynamicLight>().gameObject; Apagar(); puertas = GameObject.FindObjectsOfType <Puerta>(); palancaAnimacion = GetComponent <Animator>(); palancaAnimacion.SetBool("activada", posicionInicial); palancaAnimacion.SetInteger("color", (int)color); conQueColisiona = LayerMask.GetMask("Obstaculos", "Jugador"); master = GetComponent <Interactuable>(); master.Accion = (Jugador a) => { sonido.Play(); tiempo = Time.time; a.Interactuar(); posicionInicial = !posicionInicial; palancaAnimacion.SetBool("activada", posicionInicial); Vector2 pos = a.GetComponent <Rigidbody2D>().position; for (int i = 0; i < puertas.Length; i++) { if (puertas[i].color == color) { puertas[i].Abrir(pos); } } ControladorRecorrido.instance.ReiniciarRed(); }; master.EsPosibleLaInteraccion = (Jugador a) => { return((Time.time - tiempo) > tiempoDeReactivacion && master.InteraccionPorLineaDeVision(a.transform, distanciaDeInteraccion, conQueColisiona)); }; master.DistanciaDeInteraccion = () => { return(distanciaDeInteraccion); }; Apagar(); }
private bool InteractWith(Interactuable interacted) { bool exit = false; next_interaction = null; switch (interacted.Interacted()) { case InteractuableResult.DOES_SOMETHING: exit = true; break; case InteractuableResult.REQUIRES_MORE_INTERACTION: exit = true; next_interaction = interacted; break; case InteractuableResult.IGNORES: default: break; } return(exit); }
//Establecemos el interactuable más cercano a un ray de la lista de interactuablescercanos a Accionable public void EncontrarInteractuablesCercanos() { nearestDistanceSqr = Mathf.Infinity; //Creamos un rayo que va desde la cámara hacia adelante ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2,Screen.height/2,0)); //Dubujamos el rayo Debug.DrawRay(ray.origin, ray.direction*100, Color.blue); //Si tenemos guardado una referencia al interactuable más cercano, le quitamos el estado seleccionado if(nearestInteractuable != null) { inter = nearestInteractuable.GetComponent<Interactuable>(); //Si el interactuable es visible por la cámara y tiene más de una acción if(inter.CurrentState != Interactuable.State.Desactivado) { if(inter.IsVisible() && inter.DevolverAccionesCreadas() > 0) { inter.SetState (Interactuable.State.Accionable); inter.DesactivarTextoAcciones(); } else { inter.SetState (Interactuable.State.Desactivado); inter.OcultaCanvas(); inter.ReiniciarDistancia(); } } nearestInteractuable = null; } for(int i = Manager.instance.DevuelveNumeroInteractuablesCercanos() - 1; i >= 0; i--) { GameObject interCercano = Manager.instance.DevuelveInteractuableCercano(i); //el interactuable existe if(interCercano != null) { inter = interCercano.GetComponent<Interactuable>(); //Si el interactuable es visible por la cámara y tiene más de una acción if(inter.IsVisible() && inter.DevolverAccionesCreadas() > 0) { Vector3 objectPos = interCercano.transform.position; float distanceSqr = DistanceToLine(ray, objectPos); if (distanceSqr < nearestDistanceSqr) { nearestInteractuable = interCercano.transform; nearestDistanceSqr = distanceSqr; } } else if(inter.CurrentState != Interactuable.State.Desactivado) { inter.SetState (Interactuable.State.Desactivado); inter.OcultaCanvas(); inter.ReiniciarDistancia(); } } //El interactuable ya no existe, ha sido eliminado de la escena, lo eliminamos de la lista else { Manager.instance.DeleteInteractuableCercano(interCercano); } } //Si existe el más cercano, le cambiamos el estado a accionable if(nearestInteractuable != null && Manager.instance.DevuelveNumeroInteractuablesCercanos() != 0) { inter = nearestInteractuable.gameObject.GetComponent<Interactuable>(); inter.SetState(Interactuable.State.Seleccionado); inter.ActivarTextoAcciones(); } }
Interactuable interactuable; //Referencia al interactuable al cual pertenece el cursor void Start () { interactuable = transform.parent.parent.gameObject.GetComponent<Interactuable>(); }
private bool InteractWith(Interactuable interacted) { bool exit = false; next_interaction = null; switch (interacted.Interacted ()) { case InteractuableResult.DOES_SOMETHING: exit = true; break; case InteractuableResult.REQUIRES_MORE_INTERACTION: exit = true; next_interaction = interacted; break; case InteractuableResult.IGNORES: default: break; } return exit; }
private DatosAccionDialogo datosAccionDialogo; //DatosAccion del dialogo //Establece las variables public void cargarDialogo(Interactuable interactuable, DatosAccionDialogo datosAccionDialogo) { this.datosAccionDialogo = datosAccionDialogo; this.interactuable = interactuable; }
void Start() { interactuable = this.GetComponent<Interactuable> (); }
private void Interacted() { guistate = guiState.NOTHING; GUIManager.Instance.destroyBubbles (); if (this.next_interaction != null) { Interactuable tmp = next_interaction; next_interaction = null; Execute(tmp); } }
public void PrepararDialogo(Interactuable interactuableActual, Dialogo dialogo, int IDEvento) { StartCoroutine(PrepararDialogoCoroutine(interactuableActual, dialogo, IDEvento)); }
public IEnumerator PrepararDialogoCoroutine(Interactuable interactuableActual, Dialogo dialogo, int IDEvento) { if(TPController.instance.CurrentState != TPController.State.Normal) { dialogosEnCola++; while(TPController.instance.CurrentState != TPController.State.Normal) { yield return null; } yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)); dialogosEnCola--; } else if(dialogosEnCola != 0) { while(dialogosEnCola != 0) { yield return null; } yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)); } else yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)); if(IDEvento != -1) ManagerRutina.instance.GuardaEvento(IDEvento); }
public IEnumerator EmpezarDialogo(Interactuable interactuableActual, Dialogo dialogo) { this.dialogo = dialogo; this.interactuable = interactuableActual; TPController.instance.SetState(TPController.State.Dialogo); TPCamera.instance.ToDialogMode(); ManagerTiempo.instance.SetPausa(true); Manager.instance.StopNavMeshAgents(); dialogWindow.SetActive(true); Cursor.visible = true; //Muestra el cursor del ratón //Iniciamos el dialogo en una couroutine para saber cuando ha acabado yield return StartCoroutine(Conversacion()); }