public override ExecutionResult Execute(SuperMetroidModel model, InGameState inGameState, int times = 1, bool usePreviousRoom = false) { if (inGameState.HasItem(Item)) { // Clone the In-game state to fulfill method contract ExecutionResult result = new ExecutionResult(inGameState.Clone()); result.AddItemsInvolved(new[] { Item }); return(result); } else { return(null); } }