public void OnLeftRoom(Entity entity, Room room) { if (room == boat) { OnLeftBoat(entity); return; } if (entity == diver) { if (room.IsEntityLeftOfRoom(entity)) { MakeRoomActive(room.SeaX - 1, room.SeaY); entity.X = room.Size.X - 2; } if (room.IsEntityRightOfRoom(entity)) { MakeRoomActive(room.SeaX + 1, room.SeaY); entity.X = -entity.Width + 1; } if (room.IsEntityBelowRoom(entity)) { MakeRoomActive(room.SeaX, room.SeaY + 1); entity.Y = -entity.Height + 1; } if (room.IsEntityAboveRoom(entity)) { MakeRoomActive(room.SeaX, room.SeaY - 1); entity.Y = room.Size.Y - 2; } return; } if (entity.IsTransitionable) { EntityTransition entityTransistion = new EntityTransition(entity, room); entityTransitions.Add(entityTransistion); } }