The towers will attack enemies in this order:
- Closest enemy unit or hero attacking a friendly hero with auto
attack
- Closest enemy unit or hero attacking the tower itself with auto
attack
- Closest enemy unit or hero attacking any friendly unit with auto
attack
- Closest enemy unit
- Closest enemy hero
- Closest enemy catapult
The tower will switch targets if:
- The targeted enemy unit or hero dies
- An enemy unit or hero targets a friendly hero
- An enemy hero being attacked by the tower manually attacks a friendly
unit or hero (in which case, the tower will select a new target based
on the above priority order).
Last one is a weird mechanic that got greatly exploited during last few months,if you get targeted by the tower and click attack button and click on friendly creep the tower will start attacking the next target as if you got out of the attack range.It is getting its popularity since it enables you to attack tower with minimum interruptions(running away+running back from the tower range).To me it looks like a major bug since it makes no sense as a mechanic.
The thing that you mostly experience during the game is that you move inside the tower range (while it is attacking another unit), and then click attack on an enemy hero, which will make the tower attack you.
More discussion here and here.
Pudge and Lina both have similar goals as solo mid heroes as they can both snowball into midgame powerhouses easily. However, if they fail to score any kills, they become rather weak.
Neither hero is going to be able to gank too effectively prior to level 6, and so their focus is to get experience as quickly as possible. Lina's only job is to not get hooked by Pudge, and Pudge's only job is to not die. This means that Lina will be getting a majority of the last hits and harassing effectively.
Pudge should be forcing the Lina to stay in a good position for the entirety of the laning phase: his opportunities will come during rune races or when Lina does something dumb. Regarding rune races, this is where the matchup is most volatile. Both heroes should be picking up a quick Bottle, and Lina with her ability to dominate the matchup should also have rather quick Boots. Her best option is to nuke down the wave at about 1:45, 3:45, 5:45, etc. and force Pudge to skip experience to contest runes. By doing this, she can force the Pudge to take risks if he wants to have any say in the lane.
However, the Lina also has a choice: she can attempt to gank sidelanes, or she can continue to keep the Pudge weak mid. If she leaves to gank (obviously call attention to the miss immediately), the Pudge should be using that time to pick up much needed gold. After he hits level 6, he can start moving around the map constantly and leave mid to others who can use the opportunity.
Pudge is all about momentum. A skilled Lina will shut that down at the beginning of the game by not being in a position to get hooked, but she can't control your roaming. Pudge can really take advantage of the night time (between minutes 6 and 12, 18 and 24, 30 and 36, etc.) to land hooks on opponents who can't even see him. As long as you don't die repeatedly in mid, that opportunity remains open to you.
Best Answer
First of all we need to see the advantages of going mid-lane solo:
It is good to go solo mostly because of the faster XP gain which is a huge factor.
Considering the facts listed above, we can follow-up with the 2 following reasons to go mid-lane:
You are a carry hero. Being a carry hero requires fast leveling/farming and the mid lane offers this to any decent player. If you can't farm that well, still you will level faster anyway. Now, 80% of cases are in the first category. This means you need a carry oriented hero which preferably can also farm/deny. This means most will be ranged, but there are some good melee heroes too. In what follows I will give some examples of some good range/melee heroes for mid:
You have a good ganker hero. This means you have for instance Pudge or Mirana which after quickly achieving level 5-6 can go fast top/bottom for gank and get kill 100% sure if they get hook/arrow. Also take Tiny for example. Getting fast lvl 7-8 when all the other players are level 5 will get you easiest kill ever with avalanche/toss combo. Bane falls easily in this category with level 6. Lion due to ultimate of course, but arguably better as support/roamer. Tinker has so much burst damage at level 7-8, leveling him fast is a good idea as he can easily get some early game kills.
You are a good harasser. This means you can really slow down the enemy's mid hero leveling/farming. Most of the time you won't see this happening but I've seen this in some games.
This doesn't cover all heroes but hopefully will give you a good idea to start with.