diff --git a/source/script_replacement.hpp b/source/script_replacement.hpp index dc548e9..a331a34 100644 --- a/source/script_replacement.hpp +++ b/source/script_replacement.hpp @@ -47,6 +47,7 @@ u64 appeal_lw_replace(L2CAgent* l2c_agent, void* variadic) { "NONE", "MASH\nAIRDODGE", "MASH\nJUMP", + "MASH\nATTACK", "INFINITE\nSHIELD", "HOLD\nSHIELD", "LEDGE\nOPTION" @@ -93,6 +94,21 @@ u64 appeal_s_replace(L2CAgent* l2c_agent, void* variadic) { }; print_string(acmd.module_accessor, LEDGE_strings[LEDGE_STATE]); + } else if (TOGGLE_STATE == MASH_ATTACK) { + ATTACK_STATE = (ATTACK_STATE + 1) % NUM_ATTACK_STATES; + const char* ATTACK_strings[NUM_ATTACK_STATES] = { + "NAIR", + "FAIR", + "BAIR", + "UPAIR", + "DAIR", + "NEUTRAL B", + "SIDE B", + "UP B", + "DOWN B" + }; + + print_string(acmd.module_accessor, ATTACK_strings[ATTACK_STATE]); } else { DI_STATE = (DI_STATE + 1) % NUM_DI_STATES; const char* DI_strings[NUM_DI_STATES] = { diff --git a/source/taunt_toggles.h b/source/taunt_toggles.h index 2c089df..3fac09e 100644 --- a/source/taunt_toggles.h +++ b/source/taunt_toggles.h @@ -16,6 +16,20 @@ int DI_STATE = NONE; #define DI_RANDOM_IN_AWAY 9 #define NUM_DI_STATES 10 +/* Attack Option */ +#define MASH_NAIR 0 +#define MASH_FAIR 1 +#define MASH_BAIR 2 +#define MASH_UPAIR 3 +#define MASH_DAIR 4 +#define MASH_NEUTRAL_B 5 +#define MASH_SIDE_B 6 +#define MASH_UP_B 7 +#define MASH_DOWN_B 8 + +int ATTACK_STATE = MASH_NAIR; +#define NUM_ATTACK_STATES 9 + /* Ledge Option */ #define RANDOM_LEDGE 0 #define NEUTRAL_LEDGE 1 @@ -29,11 +43,12 @@ int LEDGE_STATE = RANDOM_LEDGE; // Down Taunt #define MASH_AIRDODGE 1 #define MASH_JUMP 2 -#define INFINITE_SHIELD 3 -#define HOLD_SHIELD 4 -#define LEDGE_OPTION 5 +#define MASH_ATTACK 3 +#define INFINITE_SHIELD 4 +#define HOLD_SHIELD 5 +#define LEDGE_OPTION 6 int TOGGLE_STATE = NONE; -#define NUM_TOGGLE_STATES 6 +#define NUM_TOGGLE_STATES 7 #endif // TAUNT_TOGGLES_H diff --git a/source/training_mods.hpp b/source/training_mods.hpp index 0d2cf90..25ed054 100644 --- a/source/training_mods.hpp +++ b/source/training_mods.hpp @@ -142,6 +142,30 @@ namespace app::lua_bind { if (TOGGLE_STATE == MASH_JUMP) if (category == FIGHTER_PAD_COMMAND_CATEGORY1) flag |= FIGHTER_PAD_CMD_CAT1_FLAG_JUMP_BUTTON; + + if (TOGGLE_STATE == MASH_ATTACK) + if (category == FIGHTER_PAD_COMMAND_CATEGORY1) { + switch (ATTACK_STATE) { + case MASH_NAIR: + flag |= 0x80; break; // FIGHTER_PAD_CMD_CAT1_FLAG_ATTACK_AIR_N + case MASH_FAIR: + flag |= 0x100; break; // FIGHTER_PAD_CMD_CAT1_FLAG_ATTACK_AIR_F + case MASH_BAIR: + flag |= 0x200; break; // FIGHTER_PAD_CMD_CAT1_FLAG_ATTACK_AIR_B + case MASH_UPAIR: + flag |= 0x400; break; // FIGHTER_PAD_CMD_CAT1_FLAG_ATTACK_AIR_HI + case MASH_DAIR: + flag |= 0x800; break; // FIGHTER_PAD_CMD_CAT1_FLAG_ATTACK_AIR_LW + case MASH_NEUTRAL_B: + flag |= FIGHTER_PAD_CMD_CAT1_FLAG_SPECIAL_N; break; + case MASH_SIDE_B: + flag |= FIGHTER_PAD_CMD_CAT1_FLAG_SPECIAL_S; break; + case MASH_UP_B: + flag |= FIGHTER_PAD_CMD_CAT1_FLAG_SPECIAL_HI; break; + case MASH_DOWN_B: + flag |= FIGHTER_PAD_CMD_CAT1_FLAG_SPECIAL_LW; break; + } + } } }