Example #1
0
        public override void Collision(Mario mario)
        {
            //if(mario.PowerState is )
            IBlockState nextState;

            if (Context is BrickBlock)
            {
                nextState = new BrickBlockStateNormal(Context);
            }
            else
            {
                nextState = new QuestionBlockStateNormal(Context);
            }
            Context.BlockState = nextState;
            Leave(nextState);
        }
Example #2
0
 public override void Leave(IState nextState)
 {
     if (Context is QuestionBlock)
     {
         nextState = new BlockStateUsed(Context);
     }
     else
     {
         if (hadItems && Context.Items.Count == 0)
         {
             nextState = new BlockStateUsed(Context);
         }
         else
         {
             nextState = new BrickBlockStateNormal(Context);
         }
     }
     Context.BlockState = (IBlockState)nextState;
     Context.BlockState.Enter();
 }