Last active
April 6, 2024 15:28
-
-
Save dually8/822d336a9d9376226218a130018455f4 to your computer and use it in GitHub Desktop.
For Adafruit Macropad RP2040
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Place in /macros directory of macropad storage | |
# e.g., H:/macros/helldivers2.py | |
# Credits: https://adafruit-playground.com/u/squid_jpg/pages/easy-helldivers-ii-stratagem-macros-for-rp2040-macropad | |
# Strategem List: https://www.stratagemhero.com/stratagems | |
# Macropad Project: https://learn.adafruit.com/macropad-hotkeys/project-code | |
# MACROPAD Hotkeys: Helldiver II | |
import random | |
from adafruit_hid.keycode import Keycode | |
START_INPUT_DELAY = 0.4 | |
START_INPUT_DELAY_MIN = 0.4 | |
START_INPUT_DELAY_MAX = 0.8 | |
KEY_DELAY = 0.05 | |
KEY_DELAY_MIN = 0.05 | |
KEY_DELAY_MAX = 0.1 | |
START_INPUT = Keycode.CONTROL | |
UP = Keycode.W | |
DOWN = Keycode.S | |
LEFT = Keycode.A | |
RIGHT = Keycode.D | |
YELLOW = 0x202000 | |
BLUE = 0x000020 | |
RED = 0x200000 | |
GREEN = 0x002000 | |
def stratagem(*argv): | |
start_delay = round(random.uniform(START_INPUT_DELAY_MIN, START_INPUT_DELAY_MAX), 2) | |
# keys = [] | |
keys = [START_INPUT, start_delay] | |
# keys = [START_INPUT, START_INPUT_DELAY] | |
for key in argv: | |
start_key_delay = round(random.uniform(KEY_DELAY_MIN, KEY_DELAY_MAX), 2) | |
end_key_delay = round(random.uniform(KEY_DELAY_MIN, KEY_DELAY_MAX), 2) | |
keys += [key, start_key_delay, -key, end_key_delay] | |
# keys += [key, KEY_DELAY, -key, KEY_DELAY] | |
print(keys) | |
return keys | |
# Stratagem List | |
# From: https://github.com/byjokese/stratagem-hero/blob/61723dc92a19f6348ca219685326cb1b4a23a62c/src/app/data/stratagems.ts#L3 | |
# https://stratagemhero.net/stratagems | |
class Stratagems(): | |
# AC-8 Autocannon | |
AC_8_AUTOCANNON = (BLUE, "A-CAN", stratagem(DOWN, LEFT, DOWN, UP, UP, RIGHT)) | |
# AD-334 Guard Dog | |
AD_334_GUARD_DOG = (BLUE, "M-GDOG", stratagem(DOWN, UP, LEFT, UP, RIGHT, DOWN)) | |
# Anti-Personnel Minefield | |
ANTI_PERSONNEL_MINEFIELD = (GREEN, "MINES", stratagem(DOWN, LEFT, UP, RIGHT)) | |
# APW-1 Anti-Materiel Rifle | |
APW_1_ANTI_MATERIEL_RIFLE = (BLUE, "MAT-RF", stratagem(DOWN, LEFT, RIGHT, UP, DOWN)) | |
# ARC-3 Arc Thrower | |
ARC_3_ARC_THROWER = (BLUE, "ARC-T", stratagem(DOWN, RIGHT, DOWN, UP, LEFT, LEFT)) | |
# Autocannon Sentry | |
AUTOCANNON_SENTRY = (GREEN, "A-SENT", stratagem(DOWN, UP, RIGHT, UP, LEFT, UP)) | |
# AX/LAS-5 "Guard Dog" Rover | |
AX_LAS_5_GUARD_DOG_ROVER = (BLUE, "L-GDOG", stratagem(DOWN, UP, LEFT, UP, RIGHT, RIGHT)) | |
# B-1 Supply Pack | |
B_1_SUPPLY_PACK = (BLUE, "S-PACK", stratagem(DOWN, LEFT, DOWN, UP, UP, DOWN)) | |
# Eagle 110MM Rocket Pods | |
EAGLE_110MM_ROCKET_PODS = (RED, "E-110M", stratagem(UP, RIGHT, UP, LEFT)) | |
# Eagle 500KG Bomb | |
EAGLE_500KG_BOMB = (RED, "E-500", stratagem(UP, RIGHT, DOWN, DOWN, DOWN)) | |
# Eagle Airstrike | |
EAGLE_AIRSTRIKE = (RED, "E-AIR", stratagem(UP, RIGHT, DOWN, RIGHT)) | |
# Eagle Cluster Bomb | |
EAGLE_CLUSTER_BOMB = (RED, "E-CBMB", stratagem(UP, RIGHT, DOWN, DOWN, RIGHT)) | |
# Eagle Napalm Airstrike | |
EAGLE_NAPALM_AIRSTRIKE = (RED, "E-NAP", stratagem(UP, RIGHT, DOWN, UP)) | |
# Eagle Rearm | |
EAGLE_REARM = (RED, "E-REAR", stratagem(UP, UP, LEFT, UP, RIGHT)) | |
# Eagle Smoke Strike | |
EAGLE_SMOKE_STRIKE = (RED, "E-SMK", stratagem(UP, RIGHT, UP, DOWN)) | |
# Eagle Strafing Run | |
EAGLE_STRAFING_RUN = (RED, "E-STR", stratagem(UP, RIGHT, RIGHT)) | |
# EAT-17 Expendable Anti-Tank | |
EAT_17_EXPENDABLE_ANTI_TANK = (BLUE, "A-TNK", stratagem(DOWN, DOWN, LEFT, UP, RIGHT)) | |
# EMS Mortar Sentry | |
EMS_MORTAR_SENTRY = (GREEN, "EMS-ST", stratagem(DOWN, UP, RIGHT, DOWN, RIGHT)) | |
# EXO-45 Patriot Exosuit | |
EXO_45_PATRIOT_EXOSUIT = (GREEN, "P-EX", stratagem(LEFT, DOWN, RIGHT, UP, LEFT, DOWN, DOWN)) | |
# FAF-14 Spear | |
FAF_14_SPEAR = (BLUE, "SPEAR", stratagem(DOWN, DOWN, UP, DOWN, DOWN)) | |
# FLAM-40 "Incinerator" Flamethrower | |
FLAM_40_INCINERATOR_FLAMETHROWER = (BLUE, "FLMTR", stratagem(DOWN, LEFT, UP, DOWN, UP)) | |
# Gatling Sentry | |
GATLING_SENTRY = (GREEN, "G-SENT", stratagem(DOWN, UP, RIGHT, LEFT)) | |
# GL-21 Grenade Launcher | |
GL_21_GRENADE_LAUNCHER = (BLUE, "G-LNCH", stratagem(DOWN, LEFT, UP, LEFT, DOWN)) | |
# GR-8 Recoilless Rifle | |
GR_8_RECOILLESS_RIFLE = (BLUE, "R-RFL", stratagem(DOWN, LEFT, RIGHT, RIGHT, LEFT)) | |
# Hellbomb | |
HELLBOMB = (YELLOW, "HBOMB", stratagem(DOWN, UP, LEFT, DOWN, UP, RIGHT, DOWN, UP)) | |
# HMG Emplacement | |
HMG_EMPLACEMENT = (GREEN, "HMG", stratagem(DOWN, UP, LEFT, RIGHT, RIGHT, LEFT)) | |
# Incendiary Mines | |
INCENDIARY_MINES = (GREEN, "I-MIN", stratagem(DOWN, LEFT, LEFT, DOWN)) | |
# LAS-98 Laser Cannon | |
LAS_98_LASER_CANNON = (BLUE, "L-CAN", stratagem(DOWN, LEFT, DOWN, UP, LEFT)) | |
# LAS-99 Quasar Cannon | |
LAS_99_QUASAR_CANNON = (BLUE, "Q-CAN", stratagem(DOWN, DOWN, UP, LEFT, RIGHT)) | |
# LIFT-850 Jump Pack | |
LIFT_850_JUMP_PACK = (BLUE, "J-PACK", stratagem(DOWN, UP, UP, DOWN, UP)) | |
# M-105 Stalwart | |
M_105_STALWART = (BLUE, "STAL", stratagem(DOWN, LEFT, DOWN, UP, UP, LEFT)) | |
# Machine Gun Sentry | |
MACHINE_GUN_SENTRY = (GREEN, "M-SENT", stratagem(DOWN, UP, RIGHT, RIGHT, UP)) | |
# MG-43 Machine Gun | |
MG_43_MACHINE_GUN = (BLUE, "M-GUN", stratagem(DOWN, LEFT, DOWN, UP, RIGHT)) | |
# Mortar Sentry | |
MORTAR_SENTRY = (GREEN, "MRT-SE", stratagem(DOWN, UP, RIGHT, RIGHT, DOWN)) | |
# Orbital 120MM HE Barrage | |
ORBITAL_120MM_HE_BARRAGE = (RED, "O-120", stratagem(RIGHT, RIGHT, DOWN, LEFT, RIGHT, DOWN)) | |
# Orbital 380MM HE Barrage | |
ORBITAL_380MM_HE_BARRAGE = (RED, "0-380", stratagem(RIGHT, DOWN, UP, UP, LEFT, DOWN, DOWN)) | |
# Orbital Airburst Strike | |
ORBITAL_AIRBURST_STRIKE = (RED, "O-AIR", stratagem(RIGHT, RIGHT, RIGHT)) | |
# Orbital EMS Strike | |
ORBITAL_EMS_STRIKE = (RED, "O-EMS", stratagem(RIGHT, RIGHT, LEFT, DOWN)) | |
# Orbital Gas Strike | |
ORBITAL_GAS_STRIKE = (RED, "O-GAS", stratagem(RIGHT, RIGHT, DOWN, RIGHT)) | |
# Orbital Gatling Barrage | |
ORBITAL_GATLING_BARRAGE = (RED, "O-GBAR", stratagem(RIGHT, DOWN, LEFT, UP, UP)) | |
# Orbital Illumination Flare | |
ORBITAL_ILLUMINATION_FLARE = (YELLOW, "O-ILL", stratagem(RIGHT, RIGHT, LEFT, LEFT)) | |
# Orbital Laser | |
ORBITAL_LASER = (RED, "O-LSR", stratagem(RIGHT, DOWN, UP, RIGHT, DOWN)) | |
# Orbital Precision Strike | |
ORBITAL_PRECISION_STRIKE = (RED, "O-PS", stratagem(RIGHT, RIGHT, UP)) | |
# Orbital Railcannon Strike | |
ORBITAL_RAILCANNON_STRIKE = (RED, "O-RAIL", stratagem(RIGHT, UP, DOWN, DOWN, RIGHT)) | |
# Orbital Smoke Strike | |
ORBITAL_SMOKE_STRIKE = (RED, "O-SMK", stratagem(RIGHT, RIGHT, DOWN, UP)) | |
# Orbital Walking Barrage | |
ORBITAL_WALKING_BARRAGE = (RED, "O-WBAR", stratagem(RIGHT, DOWN, RIGHT, DOWN, RIGHT, DOWN)) | |
# Prospecting Drill | |
PROSPECTING_DRILL = (YELLOW, "P-DRL", stratagem(DOWN, DOWN, LEFT, RIGHT, DOWN, DOWN)) | |
# Reinforce | |
REINFORCE = (YELLOW, "REINF", stratagem(UP, DOWN, RIGHT, LEFT, UP)) | |
# Resupply | |
RESUPPLY = (YELLOW, "RESUP", stratagem(DOWN, DOWN, UP, RIGHT)) | |
# Rocket Sentry | |
ROCKET_SENTRY = (GREEN, "R-SENT", stratagem(DOWN, UP, RIGHT, RIGHT, LEFT)) | |
# RS-422 Railgun | |
RS_422_RAILGUN = (YELLOW, "RAIL", stratagem(DOWN, RIGHT, DOWN, UP, LEFT, RIGHT)) | |
# SEAF Artillery | |
SEAF_ARTILLERY = (YELLOW, "SEAF", stratagem(RIGHT, UP, UP, DOWN)) | |
# Seismic Probe | |
SEISMIC_PROBE = (YELLOW, "S-PRB", stratagem(UP, UP, LEFT, RIGHT, DOWN, DOWN)) | |
# SH-20 Ballistic Shield Backpack | |
SH_20_BALLISTIC_SHIELD_BACKPACK = (YELLOW, "SHL-BK", stratagem(DOWN, LEFT, DOWN, DOWN, UP, LEFT)) | |
# SH-32 Shield Generator Pack | |
SH_32_SHIELD_GENERATOR_PACK = (YELLOW, "SHL-GN", stratagem(DOWN, UP, LEFT, RIGHT, LEFT, RIGHT)) | |
# Shield Generator Relay | |
SHIELD_GENERATOR_RELAY = (GREEN, "GEN-RL", stratagem(DOWN, DOWN, LEFT, RIGHT, LEFT, RIGHT)) | |
# SOS Beacon | |
SOS_BEACON = (YELLOW, "SOS", stratagem(UP, DOWN, RIGHT, UP)) | |
# Super Earth Flag | |
SUPER_EARTH_FLAG = (YELLOW, "FLAG", stratagem(DOWN, UP, DOWN, UP)) | |
TESLA_TOWER = (GREEN, "T-TWR", stratagem(DOWN, UP, RIGHT, UP, LEFT, RIGHT)) | |
UPLOAD_DATA = (YELLOW, "UPLD", stratagem(DOWN, DOWN, UP, UP, UP)) | |
app = { | |
"name": "Helldivers II", | |
"macros": [ | |
# COLOR LABEL KEY SEQUENCE | |
# 1st row ---------- | |
Stratagems.REINFORCE, | |
Stratagems.RESUPPLY, | |
Stratagems.HELLBOMB, | |
# 2nd row ---------- | |
Stratagems.MG_43_MACHINE_GUN, | |
Stratagems.AC_8_AUTOCANNON, | |
Stratagems.B_1_SUPPLY_PACK, | |
# 3rd row ---------- | |
Stratagems.AX_LAS_5_GUARD_DOG_ROVER, | |
Stratagems.AD_334_GUARD_DOG, | |
Stratagems.ORBITAL_380MM_HE_BARRAGE, | |
# 4th row ---------- | |
Stratagems.GATLING_SENTRY, | |
Stratagems.MACHINE_GUN_SENTRY, | |
Stratagems.AUTOCANNON_SENTRY, | |
# Encoder button --- | |
(0x000000, "", []), | |
], | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Revision 1 update:
Tested on the stratagem hero website (from which the macro keys are taken)