Пример #1
0
 private void OnTriggerEnter2D(Collider2D other)
 {
     interactuable        = other.GetComponent <Interactuable>();
     player.interactuable = interactuable;
     player.SetAction(interactuable.Interaccion);
     player.botonAccion.sprite = interactuable.interaccionIcon;
 }
Пример #2
0
    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);
        }
Пример #4
0
 public void Execute(Interactuable interactuable)
 {
     MenuMB.Instance.hide (true);
     if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION) {
         this.next_interaction = interactuable;
     }
 }
Пример #5
0
    // 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); };
    }
Пример #6
0
        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);
        }
Пример #7
0
 public void ElementInteracted(bool finished, Interactuable element, Action action)
 {
     if (OnElementInteracted != null)
     {
         OnElementInteracted(finished, element, action);
     }
 }
Пример #8
0
 public void Execute(Interactuable interactuable)
 {
     MenuMB.Instance.hide(true);
     if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION)
     {
         this.next_interaction = interactuable;
     }
 }
Пример #9
0
            public bool updateMilestones(Interactuable interactuable)
            {
                bool reached = false;



                return(reached);
            }
Пример #10
0
 private void OnEnable()
 {
     interactuable = GetComponent <Interactuable>();
     if (interactuable == null)
     {
         this.enabled = false;
     }
 }
Пример #11
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        Interactuable aux = collision.gameObject.GetComponent <Interactuable>();

        if (aux != null)
        {
            objetoInteractuable.Remove(aux);
        }
    }
Пример #12
0
 void Update()
 {
     timerCheckInteractuable += Time.deltaTime;
     if (timerCheckInteractuable > timeBetweenInteractuableChecks)
     {
         timerCheckInteractuable = 0f;
         closestInteractuable    = GetClosestInteractuableEntity(GameManager.player);
     }
 }
Пример #13
0
 //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);
     }
 }
Пример #14
0
 //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();
     }
 }
Пример #15
0
 public bool Execute(Interactuable interactuable)
 {
     MenuMB.Instance.hide(true);
     if (interactuable.Interacted() == InteractuableResult.REQUIRES_MORE_INTERACTION)
     {
         this.next_interaction = interactuable;
         return(true);
     }
     return(false);
 }
Пример #16
0
	//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();
		}
	}
Пример #17
0
 private void Interacted()
 {
     guistate = guiState.NOTHING;
     GUIManager.Instance.destroyBubbles();
     if (this.next_interaction != null)
     {
         Interactuable tmp = next_interaction;
         next_interaction = null;
         Execute(tmp);
     }
 }
Пример #18
0
 //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();
     }
 }
Пример #19
0
	//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();
		}
	}
Пример #20
0
    //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;
        }
    }
Пример #21
0
        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();
                }
            }
        }
Пример #22
0
 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);
 }
Пример #23
0
        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);
        }
Пример #25
0
    //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);
            }
        }
    }
Пример #26
0
    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()));
    }
Пример #27
0
    // 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));
        };
    }
Пример #28
0
    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);
            }
        }
    }
Пример #29
0
 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); };
 }
Пример #30
0
    // 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;
        }
    }
Пример #31
0
            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);
            }
Пример #32
0
 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();
 }
Пример #33
0
        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);
        }
Пример #34
0
	//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();
		}
	}
Пример #35
0
	Interactuable interactuable; //Referencia al interactuable al cual pertenece el cursor

	void Start () {
		interactuable = transform.parent.parent.gameObject.GetComponent<Interactuable>();
	}
Пример #36
0
 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;
 }
Пример #37
0
	private DatosAccionDialogo datosAccionDialogo; //DatosAccion del dialogo

	//Establece las variables
	public void cargarDialogo(Interactuable interactuable, DatosAccionDialogo datosAccionDialogo)
	{
		this.datosAccionDialogo = datosAccionDialogo;
		this.interactuable = interactuable;
	}
Пример #38
0
 void Start()
 {
     interactuable = this.GetComponent<Interactuable> ();
 }
Пример #39
0
 private void Interacted()
 {
     guistate = guiState.NOTHING;
     GUIManager.Instance.destroyBubbles ();
     if (this.next_interaction != null) {
         Interactuable tmp = next_interaction;
         next_interaction = null;
         Execute(tmp);
     }
 }
Пример #40
0
	public void PrepararDialogo(Interactuable interactuableActual, Dialogo dialogo, int IDEvento)
	{
		StartCoroutine(PrepararDialogoCoroutine(interactuableActual, dialogo, IDEvento));
	}
Пример #41
0
	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);
	}
Пример #42
0
	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());
	}