public override void Collision(Mario mario) { IBlockState nextState; if (Context.Items?.Count > 0) { //release item and bump Context.Items.Peek().Execute(); Context.Items.Dequeue(); nextState = new BlockStateBump(Context, true); } else { //check mario's power state if normal bump else destroy if (mario.PowerState is MarioPowerStateNormal) { nextState = new BlockStateBump(Context, false); } else { nextState = new BrickBlockStateDestroyed(Context); } } Leave(nextState); }
public override void Collision(Mario mario) { IBlockState nextState = new BlockStateBump(Context, true); Context.BlockState = nextState; Leave(nextState); }
public override void Collision() { //collision by koopa shell IBlockState nextState = new BlockStateBump(Context, true); Context.BlockState = nextState; Leave(nextState); }
public override void Collision() { IBlockState nextState; if (Context.Items?.Count > 0) { //release item and bump Context.Items.Peek().Execute(); Context.Items.Dequeue(); nextState = new BlockStateBump(Context, true); } else { nextState = new BlockStateBump(Context, false); } Leave(nextState); }