Fixes #2: moved FOV computation to UI, fixed level.replaceTile()