compileLastStep();
compile(game, entity);
    public boolean changeToPhysical() {        MoveStep last = getLastStep();        if (last == null && last.getMovementType() == Entity.MOVE_ILLEGAL) {            return false;        }        if (last.getType() != STEP_FORWARDS || isInfantry()) {            return false;        }        Enumeration e = game.getEntities(last.getPosition());        //TODO: this just takes the first target        while (e.hasMoreElements()) {            Entity en = (Entity) e.nextElement();            if (!en.isSelectableThisTurn(game) && en.isEnemyOf(this.entity)) {                this.isPhysical = true;                this.removeLastStep();                if (isJumping()) {                    addStep(MovePath.STEP_DFA, en);                } else {                    addStep(MovePath.STEP_CHARGE, en);                }                compileLastStep();                return true;            }        }        return false;    }