Esempio n. 1
0
    //SE EJECUTA AL COLISIONAR CON EL COLIDER E INTERACTUAR
    public override void PerformAction()
    {
        dictionaryEvent.Events["trap"] = true;

        //CUANDO NO SE TIENEN LOS ESQUEMAS DIRA QUE HAY UNA TRAMPA DESMONTADA
        if (!haveSchematics)
        {
            sayLineScript.Talk(loadXml.MiscClass.disarmedTrap);
        }
        else
        {
            //SE TIENE EL ESQUEMA PERO LA TRAMPA NO ESTÁ ARMADA POR LO QUE PASAREMOS A MONTARLA.
            if (!trapArmed)
            {
                playerScript.IsMenuOn = true;
                canvasTrap.SetActive(true);
            }
            else
            {
                //CUANDO SE HAYA MONTADO LA TRAMPA SI AUN NO HA PASADO EL TIEMPO PARA QUE COJA LA SERPIENTE DIRA UNA FRASE
                if (!snakeCaught)
                {
                    majorelSayLineAScript.Talk(loadXml.MiscClass.snakeNoBoxSentence);
                }
                //CUANDO HAYA PASADO EL TIEMPO SE CONTROLARA SI SE TIENE LA CAJA
                else
                {
                    if (!haveBox)
                    {
                        majorelSayLineAScript.Talk(loadXml.MiscClass.snakeNoBoxSentence);
                    }
                    else
                    {
                        majorelSayLineAScript.Talk(loadXml.MiscClass.snakeBoxSetence);
                        interactScript.TakeObject(transform.GetChild(0).gameObject);
                        inventoryScript.RemoveInventoryObject(emptyBox);
                        killRosita.SetActive(true);
                        this.enabled = false;
                    }
                }
            }
        }
    }
Esempio n. 2
0
    //ESTO OCURRE AL PULSAR EL BOTON DE USAR
    public void Use()
    {
        bool killFind = false;

        //PONEMOS A FALSE EL BOOLEANO QUE CONTROLA EL INVENTARIO
        playerController.IsMenuOn = false;

        //REPASAMOS TODOS LOS COLLIDERS EN LOS QUE SE PUEDE MATAR A UN NPC, SI KILLFIND ES TRUE SIGNIFICA QUE ESTAS EN CONTACTO CON UNO
        while (index < colliderKill.Length && !killFind)
        {
            //CUANDO SE ENCUENTRA EL QUE ESTA EN CONTACTO CON EL PLAYER SE PONE UN KILLFIND A TRUE
            if (colliderKill[index].GetComponent <DistantKillManager>().KillAvailable)
            {
                killFind = true;
            }
            else
            {
                index++;
            }
        }

        //SI EL BOOL ES FALSO O EL NOMBRE DEL COLLIDER NO ES IGUAL AL ULTIMO OBJETO SELECCIONADO EN EL INVENTARIO SIGNIFICA QUE O NO SE ESTÁ SOBRE EL COLLIDER O SE ESTÁ USANDO EL OBJETO ERRONEO
        if (!killFind || colliderKill[index].name != lastObjSelected.name)
        {
            inventory.SetActive(playerController.IsMenuOn);
            Talk(loadXmlScript.MiscClass.cantUse);
        }
        //DE LO CONTRARIO SE SALE DEL MENU, SE ELIMINA EL OBJETO USADO Y SE EJECUTA LA FUNCION KILL() QUE HARA QUE SE MATE AL NPC
        else
        {
            inventory.SetActive(playerController.IsMenuOn);
            inventoryArrowBehaviour.RemoveInventoryObject(lastObjSelected);
            colliderKill[index].GetComponent <DistantKillManager>().Kill();
        }
        //inventory.SetActive(playerController.IsMenuOn);
        //inventoryArrowBehaviour.RemoveInventoryObject(lastObjSelected);
        //colliderKill[index].GetComponent<DistantKillManager>().Kill();

        index = 0;
    }