>>365
詳しく追ってないから構文的に間違ってるかは知らんが意味的には間違ってるね

>var Sprite_Actor_prototype_retreat = Sprite_Actor.prototype.retreat;
>Sprite_Actor_prototype_retreat.call(this);

この2行は要らないと思う
これはあくまで「既存の処理に新しい処理を加える」為の書き方であって処理内容を変更したい時に使うものじゃない
競合なんて起こる時には起こるし自前のシステムを組む時にまで気にしていてもしょうがない
競合が起こったら改めて処理順序を気にすれば良い