define FIRE_BTN = PS4_R2;
define ADS_BTN = PS4_L2;
define SPRINT_BTN = PS4_L3;
define PRONE_BTN = PS4_CIRCLE;
define JUMP_BTN = PS4_CROSS;
define SWITCHWEAPON_BTN = PS4_TRIANGLE;
define RELOAD_BTN = PS4_SQUARE;
define MELEE_BTN = PS4_R3;
define TACTICAL_BTN = PS4_L1;
define GRANADE_BTN = PS4_R1;
define UP = PS4_UP;
define RIGHT = PS4_RIGHT;
define DOWN = PS4_DOWN;
define LEFT = PS4_LEFT;
define RY = PS4_RY;
define LX = PS4_LX;
define LY = PS4_LY;
define PY = POLAR_RY;
define PX = POLAR_RX;
define PS = POLAR_RS;

define autoPing = FALSE, noDelay = TRUE, Asgard_Aimbot = TRUE,
       ToggleJumpShoot = TRUE, RapidFire = FALSE;

int AntiRecoil_Value = 25;
int Aim_Settings_1 = 14, Aim_Settings_2 = 14, Aim_Settings_3 = 14,
    Aim_Delay = 1, doAntiRecoil;

int p_near = 22;
int q_near = 26;
int threshold_near = 6;

int p_far = 12;
int q_far = 16;
int r_far = 20;
int threshold_far = 10;

int move_threshold = 4;

main {
  AntiRecoil_Value();

  if (ToggleJumpShoot) {
    if (get_val(FIRE_BTN) && !get_val(ADS_BTN)) {
      combo_run(doAutoJump);
    }
  }

  if (noDelay) {
    combo_run(doDelay);
  }

  if (Asgard_Aimbot) {
    if (abs(get_val(PS4_RX)) >= move_threshold ||
        abs(get_val(PS4_RY)) >= move_threshold) {
      if (abs(get_val(PS4_RX)) <= threshold_near &&
          abs(get_val(PS4_RY)) <= threshold_near) {
        combo_run(tracking_near);
      } else if (abs(get_val(PS4_RX)) <= threshold_far &&
                 abs(get_val(PS4_RY)) <= threshold_far) {
        combo_run(tracking_far);
      }
    }

    combo_run(Aim_Settings_1);
    if (abs(get_val(PS4_RX)) > 30 || abs(get_val(PS4_RY)) > 30) {
      combo_stop(Aim_Settings_1);
    } else {
      combo_run(Aim_Settings_2);
    }
    if (abs(get_val(PS4_RX)) > 30 || abs(get_val(PS4_RY)) > 30) {
      combo_stop(Aim_Settings_2);
    } else {
      combo_run(Aim_Settings_3);
    }
    if (abs(get_val(PS4_RX)) > 30 || abs(get_val(PS4_RY)) > 30) {
      combo_stop(Aim_Settings_3);
    }
  }

  block_rumble();
}

combo tracking_near {
  set_val(PS4_RX, p_near);
  set_val(PS4_RY, q_near);
}

combo tracking_far {
  set_val(PS4_RX, p_far);
  set_val(PS4_RY, q_far);
}
combo doAutoJump {
  set_val(JUMP_BTN, 100);
  wait(60);
  wait(1000);
}

combo doDelay {
  if (get_val(PS4_R2)) set_val(PS4_R2, 100);
  if (get_val(PS4_L2)) set_val(PS4_L2, 100);
}

combo Aim_Settings_1 {
  set_val(PS4_RX, Aim_Settings_1);
  wait(Aim_Delay);
  set_val(PS4_RY, Aim_Settings_1);
  set_val(PS4_RX, -Aim_Settings_1);
  wait(Aim_Delay);
  set_val(PS4_RY, -Aim_Settings_1);
}

combo Aim_Settings_2 {
  set_val(PS4_RX, Aim_Settings_2);
  set_val(PS4_RY, Aim_Settings_2);
  set_val(PS4_RX, -Aim_Settings_2);
  wait(Aim_Delay);
  set_val(PS4_RY, -Aim_Settings_2);
}

combo Aim_Settings_3 {
  set_val(PS4_RX, Aim_Settings_3);
  wait(Aim_Delay);
  set_val(PS4_RY, Aim_Settings_3);
  set_val(PS4_RX, -Aim_Settings_3);
  set_val(PS4_RY, -Aim_Settings_3);
}

combo AntiRecoil_Value {
  doAntiRecoil = get_ival(PS4_RY) + AntiRecoil_Value;
  if (doAntiRecoil > 100 + 100 - 100) AntiRecoil_Value = 100 - 100 + 100;
  set_val(PS4_RY, AntiRecoil_Value)
}

function AntiRecoil_Value() {
  if (get_val(PS4_R2) && get_val(PS4_L2))
    combo_run(AntiRecoil_Value)

        if (abs(get_val(PS4_RX)) + abs(get_val(PS4_RY)) >
            AntiRecoil_Value - 100 + 100) combo_stop(AntiRecoil_Value) return;
}
const image picture = {
    128,  61,   0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x10, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe3, 0xc7,
    0xe7, 0xf8, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0xe7, 0xe7, 0xf7, 0xff, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe7, 0xe7, 0xf7, 0xff, 0xbb, 0xff,
    0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xef, 0xf7,
    0xff, 0xff, 0xbb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0xef, 0xf7, 0x7f, 0xff, 0xbb, 0xff, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8e, 0xf7, 0x79, 0xe7, 0xbb, 0xcf,
    0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0e, 0xf7,
    0x79, 0xe7, 0xbb, 0xcf, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0x0e, 0xf7, 0x79, 0xe7, 0xfb, 0xcf, 0x3c, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0e, 0x77, 0x79, 0xe7, 0xfb, 0xcf,
    0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8e, 0x77,
    0x79, 0xe7, 0xfb, 0xcf, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0xee, 0x77, 0xf1, 0xe7, 0xfb, 0xcf, 0x3f, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xee, 0x77, 0xf1, 0xe7, 0xfb, 0xcf,
    0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xee, 0x77,
    0xe1, 0xe7, 0xfb, 0xcf, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0xee, 0x77, 0xf1, 0xe7, 0xfb, 0xcf, 0x3c, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xee, 0xf7, 0xf1, 0xe7, 0xfb, 0xcf,
    0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8e, 0xf7,
    0xf1, 0xe7, 0x7b, 0xcf, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0x8f, 0xf7, 0x71, 0xe7, 0x7b, 0xcf, 0x3f, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8f, 0xf7, 0x71, 0xe7, 0x7b, 0xcf,
    0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8f, 0xe7,
    0x79, 0xe7, 0x3b, 0xcf, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x07, 0x87, 0xe7, 0x79, 0xe7, 0x3b, 0xcf, 0x3f, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x87, 0xe7, 0x39, 0xe7, 0x3b, 0xcf,
    0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80,
    0x30, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x01, 0xdc, 0x0e, 0x00, 0x03, 0x80, 0x3e, 0x00,
    0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x01, 0xfc, 0x01, 0xfe, 0xcf, 0x00,
    0x23, 0x80, 0x3e, 0x00, 0x07, 0x00, 0x00, 0x1c, 0x3c, 0x00, 0x01, 0xfc,
    0x01, 0xff, 0xee, 0x00, 0x73, 0x80, 0x3e, 0x00, 0x07, 0x00, 0x00, 0x1c,
    0x3c, 0x00, 0x01, 0xfc, 0x01, 0xff, 0xee, 0x00, 0x73, 0x80, 0x3e, 0x00,
    0x06, 0x00, 0x00, 0x1c, 0x3c, 0x00, 0x01, 0xfc, 0x01, 0xdd, 0xee, 0x00,
    0x73, 0x80, 0x7e, 0x00, 0x06, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x01, 0xfc,
    0x00, 0x01, 0xee, 0x00, 0x7b, 0x80, 0x7e, 0x08, 0x1e, 0x18, 0x64, 0x1c,
    0x1c, 0x00, 0xe0, 0x3c, 0x61, 0xcd, 0xfe, 0x18, 0x7b, 0x80, 0x7e, 0x3e,
    0x3e, 0x3e, 0x6d, 0xfc, 0x1f, 0x9c, 0xe0, 0x3c, 0xf9, 0xdd, 0xfc, 0x3c,
    0x7b, 0x80, 0x7e, 0x3f, 0x7f, 0x7e, 0x7d, 0xfc, 0x1f, 0xdc, 0xe0, 0x39,
    0xf9, 0xdd, 0xfc, 0x7e, 0x7b, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0xfc,
    0x1f, 0xdd, 0xe0, 0x79, 0xfd, 0xdd, 0xfc, 0x7e, 0x7f, 0x80, 0x77, 0x7f,
    0xf7, 0xff, 0x7f, 0xfc, 0x1f, 0xdf, 0xe0, 0x79, 0xdd, 0xdd, 0xfc, 0xff,
    0x7f, 0x80, 0x77, 0x77, 0xf7, 0xf7, 0x7f, 0xdc, 0x1d, 0xdf, 0xe0, 0x73,
    0xdd, 0xdd, 0xfc, 0xe7, 0x7f, 0x80, 0x77, 0x78, 0xf7, 0x0f, 0x7b, 0xdc,
    0x1d, 0xcf, 0xc0, 0xf3, 0xdd, 0xdd, 0xfc, 0xff, 0x7f, 0x80, 0x77, 0x3c,
    0x77, 0x3f, 0xf3, 0xdc, 0x1d, 0xcf, 0xc0, 0xf3, 0xfd, 0xdd, 0xfc, 0xff,
    0x7f, 0x80, 0x7f, 0x3e, 0x77, 0x7f, 0xf3, 0xdc, 0x1d, 0xcf, 0xc0, 0xe3,
    0xfd, 0xdd, 0xfc, 0xff, 0x7f, 0x80, 0x7f, 0x1f, 0x7f, 0x77, 0xf3, 0xdc,
    0x1d, 0xcf, 0xc1, 0xe3, 0xf9, 0xdd, 0xfe, 0xfe, 0x7f, 0x80, 0xff, 0x77,
    0x7e, 0xf7, 0xf3, 0xdc, 0x1d, 0xcf, 0xc1, 0xe3, 0xc1, 0xdd, 0xfe, 0xe0,
    0x77, 0x80, 0xff, 0x77, 0x3e, 0xf7, 0xf3, 0xdc, 0x1d, 0xcf, 0xc1, 0xff,
    0xdd, 0xdd, 0xfe, 0xf7, 0x77, 0x80, 0xff, 0x7f, 0x3c, 0xff, 0xf1, 0xfc,
    0x1f, 0xc7, 0xc1, 0xfd, 0xfd, 0xdf, 0xee, 0xff, 0x77, 0x80, 0xf7, 0xff,
    0x70, 0xff, 0xf1, 0xfc, 0x1f, 0xc7, 0x81, 0xfd, 0xfd, 0xdf, 0xee, 0x7e,
    0x77, 0x80, 0xe7, 0xbf, 0x7e, 0x7f, 0xf1, 0xfc, 0x1f, 0x87, 0x81, 0xfc,
    0xf9, 0xdf, 0xee, 0x7e, 0x77, 0x80, 0xe7, 0x9e, 0x7f, 0x37, 0x70, 0xdc,
    0x19, 0x07, 0x81, 0xfc, 0xf1, 0xdc, 0xcf, 0x3c, 0x63, 0x80, 0x00, 0x00,
    0x3f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x0e, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x80, 0x00, 0x00,
    0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x77, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00,
    0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x7e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

init {
  set_rgb(0, 0, 0);
  cls_oled(OLED_WHITE);
  cls_oled(0);
  image_oled(0, 0, 1, 1, picture[0]);
}