Beispiel #1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (savepoint == collision.tag)
        {
            HP player = Player.GetComponent <HP>();

            if (player)
            {
                player.HealDamage();
                Player_Management.Instance.position = gameObject.transform.position;

                SaveManagement number = collision.GetComponent <SaveManagement>();
                Player_Management.Instance.save_point = number.save_points_number;

                Shoot weapon = Weapon.GetComponent <Shoot>();

                if (weapon)
                {
                    for (int i = 0; i < weapon.ammo.Length; i++)
                    {
                        Player_Management.Instance.ammo[i] = weapon.ammo[i];
                    }
                    for (int i = 0; i < weapon.weapon.Length; i++)
                    {
                        Player_Management.Instance.weapon[i] = weapon.weapon[i];
                    }
                }
            }
        }
    }
Beispiel #2
0
    public void Load()
    {
        _save = GetComponent <SaveManagement>();
        SaveData _saveData = new SaveData();

        _saveData = _save.Load();
        SceneManager.LoadScene(_saveData._sceneName);
    }
Beispiel #3
0
 public void Load()
 {
     if (File.Exists(Application.dataPath + "/" + "Savegame.dat"))
     {
         BinaryFormatter binary = new BinaryFormatter();
         FileStream      file   = File.Open(Application.dataPath + "/" + "Savegame.dat", FileMode.Open);
         SaveManagement  save   = (SaveManagement)binary.Deserialize(file);
         file.Close();
         GetComponent <Player1>().Point = save.scor;
     }
 }
Beispiel #4
0
    public void Save()
    {
        BinaryFormatter binary = new BinaryFormatter();
        FileStream      file   = File.Create(Application.dataPath + "/" + "Savegame.dat");
        SaveManagement  save   = new SaveManagement();

        save.scor = GetComponent <Player1>().Point;

        binary.Serialize(file, save);
        file.Close();
    }
    public void SelectLevel(int index)
    {
        if (index >= levels.Count)
        {
            index = 0;
        }
        if (index < 0)
        {
            index = levels.Count - 1;
        }

        bool wentDown = index > this.selectedLevelIndex;

        this.selectedLevel = (Level)levels[index];
        selectedLevelIndex = index;

        if (wentDown)
        {
            if (topIndex < selectedLevelIndex - levelListObjects.Length + 1)
            {
                topIndex = selectedLevelIndex - levelListObjects.Length + 1;
                if (topIndex < 0)
                {
                    index = 0;
                }
            }
        }
        else
        {
            if (selectedLevelIndex < topIndex)
            {
                topIndex = selectedLevelIndex;
            }
        }

        for (int i = 0; i < levelListObjects.Length; i++)
        {
            levelListObjects[i].color = unselectedColor;
            if (selectedLevelIndex == i + topIndex)
            {
                levelListObjects[i].color = selectedColor;
            }

            levelListObjects[i].text = ((Level)levels[topIndex + i]).name;
        }

        txtLevelName.text       = selectedLevel.name;
        txtLevelDesc.text       = selectedLevel.description;
        txtLevelDifficulty.text = "Difficulty: " + selectedLevel.difficulty.ToString();

        txtLevelPBScore.text = "Score: " + SaveManagement.GetPersonalBestScore(selectedLevel.sceneName);
        txtLevelPBTime.text  = "Time: " + SaveManagement.GetPersonalBestTime(selectedLevel.sceneName);
    }
Beispiel #6
0
    public void Click()
    {
        /* 記録させたい情報を適宜追加
         * レベル 持ち物 自分の場所等
         *
         *
         */
        _save = GetComponent <SaveManagement>();
        SaveData _saveData = new SaveData();

        Player               = GameObject.FindWithTag("Player");
        _saveData._pos       = Player.GetComponent <Transform>().position;
        _saveData._sceneName = SceneManager.GetActiveScene().name;
        _saveData._stock     = Player.GetComponent <Character>()._stock;
        _save.Save(_saveData);
    }
Beispiel #7
0
    //Initialization
    void Start()
    {
        //load settings and levels
        SaveManagement.LoadSettings();
        SaveManagement.LoadLevels();

        //If this is not the first time loading start at level menu
        if (!firstTimeLoading)
        {
            state = LEVELMENU;
        }
        firstTimeLoading = false;

        //Start button overlay
        start_overlay = Instantiate((GameObject)Resources.Load("Prefabs/UI/StartOverlay"));
        start_overlay.GetComponentInChildren <Button>().onClick.AddListener(start);

        //Credits overlay
        credits_overlay = Instantiate((GameObject)Resources.Load("Prefabs/UI/CreditsOverlay"));
        credits_overlay.SetActive(false);
    }
Beispiel #8
0
    void ReloadText()
    {
        if (infoWon)
        {
            textStatus.text = "You won.";
        }
        else
        {
            textStatus.text = "You lost.";
        }

        textScore.text = "Score: " + infoScore.ToString();


        string min = ((int)infoTime / (int)60).ToString();
        string sec = ((int)infoTime % (int)60).ToString();

        if (min.Length < 2)
        {
            min = "0" + min;
        }
        if (sec.Length < 2)
        {
            sec = "0" + sec;
        }

        textTime.text = "Time: " + min + ":" + sec;

        textPBScore.text = "Score: " + SaveManagement.GetPersonalBestScore(scene);
        textPBTime.text  = "Time: " + SaveManagement.GetPersonalBestTime(scene);

        if (infoNewBest)
        {
            textPBNewBest.gameObject.SetActive(true);
        }
        else
        {
            textPBNewBest.gameObject.SetActive(false);
        }
    }
    private void GameOver()
    {
        if (state == GameState.WON)
        {
            GameOverManager.infoWon = true;
        }
        else
        {
            GameOverManager.infoWon = false;
        }

        int score = 0;

        score += (int)Mathf.Clamp(1000 - playTime * 2, 0, Mathf.Infinity);

        GameOverManager.infoScore = score;
        GameOverManager.infoTime  = (int)playTime;
        GameOverManager.scene     = SceneManager.GetActiveScene().name;

        if (state == GameState.LOST)
        {
            GameOverManager.infoScore   = 0;
            GameOverManager.infoNewBest = false;
        }

        if (state == GameState.WON)
        {
            if (SaveManagement.SaveScore(GameOverManager.scene, GameOverManager.infoScore, GameOverManager.infoTime))
            {
                GameOverManager.infoNewBest = true;
            }
            else
            {
                GameOverManager.infoNewBest = false;
            }
        }

        SceneManager.LoadScene("GameOver");
    }
Beispiel #10
0
    //GUI
    void OnGUI()
    {
        //Hide Background for all Buttons
        GUI.backgroundColor = Color.clear;

        //Back Button
        int buttonsize = (int)Mathf.Max(Screen.height / 10, Screen.width / 10);

        if (GUI.Button(new Rect(0, 0, buttonsize, buttonsize), (Texture)Resources.Load("Sprites/Arrow_back")))
        {
            back();
        }

        //Mainmenu
        start_overlay.SetActive(state == MAINMENU);
        //Credits
        credits_overlay.SetActive(state == CREDITS);

        switch (state)
        {
        //Mainmenu
        case MAINMENU:
            //Credits Button
            GUIStyle btnStyle = new GUIStyle(GUI.skin.button);
            btnStyle.font     = (Font)Resources.Load("Fonts/MostlyMono");
            btnStyle.fontSize = (int)(1 * buttonsize);
            if (GUI.Button(new Rect(Screen.width - buttonsize, 0, buttonsize, buttonsize), "i", btnStyle))
            {
                state = CREDITS;
            }

            //Sound settings
            if (GUI.Button(new Rect(Screen.width - buttonsize, (int)(0.97 * Screen.height) - 2 * buttonsize, buttonsize, buttonsize), (Texture)Resources.Load("Sprites/" + (GlobalVariables.isMuted?"Icon_Muted":"Icon_NotMuted"))))
            {
                GlobalVariables.isMuted = !GlobalVariables.isMuted;
                SaveManagement.SaveSettings();
            }
            //Langugae settings
            btnStyle.fontSize = (int)(0.75 * buttonsize);
            if (GUI.Button(new Rect(Screen.width - buttonsize, (int)(0.97 * Screen.height) - buttonsize, buttonsize, buttonsize), GlobalVariables.language, btnStyle))
            {
                GlobalVariables.language = (GlobalVariables.language.Equals("EN") ? "DE" : "EN");
                SaveManagement.SaveSettings();
            }
            break;

        //Levelmenu
        case LEVELMENU:
            //Parameters for the Level selection panel
            int upperCorner_x = (int)(1.5f * Screen.width / 10);
            int upperCorner_y = (int)(1 * Screen.height / 10);

            int bottomCorner_x = (int)(8.5f * Screen.width / 10);
            int bottomCorner_y = (int)(7 * Screen.height / 10);

            int button_width  = (int)(1.8 * Screen.width / 10);
            int button_height = 1 * Screen.height / 10;

            int buttons_per_row = 3;
            int rows            = 5;

            int buttons_per_page = buttons_per_row * rows;
            int pages            = (LevelGenerator.NUMBER_OF_LEVELS + buttons_per_page - 1) / buttons_per_page;

            //Button style for the Level selection panel
            GUI.skin = (GUISkin)Resources.Load("LevelButtons");
            GUIStyle btnStyle_LevelMenue = new GUIStyle(GUI.skin.button);
            btnStyle_LevelMenue.font     = (Font)Resources.Load("Fonts/MostlyMono");
            btnStyle_LevelMenue.fontSize = (int)(0.5 * buttonsize);

            //Initilize Level selection panel
            for (int i = buttons_per_page * current_page; i < buttons_per_page * (current_page + 1) && i < LevelGenerator.NUMBER_OF_LEVELS; i++)
            {
                //select color
                //finished
                if (GlobalVariables.UnlockedLevels[i] > 0)
                {
                    GUI.backgroundColor = new Color(1, 0, 0, 0.5f);
                    GUI.contentColor    = new Color(1, 1, 1, 1);
                    //unlocked
                }
                else if (i == 0 || (GlobalVariables.UnlockedLevels[i - 1] > 0))
                {
                    //} else if (i == 0 || (GlobalVariables.UnlockedLevels[i-1] > 0) || (i>1 && GlobalVariables.UnlockedLevels[i - 2] > 0) || (i > 3 && GlobalVariables.UnlockedLevels[i - 3] > 0)) {
                    GUI.backgroundColor = Color.white;
                    GUI.contentColor    = new Color(0, 0, 0, 1);
                    //locked
                }
                else
                {
                    GUI.backgroundColor = new Color(0, 0, 0, 0.5f);
                    GUI.contentColor    = new Color(0, 0, 0, 1);
                }

                int position_in_row     = i % buttons_per_row;
                int position_int_column = (int)((i % buttons_per_page) / buttons_per_row);

                int x = upperCorner_x + (bottomCorner_x - upperCorner_x) / buttons_per_row * position_in_row + (bottomCorner_x - upperCorner_x) / buttons_per_row / 2 - button_width / 2;
                int y = upperCorner_y + (bottomCorner_y - upperCorner_y) / rows * position_int_column + (bottomCorner_y - upperCorner_y) / rows / 2 - button_height / 2;
                //int y = upperCorner_y + (button_height + distance_between_rows) * position_int_column - button_height / 2;

                if (GUI.Button(new Rect(x, y, button_width, button_height), "" + (i + 1), btnStyle_LevelMenue))
                {
                    if ((i == 0 || GlobalVariables.UnlockedLevels[i - 1] > 0) || (i > 1 && GlobalVariables.UnlockedLevels[i - 2] > 0) || (i > 3 && GlobalVariables.UnlockedLevels[i - 3] > 0))
                    {
                        Instantiate(Resources.Load("Prefabs/UI/LoadingOverlay_" + GlobalVariables.language));
                        SceneLoader.LoadScene("Level", i + 1);
                    }
                }
            }

            //Next page button
            GUI.backgroundColor          = Color.clear;
            GUI.contentColor             = Color.white;
            btnStyle_LevelMenue.fontSize = (int)(0.75 * buttonsize);
            if (current_page < pages - 1)
            {
                if (GUI.Button(new Rect(bottomCorner_x - buttonsize, bottomCorner_y, button_width, button_height), ">", btnStyle_LevelMenue))
                {
                    current_page++;
                }
            }

            //Next page button
            if (current_page > 0)
            {
                if (GUI.Button(new Rect(upperCorner_x, bottomCorner_y, button_width, button_height), "<", btnStyle_LevelMenue))
                {
                    current_page--;
                }
            }
            break;
        }
    }
Beispiel #11
0
    // Update is called once per frame
    void FixedUpdate()
    {
        //main game
        if (gamestate == RUNNING)
        {
            //vibration animation
            scale = (scale == 1) ? 1.02f : 1;
            transform.localScale = new Vector3(scale, scale, 1);

            //if lawnmower is moving
            if (transform.position.x != x || transform.position.y != y)
            {
                //increase noise while moving
                soundeffect.volume = 0.5f;

                //deactivate buttons while moving
                button_up.gameObject.SetActive(false);
                button_down.gameObject.SetActive(false);
                button_left.gameObject.SetActive(false);
                button_right.gameObject.SetActive(false);

                //xDif, yDif elementOf {-0.1, 0 ,0.1} => movement direction and speed
                float xDif = 0.1f * ((x - transform.position.x) < 0 ? -1 : (x - transform.position.x) == 0 ? 0 : 1);
                float yDif = 0.1f * ((y - transform.position.y) < 0 ? -1 : (y - transform.position.y) == 0 ? 0 : 1);
                //new position
                float xNew = Mathf.Round((transform.position.x + xDif) * 1000) / 1000f;
                float yNew = Mathf.Round((transform.position.y + yDif) * 1000) / 1000f;
                transform.position = new Vector3(xNew, yNew, 0);

                //set gras under lawnmower to mowed
                GlobalVariables.setMowed((int)xNew + (int)(GlobalVariables.Level.Length / 2), (int)yNew + (int)(GlobalVariables.Level[0].Length / 2));

                //start losescreen if flowers are hit
                if (GlobalVariables.Level[(int)xNew + (int)(GlobalVariables.Level.Length / 2)][(int)yNew + (int)(GlobalVariables.Level[0].Length / 2)] == LevelGenerator.FLOWER)
                {
                    soundeffect.volume = 0.2f;
                    gamestate          = LOST;
                }
                //if not moving
            }
            else
            {
                //Keyboard Control
                if (Input.GetKeyDown(KeyCode.LeftArrow))
                {
                    left();
                }
                else if (Input.GetKeyDown(KeyCode.RightArrow))
                {
                    right();
                }
                else if (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    up();
                }
                else if (Input.GetKeyDown(KeyCode.DownArrow))
                {
                    down();
                }

                //idecrease noise while moving
                soundeffect.volume = 0.2f;

                //activate buttons while not moving
                if (isFree(x - 1, y))
                {
                    button_left.gameObject.SetActive(true);
                }
                if (isFree(x + 1, y))
                {
                    button_right.gameObject.SetActive(true);
                }
                if (isFree(x, y - 1))
                {
                    button_down.gameObject.SetActive(true);
                }
                if (isFree(x, y + 1))
                {
                    button_up.gameObject.SetActive(true);
                }

                //start winscreen if everything is mowed
                if (GlobalVariables.isMowed())
                {
                    GlobalVariables.UnlockedLevels[GlobalVariables.LevelIndex - 1] = GlobalVariables.RoundCounter;
                    SaveManagement.SaveLevels();
                    soundeffect.volume = 0.2f;
                    gamestate          = WON;
                }
            }

            //mute sound if wanted
            //soundeffect.mute = GlobalVariables.isMuted;

            //resize buttons
            buttonsize = (Screen.height / 1000f);

            button_up.transform.localScale    = new Vector3(buttonsize, buttonsize, 1);
            button_down.transform.localScale  = new Vector3(buttonsize, buttonsize, 1);
            button_left.transform.localScale  = new Vector3(buttonsize, buttonsize, 1);
            button_right.transform.localScale = new Vector3(buttonsize, buttonsize, 1);

            //set new positon for buttons
            button_up.transform.position    = new Vector3(x * buttonsize * 100 + ui_canvas.transform.position.x, y * buttonsize * 100 + ui_canvas.transform.position.y + buttonsize * 100, 0);
            button_down.transform.position  = new Vector3(x * buttonsize * 100 + ui_canvas.transform.position.x, y * buttonsize * 100 + ui_canvas.transform.position.y - buttonsize * 100, 0);
            button_left.transform.position  = new Vector3(x * buttonsize * 100 + ui_canvas.transform.position.x - buttonsize * 100, y * buttonsize * 100 + ui_canvas.transform.position.y, 0);
            button_right.transform.position = new Vector3(x * buttonsize * 100 + ui_canvas.transform.position.x + buttonsize * 100, y * buttonsize * 100 + ui_canvas.transform.position.y, 0);
        }
    }