Beispiel #1
0
    private void checkAlienation()
    {
        if (MainMain.isAlienationPhase())
        {
            // we are alienated right now
            if (alienationStopWatch != null && alienationStopWatch.isRunning())
            {
                long myAlienationDuration = (int)((Convert.ToSingle(MainMain.secondsOfChildAlienation) * 1000.0f) + (1500.0f * randomFloat(0.0f, 1.0f)));
                if (alienationStopWatch.execeedesMilliseconds(myAlienationDuration))
                {
                    // we gonna end this
                    playSoundOfADyingChild();
                    destroyGameObjectsParent(body);
                    alienationStopWatch.stop();

                    isAlienated = true;
                    MainMain.noOfChildrenInAlienation--;
                }
                else
                {
                    // we stay in that phase
                    setGameObjectVisible((randomChanceOccurs(0.5f) ? true : false));
                }
            }
            // start my alienation
            else if (MainMain.noOfChildrenInAlienation < 2 && isAlienated == false)
            {
                MainMain.noOfChildrenInAlienation++;
                alienationStopWatch = new MyStopWatch();
                setGameObjectVisible(false);
            }
        }
    }
Beispiel #2
0
 private void changeSpeed()
 {
     if (MainMain.isDownTempoPhase())
     {
         speed_x_z = MainMain.calcDownTempo();
     }
     else
     {
         if (speed_x_z_accelerate)
         {
             speed_x_z = speedAcceleratorFactor * speed_x_z;
             if (speed_x_z > maxSpeed_x_z)
             {
                 speed_x_z_accelerate = false;
             }
         }
         else
         {
             speed_x_z = speed_x_z / speedAcceleratorFactor;
             if (speed_x_z <= initialSpeed_x_z)
             {
                 speed_x_z_accelerate = true;
             }
         }
     }
 }
Beispiel #3
0
    void Start()
    {
        Rigidbody compRb = GetComponent <Rigidbody>();

        compRb.AddForce(0, 0.27f, 0.27f, ForceMode.Impulse);

        MainMain.enableVisitorCameraIfProd();
    }
Beispiel #4
0
    private void checkForFinalAlienationCameraMovement()
    {
        if (MainMain.isAlienationCameraMovementPhase())
        {
            GameObject visitorCamera = GameObject.Find("Visitor Camera Holder");

            if (fullCameraRotations >= 2)
            {
                endGame();
            }

            // ROTATION
            float rotationStateY = Math.Abs(visitorCamera.transform.rotation.y);
            if (rotationStateY > 0.95f)
            {
                wasCameraRotatedHalf = true;
                rotateCamera(visitorCamera, rotationFactor);
                //checkOneTimeRotationToLookDown(visitorCamera);
            }
            else if (wasCameraRotatedHalf && rotationStateY > 0.0f && rotationStateY < 0.2)
            {
                fullCameraRotations  = fullCameraRotations + 1;
                wasCameraRotatedHalf = false;
                UnityEngine.Debug.Log("fullCameraRotations: " + fullCameraRotations);

                //rotationFactor = 1.0f;
                rotateCamera(visitorCamera, rotationFactor);
            }
            else
            {
                rotateCamera(visitorCamera, rotationFactor);
            }

            // MOVEMENT
            // sidewards
            float differenceToTargetX = 4.0f - visitorCamera.transform.position.x;
            float speedX = (differenceToTargetX + 1.0f) / 10.0f;
            speedX = checkLowerSpeedBounds(differenceToTargetX, speedX);

            // upwards
            float differenceToTargetY = 4.0f - visitorCamera.transform.position.y;
            float speedY = (differenceToTargetY + 0.5f) / 10.0f;
            speedY = checkLowerSpeedBounds(differenceToTargetY, speedY);

            if (fullCameraRotations > 0 || wasCameraRotatedHalf)
            {
                // faster
                speedY = 10.0f;
                moveAliensHorizontallyWithSpeed(speedY);
            }

            //UnityEngine.Debug.Log("speedX: " + speedX + "  speedY: " + speedY);
            visitorCamera.transform.Translate(new Vector3(speedX, speedY, 0) * Time.deltaTime, Space.World);
        }
    }
Beispiel #5
0
    void Update()
    {
        if (MainMain.isToswitchToAlienMusic() && !alienMusicOn)
        {
            music.Stop();

            UnityEngine.Debug.Log("Switching to Alien's music channel");
            GameObject  go         = GameObject.Find("Alien Music");
            AudioSource alienMusic = go.GetComponent <AudioSource>();
            alienMusic.Play();

            alienMusicOn = true;
        }
    }
Beispiel #6
0
    private void endGame()
    {
        activateAliens(false);

        List <GameObject> gos = MainMain.getGameObjectsContaining("The end canvas");

        foreach (var go in gos)
        {
            go.SetActive(true);
        }
        aliensWereHere = true;

        ALIENS();
        rotationFactor = 0.66f;
    }
Beispiel #7
0
    private void moveBody(Vector3 v)
    {
        float speed_x_z;

        if (MainMain.isDownTempoPhase())
        {
            speed_x_z = MainMain.calcDownTempo();
        }
        else
        {
            speed_x_z = getRandomizedSpeed();
        }

        head.transform.Translate(speed_x_z * v * Time.deltaTime);
        body.transform.Translate(speed_x_z * v * Time.deltaTime);
    }
Beispiel #8
0
    void FixedUpdate()
    {
        if (MainMain.myStopWatch.execeedesSeconds(MainMain.secondsBeforeAlienation))
        {
            if (!aliensComing && !aliensHere && !aliensWereHere)
            {
                activateAliens(true);
            }

            if (aliensWereNearlyHere)
            {
                MainMain.switchToAlienMusic();
            }
        }

        playSomeAlienSounds();

        if (aliensComing && !aliensHere && !aliensWereHere)
        {
            moveAliensDownwards();
        }

        checkForFinalAlienationCameraMovement();
    }