Previously an improper check was being done to see if the player was
located on the 3 teleporting pads in the level. Even if fixng this the
spell would not work correctly if the layer was standing on the pads
when casting the spell.
Simply use TARGET_BOTH to indicate that it should not be random and send
the player to the given destination
Phasing could end up attempting to teleport to hunreds of random
location and still fail to find a valid target and send the player in to
a wall or outside the map.
This is fixed by first finding all valid locations within range and then
picking one of them at random.
Valid targets is a 13x13 area around the player minus the inner 7x7
In total there can be no more then 120 valid tiles and on average there
should be 75 avalible.
This seams to have been done to better align the magic missile fired by
the bonedeamon, but for all other monsters the alignment is less ideal
and they become unable to hit there enemy at close range.
If the random number generator ends up giving X-Y coordinate pairs
that always are on bad tiles (e.g. solid, with object or with monster)
then after a total of MAXDUNX * MAXDUNY tries, it will still cast
phasing to teleport to the bad tile.
- Lightnings cast by familiars have a short range, this was communicated
by setting midir to -1. Solved by looking at the type of the owner
- Lightning and Inferno sync position with the parent missile. Solved by
copying the sync from the guardian spell