コード例 #1
0
    public void character_loaded()
    {
        //this means we are start/restarting the game
        if (NGM.CurrentCharacterLoader.Character == CharacterIndex.sFetus)
        {
            reset_stats_and_difficulties();
        }

        //reveal the character with sound
        mManager.mMusicManager.play_sound_effect("transitionOut");
        slide_image(mFlatCamera, mSunsetImage, null, false);

        //we use the hack version instead that allows us to skip characters
        set_last_performance_stat_to_character(NGM.CurrentCharacterIndex);

        //mPerformanceStats.Add(new PerformanceStats(NGM.CurrentCharacterIndex));
        //CurrentPerformanceStat.Stats = NGM.CharacterHelper.Characters[NGM.CurrentCharacterIndex];

        mInterfaceManager.begin_new_character(CurrentPerformanceStat);
        //set particle color
        mParticles.mParticles.set_emitter_particle_color(mManager.mCharacterBundleManager.get_character_stat(NGM.CurrentCharacterIndex).CharacterInfo.CharacterOutlineColor / 2f, 2);
        if (NGM.CurrentCharacterLoader.Character != CharacterIndex.sFetus)
        {
            mGiftManager.add_character(NGM.CurrentCharacterLoader.Character);
        }
        switch (NGM.CurrentCharacterLoader.Name)
        {
        case "0-1":
            set_time_for_PLAY(999999f);
            setup_next_poses(true);
            transition_to_PLAY();
            float gTextDisplayDur = 4;
            NGM.CurrentTargetPose = null;

            System.Action transPose = delegate()
            {
                NGM.CurrentTargetPose = mManager.mReferences.mCheapPose.to_pose();
                mManager.mTransparentBodyManager.set_target_pose(NGM.CurrentTargetPose);
                mManager.mTransparentBodyManager.transition_character_in(mManager.mCharacterBundleManager.get_character_stat(NGM.CurrentCharacterIndex).CharacterInfo.CharacterOutlineColor);
            };

            if (mManager.mMetaManager.UnlockManager.mUnlocked.numberGamesPlayed == 0 || GameConstants.TUTORIAL_ONCE != true)
            {
                TED.add_event(
                    mInterfaceManager.skippable_text_bubble_event(GameStrings.GetString("MNPfetus1"), gTextDisplayDur),
                    3).then_one_shot(
                    transPose,
                    0).then(
                    mInterfaceManager.skippable_text_bubble_event(GameStrings.GetString("MNPfetus2"), gTextDisplayDur),
                    1.5f);
            }
            else
            {
                TED.add_one_shot_event(transPose, 2);
            }

            break;

        case "110":
            set_time_for_PLAY(GameConstants.playAstronautPlayTime); //astronaut scene is shorter
            setup_next_poses(true);                                 //astronaut scene has no transparent pose
            mAstronaut.start_astro();
            mManager.mBackgroundManager.hide_bg_and_fg_elements(true);
            mInterfaceManager.hide_interface();
            transition_to_PLAY();
            TED.add_event(
                mInterfaceManager.skippable_text_bubble_event(GameStrings.GetString("MNPfetus3"), 4),
                1);
            CurrentPerformanceStat.update_score(0, 1);     //give astronaut perfect score
            CurrentPerformanceStat.update_score(1, 1);
            break;

        default:
            set_time_for_PLAY(GameConstants.playDefaultPlayTime);
            setup_next_poses(false);
            transition_to_PLAY();
            break;
        }
    }