Beispiel #1
0
def align(override_prepjump=False):
    info('ALIGN: Starting Align Sequence')
    if not (ship()['status'] == 'in_supercruise' or ship()['status']
            == 'in_space' or ship()['status'] == 'starting_supercruise'):
        error('Ship align failed.')
        send_discord_webhook("❌ Ship align failed.", True)
        raise Exception('align failed.')

    info('ALIGN: Executing star avoidance maneuver')
    while sun_percent() > 3:
        PressKey(keys['PitchUpButton']['key'])
    ReleaseKey(keys['PitchUpButton']['key'])

    info('ALIGN: Setting speed to 100%')
    send(keys['SetSpeed100'])

    # left = False
    # right = False
    # up = False
    # down = False
    if config['PrepJump'] and override_prepjump == False:
        global prep_engaged
        prep_engaged = datetime.now()
        send(keys['HyperSuperCombination'], hold=0.2)  # prep

    crude_align()

    if ship()['status'] == 'starting_hyperspace':
        return

    fine_align()
Beispiel #2
0
def position(refueled_multiplier=1):
    # info('POSIT: Waiting to enter system')
    # while sun_percent() < 10:
    #     print(sun_percent())
    #     # continue
    # sleep(2)
    info('POSIT: Starting system entry positioning maneuver')
    if config['DiscoveryScan'] == "Primary":
        info('POSIT: Scanning system.')
        send(keys['PrimaryFire'], state=1)
    elif config['DiscoveryScan'] == "Secondary":
        info('POSIT: Scanning system.')
        send(keys['SecondaryFire'], state=1)

    # if refueled_multiplier <= 1:
    #     send(keys['SetSpeed75'], repeat=3)
    PressKey(keys['PitchUpButton']['key'])
    sleep(4)
    while sun_percent() > 3:
        PressKey(keys['PitchUpButton']['key'])
        sleep(1)
    send(keys['SetSpeed100'], repeat=3)
    # send(keys['PitchUpButton'], state=1)
    sleep(4)
    ReleaseKey(keys['PitchUpButton']['key'])
    sleep(5 * refueled_multiplier)
    info('POSIT: System entry positioning complete')

    if config['DiscoveryScan'] == "Primary":
        debug('position=scanning1')
        send(keys['PrimaryFire'], state=0)
    elif config['DiscoveryScan'] == "Secondary":
        debug('position=scanning2')
        send(keys['SecondaryFire'], state=0)
    return True
def send(key_to_send,
         hold=None,
         repeat=1,
         repeat_delay=None,
         state=None,
         cv_testing=False):
    if not cv_testing:
        global KEY_MOD_DELAY, KEY_DEFAULT_DELAY, KEY_REPEAT_DELAY

        if key_to_send is None:
            logger.warning('SEND=NONE !!!!!!!!')
            return

        logger.debug('send=key:' + str(key_to_send) + ',hold:' + str(hold) +
                     ',repeat:' + str(repeat) + ',repeat_delay:' +
                     str(repeat_delay) + ',state:' + str(state))
        for i in range(repeat):

            if state is None or state == 1:
                if 'mod' in key_to_send:
                    PressKey(key_to_send['mod'])
                    sleep(KEY_MOD_DELAY)

                PressKey(key_to_send['key'])

            if state is None:
                if hold:
                    sleep(hold)
                else:
                    sleep(KEY_DEFAULT_DELAY)

            if state is None or state == 0:
                ReleaseKey(key_to_send['key'])

                if 'mod' in key_to_send:
                    sleep(KEY_MOD_DELAY)
                    ReleaseKey(key_to_send['mod'])

            if repeat_delay:
                sleep(repeat_delay)
            else:
                sleep(KEY_REPEAT_DELAY)
def send(key_to_send, hold=None, repeat=1, repeat_delay=None, state=None):
    global KEY_MOD_DELAY, KEY_DEFAULT_DELAY, KEY_REPEAT_DELAY

    if key_to_send is None:
        warning('Attempted to send key press, but no key was provided.')
        return

    debug('Sending key:' + str(key_to_send) + ', Hold:' + str(hold) +
          ', Repeat:' + str(repeat) + ', Repeat Delay:' + str(repeat_delay) +
          ', State:' + str(state))
    for i in range(repeat):

        if state is None or state == 1:
            if 'mod' in key_to_send:
                PressKey(key_to_send['mod'])
                sleep(KEY_MOD_DELAY)

            PressKey(key_to_send['key'])

        if state is None:
            if hold:
                sleep(hold)
            else:
                sleep(KEY_DEFAULT_DELAY)

        if state is None or state == 0:
            ReleaseKey(key_to_send['key'])

            if 'mod' in key_to_send:
                sleep(KEY_MOD_DELAY)
                ReleaseKey(key_to_send['mod'])

        if repeat_delay:
            sleep(repeat_delay)
        else:
            sleep(KEY_REPEAT_DELAY)
def crude_align():
    close = 3
    close_a = 10

    off = get_navpoint_offset()
    while off is None:  # Until NavPoint Found
        send(keys['PitchUpButton'], state=1)
        off = get_navpoint_offset(last=off)
    send(keys['PitchUpButton'], state=0)

    ang = x_angle(off)

    info('ALIGN: Executing crude jump alignment.')
    while ((off['x'] > close and ang > close_a)
           or (off['x'] < -close and ang < -close_a) or (off['y'] > close)
           or (off['y'] < -close)):
        while (off['x'] > close and ang > close_a) or (off['x'] < -close
                                                       and ang < -close_a):
            debug("Roll aligning")
            if off['x'] > close and ang > close_a:
                send(keys['RollRightButton'], state=1)
            else:
                send(keys['RollRightButton'], state=0)

            if off['x'] < -close and ang < -close_a:
                send(keys['RollLeftButton'], state=1)
            else:
                send(keys['RollLeftButton'], state=0)

            if ship()['status'] == 'starting_hyperspace':
                ReleaseKey(keys['RollRightButton']['key'])
                ReleaseKey(keys['RollLeftButton']['key'])
                return

            off = get_navpoint_offset(last=off)
            ang = x_angle(off)

        ReleaseKey(keys['RollRightButton']['key'])
        ReleaseKey(keys['RollLeftButton']['key'])
        ReleaseKey(keys['PitchUpButton']['key'])
        ReleaseKey(keys['PitchDownButton']['key'])

        while (off['y'] > close) or (off['y'] < -close):
            debug("Pitch aligning")

            if off['y'] > close:
                send(keys['PitchUpButton'], state=1)
            else:
                send(keys['PitchUpButton'], state=0)

            if off['y'] < -close:
                send(keys['PitchDownButton'], state=1)
            else:
                send(keys['PitchDownButton'], state=0)

            if ship()['status'] == 'starting_hyperspace':
                ReleaseKey(keys['PitchUpButton']['key'])
                ReleaseKey(keys['PitchDownButton']['key'])
                return

            off = get_navpoint_offset(last=off)
            ang = x_angle(off)

    ReleaseKey(keys['RollRightButton']['key'])
    ReleaseKey(keys['RollLeftButton']['key'])
    ReleaseKey(keys['PitchUpButton']['key'])
    ReleaseKey(keys['PitchDownButton']['key'])

    return
Beispiel #6
0
def crude_align():
    close = 5
    close_a = 10

    off = get_navpoint_offset()
    while off is None:  # Until NavPoint Found
        PressKey(keys['PitchUpButton']['key'])
        off = get_navpoint_offset(last=off)
    ReleaseKey(keys['PitchUpButton']['key'])

    ang = x_angle(off)

    info('ALIGN: Executing crude jump alignment.')
    while ((off['x'] > close and ang > close_a)
           or (off['x'] < -close and ang < -close_a) or (off['y'] > close)
           or (off['y'] < -close / 2)
           ):  #perfer y on top so ship doesn't block target ring
        ReleaseKey(keys['RollRightButton']['key'])
        ReleaseKey(keys['RollLeftButton']['key'])
        ReleaseKey(keys['PitchUpButton']['key'])
        ReleaseKey(keys['PitchDownButton']['key'])

        while (off['x'] > close and ang > close_a) or (off['x'] < -close
                                                       and ang < -close_a):
            debug("Roll aligning")
            if off['x'] > close and ang > close_a:
                PressKey(keys['RollRightButton']['key'])
            else:
                ReleaseKey(keys['RollRightButton']['key'])

            if off['x'] < -close and ang < -close_a:
                PressKey(keys['RollLeftButton']['key'])
            else:
                ReleaseKey(keys['RollLeftButton']['key'])

            if ship()['status'] == 'starting_hyperspace':
                ReleaseKey(keys['RollRightButton']['key'])
                ReleaseKey(keys['RollLeftButton']['key'])
                return

            off = get_navpoint_offset(last=off)
            ang = x_angle(off)

        ReleaseKey(keys['RollRightButton']['key'])
        ReleaseKey(keys['RollLeftButton']['key'])
        ReleaseKey(keys['PitchUpButton']['key'])
        ReleaseKey(keys['PitchDownButton']['key'])

        while (off['y'] > close) or (off['y'] < -close / 2):
            debug("Pitch aligning")

            if off['y'] > close:
                PressKey(keys['PitchUpButton']['key'])
            else:
                ReleaseKey(keys['PitchUpButton']['key'])

            if off['y'] < -close:
                PressKey(keys['PitchDownButton']['key'])
            else:
                ReleaseKey(keys['PitchDownButton']['key'])

            if ship()['status'] == 'starting_hyperspace':
                ReleaseKey(keys['PitchUpButton']['key'])
                ReleaseKey(keys['PitchDownButton']['key'])
                return

            off = get_navpoint_offset(last=off)
            ang = x_angle(off)

    ReleaseKey(keys['RollRightButton']['key'])
    ReleaseKey(keys['RollLeftButton']['key'])
    ReleaseKey(keys['PitchUpButton']['key'])
    ReleaseKey(keys['PitchDownButton']['key'])

    return
Beispiel #7
0
def fine_align():
    new = None
    info('ALIGN: Executing fine jump alignment')
    sleep(0.5)
    close = 40
    hold_pitch = 0.200
    hold_yaw = 0.400
    off = get_destination_offset()
    for i in range(3):
        new = get_destination_offset()
        if new:
            off = new
            break
        else:
            crude_align()
    if new is None:
        return False

    while (off['x'] > close) or (off['x'] < -close) or (off['y'] > close) or (
            off['y'] < -close):
        if off['x'] > close:
            PressKey(keys['YawRightButton']['key'])
        elif off['x'] < -close:
            PressKey(keys['YawLeftButton']['key'])
        else:
            ReleaseKey(keys['YawRightButton']['key'])
            ReleaseKey(keys['YawLeftButton']['key'])

        if off['y'] > close:
            PressKey(keys['PitchUpButton']['key'])
        elif off['y'] < -close:
            PressKey(keys['PitchDownButton']['key'])
        else:
            ReleaseKey(keys['PitchDownButton']['key'])
            ReleaseKey(keys['PitchUpButton']['key'])

        if ship()['status'] == 'starting_hyperspace':
            return True

        for i in range(3):
            new = get_destination_offset()
            if new:
                off = new
                break
            else:
                ReleaseKey(keys['YawRightButton']['key'])
                ReleaseKey(keys['YawLeftButton']['key'])
                ReleaseKey(keys['PitchDownButton']['key'])
                ReleaseKey(keys['PitchUpButton']['key'])
                crude_align()
        if new is None:
            return False

        if (off['x'] <= close) and (off['x'] >= -close) and (
                off['y'] <= close) and (off['y'] >= -close):
            debug('ALIGN: Jump alignment complete')
            ReleaseKey(keys['YawRightButton']['key'])
            ReleaseKey(keys['YawLeftButton']['key'])
            ReleaseKey(keys['PitchDownButton']['key'])
            ReleaseKey(keys['PitchUpButton']['key'])
            return True