Well, the thing that surprises me is the way it's set out actually works. No offense to you Maker, but the if condition seems somewhat temperemental to me.
After doing Java for a bit, one thing I became proficient in was 'and' and 'or' commands. Initially, that should be an 'or' command judging from the way it's set out. That means if the triggering unit isn't a Footman or a Knight, it won't Attack Move. That means if a Knight enters, in theory, the Knight is not a footman and therefore the code shouldn't work.
However, if you had an 'and' command there, it would theoretically do something completely different. That is, if a Knight entered the region, it is not a Footman, but it is a Knight, and therefore it will skip the 'then' action and go straight to the 'else' action.
But seeing as how setting it out like that works for you, that therefore proves the folly of theoretical thinking. However, I'm just not sure if Ghostman had the same luck. Perhaps your code somehow counts that condition as an 'and' command, while Ghostman's counts his as an 'or' command? Maybe the extra unit in the condition statement makes the change? It's as little confusing atm :/