private void CheckAndSetMovingData(GameObject damagingObject, GameObject[] parasitesForDamaging)
    {
        if (damagingObject.GetComponent <OneTimeMovingObject>())
        {
            OneTimeMovingObject objectMovement = damagingObject.GetComponent <OneTimeMovingObject>();
            objectMovement.SetParasiteParticles(parasitesForDamaging);
            objectMovement.target         = targetPosition;
            objectMovement.moveSpeed      = moveSpeed;
            objectMovement.needsParticles = true;
            objectMovement.move           = true;
            objectMovement.diesAtTheEnd   = true;


            if (targetPosition.y > transform.position.y + 1)
            {
                Quaternion _Q = objectMovement.transform.rotation;
                objectMovement.transform.rotation = _Q * Quaternion.AngleAxis(-90, new Vector3(0, 0, 1));
            }
            else if (targetPosition.y < transform.position.y - 1)
            {
                Quaternion _Q = objectMovement.transform.rotation;
                objectMovement.transform.rotation = _Q * Quaternion.AngleAxis(90, new Vector3(0, 0, 1));
            }

            if (targetPosition.x > transform.position.x)
            {
                objectMovement.transform.localScale *= -1;
            }
        }
    }
Beispiel #2
0
    // Switches ESCENA 3

    private void HandlerGroup14()
    {
        GameObject maquinaEngranajesYellow  = levelManager.FindGameObject("DesplazarEngranajes");
        GameObject plataformaBajoEngranajes = levelManager.FindGameObject("PlataformaMovilYellow");
        GameObject firstSpikesYellow        = levelManager.FindGameObject("FirstSpikes");
        GameObject spikesFeedBack           = levelManager.FindGameObject("ActivateNPCSpikes");

        if (spikesFeedBack)
        {
            Destroy(spikesFeedBack);
        }


        OneTimeMovingObject moverEngranajes = maquinaEngranajesYellow.GetComponent <OneTimeMovingObject>();
        OneTimeMovingObject movePlataformaBajoEngranajes = plataformaBajoEngranajes.GetComponent <OneTimeMovingObject>();
        OneTimeMovingObject spikesMover = firstSpikesYellow.GetComponent <OneTimeMovingObject>();


        moverEngranajes.move = true;
        movePlataformaBajoEngranajes.move = true;
        spikesMover.move = true;


        GameObject maquina1Engin = GameObject.Find("MaqEngranaje1");
        GameObject maquina2Engin = GameObject.Find("MaqEngranaje2");

        levelManager.StartAnimatorBool("StartMoving", true, maquina1Engin);
        levelManager.StartAnimatorBool("StartMoving", true, maquina2Engin);
    }
    private void StartMovingPlatform(GameObject movingPlatform)
    {
        OneTimeMovingObject movingVariables = movingPlatform.GetComponent <OneTimeMovingObject>();

        movingVariables.target       = targetPosition;
        movingVariables.moveSpeed    = moveSpeed;
        movingVariables.diesAtTheEnd = true;
        movingVariables.isPlatform   = true;
        movingVariables.timeToWait   = timeBeforeKill;
        StartCoroutine(WaitBeforeMove(timeBeforeKill, movingVariables));
    }
    private void HandleGearSystemB(GearSystem gearSystem, bool notifyOthers)
    {
        // Dispose every used gear in case of reconnection
        for (int i = 0; i < gearSystem.components.Length; i++)
        {
            string     usedGearName = gearSystem.components[i].sprite.name;
            GameObject usedGear     = GameObject.Find(usedGearName);

            if (usedGear)
            {
                DestroyObject(usedGearName, .1f);
            }
        }

        // Hide every placed gear
        SpriteRenderer[] componentSlots = gearSystem.GetComponentsInChildren <SpriteRenderer>();
        for (int i = 0; i < componentSlots.Length; i++)
        {
            componentSlots[i].sprite = null;
        }

        // Change the gearsystem sprite

        SpriteRenderer systemSpriteRenderer = gearSystem.GetComponent <SpriteRenderer>();

        systemSpriteRenderer.sprite = gearSystem.activatedSprite;

        // Doing Something

        SetAnimatorBool("startMoving", true, gearSystem);
        OneTimeMovingObject altarEngin1 = GameObject.Find("AltarEnginMovable").GetComponent <OneTimeMovingObject>();

        altarEngin1.move = true;
        DestroyObject("ActivateNPCForGear", .1f);


        //  Planner
        if (Object.FindObjectOfType <Planner>())
        {
            if (gearSystem.switchObj)
            {
                gearSystem.switchObj.ActivateSwitch();

                Planner planner = Object.FindObjectOfType <Planner>();
                planner.Monitor();
            }
        }

        if (notifyOthers)
        {
            SendMessageToServer("ActivateSystem/" + gearSystem.name, true);
        }
    }
    private IEnumerator WaitBeforeMove(float timeToWait, OneTimeMovingObject movingVariables)
    {
        yield return(new WaitForSeconds(timeToWait));

        movingVariables.move = true;
    }