===================
Homing Projectiles
===================
---------------------------------------------------------------------------
This creates a projectile that follows the opponent where ever they go.
---------------------------------------------------------------------------
To accomplish this, a Helper must be used. If you wish to add
any Projectile Effects, simply add them to this state.
[Statedef ****]
type = A
movetype = A
physics = N
anim = ****
This is needed, so that the projectile cannot be hit, and turn into a
copy of the main character. This is what I use, but alternatively, you
can put in a HitOverride, or just forget about the Clsn2 boxes.

[State ****: NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
These next pieces are needed to follow the opponent, and to turn if the
opponent somehow gets behind it. The turning is not required, but it depends
on the type of anim you are using for the projectile.
All the VelSet and VelAdd values should can be changed accordingly.
The triggers "Vel X > -6", "Vel Y < 6" and "Vel Y > -6" are used to limit the speed of the projectile.
[State ****: Turn]
type = Turn
trigger1 = (P2Dist X < 10)
[State ****: VelSet]
type = VelSet
trigger1 = (!Time)
x = 3
[State ****: VelAdd]
type = VelAdd
trigger1 = (P2Dist X < 0) && (Vel X > -6)
x = -0.2
[State ****: VelAdd]
type = VelAdd
trigger1 = (P2Dist X > 0) && (Vel X < 6)
x = 0.2
[State ****: VelAdd]
type = VelAdd
trigger1 = (EnemyNear, Pos Y > Pos Y) && (Vel Y < 6)
y = 0.2
[State ****: VelAdd]
type = VelAdd
trigger1 = (EnemyNear, Pos Y <= Pos Y) && (Vel Y > -6)
y = -0.2
Of course, a HitDef controller is needed. Everything here is up to you, but the "attr" parameter must
be set to a projectile type. Eg "S, SP"
[State ****: HitDef]
type = HitDef
trigger1 = 1
attr = S, SP
[etc...]
This last piece is used to destroy the Helper when it makes contact with the opponent, or when it has
floating around for a period of time, to reduce cheapness.
Alternatively you can put the Projectile into another state, if you want something else to occur before
it is removed.
[State ****: DestroySelf]
type = DestroySelf
trigger1 = (MoveContact) || (Time > 200)
ignorehitpause = 1