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); }
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(); }