Esempio n. 1
0
    public void SaveListsForSecondSaveLocation()
    {
        if (listOfSmallLightObjects_SecondSaveLocation != null)
        {
            return;
        }

        setSmallLightObjectList();
        setBigLightObjectList();
        setSinisterOneObjectList();
        setPlattformObjectList();

        listOfSmallLightObjects_SecondSaveLocation = getSmallLightObjectList();
        listOfBigLightObjects_SecondSaveLocation   = getBigLightObjectList();
        listOfSinisterObjects_SecondSaveLocation   = getSinisterObjectList();
        listOfPlattformObjects_SecondSaveLocation  = getPlattformObjectList();

        GameObject            player    = GameObject.Find("Player");
        PlayerLevelController plcScript = player.GetComponent <PlayerLevelController>();

        secondSavedLevelData                  = new levelData();
        secondSavedLevelData.score            = plcScript.getCurrentScore();
        secondSavedLevelData.timer            = plcScript.getCurrentLevelTimer();
        secondSavedLevelData.smalLightCounter = plcScript.returnNumberOfCollectedSmallLights();
        secondSavedLevelData.bigLightCounter  = plcScript.returnNumberOfCollectedBigLights();
    }
Esempio n. 2
0
    // Lade die Objekte neu. Liefert TRUE wenn erfolgreich, sonst FALSE
    public bool restartToSaveLocation(int saveLocation)
    {
        // Lade Speicherpunkt 1 oder 2
        if (saveLocation < 1 || saveLocation > 2)
        {
            return(false);
        }



        if (saveLocation == 1)
        {
            /* *******************************************************************
             *
             *  Lade die Kleinen Lichter neu
             *  zerstoere dafuer zuerst alle vorhandenen kleinen Lichter
             *
             * ******************************************************************* */

            // Neues Licht Objekt
            GameObject newLightOrb;

            // Sichere eine Neue Liste an kleinen Lichtern
            setSmallLightObjectList();
            // Maximale Anzahl feststellen
            int iMaxNumber = listOfSmallLightObjects.Count;
            // Alle Elemente zerstören
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfSmallLightObjects[i].orbObject);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- kleinen Lichter aus
            int numberOfElements = listOfSmallLightObjects_FirstSaveLocation.Count;
            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                newLightOrb = (GameObject)Instantiate(Resources.Load("SmallLight"));
                newLightOrb.transform.position = listOfSmallLightObjects_FirstSaveLocation[i].objectPosition;

                newLightOrb.transform.parent = SmallLight_Group.transform;
            }

            /* *******************************************************************
             *
             *  Lade die Großen Lichter neu
             *  zerstoere dafuer zuerst alle vorhandenen großen Lichter
             *
             * ******************************************************************* */


            // Sichere eine Neue Liste an kleinen Lichtern
            setBigLightObjectList();
            // Maximale Anzahl feststellen
            iMaxNumber = listOfBigLightObjects.Count;
            // Alle Elemente zerstören
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfBigLightObjects[i].orbObject);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- großen Lichter aus
            numberOfElements = listOfBigLightObjects_FirstSaveLocation.Count;
            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                newLightOrb = (GameObject)Instantiate(Resources.Load("BigLight"));
                newLightOrb.transform.position = listOfBigLightObjects_FirstSaveLocation[i].objectPosition;

                newLightOrb.transform.parent = BigLight_group.transform;
            }

            /* *******************************************************************
             *
             *  Lade die Sinisters (beide Typen) neu
             *  zerstoere dafuer zuerst alle vorhandenen Sinisters beider Typen
             *
             * ******************************************************************* */


            GameObject newSinister;
            // Sichere eine Neue Liste an Sinistern
            setSinisterOneObjectList();
            // Maximale Anzahl feststellen
            iMaxNumber = listOfSinisterObjects.Count;
            // Alle Elemente zerstoeren
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfSinisterObjects[i].sinisterObj);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- großen Lichter aus
            numberOfElements = listOfSinisterObjects_FirstSaveLocation.Count;

            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                newSinister      = (GameObject)Instantiate(Resources.Load(listOfSinisterObjects_FirstSaveLocation[i].sinisterName));
                newSinister.name = listOfSinisterObjects_FirstSaveLocation[i].sinisterName;
                newSinister.transform.position   = listOfSinisterObjects_FirstSaveLocation[i].objectPosition;
                newSinister.transform.localScale = listOfSinisterObjects_FirstSaveLocation[i].objectScale;
                if (newSinister.rigidbody2D != null)
                {
                    newSinister.rigidbody2D.gravityScale = listOfSinisterObjects_FirstSaveLocation[i].gravityScale;
                }
                EnemyMovement tempScript = newSinister.GetComponent <EnemyMovement>();
                tempScript.enabled = false;

                tempScript.MovingInX         = listOfSinisterObjects_FirstSaveLocation[i].movinginx;
                tempScript.MovingInNegativeX = listOfSinisterObjects_FirstSaveLocation[i].movinginnegativex;
                tempScript.MovingInY         = listOfSinisterObjects_FirstSaveLocation[i].movinginy;
                tempScript.MovingInNegativeY = listOfSinisterObjects_FirstSaveLocation[i].movinginnegativey;

                tempScript.maxMovementInX         = listOfSinisterObjects_FirstSaveLocation[i].maxmoveinx;
                tempScript.maxNegativeMovementInX = listOfSinisterObjects_FirstSaveLocation[i].maxnegativemoveinx;
                tempScript.maxMovementInY         = listOfSinisterObjects_FirstSaveLocation[i].maxmoveiny;
                tempScript.maxNegativeMovementInY = listOfSinisterObjects_FirstSaveLocation[i].maxnegativemoveiny;

                tempScript.minPositionForX = listOfSinisterObjects_FirstSaveLocation[i].minPositionForPatrouilInX;
                tempScript.maxPositionForX = listOfSinisterObjects_FirstSaveLocation[i].maxPositionForPatrouilInX;
                tempScript.minPositionForY = listOfSinisterObjects_FirstSaveLocation[i].minPositionForPatrouilInY;
                tempScript.maxPositionForY = listOfSinisterObjects_FirstSaveLocation[i].maxPositionForPatrouilInY;

                tempScript.isFacingRight = listOfSinisterObjects_FirstSaveLocation[i].face;

                tempScript.enemyMovePattern = (EnemyMovement.enemyMovementPattern)listOfSinisterObjects_FirstSaveLocation[i].objectEnumValue;

                tempScript.enabled = true;

                newSinister.transform.parent = (listOfSinisterObjects_FirstSaveLocation[i].sinisterName.Equals("SinisterOne") ? SinisterOne_Group.transform : SinisterTwo_Group.transform);
            }

            /* *******************************************************************
             *
             *  Setze die Plattformen zurueck
             *  ! Keine zerstoerung notwendig, da Plattformen unzerstörbar sind !
             *
             * ******************************************************************* */

            // Plattformen
            numberOfElements = listOfPlattformObjects_FirstSaveLocation.Count;

            // aktuelles GameObjekt
            GameObject curPlatform;
            // iteriere durch alle Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                curPlatform = listOfPlattformObjects_FirstSaveLocation[i].obj;

                curPlatform.transform.position = listOfPlattformObjects_FirstSaveLocation[i].objPosition;
            }


            GameObject            player    = GameObject.Find("Player");
            PlayerLevelController plcScript = player.GetComponent <PlayerLevelController>();
            plcScript.setCurrentLevelTimer(firstSavedLevelData.timer);
            plcScript.setCurrentScore(firstSavedLevelData.score);
            plcScript.resetLightCountTo(firstSavedLevelData.smalLightCounter, firstSavedLevelData.bigLightCounter);

            return(true);
        }


        if (saveLocation == 2)
        {
            /* *******************************************************************
             *
             *  Lade die Kleinen Lichter neu
             *  zerstoere dafuer zuerst alle vorhandenen kleinen Lichter
             *
             * ******************************************************************* */

            // Neues Licht Objekt
            GameObject newLightOrb;

            // Sichere eine Neue Liste an kleinen Lichtern
            setSmallLightObjectList();
            // Maximale Anzahl feststellen
            int iMaxNumber = listOfSmallLightObjects.Count;
            // Alle Elemente zerstören
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfSmallLightObjects[i].orbObject);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- kleinen Lichter aus
            int numberOfElements = listOfSmallLightObjects_SecondSaveLocation.Count;
            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                newLightOrb = (GameObject)Instantiate(Resources.Load("SmallLight"));
                newLightOrb.transform.position = listOfSmallLightObjects_SecondSaveLocation[i].objectPosition;

                newLightOrb.transform.parent = SmallLight_Group.transform;
            }

            /* *******************************************************************
             *
             *  Lade die Großen Lichter neu
             *  zerstoere dafuer zuerst alle vorhandenen großen Lichter
             *
             * ******************************************************************* */


            // Sichere eine Neue Liste an kleinen Lichtern
            setBigLightObjectList();
            // Maximale Anzahl feststellen
            iMaxNumber = listOfBigLightObjects.Count;
            // Alle Elemente zerstören
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfBigLightObjects[i].orbObject);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- großen Lichter aus
            numberOfElements = listOfBigLightObjects_SecondSaveLocation.Count;
            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                newLightOrb = (GameObject)Instantiate(Resources.Load("BigLight"));
                newLightOrb.transform.position = listOfBigLightObjects_SecondSaveLocation[i].objectPosition;

                newLightOrb.transform.parent = BigLight_group.transform;
            }

            /* *******************************************************************
             *
             *  Lade die Sinisters (beide Typen) neu
             *  zerstoere dafuer zuerst alle vorhandenen Sinisters beider Typen
             *
             * ******************************************************************* */


            GameObject newSinister;
            // Sichere eine Neue Liste an Sinistern
            setSinisterOneObjectList();
            // Maximale Anzahl feststellen
            iMaxNumber = listOfSinisterObjects.Count;
            // Alle Elemente zerstoeren
            for (int i = 0; i < iMaxNumber; i++)
            {
                Destroy(listOfSinisterObjects[i].sinisterObj);
            }
            // zaehle die zahl an die -zu dem damaligen zeitpunkt existierten- großen Lichter aus
            numberOfElements = listOfSinisterObjects_SecondSaveLocation.Count;

            // iteriere durch die Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                //Debug.Log ("Name to Load: '"+listOfSinisterObjects_SecondSaveLocation[i].sinisterName+"'");
                newSinister      = (GameObject)Instantiate(Resources.Load(listOfSinisterObjects_SecondSaveLocation[i].sinisterName));
                newSinister.name = listOfSinisterObjects_SecondSaveLocation[i].sinisterName;
                newSinister.transform.position   = listOfSinisterObjects_SecondSaveLocation[i].objectPosition;
                newSinister.transform.localScale = listOfSinisterObjects_SecondSaveLocation[i].objectScale;

                if (newSinister.rigidbody2D != null)
                {
                    newSinister.rigidbody2D.gravityScale = listOfSinisterObjects_SecondSaveLocation[i].gravityScale;
                }

                EnemyMovement tempScript = newSinister.GetComponent <EnemyMovement>();
                tempScript.enabled = false;

                tempScript.MovingInX         = listOfSinisterObjects_SecondSaveLocation[i].movinginx;
                tempScript.MovingInNegativeX = listOfSinisterObjects_SecondSaveLocation[i].movinginnegativex;
                tempScript.MovingInY         = listOfSinisterObjects_SecondSaveLocation[i].movinginy;
                tempScript.MovingInNegativeY = listOfSinisterObjects_SecondSaveLocation[i].movinginnegativey;

                tempScript.maxMovementInX         = listOfSinisterObjects_SecondSaveLocation[i].maxmoveinx;
                tempScript.maxNegativeMovementInX = listOfSinisterObjects_SecondSaveLocation[i].maxnegativemoveinx;
                tempScript.maxMovementInY         = listOfSinisterObjects_SecondSaveLocation[i].maxmoveiny;
                tempScript.maxNegativeMovementInY = listOfSinisterObjects_SecondSaveLocation[i].maxnegativemoveiny;

                tempScript.minPositionForX = listOfSinisterObjects_SecondSaveLocation[i].minPositionForPatrouilInX;
                tempScript.maxPositionForX = listOfSinisterObjects_SecondSaveLocation[i].maxPositionForPatrouilInX;
                tempScript.minPositionForY = listOfSinisterObjects_SecondSaveLocation[i].minPositionForPatrouilInY;
                tempScript.maxPositionForY = listOfSinisterObjects_SecondSaveLocation[i].maxPositionForPatrouilInY;

                tempScript.isFacingRight = listOfSinisterObjects_SecondSaveLocation[i].face;

                tempScript.enemyMovePattern = (EnemyMovement.enemyMovementPattern)listOfSinisterObjects_SecondSaveLocation[i].objectEnumValue;

                tempScript.enabled = true;

                newSinister.transform.parent = (listOfSinisterObjects_SecondSaveLocation[i].sinisterName.Equals("SinisterOne") ? SinisterOne_Group.transform : SinisterTwo_Group.transform);
            }

            /* *******************************************************************
             *
             *  Setze die Plattformen zurueck
             *  ! Keine zerstoerung notwendig, da Plattformen unzerstörbar sind !
             *
             * ******************************************************************* */

            // Plattformen
            numberOfElements = listOfPlattformObjects_SecondSaveLocation.Count;

            // aktuelles GameObjekt
            GameObject curPlatform;
            // iteriere durch alle Objekte
            for (int i = 0; i < numberOfElements; i++)
            {
                curPlatform = listOfPlattformObjects_SecondSaveLocation[i].obj;

                curPlatform.transform.position = listOfPlattformObjects_SecondSaveLocation[i].objPosition;
            }

            GameObject            player    = GameObject.Find("Player");
            PlayerLevelController plcScript = player.GetComponent <PlayerLevelController>();
            plcScript.setCurrentLevelTimer(secondSavedLevelData.timer);
            plcScript.setCurrentScore(secondSavedLevelData.score);
            plcScript.resetLightCountTo(secondSavedLevelData.smalLightCounter, secondSavedLevelData.bigLightCounter);

            return(true);
        }

        /* Vorangehensweise:
         *  Wenn Objekt existiert, editiere es
         *  Wenn Objekt nicht existiert, erstelle es vom Prefab und setze Werte
         */

        return(false);
    }