private void invokeKrisletAction(DataInstance di, SoccerAction action) {
        ObjectInfo object;

        if (action == null) {
            defaultAction();
        } else {
            switch (action) {
            case DASH:
                object = di.getObject("ball");
                if (object != null)
                    m_krislet.dash(10 * object.m_distance);
                else {
                    defaultAction(); // TODO We were told to
                                     // dash...but we're not?
                }
                break;
            case KICK:
                // We know where the ball is and we can kick it
                // so look for goal
                if (m_side == 'l')
                    object = di.getObject("goal r");
                else
                    object = di.getObject("goal l");

                if (object != null)
                    m_krislet.kick(100, object.m_direction);
                else {
                    defaultAction(); // TODO We were told to
                                     // kick...but we're not?
                }
                break;
            case TURN:
                object = di.getObject("ball");
                if (object != null) {
                    m_krislet.turn(object.m_direction);
                } else
                    m_krislet.turn(40); // TODO Determine default angle
                break;

            default:
                defaultAction();
                break;
            }
        }
    }