Beispiel #1
0
    //-------------- UPDATE ------------------

    void Update()
    {
        //---------- DEBUG NACHRICHTEN ---------------------------------------------------
//		Debug.Log("Speed: " + spieler.getSpeed());

        //---------- Variabeln, die jedes Update überprüft werden müssen -----------------
        playerPoint [0] = spieler.transform.position.x;
        playerPoint [1] = spieler.transform.position.y;
        parentName      = box.transform.parent.name;

        //---------- Hören die Collider ab -----------------------------------------------
        if (boxListener.getColliderStateEnter())
        {
            colliderActiv = true;
        }
        else if (boxListener.getColliderStateExit())
        {
            colliderActiv = false;

            //RESET
            switch (parentName)
            {
            case "R1_Treppe":
                break;

            case "AP_runterfallend":
                break;

            case "R3_untere_Treppe":
                break;

            case "R3_obere_Treppe":
                break;

            case "R4_Treppe":
                break;

            case "R5_Totenkopf_Gang":
                break;

            case "P_Totenkopf_Gang":
                break;

            case "P_Treppe":
                break;

            default:
                spieler.setSpeed(2f);
                realPlayer.transform.localScale = new Vector3(.05f, .05f, 1f);
                break;
            }
        }

        //---------- Distanz zum Collider im rechten Winkel -----------------------------
        distance = getDistance(playerPoint, colliderPointL, colliderPointR);

        switch (parentName)
        {
        //-------------------- A RUNTERFALLEND ------------------------------------------------
        case "AP_runterfallend":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    //spieler.setSpeed (2f - distance);
                    realPlayer.transform.localScale = new Vector3(.05f - 0.005f * distance, .05f - 0.005f * distance, 1f);
                }
            }
            break;

        //-------------------- R1 TREPPE ------------------------------------------------
        case "R1_Treppe":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(2f - (distance * 0.40f));
                    realPlayer.transform.localScale = new Vector3(.05f - 0.01f * distance, .05f - 0.01f * distance, 1f);
                }
            }
            break;

        //-------------------- R1R2 NORMALE GRÖßE ------------------------------------------
        case "R1R2_normale_Größe":
            break;

        //-------------------- R2 BRÜCKE ---------------------------------------------------
        case "R2_Brücke":

            if (colliderActiv == true)
            {
                if (distance > 0 && distance <= box.size.y / 2)
                {
                    //spielergröße bis zur mitte ansteigen lassen je nach abstand
                    spieler.setSpeed(1f + distance / 2);
                    realPlayer.transform.localScale = new Vector3(.05f + 0.01f * distance, .05f + 0.01f * distance, 1f);
                }
                else if (distance > 0)
                {
                    //differenz zur mitte (höchster punkt) lässt spieler bis zum verlassen der brücke wieder kleiner werden
                    tempDistance = (box.size.y / 2 - (distance - box.size.y / 2));
                    spieler.setSpeed(1f + tempDistance / 2);

                    realPlayer.transform.localScale = new Vector3(.05f + 0.01f * tempDistance, .05f + 0.01f * tempDistance, 1f);
                }
            }
            break;

        //-------------------- R3 UNTERE TREPPE -----------------------------------------------
        case "R3_untere_Treppe":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(1.67f - (distance * 0.20f));
                    realPlayer.transform.localScale = new Vector3(.04f - 0.0045f * distance, .04f - 0.0045f * distance, 1f);
                }
            }
            break;

        //-------------------- R3 OBERE TREPPE -----------------------------------------------
        case "R3_obere_Treppe":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(2f - (distance * 0.14f));
                    realPlayer.transform.localScale = new Vector3(.05f - 0.004251f * distance, .05f - 0.004251f * distance, 1f);
                }
            }
            break;

        //-------------------- R3 BRÜCKE -----------------------------------------------------
        case "R3_Brücke":

            if (colliderActiv == true)
            {
                if (distance > 0 && distance <= box.size.y / 2)
                {
                    //spielergröße bis zur mitte ansteigen lassen je nach abstand
                    spieler.setSpeed(1.5f + distance / 4);
                    realPlayer.transform.localScale = new Vector3(.05f + 0.0033f * distance, .05f + 0.0033f * distance, 1f);
                }
                else if (distance > 0)
                {
                    //differenz zur mitte (höchster punkt) lässt spieler bis zum verlassen der brücke wieder kleiner werden
                    tempDistance = (box.size.y / 2 - (distance - box.size.y / 2));
                    spieler.setSpeed(1.5f + tempDistance / 4);

                    realPlayer.transform.localScale = new Vector3(.05f + 0.0033f * tempDistance, .05f + 0.0033f * tempDistance, 1f);
                }
            }
            break;

        //-------------------- R4 TREPPE -----------------------------------------------------
        case "R4_Treppe":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(2f + (distance * 0.33f));
                    realPlayer.transform.localScale = new Vector3(.05f + 0.01f * distance, .05f + 0.01f * distance, 1f);
                }
            }
            break;

        //-------------------- R5 TOTENKOPF ---------------------------------------------------
        case "R5_Totenkopf_Gang":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(2f - distance * .33f);
                    realPlayer.transform.localScale = new Vector3(.05f - 0.00825f * distance, .05f - 0.00825f * distance, 1f);
                }
            }
            break;

        //-------------------- P TOTENKOPF ---------------------------------------------------
        case "P_Totenkopf_Gang":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(.8f + distance * .8975f);
                    realPlayer.transform.localScale = new Vector3(.02f + 0.02244f * distance, .02f + 0.02244f * distance, 1f);
                }
            }
            break;

        //-------------------- P TREPPE ------------------------------------------------------
        case "P_Treppe":
            if (colliderActiv == true)
            {
                if (distance > 0)
                {
                    spieler.setSpeed(3f - distance * .8857f);
                    realPlayer.transform.localScale = new Vector3(.075f - 0.02214f * distance, .075f - 0.02214f * distance, 1f);
                }
            }
            break;

        //-------------------- DEFAULT -------------------------------------------------------
        default: break;
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (mudSwitch.isSwitchedOn())
        {
            mud.fill(); colliderE.enabled = false;
        }
        if (!mudSwitch.isSwitchedOn())
        {
            mud.drain(); colliderE.enabled = true;

            //audio.GetComponent<AudioSource> ().Stop ();
        }

        if (mud.isFilling())
        {
            player.setSpeed(drainedPlayerSpeed(player.getX(), player.getY(), defaultPlayerSpeed));

            audio.GetComponent <AudioSource> ().Play();
        }

        if (isActive)
        {
            dialogManager.setRoom("room_4");
            player.setRoom("room_4");

            switch (eventCounter)
            {
            case 0:


                if (mudSwitch.isSwitchedOn())
                {
                    eventCounter++;
                }


                break;

            case 1:

                exitDoor.setIsLocked();                 //exitDoor locked=false!! (unlock)
                roomSolved = true;
                eventCounter++;

                break;


            case 2:

                if (distanceToEscape > 10 && distanceToEscape < 15)
                {
                    dialogManager.setDialog("dialog1.txt");
                    eventCounter++;
                }
                break;

            case 3:
                if (distanceToEscape > 7 && distanceToEscape < 10)
                {
                    dialogManager.setDialog("dialog2.txt");
                    eventCounter++;
                }
                break;


            case 4:
                if (distanceToEscape > 5 && distanceToEscape < 7)
                {
                    dialogManager.setDialog("dialog3.txt");
                    eventCounter++;
                }
                break;

            case 5:
                if (distanceToEscape > 4 && distanceToEscape < 5)
                {
                    dialogManager.setDialog("dialog4.txt");
                    eventCounter++;
                }
                break;


            case 6:
                if (distanceToEscape > 3 && distanceToEscape < 4)
                {
                    dialogManager.setDialog("dialog5.txt");
                    eventCounter++;
                }
                break;

            case 7:

                break;
            }



            if (roomSolved)
            {
                if (exitDoor.isLocked())
                {
                    //GetComponent<AudioSource> ().enabled = false;
                    player.setSpeed(defaultPlayerSpeed);
                    File.Delete("dialog/room_4/ItemHolder.txt");
                    r4Dark         = GameObject.Find("raum4D").GetComponent <SpriteRenderer>();
                    r4Dark.enabled = true;
                    r5Dark         = GameObject.Find("raum5D").GetComponent <SpriteRenderer>();
                    r5Dark.enabled = false;
                    endAndProceed();
                }
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (isActive)
        {
            dialogManager.setRoom("room_3");
            player.setRoom("room_3");

            switch (eventCounter)
            {
            case 0:
                if (event1.getColliderStateEnter())
                {
                    player.freeze();

                    if (player.getFirstItem() != null)
                    {
                        //Debug.Log ("FirstIsntHere");
                        dialogManager.setDialog("someitems.txt");
                        firstTime = false;
                    }
                    else if (firstTime)
                    {
                        dialogManager.setDialog("noitems.txt");
                    }
                    else
                    {
                        dialogManager.setDialog("lostitems.txt");
                        eventCounter++;
                    }
                }
                if (dialogManager.getDialogOutput() == "falling")
                {
                    collider.enabled = false;
                    if (timeCounter < 2f)
                    {
                        tempPlanken = planken.transform.position.y + Time.deltaTime * 2f;

                        planken.transform.position = new Vector3(planken.transform.position.x, tempPlanken, planken.transform.position.z);
                    }

                    if (timeCounter > .5f && (spieler.transform.position.y > 14))
                    {
                        tempPlanken = spieler.transform.position.y - Time.deltaTime * 1f;

                        spieler.transform.position = new Vector3(spieler.transform.position.x, tempPlanken, spieler.transform.position.z);

                        tempPlanken = spieler.transform.localScale.y - 0.05f * Time.deltaTime;

                        spieler.transform.localScale = new Vector3(tempPlanken, tempPlanken, 1f);
                    }

                    if (timeCounter > 1.5f && timeCounter < 3.5f)
                    {
                        tempPlanken = planken.transform.position.y - Time.deltaTime * 2f;

                        planken.transform.position = new Vector3(planken.transform.position.x, tempPlanken, planken.transform.position.z);
                    }
                    else if (timeCounter > 3.5f)
                    {
                        spieler.transform.localScale = new Vector3(0.025f, 0.025f, 1f);
                        timeCounter = 0f;
                        player.setSpeed(1f);
                        collider.enabled = true;
                        //player.unfreeze ();
                        dialogManager.setDialogOutputTo("");
                    }

                    timeCounter += Time.deltaTime;
                }
                if (dialogManager.getDialogOutput() == "delete")
                {
                    player.deleteIventory();
                }
                if (dialogManager.getDialogOutput() == "endDialog")
                {
                    //Debug.Log ("endDialog = true");
                    endDialog = true;
                }

                if (dialogManager.getDialogOutput() == "unfreeze")
                {
                    player.unfreeze();
                    dialogManager.setDialogOutputTo("");
                }
                if (dialogManager.isActive() == false && endDialog)
                {
                    eventCounter++;
                }



                break;

            case 1:
                player.unfreeze();
                eventCounter++;

                break;


            case 2:
                eventCounter++;

                break;

            case 3:

                exitDoor.setIsLocked();                 //exitDoor locked=false!! (unlock)
                roomSolved = true;
                eventCounter++;
                break;

            case 4:
                break;
            }



            if (roomSolved)
            {
                if (exitDoor.isLocked())
                {
                    File.Delete("dialog/room_3/ItemHolder.txt");
                    r4Dark         = GameObject.Find("raum4D").GetComponent <SpriteRenderer>();
                    r4Dark.enabled = false;
                    r3Dark         = GameObject.Find("raum3D").GetComponent <SpriteRenderer>();
                    r3Dark.enabled = true;
                    //audio.GetComponent<AudioSource> ().Stop ();
                    endAndProceed();
                }
            }
        }
    }