protected override bool OnStep(Map map) { if (X == lastX && Y == lastY && Layer == lastLayer && lastResult) { return true; } else { lastResult = map.OnStep(X, Y, Layer); lastX = X; lastY = Y; lastLayer = Layer; return lastResult; } }