I pm'd GPG the details of the bug so hopefully they'll have it fixed soon.
Here's the bug in a nutshell - when you target a skill on an enemy that you are not facing, your DG will turn to face them before firing the skill. The skill activation code essentially says:
Code: c#
- Engine.StartTurnTowards(target.Position());
- while (not Engine.IsFacing(target.Position())) { wait(); }
- FireSkill();
An astute reader will wonder what happens if the target moves while you are turning to face them? Well, what happens is you have only told the engine to turn to where the target was when you clicked the skill. If the target has moved then it could happen that you finish your turn without ever facing the target. If this happens then the code above hangs forever waiting. If your target happens to turn around and move in front of you, your skill will activate all of a sudden. Only other way out of the hang is to issue a new movement order, which essentially cancels your skill activation.
The problem is most common when you are very close to your target, since a tiny movement by the target causes a large change in relative direction, making it easy for him to move out of your turning field of view. If you are turning clockwise and your target is moving clockwise then you hit the bug. If you are turning clockwise and your target is moving counterclockwise then you do not hit the bug since he will cross in front of you at some point in your turn.
This mod essentially changes the code above to:
Code: c#
- Engine.StartTurnTowards(target.Position());
- while (not Engine.IsFacing(target.Position()))
- {
- if (not me.IsStillTurning()) { Engine.StartTurnTowards(target.Position()); } // we finished our turn without finding the target. turn some more
- wait();
- }
Keep in mind the actual code is alot more complicated than the above which is why the bug is not easily seen when looking at the real code.