public void SceneFlash(bool resetAll, bool goToCheckPoint, int changeToSceneIndex)
        {
            MarioState.ActionType actionType;
            MarioState.PowerType  powerType = currScene.Mario.GetPower;
            bool isFire = currScene.Mario.IsFire(); bool throwBullet = Scene.Mario.ThrowBullet;
            bool invincible = Scene.Mario.Invincible; bool jumpTwice = Scene.Mario.JumpTwice;

            if (changeToSceneIndex == CurrSceneIndex)
            {
                //need reset
                actionType = currScene.Mario.GetAction;
                ResetScene(resetAll, goToCheckPoint);
            }
            else
            {
                // Go to Secre Area, keep the current level.
                GoToSecretScene(changeToSceneIndex);
                actionType = currScene.Mario.GetAction;
            }
            if (!resetAll)
            {
                Scene.Mario.Invincible = invincible;
                currScene.Mario.RestoreStates(actionType, powerType, isFire, throwBullet, jumpTwice);
            }
        }
Example #2
0
        public void RestoreStates(MarioState.ActionType actionType, MarioState.PowerType powerType, bool isFire, bool thorwBullet, bool jumpTwice)
        {
            Mario.ThrowBullet = thorwBullet;
            Mario.JumpTwice   = jumpTwice;
            switch (actionType)
            {
            case MarioState.ActionType.Crouch: Mario.ChangeToCrouch(); break;

            case MarioState.ActionType.Fall: Mario.ChangeToFalling(); break;

            case MarioState.ActionType.Idle: Mario.ChangeToIdle(); break;

            case MarioState.ActionType.Jump: Mario.ChangeToJump(Parameters.Velocity.Y); break;

            case MarioState.ActionType.Walk: Mario.ChangeToWalk(); break;

            case MarioState.ActionType.Other: Mario.MarioState.ChangeToDied(); break;

            default: break;
            }
            switch (powerType)
            {
            case MarioState.PowerType.Died: Mario.MarioState.ChangeToDied(); break;

            case MarioState.PowerType.Super:
                if (isFire)
                {
                    Mario.MarioState.ChangeToFire();
                }
                else
                {
                    Mario.MarioState.ChangeToSuper();
                }
                break;

            default: break;     //Mario default powerType is Standard.
            }
        }