Exemplo n.º 1
0
        private ReaderWriterLockSlim slim_namestage;   // синхронизатор имени этапа

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public TechStage(Tech tech)
        {
            if (tech != null)
            {
                _tech = tech;
                mutex = new Mutex();

                name_stg = string.Empty;

                slim_num  = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_time = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_state       = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_consumption = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_volume  = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_density = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_pressure    = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_temperature = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_namestage = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                state    = StageState.Default;
                stateRgr = StateRGR.Unpressed;
            }
            else
            {
                ErrorHandler.WriteToLog(this, new ErrorArgs("Не удалось получить экземпляр приложения этапу", ErrorType.Fatal));
            }
        }
Exemplo n.º 2
0
    private void SetSession()
    {
        /*
         * Pega uma outra imagem da lista e setta como o sprite do "originalImage"
         */
        Sprite aux;

        aux = currentImage;
        int _rng = Random.Range(0, originalImages.Count);

        currentImage = originalImages[_rng];
        originalImages.Remove(currentImage);
        if (aux)
        {
            originalImages.Add(aux);
        }
        originalSprite.sprite = currentImage;

        if (paintManager)
        {
            paintManager.ClearTexture(Color.white);
        }
        if (bonusBar)
        {
            bonusBar.StartTimer(bonusBarDecreaseRatio);
        }

        gMusicManager.PlaySound(Sounds.TURNPAGE);
        stageState = StageState.Playing;
    }
Exemplo n.º 3
0
    public static void loadStage()
    {
        if (stageState.Equals(StageState.Stage1))
        {
            Application.LoadLevel("stage-2");
            stageState = StageState.Stage2;
            return;
        }

        if (stageState.Equals(StageState.Stage2))
        {
            Application.LoadLevel("stage-3");
            stageState = StageState.Stage3;
            return;
        }

        if (stageState.Equals(StageState.Stage3))
        {
            Application.LoadLevel("stage-4");
            stageState = StageState.Stage4;
            return;
        }

        if (stageState.Equals(StageState.Stage4))
        {
            Application.LoadLevel("game-over");
            stageState = StageState.GameOver;
            return;
        }
    }
Exemplo n.º 4
0
    public void IncreasingScore()
    {
        score             = Mathf.Lerp(score, nextScore, Time.deltaTime * scoringSpeed);
        scoreText.text    = $"{StaticVariables.Score} {Mathf.FloorToInt(score).ToString("D6")}";
        scoreSlider.value = score;

        CheckTheGameState();

        if (score >= nextScore - 5)
        {
            if (moveValue == 0)
            {
                currStageState = stars > 0 ? StageState.Clear : StageState.Fail;
            }

            score             = nextScore;
            scoreText.text    = $"{StaticVariables.Score} {Mathf.FloorToInt(score).ToString("D6")}";
            scoreSlider.value = score;

            if (IsStageStopped() && board.currBoardState == BoardState.Order)
            {
                PlayerSystemToJsonData.playerData.SetStageData(board.stageData.stageLevel - 1, (int)score, stars);
                GameManager.Instance.StageResult(currStageState);
            }

            StaticVariables.TotalScore += Mathf.FloorToInt(score);
        }
    }
Exemplo n.º 5
0
    void Init()
    {
        t_StageSelect   = GameObject.Find("StageSelectManager").transform.FindChild("StageSelect").transform;
        t_StageImage    = GameObject.Find("StageSelectManager").transform.FindChild("StageImage").transform;
        t_Stage1_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage1_Select").transform;
        t_Stage2_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage2_Select").transform;
        t_Stage3_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage3_Select").transform;
        t_Stage4_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage4_Select").transform;
        t_Stage5_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage5_Select").transform;
        t_Stage6_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage6_Select").transform;
        t_Stage7_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage7_Select").transform;
        t_Stage8_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage8_Select").transform;
        t_Stage9_Select = GameObject.Find("StageSelectManager").transform.FindChild("Stage9_Select").transform;

        t_Stage1 = GameObject.Find("StageSelectManager").transform.FindChild("Stage1_Select").transform.FindChild("Stage1").transform;
        t_Stage2 = GameObject.Find("StageSelectManager").transform.FindChild("Stage2_Select").transform.FindChild("Stage2").transform;
        t_Stage3 = GameObject.Find("StageSelectManager").transform.FindChild("Stage3_Select").transform.FindChild("Stage3").transform;
        t_Stage4 = GameObject.Find("StageSelectManager").transform.FindChild("Stage4_Select").transform.FindChild("Stage4").transform;
        t_Stage5 = GameObject.Find("StageSelectManager").transform.FindChild("Stage5_Select").transform.FindChild("Stage5").transform;
        t_Stage6 = GameObject.Find("StageSelectManager").transform.FindChild("Stage6_Select").transform.FindChild("Stage6").transform;
        t_Stage7 = GameObject.Find("StageSelectManager").transform.FindChild("Stage7_Select").transform.FindChild("Stage7").transform;
        t_Stage8 = GameObject.Find("StageSelectManager").transform.FindChild("Stage8_Select").transform.FindChild("Stage8").transform;
        t_Stage9 = GameObject.Find("StageSelectManager").transform.FindChild("Stage9_Select").transform.FindChild("Stage9").transform;

        t_Back     = GameObject.Find("StageSelectManager").transform.FindChild("Back").transform;
        t_CheckBox = GameObject.Find("StageSelectManager").transform.FindChild("Check").transform;

        curState = StageState.Stage0;
    }
Exemplo n.º 6
0
    //新しい制限時間とクリック数を格納する
    private void SetNewParameters(StageState state)
    {
        switch (state)
        {
        case StageState.LaunchState:
            clickTimer  = boss1Time;
            limitClicks = boss1Click;
            stageState  = StageState.Boss1State;
            break;

        case StageState.Boss1State:
            clickTimer  = boss2Time;
            limitClicks = boss2Click;
            stageState  = StageState.Boss2State;
            break;

        case StageState.Boss2State:
            clickTimer  = boss3Time;
            limitClicks = boss3Click;
            stageState  = StageState.Boss3State;
            break;

        case StageState.Boss3State:
            //ゲームクリア処理へ移行
            gameState = GameState.ClearState;
            break;

        default:
            Debug.LogAssertion("StageState is not set properly");
            break;
        }
    }
Exemplo n.º 7
0
    private void InitializeGameStage()
    {
        uIMgr = UImenu.manager;

        PauseWindow quitButton = uIMgr.GetWindow(Menus.Pause) as PauseWindow;

        quitButton.ChangedButton(SceneType.Game);

        clearScore = board.stageData.clearScore;
        moveValue  = board.stageData.move;

        stageBG.sprite = board.stageData.backgroundSprite;

        moveValue  = board.stageData.move;
        clearScore = board.stageData.clearScore;

        stageClearScoreText.text = $"{StaticVariables.ClearScore} {Mathf.FloorToInt(clearScore).ToString("D6")}";
        scoreSlider.maxValue     = clearScore;

        moveText.text = moveValue.ToString();

        currStageState = StageState.Play;

        GameManager.Instance.BackgroundMusicPlay(board.stageData.backgroundMusic);
    }
Exemplo n.º 8
0
    // 開幕
    private void Start()
    {
        // 序盤のゲームステータスをNONEに
        if (fadeTimeScr)
        {
            stageState = StageState.FADEIN;
            fadeTimeScr.SetFadeType(FadeTime.FadeType.FADEIN);
        }
        else
        {
            stageState = StageState.READY;
        }

        timeDisplayScr.SetTime(stagePlayDelayMax);
        wirelessManagerScr.SetTime(stageReadyDelayMax, 4.5f, 3.0f);
        isGameClear = false;

        if (gameClearSceneName == "")
        {
            gameClearSceneName = "Title";
        }
        if (gameFailureSceneName == "")
        {
            gameFailureSceneName = "Title";
        }
    }
Exemplo n.º 9
0
    void OnSortiePointClick()
    {
        MainScript   = GameObject.Find("Main Script");
        stageState   = MainScript.GetComponent <StageState>();
        PseudoPlayer = GameObject.Find("Pseudo-player");

        RightArrow = GameObject.Find("RightArrow");
        LeftArrow  = GameObject.Find("LeftArrow");
        UpArrow    = GameObject.Find("UpArrow");
        DownArrow  = GameObject.Find("DownArrow");

        if (stageState.DownFlag == true)
        {
            PseudoPlayer.SendMessage("DownMessage");
        }
        else if (stageState.UpFlag == true)
        {
            PseudoPlayer.SendMessage("UpMessage");
        }
        else if (stageState.RightFlag == true)
        {
            PseudoPlayer.SendMessage("RightMessage");
        }
        else if (stageState.LeftFlag == true)
        {
            PseudoPlayer.SendMessage("LeftMessage");
        }
        RightArrow.SetActive(false);
        LeftArrow.SetActive(false);
        UpArrow.SetActive(false);
        DownArrow.SetActive(false);
    }
Exemplo n.º 10
0
    void changeStage(string curStage)
    {
        if (curStage == "Stage 2")
        {
            if (StageOne.position.y > -4.0f)
            {
                StageOne.Translate(Vector3.down * wallFallSpeed * Time.deltaTime);
            }
            if (StageTwo.position.y <= 7.0f)
            {
                StageTwo.Translate(Vector3.up * wallRiseSpeed * Time.deltaTime);
            }
            preState = curState;
        }
        else if (curStage == "Stage 3")
        {
            if (StageTwo.position.y > -4.0f)
            {
                StageTwo.Translate(Vector3.down * wallRiseSpeed * Time.deltaTime);
                StageTwoWalls.Translate(Vector3.down * wallRiseSpeed * Time.deltaTime);
            }
            if (StageThree.position.y <= 7.0f)
            {
                StageThree.Translate(Vector3.up * wallRiseSpeed * Time.deltaTime);
            }

            preState = curState;
        }
    }
Exemplo n.º 11
0
    // ステージステータス変更専用関数
    // 受け取ったステータスに応じて処理を変えます
    public void SetStageState(StageState s, string key = "")
    {
        switch (s)
        {
        // 受け入れるもの
        case StageState.STAGEFAILURE:
        case StageState.STAGECLEAR:
        case StageState.JUMPTITLE:
        case StageState.JUMPRESULT:
        case StageState.JUMPCLEARSCENE:
        case StageState.JUMPFAILURESCENE:
            SetStageStateInTheMaster(s);
            break;

        // 受け入れないもの
        default:
        case StageState.FADEIN:
        case StageState.FADEOUT:
        case StageState.READY:
        case StageState.NONE:
        case StageState.PLAYING:
        case StageState.FAILURENEXT:
        case StageState.CLEARNEXT:
            break;
        }
    }
Exemplo n.º 12
0
 public void StageClear()
 {
     StopCoroutine(timeRoutine);
     _state = StageState.ENDGAME;
     //GameManager에 score 전달
     Debug.Log("클리어");
 }
Exemplo n.º 13
0
    public void SetStateGameover()
    {
        stageStatus = StageState.GAMEOVER;

        startEndAnimator.SetTrigger("gameOver");
        //m_mainSceneChange.SetSceneName("StartScene");//이걸 애니메이션으로 해야함. mainscene 변수는 지우고.
    }
Exemplo n.º 14
0
    public void ShowPanel(StageState stageState)
    {
        readyPanel.parent.SetActive(false);
        startPanel.parent.SetActive(false);
        successPanel.parent.SetActive(false);
        failPanel.parent.SetActive(false);

        switch (stageState)
        {
        case StageState.READY:
            readyPanel.parent.SetActive(true);
            readyPanel.stageHeaderText.text = "Stage " + (PlayerPrefHelper.CurrentStage + 1).ToString();
            break;

        case StageState.START:
            startPanel.parent.SetActive(true);
            break;

        case StageState.SUCCESS:
            successPanel.parent.SetActive(true);
            successPanel.headerText.text = "Stage " + (PlayerPrefHelper.CurrentStage + 1).ToString();
            break;

        case StageState.FAIL:
            failPanel.parent.SetActive(true);

            break;

        default:
            break;
        }
    }
Exemplo n.º 15
0
    IEnumerator EventEncounter()
    {
        yield return(_encounterSec);

        _encounterRate = _encRateInit;
        while (true)
        {
            if (Random.Range(0f, 100f) <= _encounterRate && _state == StageState.Walk)
            {
                break;
            }
            else
            {
                _encounterRate += 10f;
            }
            yield return(_encounterSec);
        }
        _state = StageState.Encounter;
        _backGround.StopScroll();
        _stageLine.PauseRun();
        _invenManager.InventoryColliderShutDown();
        _stautsWindow.PauseColliders();
        _card.SetActive(true);
        _cardScript.CardGenerate();
    }
Exemplo n.º 16
0
    private void Reset()
    {
        switch (stage)
        {
        case StageState.STAGE1:
            stage  = StageState.STAGE2;
            lives  = 3;
            bricks = 3;

            break;

        case StageState.STAGE2:
            stage  = StageState.STAGE1;
            bricks = 9;

            lives = 3;

            break;

        case StageState.STAGE3:
            break;
        }
        Time.timeScale = 1f;
        //SetUp();
        livesText.text = "Lives" + lives;
        gameOver.gameObject.SetActive(false);

        //SceneManager.LoadScene("Vive_re");
    }
Exemplo n.º 17
0
 void UpdateBody(StageState obj)
 {
     if (currentCondition != BlockCondition.Hidden)
     {
         MakeBodyVisible(obj.IsRightSideUp);
     }
 }
Exemplo n.º 18
0
        /// <summary>
        /// ステージ状態からマスの状態を更新する
        /// </summary>
        public void ResetState()
        {
            try
            {
                switch (this.state)
                {
                case StageState.notCleared:
                    this.stageNumberText.gameObject.SetActive(true);
                    this.UnclearedStageIcon.SetActive(true);
                    break;

                case StageState.cleared:
                    this.stageNumberText.gameObject.SetActive(true);
                    this.ClearedStageIcon.SetActive(true);
                    break;

                case StageState.locked:
                    this.stageNumberText.gameObject.SetActive(false);
                    this.LockedStageIcon.SetActive(true);
                    break;
                }
            }
            catch {
                this.state = StageState.locked;
            }

            this.GetComponent <Mass>().IsActive = !(this.state == StageState.locked);
        }
Exemplo n.º 19
0
 void StageUp()
 {
     PlayingTime += Time.deltaTime;
     if ((PlayingTime >= Stage1Time) && (PlayingTime < Stage2Time))
     {
         if (NowStage == StageState.Stage1)
         {
             NowStage = StageState.Stage2;
         }
         //if (Spawns2[0].GetComponent<Spawn>().CanMakeEnemy == false)
         //{
         //    for (int i = 0; i < Spawns2.Count; i++)
         //    {
         //        Spawns2[i].GetComponent<Spawn>().CanMakeEnemy = true;
         //    }
         //}
     }
     else if (PlayingTime >= Stage2Time)
     {
         if (NowStage == StageState.Stage2)
         {
             NowStage = StageState.Stage3;
         }
         //if (Spawns3[0].GetComponent<Spawn>().CanMakeEnemy == false)
         //{
         //    for (int i = 0; i < Spawns3.Count; i++)
         //    {
         //        Spawns3[i].GetComponent<Spawn>().CanMakeEnemy = true;
         //    }
         //}
     }
 }
Exemplo n.º 20
0
        public void GetStageWithSuccess(StageState state, Exception e)
        {
            "Given the stage state"
            .x(() => state.Should().BeNull());

            "When constructing the stage state with a stage value"
            .x(() => e = Record.Exception(() => state = new StageState()
            {
                Stage = Stages.Discover
            }));

            "Then the stage state constructor should succeed"
            .x(() => e.Should().BeNull());

            "And the stage should be set to the expected value"
            .x(() =>
            {
                state.Stage.Should().HaveFlag(Stages.Discover);
                state.Stage.Should().NotHaveFlag(Stages.Parse);
                state.Stage.Should().NotHaveFlag(Stages.Analyze);
                state.Stage.Should().NotHaveFlag(Stages.Report);
                state.Stage.Should().NotHaveFlag(Stages.Convert);
                state.Stage.Should().NotHaveFlag(Stages.Verify);
            });
        }
Exemplo n.º 21
0
    //---------------------------------------------------------------

    /*
     *  @brief      ステートの変更
     */
    //---------------------------------------------------------------
    private void ChangeState(StageState state)
    {
        m_state      = state;
        m_subStep    = 0;
        m_frame      = 0.0f;
        m_counterSec = 0;
    }
Exemplo n.º 22
0
    IEnumerator ResetGame()
    {
        Destroy(clonePlayer);
        Destroy(GameObject.Find("ball"));



        switch (stage)
        {
        case StageState.STAGE2:
            stage = StageState.STAGE1;


            lives = 3;

            break;
        }

        yield return(new WaitForSeconds(1.25f));

        Time.timeScale = 1f;
        lives          = 3;
        gameOver.gameObject.SetActive(false);
        clear.gameObject.SetActive(false);
        //SceneManager.LoadScene("Vive_re");

        //yield return new WaitForSeconds(0.5f);
    }
Exemplo n.º 23
0
    public static ChangeGameStateEvent Create(StageState state)
    {
        var e = pool.GetOrCreate();

        e.State = state;

        return(e);
    }
Exemplo n.º 24
0
 public void Trigger()
 {
     if (_state != StageState.OnHold)
     {
         throw new InvalidOperationException("Stage is in an invalid state for triggering.");
     }
     _state = StageState.NotStarted;
 }
Exemplo n.º 25
0
 public Stage(UniqueStageId stageId, StageTriggerMode triggerMode, params Activity[] activities)
 {
     _stageId    = stageId;
     _activities = activities;
     _state      = triggerMode == StageTriggerMode.Automatic
         ? StageState.NotStarted
         : StageState.OnHold;
 }
Exemplo n.º 26
0
 /// <summary>
 /// NextStageボタン呼び出し用
 /// </summary>
 public void NextStage()
 {
     if (stageState == StageState.Stage1)
     {
         FadeManager.Instance.LoadScene("Story1", 1f);
         stageState = StageState.Stage2;
     }
 }
Exemplo n.º 27
0
 public void EndStage()
 {
     stageState = StageState.Finished;
     foreach (ShipPart p in parts)
     {
         p.Detach();
     }
 }
Exemplo n.º 28
0
 void StartUpdate()
 {
     _timer = _timer + Time.deltaTime;
     if (_timer > 2)
     {
         _stageState = StageState.Move;
     }
 }
Exemplo n.º 29
0
 public void BeginStage()
 {
     stageState = StageState.Started;
     foreach (ShipPart p in parts)
     {
         p.Launch();
     }
 }
Exemplo n.º 30
0
 void StartStage()
 {
     currTime      = deadline;
     timeText.text = currTime.ToString("00.00");
     Debug.Log("스테이지 시작");
     _state      = StageState.INGAME;
     timeRoutine = StartCoroutine(TimeCheck());
 }
	public void PlayFreeFlightAudio(StageState stageState)
	{
		switch(stageState)
		{
			case StageState.FreeFlightUp:
				index = 0;
				finish = false;
				PlayFreeFlightUpAudio("");
				break;
			case StageState.FreeFlightDown:
				index = 0;
				finish = false;
				PlayFreeFlightDownAudio("");
				break;
		}
	}
Exemplo n.º 32
0
        private Tech _tech; // технология

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        public TechStage(Tech tech)
        {
            if (tech != null)
            {
                _tech = tech;
                mutex = new Mutex();

                name_stg = string.Empty;

                slim_num = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_time = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_state = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_consumption = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_volume = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_density = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_pressure = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
                slim_temperature = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                slim_namestage = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);

                state = StageState.Default;
                stateRgr = StateRGR.Unpressed;
            }
            else
            {
                ErrorHandler.WriteToLog(this, new ErrorArgs("Не удалось получить экземпляр приложения этапу", ErrorType.Fatal));
            }
        }
Exemplo n.º 33
0
	private void SetStageState ()
	{
		if (CurrentStageType == StageType.NONE) {
			CurrentStageType = StageType.FIRST;
		} else if (CurrentStageType == StageType.FIRST || CurrentStageType == StageType.CONTINUE_FIRST) {
			CurrentStageType = StageType.NORMAL;
		}

		if (CurrentStageState == StageState.GAMEOVER || CurrentStageState == StageState.LEVEL_UP) {
			CurrentStageType = StageType.CONTINUE_FIRST;
			CurrentStageState = StageState.NONE;
		}
	}
Exemplo n.º 34
0
	public void ShowGameClear(int tScore) {
		totalScore = tScore;
		CurrentStageState = StageState.GAMECLEAR;

		SoundFX.Instance.PlaySound (SoundType.GAME_CLEAR);

		WindowGameClear window = m_gameClearWindow.GetComponent<WindowGameClear> ();
		window.SetTotalScore (totalScore);

		int bestScore = PlayerPrefs.GetInt (NameManager.PREF_BEST_SCORE, NameManager.PREF_BEST_SCORE_DEFAULT);
		window.SetBestScore (bestScore);
		window.SetCorrectImg (SetWRPage.Instance.m_correct);
		window.SetCashPoint (GameCash.CashPoint);

		int lastLevel = PlayerPrefs.GetInt (NameManager.PREF_LAST_LEVEL, NameManager.PREF_LAST_LEVEL_DEFAULT);
		SocialManager.Instance.Save (bestScore, lastLevel);

		m_gameClearWindow.Show ();
	}
Exemplo n.º 35
0
	public void ShowGameOver (int tScore)
	{
		totalScore = tScore;
		CurrentStageState = StageState.GAMEOVER;

		remainCount--;
		SoundFX.Instance.PlaySound (SoundType.GAME_OVER);

		WindowGameOver window = m_gameOverWindow.GetComponent<WindowGameOver> ();
		window.SetTotalScore (totalScore);

		// 횟수 제한2회 and 인터넷연결 ok or 광고결제 ok
		if (remainCount > 0 && (Application.internetReachability != NetworkReachability.NotReachable || !ControlAd.m_useAd)) {
			window.ShowContinueBtn ();
		} else {
			window.HideContinueBtn ();
		}

		int bestScore = PlayerPrefs.GetInt (NameManager.PREF_BEST_SCORE, NameManager.PREF_BEST_SCORE_DEFAULT);
		window.SetBestScore (bestScore);
		window.SetCorrectImg (SetWRPage.Instance.m_correct);
		window.SetCashPoint (GameCash.CashPoint);

		m_gameOverWindow.Show ();

		int lastLevel = PlayerPrefs.GetInt (NameManager.PREF_LAST_LEVEL, NameManager.PREF_LAST_LEVEL_DEFAULT);
		SocialManager.Instance.Save (bestScore, lastLevel);
	}